{"version":3,"mappings":"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KAAK,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,KAAK,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,KAAK,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,KAAK,KAAK,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,GAAK,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,KAAK,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,KAAK,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,KAAK,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,KAAK,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,KAAK,KAAK,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,KAAK,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,EAAE,IAAM,CAAC,IAAI,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,cACN,GAAM,gBACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,mBACN,GAAM,SACN,GAAM,iBACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,OACN,GAAM,mBACN,GAAM,iCACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,UACN,GAAM,gBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,SACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,oCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,iCACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,cACN,GAAM,cACN,GAAM,SACN,GAAM,iBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,6BACN,GAAM,aACN,GAAM,mBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GA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ACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAc,CAAC,OAAO,EACtBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAAC,OAAO,EACvBC,IAAe,CAA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CJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJG,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJG,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,IACJE,GAAIA,GACN,EChpNA,IAAIxvB,GAAavhH,EAAgB,WAAC,SAAUzB,EAAIe,EAAK,CACjD,IAAI8Q,EAAY7R,EAAG6R,UAAW5L,EAAWjG,EAAGiG,SAAUlH,EAAQd,GAAO+B,EAAI,CAAC,YAAa,UAAU,CAAC,EAC9F0yI,EAAiB,SAAUxzI,EAAO,CAClC,IAAIyzI,EAAezzI,EACb0zI,IAA0B1zI,CAAK,EAC/Bi9B,OACFgkE,EAAUwyC,EAAeA,EAAaxyC,QAAU,GAChDl6F,GACAA,EAASk6F,EAASjhG,GAAS,EAAE,GAGrC,OAAQuC,EAAmB,cAACmxI,IAAkB90I,GAAS,CAAEiD,IAAKA,EAAK8Q,UAAWwL,GAAG,OAAQxL,CAAS,EAAGqoG,cAAe7B,GAAewJ,uBAAwB7K,IAAe8F,eAAgB,GAAM9gB,eAAgBC,GAAgBh2F,SAAUysI,GAAkB3zI,CAAK,CAAC,CACtQ,CAAC,EACDikH,GAAWxgH,YAAc,aACzB,IAAIy5F,GAAiBx6F,EAAgB,WAAC,SAAU1C,EAAOgC,EAAK,CAAE,OAAAyc,EAAA0sB,GAAA,IAE5DpsC,GAAS,CAEP8hB,MAAO,CAAEzE,aAAc,kBAAmB03H,WAAY,GAAK,EAAEhhI,UAAW,4BAA8B,EAAE9S,EAAO,CAAEgC,IAAKA,EAAK,CAAC,EAAI,CAAC,EACrIk7F,GAAez5F,YAAc,iBAC7B,IAAIw0G,IAAgB,SAAUh3G,EAAI,CAC9B,IAAI0K,EAAW1K,EAAG0K,SAAUxL,EAAQc,EAAGd,MAAO+G,EAAWjG,EAAGiG,SAAU6rB,EAAU9xB,EAAG8xB,QAC/EuiD,EAAe5yE,cAAkB,SAAU0+F,EAAS,CACpDl6F,EAASk6F,CAAO,CACpB,EAAG,CAACl6F,CAAQ,CAAC,EACb,OAAAyX,EAAAonC,GAAA,CAAA9lD,SAAA,CAAAwe,EAAAgoC,GAAA,CAAAt+C,QACmD,GAAIlI,SAAA0e,EAAA4B,GAAA,CAAAnB,QACR,UAAStM,UAAawL,GAAG,uDAAuD,EAAC3S,SAAYA,EAAQ1L,SAAA,CAAAwe,EAAA66F,GAAA,CAAAlY,QAC1FjhG,EAAKo5G,YAAep5G,EAAKse,IAAAnL,GAAA,CAAAR,UACtBwL,GAAG,2BAA4B3S,EAAW,SAAW,aAAa,CAAC,MAAA8S,IAAAmoC,GAAA,CAAA9zC,UAC3E,gBAAe7S,SAAA0e,EAAAqsB,GAAA,CAAA/qC,UAAAwe,EAAAysB,GAAAzsB,MAAA6sB,GAAA,CAAArrC,SAAA,oBAAAwe,IAAA2sB,GAAA,CAAAnrC,SAAAwe,EAAA+sB,GAAA,CAAAvrC,SAKZ8yB,EACnCvuB,OAAO,SAAUvuB,EAAG,CAAE,OAAOA,EAAEkqB,KAAO,CAAC,EACvCiD,IAAI,SAAUkyD,EAAQ,CAAE,OAAA32C,EAAAitB,GAAA,CAAA94B,UAAsD,QAAOihI,SAA+B,UAAY,CAAE,OAAOz+D,EAAahgB,EAAOn1D,KAAK,CAAI,EAAAF,SAAA,CAAAwe,EAAA66F,GAAA,CAAAlY,QACzH9rC,EAAOn1D,MAAKo5G,YAAejkD,EAAO15C,KAAK,GAAA6C,EAAA,QAAA3L,UAC5C,iBAAgB7S,SAAIq1D,EAAO15C,KAAK,GACzE05C,EAAOn1D,OAAKse,EAAA,QAAA3L,UAA8C,UAAS7S,SAAI,IAAIo3B,OAAOw8G,IAA+Bv+E,EAAOn1D,KAAK,CAAC,EAAG,EAAAse,EAAAu1H,GAAA,CAAAlhI,UACrFwL,GAAG,kBAAmBg3C,EAAOn1D,QAAUA,EAAQ,cAAgB,WAAW,CAAC,KAJ1Bm1D,EAAOn1D,KAAK,EAIsB,CAAC,YACxJ,EACIm5G,GAAgB,SAAUr4G,EAAI,CAC9B,IAAImgG,EAAUngG,EAAGmgG,QAASmY,EAAct4G,EAAGs4G,YACvCiC,EAAOhC,IAAMpY,CAAO,EACxB,OAAA3iF,EAAA,QAAA3L,UAAiD,2DAA0D7S,SAAIu7G,GAAI/8F,EAAA+8F,EAAA,CAAAt0B,MAAuCqyB,CAAW,EAAG,EAC5K,EACAD,GAAc71G,YAAc,gBC1C5B,SAASkF,IAAgBC,EAAcC,EAAS,CAC9C,OAAOC,EAAgB,WAAC,CAACC,EAAOtC,IACZoC,EAAQE,CAAK,EAAEtC,CAAK,GAClBsC,EACnBH,CAAY,CACjB,CAIA,IAAIqrI,GAAmB,aACnB,CAACC,GAAyBC,GAAqB,EAAI1zI,GAAmBwzI,EAAgB,EACtF,CAACG,IAAoBC,EAAoB,EAAIH,GAAwBD,EAAgB,EACrFK,GAAa9pE,EAAiB,WAChC,CAACxqE,EAAO2C,IAAiB,CACvB,KAAM,CACJ,kBAAA4xI,EACA,KAAAzwI,EAAO,QACP,IAAA4L,EACA,gBAAA8kI,EAAkB,IAClB,GAAGC,CACJ,EAAGz0I,EACE,CAAC00I,EAAYC,CAAa,EAAIprI,EAAe,SAAC,IAAI,EAClD,CAAC2lE,EAAUC,CAAW,EAAI5lE,EAAe,SAAC,IAAI,EAC9C,CAACw4B,EAASkhB,CAAU,EAAI15C,EAAe,SAAC,IAAI,EAC5C,CAACqrI,EAAYC,CAAa,EAAItrI,EAAe,SAAC,IAAI,EAClD,CAACurI,EAAYC,CAAa,EAAIxrI,EAAe,SAAC,IAAI,EAClD,CAACyrI,EAAaC,CAAc,EAAI1rI,EAAe,SAAC,CAAC,EACjD,CAAC2rI,EAAcC,CAAe,EAAI5rI,EAAe,SAAC,CAAC,EACnD,CAAC6rI,EAAmBC,CAAoB,EAAI9rI,EAAe,SAAC,EAAK,EACjE,CAAC+rI,EAAmBC,CAAoB,EAAIhsI,EAAe,SAAC,EAAK,EACjE1D,EAAetD,GAAgBI,EAAeR,GAASwyI,EAAcxyI,CAAI,CAAC,EAC1Eo3B,EAAY9rB,GAAaiC,CAAG,EAClC,OAAuBrP,EACrB+zI,IACA,CACE,MAAOG,EACP,KAAAzwI,EACA,IAAKy1B,EACL,gBAAAi7G,EACA,WAAAE,EACA,SAAAxlE,EACA,iBAAkBC,EAClB,QAAAptC,EACA,gBAAiBkhB,EACjB,WAAA2xF,EACA,mBAAoBC,EACpB,kBAAAO,EACA,0BAA2BC,EAC3B,WAAAP,EACA,mBAAoBC,EACpB,kBAAAO,EACA,0BAA2BC,EAC3B,oBAAqBN,EACrB,qBAAsBE,EACtB,SAA0B90I,EACxB0H,GAAU,IACV,CACE,IAAKwxB,EACL,GAAGk7G,EACH,IAAK5uI,EACL,MAAO,CACL,SAAU,WAET,mCAAqCmvI,EAAc,KACnD,oCAAsCE,EAAe,KACtD,GAAGl1I,EAAM,KACV,CACF,CACF,CACF,CACP,CACG,CACH,EACAs0I,GAAW,YAAcL,GACzB,IAAIzgE,GAAgB,qBAChBgiE,GAAqBhrE,EAAiB,WACxC,CAACxqE,EAAO2C,IAAiB,CACvB,KAAM,CAAE,kBAAA4xI,EAAmB,SAAAt0I,EAAU,MAAAo1B,EAAO,GAAGq+C,CAAe,EAAG1zE,EAC3DE,EAAUm0I,GAAqB7gE,GAAe+gE,CAAiB,EAC/DvyI,EAAMyH,SAAc,IAAI,EACxB5D,EAAetD,GAAgBI,EAAcX,EAAK9B,EAAQ,gBAAgB,EAChF,OAAuB2iB,EAAKymB,GAAU,CAAE,SAAU,CAChCjpC,EACd,QACA,CACE,wBAAyB,CACvB,OAAQ,qLACT,EACD,MAAAg1B,CACD,CACF,EACeh1B,EACd0H,GAAU,IACV,CACE,kCAAmC,GACnC,GAAG2rE,EACH,IAAK7tE,EACL,MAAO,CAYL,UAAW3F,EAAQ,kBAAoB,SAAW,SAClD,UAAWA,EAAQ,kBAAoB,SAAW,SAClD,GAAGF,EAAM,KACV,EACD,SAA0BK,EAAI,MAAO,CAAE,IAAKH,EAAQ,gBAAiB,MAAO,CAAE,SAAU,OAAQ,QAAS,OAAS,EAAE,SAAAD,CAAQ,CAAE,CAC/H,CACF,CACF,EAAE,CACJ,CACH,EACAu1I,GAAmB,YAAchiE,GACjC,IAAIiiE,GAAiB,sBACjBC,GAAsBlrE,EAAiB,WACzC,CAACxqE,EAAO2C,IAAiB,CACvB,KAAM,CAAE,WAAA4J,EAAY,GAAGopI,CAAc,EAAK31I,EACpCE,EAAUm0I,GAAqBoB,GAAgBz1I,EAAM,iBAAiB,EACtE,CAAE,0BAAA41I,EAA2B,0BAAAC,CAA2B,EAAG31I,EAC3D41I,EAAe91I,EAAM,cAAgB,aAC3C6J,mBAAiB,KACfisI,EAAeF,EAA0B,EAAI,EAAIC,EAA0B,EAAI,EACxE,IAAM,CACXC,EAAeF,EAA0B,EAAK,EAAIC,EAA0B,EAAK,CACzF,GACO,CAACC,EAAcF,EAA2BC,CAAyB,CAAC,EAChE31I,EAAQ,OAAS,QAA0BG,EAAI01I,IAA0B,CAAE,GAAGJ,EAAgB,IAAKhzI,EAAc,WAAA4J,CAAU,CAAE,EAAIrM,EAAQ,OAAS,SAA2BG,EAAI21I,IAA2B,CAAE,GAAGL,EAAgB,IAAKhzI,EAAc,WAAA4J,CAAY,GAAIrM,EAAQ,OAAS,OAAyBG,EAAI41I,GAAyB,CAAE,GAAGN,EAAgB,IAAKhzI,EAAc,WAAA4J,EAAY,EAAIrM,EAAQ,OAAS,SAA2BG,EAAI61I,GAA4B,CAAE,GAAGP,EAAgB,IAAKhzI,EAAc,EAAI,IACngB,CACH,EACA+yI,GAAoB,YAAcD,GAClC,IAAIM,IAA2BvrE,EAAiB,WAAC,CAACxqE,EAAO2C,IAAiB,CACxE,KAAM,CAAE,WAAA4J,EAAY,GAAGopI,CAAc,EAAK31I,EACpCE,EAAUm0I,GAAqBoB,GAAgBz1I,EAAM,iBAAiB,EACtE,CAACm2I,EAASC,CAAU,EAAI7sI,EAAe,SAAC,EAAK,EACnDM,mBAAiB,IAAM,CACrB,MAAM6qI,EAAax0I,EAAQ,WAC3B,IAAIm2I,EAAY,EAChB,GAAI3B,EAAY,CACd,MAAM4B,EAAqB,IAAM,CAC/B,OAAO,aAAaD,CAAS,EAC7BD,EAAW,EAAI,CACvB,EACYG,EAAqB,IAAM,CAC/BF,EAAY,OAAO,WAAW,IAAMD,EAAW,EAAK,EAAGl2I,EAAQ,eAAe,CACtF,EACM,OAAAw0I,EAAW,iBAAiB,eAAgB4B,CAAkB,EAC9D5B,EAAW,iBAAiB,eAAgB6B,CAAkB,EACvD,IAAM,CACX,OAAO,aAAaF,CAAS,EAC7B3B,EAAW,oBAAoB,eAAgB4B,CAAkB,EACjE5B,EAAW,oBAAoB,eAAgB6B,CAAkB,CACzE,CACK,CACF,EAAE,CAACr2I,EAAQ,WAAYA,EAAQ,eAAe,CAAC,EACzBG,EAAI2I,GAAU,CAAE,QAASuD,GAAc4pI,EAAS,SAA0B91I,EAC/F41I,GACA,CACE,aAAcE,EAAU,UAAY,SACpC,GAAGR,EACH,IAAKhzI,CACN,CACF,EAAE,CACL,CAAC,EACGqzI,IAA4BxrE,EAAiB,WAAC,CAACxqE,EAAO2C,IAAiB,CACzE,KAAM,CAAE,WAAA4J,EAAY,GAAGopI,CAAc,EAAK31I,EACpCE,EAAUm0I,GAAqBoB,GAAgBz1I,EAAM,iBAAiB,EACtE81I,EAAe91I,EAAM,cAAgB,aACrCw2I,EAAoBC,GAAoB,IAAM7sI,EAAK,YAAY,EAAG,GAAG,EACrE,CAACb,EAAOa,CAAI,EAAIjB,IAAgB,SAAU,CAC9C,OAAQ,CACN,OAAQ,WACT,EACD,UAAW,CACT,WAAY,OACZ,cAAe,aAChB,EACD,YAAa,CACX,OAAQ,cACR,cAAe,MAChB,EACD,KAAM,CACJ,KAAM,SACN,OAAQ,YACR,cAAe,aAChB,CACL,CAAG,EACDkB,mBAAiB,IAAM,CACrB,GAAId,IAAU,OAAQ,CACpB,MAAMstI,EAAY,OAAO,WAAW,IAAMzsI,EAAK,MAAM,EAAG1J,EAAQ,eAAe,EAC/E,MAAO,IAAM,OAAO,aAAam2I,CAAS,CAC3C,CACF,EAAE,CAACttI,EAAO7I,EAAQ,gBAAiB0J,CAAI,CAAC,EACzCC,YAAiB,IAAM,CACrB,MAAMqlE,EAAWhvE,EAAQ,SACnBw2I,EAAkBZ,EAAe,aAAe,YACtD,GAAI5mE,EAAU,CACZ,IAAIynE,EAAgBznE,EAASwnE,CAAe,EAC5C,MAAMl9G,EAAe,IAAM,CACzB,MAAMs1D,EAAY5f,EAASwnE,CAAe,EACNC,IAAkB7nD,IAEpDllF,EAAK,QAAQ,EACb4sI,KAEFG,EAAgB7nD,CACxB,EACM,OAAA5f,EAAS,iBAAiB,SAAU11C,CAAY,EACzC,IAAM01C,EAAS,oBAAoB,SAAU11C,CAAY,CACjE,CACL,EAAK,CAACt5B,EAAQ,SAAU41I,EAAclsI,EAAM4sI,CAAiB,CAAC,EACrCn2I,EAAI2I,GAAU,CAAE,QAASuD,GAAcxD,IAAU,SAAU,SAA0B1I,EAC1G61I,GACA,CACE,aAAcntI,IAAU,SAAW,SAAW,UAC9C,GAAG4sI,EACH,IAAKhzI,EACL,eAAgB0D,GAAqBrG,EAAM,eAAgB,IAAM4J,EAAK,eAAe,CAAC,EACtF,eAAgBvD,GAAqBrG,EAAM,eAAgB,IAAM4J,EAAK,eAAe,CAAC,CACvF,CACF,EAAE,CACL,CAAC,EACGqsI,GAA0BzrE,EAAiB,WAAC,CAACxqE,EAAO2C,IAAiB,CACvE,MAAMzC,EAAUm0I,GAAqBoB,GAAgBz1I,EAAM,iBAAiB,EACtE,CAAE,WAAAuM,EAAY,GAAGopI,CAAc,EAAK31I,EACpC,CAACm2I,EAASC,CAAU,EAAI7sI,EAAe,SAAC,EAAK,EAC7CusI,EAAe91I,EAAM,cAAgB,aACrC42I,EAAeH,GAAoB,IAAM,CAC7C,GAAIv2I,EAAQ,SAAU,CACpB,MAAM22I,EAAc32I,EAAQ,SAAS,YAAcA,EAAQ,SAAS,YAC9D42I,EAAc52I,EAAQ,SAAS,aAAeA,EAAQ,SAAS,aACrEk2I,EAAWN,EAAee,EAAcC,CAAW,CACpD,CACF,EAAE,EAAE,EACL,OAAAC,GAAkB72I,EAAQ,SAAU02I,CAAY,EAChDG,GAAkB72I,EAAQ,QAAS02I,CAAY,EACxBv2I,EAAI2I,GAAU,CAAE,QAASuD,GAAc4pI,EAAS,SAA0B91I,EAC/F61I,GACA,CACE,aAAcC,EAAU,UAAY,SACpC,GAAGR,EACH,IAAKhzI,CACN,CACF,EAAE,CACL,CAAC,EACGuzI,GAA6B1rE,EAAiB,WAAC,CAACxqE,EAAO2C,IAAiB,CAC1E,KAAM,CAAE,YAAAgN,EAAc,WAAY,GAAGgmI,CAAc,EAAK31I,EAClDE,EAAUm0I,GAAqBoB,GAAgBz1I,EAAM,iBAAiB,EACtEg3I,EAAWvtI,SAAc,IAAI,EAC7BwtI,EAAmBxtI,SAAc,CAAC,EAClC,CAACytI,EAAOC,CAAQ,EAAI5tI,WAAgB,CACxC,QAAS,EACT,SAAU,EACV,UAAW,CAAE,KAAM,EAAG,aAAc,EAAG,WAAY,CAAG,CAC1D,CAAG,EACK6tI,EAAaC,GAAcH,EAAM,SAAUA,EAAM,OAAO,EACxD56C,EAAc,CAClB,GAAGq5C,EACH,MAAAuB,EACA,cAAeC,EACf,SAAkBC,EAAa,GAAKA,EAAa,EACjD,cAAgBE,GAAUN,EAAS,QAAUM,EAC7C,iBAAkB,IAAML,EAAiB,QAAU,EACnD,mBAAqBM,GAAeN,EAAiB,QAAUM,CACnE,EACE,SAASC,EAAkBD,EAAY7nI,EAAK,CAC1C,OAAO+nI,IAA6BF,EAAYN,EAAiB,QAASC,EAAOxnI,CAAG,CACrF,CACD,OAAIC,IAAgB,aACKtP,EACrBq3I,IACA,CACE,GAAGp7C,EACH,IAAK35F,EACL,sBAAuB,IAAM,CAC3B,GAAIzC,EAAQ,UAAY82I,EAAS,QAAS,CACxC,MAAMloD,EAAY5uF,EAAQ,SAAS,WAC7BmxC,EAASsmG,GAAyB7oD,EAAWooD,EAAOh3I,EAAQ,GAAG,EACrE82I,EAAS,QAAQ,MAAM,UAAY,eAAe3lG,CAAM,WACzD,CACF,EACD,cAAgBy9C,GAAc,CACxB5uF,EAAQ,WAAUA,EAAQ,SAAS,WAAa4uF,EACrD,EACD,aAAeyoD,GAAe,CACxBr3I,EAAQ,WACVA,EAAQ,SAAS,WAAas3I,EAAkBD,EAAYr3I,EAAQ,GAAG,EAE1E,CACF,CACP,EAEMyP,IAAgB,WACKtP,EACrBu3I,IACA,CACE,GAAGt7C,EACH,IAAK35F,EACL,sBAAuB,IAAM,CAC3B,GAAIzC,EAAQ,UAAY82I,EAAS,QAAS,CACxC,MAAMloD,EAAY5uF,EAAQ,SAAS,UAC7BmxC,EAASsmG,GAAyB7oD,EAAWooD,CAAK,EACxDF,EAAS,QAAQ,MAAM,UAAY,kBAAkB3lG,CAAM,QAC5D,CACF,EACD,cAAgBy9C,GAAc,CACxB5uF,EAAQ,WAAUA,EAAQ,SAAS,UAAY4uF,EACpD,EACD,aAAeyoD,GAAe,CACxBr3I,EAAQ,WAAUA,EAAQ,SAAS,UAAYs3I,EAAkBD,CAAU,EAChF,CACF,CACP,EAES,IACT,CAAC,EACGG,IAAuBltE,EAAiB,WAAC,CAACxqE,EAAO2C,IAAiB,CACpE,KAAM,CAAE,MAAAu0I,EAAO,cAAAW,EAAe,GAAGlC,CAAc,EAAK31I,EAC9CE,EAAUm0I,GAAqBoB,GAAgBz1I,EAAM,iBAAiB,EACtE,CAAC86C,EAAeg9F,CAAgB,EAAIvuI,EAAe,WACnDvH,EAAMyH,SAAc,IAAI,EACxBxH,EAAcM,GAAgBI,EAAcX,EAAK9B,EAAQ,kBAAkB,EACjF2J,mBAAiB,IAAM,CACjB7H,EAAI,SAAS81I,EAAiB,iBAAiB91I,EAAI,OAAO,CAAC,CACnE,EAAK,CAACA,CAAG,CAAC,EACe3B,EACrB03I,GACA,CACE,mBAAoB,aACpB,GAAGpC,EACH,IAAK1zI,EACL,MAAAi1I,EACA,MAAO,CACL,OAAQ,EACR,KAAMh3I,EAAQ,MAAQ,MAAQ,wCAA0C,EACxE,MAAOA,EAAQ,MAAQ,MAAQ,wCAA0C,EACxE,kCAAoC83I,GAAad,CAAK,EAAI,KAC3D,GAAGl3I,EAAM,KACV,EACD,mBAAqBu3I,GAAev3I,EAAM,mBAAmBu3I,EAAW,CAAC,EACzE,aAAeA,GAAev3I,EAAM,aAAau3I,EAAW,CAAC,EAC7D,cAAe,CAAC9wI,EAAOwxI,IAAiB,CACtC,GAAI/3I,EAAQ,SAAU,CACpB,MAAM4uF,EAAY5uF,EAAQ,SAAS,WAAauG,EAAM,OACtDzG,EAAM,cAAc8uF,CAAS,EACzBopD,GAAiCppD,EAAWmpD,CAAY,GAC1DxxI,EAAM,eAAc,CAEvB,CACF,EACD,SAAU,IAAM,CACVzE,EAAI,SAAW9B,EAAQ,UAAY46C,GACrC+8F,EAAc,CACZ,QAAS33I,EAAQ,SAAS,YAC1B,SAAUA,EAAQ,SAAS,YAC3B,UAAW,CACT,KAAM8B,EAAI,QAAQ,YAClB,aAAcm2I,GAAMr9F,EAAc,WAAW,EAC7C,WAAYq9F,GAAMr9F,EAAc,YAAY,CAC7C,CACb,CAAW,CAEJ,CACF,CACL,CACA,CAAC,EACG88F,IAAuBptE,EAAiB,WAAC,CAACxqE,EAAO2C,IAAiB,CACpE,KAAM,CAAE,MAAAu0I,EAAO,cAAAW,EAAe,GAAGlC,CAAc,EAAK31I,EAC9CE,EAAUm0I,GAAqBoB,GAAgBz1I,EAAM,iBAAiB,EACtE,CAAC86C,EAAeg9F,CAAgB,EAAIvuI,EAAe,WACnDvH,EAAMyH,SAAc,IAAI,EACxBxH,EAAcM,GAAgBI,EAAcX,EAAK9B,EAAQ,kBAAkB,EACjF2J,mBAAiB,IAAM,CACjB7H,EAAI,SAAS81I,EAAiB,iBAAiB91I,EAAI,OAAO,CAAC,CACnE,EAAK,CAACA,CAAG,CAAC,EACe3B,EACrB03I,GACA,CACE,mBAAoB,WACpB,GAAGpC,EACH,IAAK1zI,EACL,MAAAi1I,EACA,MAAO,CACL,IAAK,EACL,MAAOh3I,EAAQ,MAAQ,MAAQ,EAAI,OACnC,KAAMA,EAAQ,MAAQ,MAAQ,EAAI,OAClC,OAAQ,yCACP,mCAAqC83I,GAAad,CAAK,EAAI,KAC5D,GAAGl3I,EAAM,KACV,EACD,mBAAqBu3I,GAAev3I,EAAM,mBAAmBu3I,EAAW,CAAC,EACzE,aAAeA,GAAev3I,EAAM,aAAau3I,EAAW,CAAC,EAC7D,cAAe,CAAC9wI,EAAOwxI,IAAiB,CACtC,GAAI/3I,EAAQ,SAAU,CACpB,MAAM4uF,EAAY5uF,EAAQ,SAAS,UAAYuG,EAAM,OACrDzG,EAAM,cAAc8uF,CAAS,EACzBopD,GAAiCppD,EAAWmpD,CAAY,GAC1DxxI,EAAM,eAAc,CAEvB,CACF,EACD,SAAU,IAAM,CACVzE,EAAI,SAAW9B,EAAQ,UAAY46C,GACrC+8F,EAAc,CACZ,QAAS33I,EAAQ,SAAS,aAC1B,SAAUA,EAAQ,SAAS,aAC3B,UAAW,CACT,KAAM8B,EAAI,QAAQ,aAClB,aAAcm2I,GAAMr9F,EAAc,UAAU,EAC5C,WAAYq9F,GAAMr9F,EAAc,aAAa,CAC9C,CACb,CAAW,CAEJ,CACF,CACL,CACA,CAAC,EACG,CAACs9F,IAAmBC,EAAmB,EAAInE,GAAwBuB,EAAc,EACjFsC,GAA0BvtE,EAAiB,WAAC,CAACxqE,EAAO2C,IAAiB,CACvE,KAAM,CACJ,kBAAA4xI,EACA,MAAA2C,EACA,SAAAoB,EACA,cAAAC,EACA,iBAAAC,EACA,mBAAAC,EACA,sBAAAC,EACA,aAAAC,EACA,cAAAC,EACA,SAAAntD,EACA,GAAGkqD,CACJ,EAAG31I,EACEE,EAAUm0I,GAAqBoB,GAAgBlB,CAAiB,EAChE,CAACsE,EAAWC,CAAY,EAAIvvI,EAAe,SAAC,IAAI,EAChDtH,EAAcM,GAAgBI,EAAeR,GAAS22I,EAAa32I,CAAI,CAAC,EACxE42I,EAAUtvI,SAAc,IAAI,EAC5BuvI,EAA0BvvI,SAAc,EAAE,EAC1CylE,EAAWhvE,EAAQ,SACnB+3I,EAAef,EAAM,QAAUA,EAAM,SACrC+B,EAAoBvyI,GAAekyI,CAAa,EAChDM,EAA4BxyI,GAAegyI,CAAqB,EAChE9B,EAAeH,GAAoBhrD,EAAU,EAAE,EACrD,SAAS0tD,EAAiB1yI,EAAO,CAC/B,GAAIsyI,EAAQ,QAAS,CACnB,MAAM9iK,EAAIwwB,EAAM,QAAUsyI,EAAQ,QAAQ,KACpC7iK,EAAIuwB,EAAM,QAAUsyI,EAAQ,QAAQ,IAC1CJ,EAAa,CAAE,EAAA1iK,EAAG,EAAAC,CAAC,CAAE,CACtB,CACF,CACD2zB,mBAAiB,IAAM,CACrB,MAAMuvI,EAAe3yI,GAAU,CAC7B,MAAM9B,EAAU8B,EAAM,QACGoyI,GAAA,YAAAA,EAAW,SAASl0I,KACvBs0I,EAAkBxyI,EAAOwxI,CAAY,CACjE,EACI,gBAAS,iBAAiB,QAASmB,EAAa,CAAE,QAAS,EAAK,CAAE,EAC3D,IAAM,SAAS,oBAAoB,QAASA,EAAa,CAAE,QAAS,EAAK,CAAE,CACnF,EAAE,CAAClqE,EAAU2pE,EAAWZ,EAAcgB,CAAiB,CAAC,EACzDpvI,YAAiBqvI,EAA2B,CAAChC,EAAOgC,CAAyB,CAAC,EAC9EnC,GAAkB8B,EAAWjC,CAAY,EACzCG,GAAkB72I,EAAQ,QAAS02I,CAAY,EACxBv2I,EACrB+3I,IACA,CACE,MAAO7D,EACP,UAAAsE,EACA,SAAAP,EACA,cAAe5xI,GAAe6xI,CAAa,EAC3C,iBAAkB7xI,GAAe8xI,CAAgB,EACjD,sBAAuBU,EACvB,mBAAoBxyI,GAAe+xI,CAAkB,EACrD,SAA0Bp4I,EACxB0H,GAAU,IACV,CACE,GAAG4tI,EACH,IAAK1zI,EACL,MAAO,CAAE,SAAU,WAAY,GAAG0zI,EAAe,KAAO,EACxD,cAAetvI,GAAqBrG,EAAM,cAAgByG,GAAU,CAE9DA,EAAM,SAAW,IACHA,EAAM,OACd,kBAAkBA,EAAM,SAAS,EACzCsyI,EAAQ,QAAUF,EAAU,wBAC5BG,EAAwB,QAAU,SAAS,KAAK,MAAM,iBACtD,SAAS,KAAK,MAAM,iBAAmB,OACnC94I,EAAQ,WAAUA,EAAQ,SAAS,MAAM,eAAiB,QAC9Di5I,EAAiB1yI,CAAK,EAEpC,CAAW,EACD,cAAeJ,GAAqBrG,EAAM,cAAem5I,CAAgB,EACzE,YAAa9yI,GAAqBrG,EAAM,YAAcyG,GAAU,CAC9D,MAAM9B,EAAU8B,EAAM,OAClB9B,EAAQ,kBAAkB8B,EAAM,SAAS,GAC3C9B,EAAQ,sBAAsB8B,EAAM,SAAS,EAE/C,SAAS,KAAK,MAAM,iBAAmBuyI,EAAwB,QAC3D94I,EAAQ,WAAUA,EAAQ,SAAS,MAAM,eAAiB,IAC9D64I,EAAQ,QAAU,IAC9B,CAAW,CACF,CACF,CACF,CACL,CACA,CAAC,EACGl/D,GAAa,kBACbw/D,GAAkB7uE,EAAiB,WACrC,CAACxqE,EAAO2C,IAAiB,CACvB,KAAM,CAAE,WAAA4J,EAAY,GAAGwtE,CAAU,EAAK/5E,EAChCs5I,EAAmBjB,GAAoBx+D,GAAY75E,EAAM,iBAAiB,EAChF,OAAuBK,EAAI2I,GAAU,CAAE,QAASuD,GAAc+sI,EAAiB,SAAU,SAA0Bj5I,EAAIk5I,IAAqB,CAAE,IAAK52I,EAAc,GAAGo3E,CAAU,CAAE,CAAC,CAAE,CACpL,CACH,EACIw/D,IAAsB/uE,EAAiB,WACzC,CAACxqE,EAAO2C,IAAiB,CACvB,KAAM,CAAE,kBAAA4xI,EAAmB,MAAA1zH,EAAO,GAAGk5D,CAAU,EAAK/5E,EAC9Cw5I,EAAoBnF,GAAqBx6D,GAAY06D,CAAiB,EACtE+E,EAAmBjB,GAAoBx+D,GAAY06D,CAAiB,EACpE,CAAE,sBAAAmE,CAAuB,EAAGY,EAC5BtlD,EAAczxF,GAClBI,EACCR,GAASm3I,EAAiB,cAAcn3I,CAAI,CACnD,EACUs3I,EAAkChwI,SAAc,MAAM,EACtD+sI,EAAoBC,GAAoB,IAAM,CAC9CgD,EAAgC,UAClCA,EAAgC,QAAO,EACvCA,EAAgC,QAAU,OAE7C,EAAE,GAAG,EACN5vI,mBAAiB,IAAM,CACrB,MAAMqlE,EAAWsqE,EAAkB,SACnC,GAAItqE,EAAU,CACZ,MAAM11C,EAAe,IAAM,CAEzB,GADAg9G,IACI,CAACiD,EAAgC,QAAS,CAC5C,MAAM7yD,EAAW8yD,IAA0BxqE,EAAUwpE,CAAqB,EAC1Ee,EAAgC,QAAU7yD,EAC1C8xD,GACD,CACX,EACQ,OAAAA,IACAxpE,EAAS,iBAAiB,SAAU11C,CAAY,EACzC,IAAM01C,EAAS,oBAAoB,SAAU11C,CAAY,CACjE,CACF,EAAE,CAACggH,EAAkB,SAAUhD,EAAmBkC,CAAqB,CAAC,EAClDr4I,EACrB0H,GAAU,IACV,CACE,aAAcuxI,EAAiB,SAAW,UAAY,SACtD,GAAGv/D,EACH,IAAKia,EACL,MAAO,CACL,MAAO,uCACP,OAAQ,wCACR,GAAGnzE,CACJ,EACD,qBAAsBxa,GAAqBrG,EAAM,qBAAuByG,GAAU,CAEhF,MAAMkzI,EADQlzI,EAAM,OACI,wBAClBxwB,EAAIwwB,EAAM,QAAUkzI,EAAU,KAC9BzjK,EAAIuwB,EAAM,QAAUkzI,EAAU,IACpCL,EAAiB,mBAAmB,CAAE,EAAArjK,EAAG,EAAAC,CAAG,EACtD,CAAS,EACD,YAAamwB,GAAqBrG,EAAM,YAAas5I,EAAiB,gBAAgB,CACvF,CACP,CACG,CACH,EACAD,GAAgB,YAAcx/D,GAC9B,IAAI+/D,GAAc,mBACdC,GAAmBrvE,EAAiB,WACtC,CAACxqE,EAAO2C,IAAiB,CACvB,MAAMzC,EAAUm0I,GAAqBuF,GAAa55I,EAAM,iBAAiB,EACnE85I,EAA2B,GAAQ55I,EAAQ,YAAcA,EAAQ,YAEvE,OADkBA,EAAQ,OAAS,UAAY45I,EACZz5I,EAAI05I,IAAsB,CAAE,GAAG/5I,EAAO,IAAK2C,EAAc,EAAI,IACjG,CACH,EACAk3I,GAAiB,YAAcD,GAC/B,IAAIG,IAAuBvvE,EAAiB,WAAC,CAACxqE,EAAO2C,IAAiB,CACpE,KAAM,CAAE,kBAAA4xI,EAAmB,GAAGyF,CAAW,EAAKh6I,EACxCE,EAAUm0I,GAAqBuF,GAAarF,CAAiB,EAC7D,CAACxnI,EAAOktI,CAAQ,EAAI1wI,EAAe,SAAC,CAAC,EACrC,CAACsD,EAAQqtI,CAAS,EAAI3wI,EAAe,SAAC,CAAC,EACvC4wI,EAAU,GAAQptI,GAASF,GACjC,OAAAkqI,GAAkB72I,EAAQ,WAAY,IAAM,OAC1C,MAAMk6I,IAAUn5I,EAAAf,EAAQ,aAAR,YAAAe,EAAoB,eAAgB,EACpDf,EAAQ,qBAAqBk6I,CAAO,EACpCF,EAAUE,CAAO,CACrB,CAAG,EACDrD,GAAkB72I,EAAQ,WAAY,IAAM,OAC1C,MAAMm6I,IAASp5I,EAAAf,EAAQ,aAAR,YAAAe,EAAoB,cAAe,EAClDf,EAAQ,oBAAoBm6I,CAAM,EAClCJ,EAASI,CAAM,CACnB,CAAG,EACMF,EAA0B95I,EAC/B0H,GAAU,IACV,CACE,GAAGiyI,EACH,IAAKr3I,EACL,MAAO,CACL,MAAAoK,EACA,OAAAF,EACA,SAAU,WACV,MAAO3M,EAAQ,MAAQ,MAAQ,EAAI,OACnC,KAAMA,EAAQ,MAAQ,MAAQ,EAAI,OAClC,OAAQ,EACR,GAAGF,EAAM,KACV,CACF,CACF,EAAG,IACN,CAAC,EACD,SAASm4I,GAAMh4I,EAAO,CACpB,OAAOA,EAAQ,SAASA,EAAO,EAAE,EAAI,CACvC,CACA,SAASk3I,GAAciD,EAAcC,EAAa,CAChD,MAAMp9F,EAAQm9F,EAAeC,EAC7B,OAAO,MAAMp9F,CAAK,EAAI,EAAIA,CAC5B,CACA,SAAS66F,GAAad,EAAO,CAC3B,MAAM/5F,EAAQk6F,GAAcH,EAAM,SAAUA,EAAM,OAAO,EACnDsD,EAAmBtD,EAAM,UAAU,aAAeA,EAAM,UAAU,WAClEuD,GAAavD,EAAM,UAAU,KAAOsD,GAAoBr9F,EAC9D,OAAO,KAAK,IAAIs9F,EAAW,EAAE,CAC/B,CACA,SAAShD,IAA6BF,EAAYmD,EAAexD,EAAOxnI,EAAM,MAAO,CACnF,MAAMirI,EAAc3C,GAAad,CAAK,EAChC0D,EAAcD,EAAc,EAC5BtpG,EAASqpG,GAAiBE,EAC1BC,EAAqBF,EAActpG,EACnCypG,EAAgB5D,EAAM,UAAU,aAAe7lG,EAC/C0pG,EAAgB7D,EAAM,UAAU,KAAOA,EAAM,UAAU,WAAa2D,EACpE5C,EAAef,EAAM,QAAUA,EAAM,SACrC8D,EAActrI,IAAQ,MAAQ,CAAC,EAAGuoI,CAAY,EAAI,CAACA,EAAe,GAAI,CAAC,EAE7E,OADoBgD,GAAY,CAACH,EAAeC,CAAa,EAAGC,CAAW,EACxDzD,CAAU,CAC/B,CACA,SAASI,GAAyB7oD,EAAWooD,EAAOxnI,EAAM,MAAO,CAC/D,MAAMirI,EAAc3C,GAAad,CAAK,EAChCsD,EAAmBtD,EAAM,UAAU,aAAeA,EAAM,UAAU,WAClE2B,EAAY3B,EAAM,UAAU,KAAOsD,EACnCvC,EAAef,EAAM,QAAUA,EAAM,SACrCgE,EAAcrC,EAAY8B,EAC1BQ,EAAmBzrI,IAAQ,MAAQ,CAAC,EAAGuoI,CAAY,EAAI,CAACA,EAAe,GAAI,CAAC,EAC5EmD,EAAwB/uG,GAAMyiD,EAAWqsD,CAAgB,EAE/D,OADoBF,GAAY,CAAC,EAAGhD,CAAY,EAAG,CAAC,EAAGiD,CAAW,CAAC,EAChDE,CAAqB,CAC1C,CACA,SAASH,GAAYz3H,EAAOs6C,EAAQ,CAClC,OAAQ39D,GAAU,CAChB,GAAIqjB,EAAM,CAAC,IAAMA,EAAM,CAAC,GAAKs6C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAG,OAAOA,EAAO,CAAC,EACrE,MAAM3gB,GAAS2gB,EAAO,CAAC,EAAIA,EAAO,CAAC,IAAMt6C,EAAM,CAAC,EAAIA,EAAM,CAAC,GAC3D,OAAOs6C,EAAO,CAAC,EAAI3gB,GAASh9C,EAAQqjB,EAAM,CAAC,EAC/C,CACA,CACA,SAAS00H,GAAiCppD,EAAWmpD,EAAc,CACjE,OAAOnpD,EAAY,GAAKA,EAAYmpD,CACtC,CACA,IAAIyB,IAA4B,CAACv3I,EAAMkpB,EAAU,IAAM,CACvD,IAAM,CACJ,IAAIgwH,EAAe,CAAE,KAAMl5I,EAAK,WAAY,IAAKA,EAAK,WAClDgL,EAAM,EACV,OAAC,SAAS2e,GAAO,CACf,MAAMqO,EAAW,CAAE,KAAMh4B,EAAK,WAAY,IAAKA,EAAK,WAC9Cm5I,EAAqBD,EAAa,OAASlhH,EAAS,KACpDohH,EAAmBF,EAAa,MAAQlhH,EAAS,KACnDmhH,GAAsBC,IAAkBlwH,IAC5CgwH,EAAelhH,EACfhtB,EAAM,OAAO,sBAAsB2e,CAAI,CAC3C,IACS,IAAM,OAAO,qBAAqB3e,CAAG,CAC9C,EACA,SAASspI,GAAoB9vI,EAAU60I,EAAO,CAC5C,MAAMC,EAAiB/0I,GAAeC,CAAQ,EACxC+0I,EAAmBjyI,SAAc,CAAC,EACxCI,SAAgB,UAAC,IAAM,IAAM,OAAO,aAAa6xI,EAAiB,OAAO,EAAG,EAAE,EACvEhxI,EAAkB,YAAC,IAAM,CAC9B,OAAO,aAAagxI,EAAiB,OAAO,EAC5CA,EAAiB,QAAU,OAAO,WAAWD,EAAgBD,CAAK,CACtE,EAAK,CAACC,EAAgBD,CAAK,CAAC,CAC5B,CACA,SAASzE,GAAkBpyI,EAAS8mF,EAAU,CAC5C,MAAMmrD,EAAelwI,GAAe+kF,CAAQ,EAC5CzhF,GAAgB,IAAM,CACpB,IAAImD,EAAM,EACV,GAAIxI,EAAS,CACX,MAAMuc,EAAiB,IAAI,eAAe,IAAM,CAC9C,qBAAqB/T,CAAG,EACxBA,EAAM,OAAO,sBAAsBypI,CAAY,CACvD,CAAO,EACD,OAAA11H,EAAe,QAAQvc,CAAO,EACvB,IAAM,CACX,OAAO,qBAAqBwI,CAAG,EAC/B+T,EAAe,UAAUvc,CAAO,CACxC,CACK,CACL,EAAK,CAACA,EAASiyI,CAAY,CAAC,CAC5B,CACA,IAAIvpI,GAAOinI,GACPh8D,IAAWk9D,GAGXmG,IAAS9B,GChtBTvF,IAAa5xI,EAAgB,WAAC,SAAUzB,EAAIe,EAAK,CACjD,IAAI8Q,EAAY7R,EAAG6R,UAAW7S,EAAWgB,EAAGhB,SAAUD,EAAQd,GAAO+B,EAAI,CAAC,YAAa,UAAU,CAAC,EAClG,OAAA0d,EAAAi9H,GAAA,IAAsD78I,GAAS,CAAEiD,IAAKA,EAAK8Q,UAAWwL,GAAG,2BAA4BxL,CAAS,CAAG,EAAE9S,CAAK,EAACC,SAAAwe,GAAAm9H,IAAA,CAAA9oI,UACtE,kCAAiC7S,SAAIA,EAAQwe,IAAAo9H,GAAA,IAAAp9H,EAAAm9H,IAAA,MAGpH,CAAC,EACDtH,IAAW7wI,YAAcm4I,GAAyBn4I,YAClD,IAAIo4I,GAAYn5I,EAAgB,WAAC,SAAUzB,EAAIe,EAAK,CAChD,IAAI8Q,EAAY7R,EAAG6R,UAAWlI,EAAK3J,EAAG0O,YAAaA,EAAc/E,IAAO,OAAS,WAAaA,EAAI5K,EAAQd,GAAO+B,EAAI,CAAC,YAAa,aAAa,CAAC,EACjJ,OAAAwd,EAAAm9H,GAAA,IAAqE78I,GAAS,CAAEiD,IAAKA,EAAK2N,YAAaA,EAAamD,UAAWwL,GAAG,gDAAiD3O,IAAgB,YAC3L,qDAAsDA,IAAgB,cACtE,uDAAwDmD,CAAS,CAAG,EAAE9S,CAAK,EAACC,SAAAwe,EAAAm9H,GAAA,CAAA9oI,UACV,wCAAwC,IACtH,CAAC,EACD+oI,GAAUp4I,YAAcm4I,GAAwCn4I,YCMhE,IAAIkoE,GAAiB,CAAC,QAAS,GAAG,EAC9BmwE,IAAa,CAAC,YAAa,SAAU,MAAM,EAC3CC,GAAY,CAAC,UAAW,WAAY,KAAK,EACzCC,IAAkB,CAAC,GAAGF,IAAY,GAAGC,EAAS,EAC9CE,IAAgB,CAClBC,IAAK,CAAC,GAAGvwE,GAAgB,YAAY,EACrCz+B,IAAK,CAAC,GAAGy+B,GAAgB,WAAW,CACtC,EACIwwE,IAAiB,CACnBD,IAAK,CAAC,WAAW,EACjBhvG,IAAK,CAAC,YAAY,CACpB,EACIkvG,GAAY,OACZ,CAACtuI,GAAY5H,IAAeZ,GAAqB,EAAIJ,GAAiBk3I,EAAS,EAC/E,CAACC,GAAmBC,EAAe,EAAI77I,GAAmB27I,GAAW,CACvE92I,IACAk8C,GACAglB,EAA2B,CAC5B,EACG5gB,GAAiBpE,GAAiB,EAClC2oB,GAA2B3D,GAA2B,EACtD,CAAC+1E,IAAcC,EAAc,EAAIH,GAAkBD,EAAS,EAC5D,CAACK,IAAkBC,EAAkB,EAAIL,GAAkBD,EAAS,EACpEO,GAAQ38I,GAAU,CACpB,KAAM,CAAE48I,cAAa9wI,OAAO,GAAO7L,WAAUyP,MAAK9D,eAAco0B,QAAQ,EAAM,EAAGhgC,EAC3EimD,EAAcL,GAAeg3F,CAAW,EACxC,CAAC76G,EAASkhB,CAAU,EAAIvgD,EAAc,SAAC,IAAI,EAC3Cm6I,EAAqBn6I,SAAa,EAAK,EACvCo6I,EAAmBp2I,GAAekF,CAAY,EAC9C2tB,EAAY9rB,GAAaiC,CAAG,EAClChN,mBAAgB,IAAM,CACpB,MAAMqN,EAAgBA,IAAM,CAC1B8sI,EAAmBnkH,QAAU,GAC7BlB,SAAS+F,iBAAiB,cAAew/G,EAAe,CAAEC,QAAS,GAAMC,KAAM,EAAK,CAAC,EACrFzlH,SAAS+F,iBAAiB,cAAew/G,EAAe,CAAEC,QAAS,GAAMC,KAAM,EAAK,CAAC,GAEjFF,EAAgBA,IAAMF,EAAmBnkH,QAAU,GACzDlB,gBAAS+F,iBAAiB,UAAWxtB,EAAe,CAAEitI,QAAS,EAAK,CAAC,EAC9D,IAAM,CACXxlH,SAASiG,oBAAoB,UAAW1tB,EAAe,CAAEitI,QAAS,EAAK,CAAC,EACxExlH,SAASiG,oBAAoB,cAAes/G,EAAe,CAAEC,QAAS,EAAK,CAAC,EAC5ExlH,SAASiG,oBAAoB,cAAes/G,EAAe,CAAEC,QAAS,EAAK,CAAC,EAE/E,EAAE,CAAE,GACkB38I,EAAI68I,GAAsB,CAAE,GAAGj3F,EAAahmD,SAA0BI,EAC3Fk8I,IACA,CACEv7I,MAAO47I,EACP9wI,OACAF,aAAckxI,EACd/6G,UACAo7G,gBAAiBl6F,EACjBhjD,SAA0BI,EACxBo8I,IACA,CACEz7I,MAAO47I,EACP3/D,QAASv6E,EAAiB,YAAC,IAAMo6I,EAAiB,EAAK,EAAG,CAACA,CAAgB,CAAC,EAC5ED,qBACAntI,IAAK6pB,EACLyG,QACA//B,WAEJ,EAEJ,CAAE,CAAC,CACL,EACA08I,GAAKl5I,YAAc24I,GACnB,IAAIr6F,IAAc,aACdq7F,GAAa16I,EAAgB,WAC/B,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CAAEi6I,cAAa,GAAG16F,CAAa,EAAGliD,EAClCimD,EAAcL,GAAeg3F,CAAW,EAC9C,OAAuBv8I,EAAI68I,GAAwB,CAAE,GAAGj3F,EAAa,GAAG/D,EAAalgD,IAAKW,CAAa,CAAC,CAC1G,CACF,EACAy6I,GAAW35I,YAAcs+C,IACzB,IAAI/a,GAAc,aACd,CAACyB,IAAgBC,EAAgB,EAAI2zG,GAAkBr1G,GAAa,CACtEz6B,WAAY,MACd,CAAC,EACG8wI,GAAcr9I,GAAU,CAC1B,KAAM,CAAE48I,cAAarwI,aAAYtM,WAAU0tB,WAAW,EAAG3tB,EACnDE,EAAUs8I,GAAex1G,GAAa41G,CAAW,EACvD,OAAuBv8I,EAAIooC,IAAgB,CAAEznC,MAAO47I,EAAarwI,aAAYtM,SAA0BI,EAAI2I,GAAU,CAAEC,QAASsD,GAAcrM,EAAQ4L,KAAM7L,SAA0BI,EAAIwoC,GAAiB,CAAE1gC,QAAS,GAAMwlB,YAAW1tB,WAAU,EAAG,CAAE,CAAC,CACzP,EACAo9I,GAAW55I,YAAcujC,GACzB,IAAI36B,GAAe,cACf,CAACixI,IAAqBC,EAAqB,EAAIlB,GAAkBhwI,EAAY,EAC7EmxI,GAAc96I,EAAgB,WAChC,CAAC1C,EAAO2C,IAAiB,CACvB,MAAMu+B,EAAgBwH,GAAiBr8B,GAAcrM,EAAM48I,WAAW,EAChE,CAAErwI,aAAa20B,EAAc30B,WAAY,GAAGC,CAAc,EAAGxM,EAC7DE,EAAUs8I,GAAenwI,GAAcrM,EAAM48I,WAAW,EACxDa,EAAcf,GAAmBrwI,GAAcrM,EAAM48I,WAAW,EACtE,OAAuBv8I,EAAIyN,GAAW/N,SAAU,CAAEiB,MAAOhB,EAAM48I,YAAa38I,SAA0BI,EAAI2I,GAAU,CAAEC,QAASsD,GAAcrM,EAAQ4L,KAAM7L,SAA0BI,EAAIyN,GAAWrL,KAAM,CAAEzB,MAAOhB,EAAM48I,YAAa38I,SAAUw9I,EAAYz9G,MAAwB3/B,EAAIq9I,IAAsB,CAAE,GAAGlxI,EAAcxK,IAAKW,CAAa,CAAC,EAAoBtC,EAAIs9I,IAAyB,CAAE,GAAGnxI,EAAcxK,IAAKW,EAAc,EAAG,EAAG,CAAE,CAAC,CACtb,CACF,EACI+6I,IAAuBh7I,EAAgB,WACzC,CAAC1C,EAAO2C,IAAiB,CACvB,MAAMzC,EAAUs8I,GAAenwI,GAAcrM,EAAM48I,WAAW,EACxD56I,EAAMU,SAAa,IAAI,EACvBmD,EAAetD,GAAgBI,EAAcX,CAAG,EACtDU,mBAAgB,IAAM,CACpB,MAAMq/B,EAAU//B,EAAI02B,QACpB,GAAIqJ,EAAS,OAAOzC,GAAWyC,CAAO,CACvC,EAAE,CAAE,GACkB1hC,EACrBu9I,GACA,CACE,GAAG59I,EACHgC,IAAK6D,EACL88B,UAAWziC,EAAQ4L,KACnB4c,4BAA6BxoB,EAAQ4L,KACrC+xI,qBAAsB,GACtBj1H,eAAgBviB,GACdrG,EAAM4oB,eACLniB,GAAUA,EAAMm2B,iBACjB,CAAEp2B,yBAA0B,EAAM,CACpC,EACAsiB,UAAWA,IAAM5oB,EAAQ0L,aAAa,EAAK,CAC7C,CACF,CACF,CACF,EACI+xI,IAA0Bj7I,EAAgB,WAAC,CAAC1C,EAAO2C,IAAiB,CACtE,MAAMzC,EAAUs8I,GAAenwI,GAAcrM,EAAM48I,WAAW,EAC9D,OAAuBv8I,EACrBu9I,GACA,CACE,GAAG59I,EACHgC,IAAKW,EACLggC,UAAW,GACXja,4BAA6B,GAC7Bm1H,qBAAsB,GACtB/0H,UAAWA,IAAM5oB,EAAQ0L,aAAa,EAAK,CAC7C,CACF,CACF,CAAC,EACGgyI,GAAkBl7I,EAAgB,WACpC,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CACJi6I,cACA9wH,OAAO,GACP6W,YACAC,kBACAC,mBACAna,8BACAu+C,eACAl/C,kBACAY,uBACAC,iBACAC,oBACAC,YACA+0H,uBACA,GAAGrxI,CACJ,EAAGxM,EACEE,EAAUs8I,GAAenwI,GAAcuwI,CAAW,EAClDa,EAAcf,GAAmBrwI,GAAcuwI,CAAW,EAC1D32F,EAAcL,GAAeg3F,CAAW,EACxClyE,EAAwBP,GAAyByyE,CAAW,EAC5D/sI,EAAW3J,IAAc02I,CAAW,EACpC,CAACkB,EAAeC,CAAgB,EAAIr7I,EAAc,SAAC,IAAI,EACvDy9B,EAAaz9B,SAAa,IAAI,EAC9BmD,EAAetD,GAAgBI,EAAcw9B,EAAYjgC,EAAQi9I,eAAe,EAChFrlE,EAAWp1E,SAAa,CAAC,EACzByqE,EAAYzqE,SAAa,EAAE,EAC3Bs7I,EAAuBt7I,SAAa,CAAC,EACrCu7I,EAAwBv7I,SAAa,IAAI,EACzCw7I,EAAgBx7I,SAAa,OAAO,EACpCy7I,EAAkBz7I,SAAa,CAAC,EAChC07I,EAAoBP,EAAuBlqH,GAAejxB,WAC1D27I,EAAyBR,EAAuB,CAAEppH,GAAIhyB,GAAM+xB,eAAgB,EAAM,EAAG,OACrF44C,EAAyBx3D,GAAQ,WACrC,MAAM+0C,EAASwiB,EAAUz0C,QAAU9iB,EAC7BwZ,EAAQvf,IAAWrL,OAAQyL,IAAS,CAACA,GAAKtE,QAAQ,EAClDs8D,EAAczwC,SAAS8mH,cACvBC,GAAenvH,KAAMpsB,KAAMiN,IAASA,GAAKjO,IAAI02B,UAAYuvC,CAAW,IAArD74C,eAAwD6lD,UACvE5jB,GAASjiC,EAAMhsB,IAAK6M,IAASA,GAAKglE,SAAS,EAC3CupE,GAAYC,IAAaptF,GAAQ1G,EAAQ4zF,CAAY,EACrDG,IAAUtvH,KAAMpsB,KAAMiN,IAASA,GAAKglE,YAAcupE,EAAS,IAAjDpvH,eAAoDptB,IAAI02B,SACvE,SAASq/C,GAAa53E,GAAO,CAC5BgtE,EAAUz0C,QAAUv4B,GACpBmrD,OAAO+Q,aAAayb,EAASp/C,OAAO,EAChCv4B,KAAU,KAAI23E,EAASp/C,QAAU4yB,OAAOpuB,WAAW,IAAM66C,GAAa,EAAE,EAAG,GAAG,EACnF,GAAEptB,CAAM,EACL+zF,IACFxhH,WAAW,IAAMwhH,GAAQ54G,MAAK,CAAE,GAGpCpjC,YAAgB,IACP,IAAM4oD,OAAO+Q,aAAayb,EAASp/C,OAAO,EAChD,CAAE,GACL4O,KACA,MAAMq3G,EAA2Bj8I,EAAiB,YAAE+D,GAAU,SAE5D,OADwBy3I,EAAcxlH,YAAYulH,IAAsBvlH,UAAtBulH,cAA+BtwG,OACvDixG,IAAqBn4I,GAAOw3I,IAAsBvlH,UAAtBulH,cAA+BY,IAAI,CAC1F,EAAE,CAAE,GACL,OAAuBx+I,EACrBi9I,IACA,CACEt8I,MAAO47I,EACPzvE,YACA2xE,YAAap8I,EAAiB,YAC3B+D,GAAU,CACLk4I,EAAyBl4I,CAAK,GAAGA,EAAMm2B,eAAc,CAC3D,EACA,CAAC+hH,CAAwB,CAC3B,EACAI,YAAar8I,EAAiB,YAC3B+D,GAAU,OACLk4I,EAAyBl4I,CAAK,KAClC05B,IAAWzH,UAAXyH,QAAoB2F,QACpBi4G,EAAiB,IAAI,EACvB,EACA,CAACY,CAAwB,CAC3B,EACAK,eAAgBt8I,EAAiB,YAC9B+D,GAAU,CACLk4I,EAAyBl4I,CAAK,GAAGA,EAAMm2B,eAAc,CAC3D,EACA,CAAC+hH,CAAwB,CAC3B,EACAX,uBACAiB,2BAA4Bv8I,EAAiB,YAAEw8I,GAAW,CACxDjB,EAAsBvlH,QAAUwmH,CACjC,EAAE,EAAE,EACLj/I,SAA0BI,EAAI+9I,EAAmB,CAAE,GAAGC,EAAwBp+I,SAA0BI,EACtGulC,GACA,CACEz9B,QAAS,GACT4jB,QAAS4W,EACTrW,iBAAkBjmB,GAAqBu8B,EAAkBn8B,GAAU,OACjEA,EAAMm2B,eAAc,GACpBuD,IAAWzH,UAAXyH,QAAoB2F,MAAM,CAAEmjC,cAAe,EAAK,EAClD,CAAC,EACDz8C,mBAAoBqW,EACpB5iC,SAA0BI,EACxB0kC,GACA,CACE58B,QAAS,GACTugB,8BACAX,kBACAY,uBACAC,iBACAC,oBACAC,YACA7oB,SAA0BI,EACxBsmE,GACA,CACEx+D,QAAS,GACT,GAAGuiE,EACHh7D,IAAK+tI,EAAY/tI,IACjBC,YAAa,WACbmc,OACAs7C,iBAAkB02E,EAClB92E,yBAA0B+2E,EAC1B92E,aAAc5gE,GAAqB4gE,EAAexgE,GAAU,CACrDg3I,EAAYZ,mBAAmBnkH,SAASjyB,EAAMm2B,eAAc,CACnE,CAAC,EACDsqC,0BAA2B,GAC3BjnE,SAA0BI,EACxB68I,GACA,CACEz3E,KAAM,OACN,mBAAoB,WACpB,aAAc05E,GAAaj/I,EAAQ4L,IAAI,EACvC,0BAA2B,GAC3B4D,IAAK+tI,EAAY/tI,IACjB,GAAGu2C,EACH,GAAGz5C,EACHxK,IAAK6D,EACLgb,MAAO,CAAET,QAAS,OAAQ,GAAG5T,EAAaqU,KAAO,EACjD65E,UAAWr0F,GAAqBmG,EAAakuF,UAAYj0F,GAAU,CAEjE,MAAM24I,EADS34I,EAAM8B,OACUk6D,QAAQ,2BAA2B,IAAMh8D,EAAM62E,cACxE5M,EAAgBjqE,EAAMkhC,SAAWlhC,EAAM44I,QAAU54I,EAAM64I,QACvDC,EAAiB94I,EAAMmP,IAAImmB,SAAW,EACxCqjH,IACE34I,EAAMmP,MAAQ,OAAOnP,EAAMm2B,eAAc,EACzC,CAAC8zC,GAAiB6uE,GAAgBnyE,EAAsB3mE,EAAMmP,GAAG,GAEvE,MAAMmsB,GAAU5B,EAAWzH,QAE3B,GADIjyB,EAAM8B,SAAWw5B,IACjB,CAACi6G,IAAgB3iF,SAAS5yD,EAAMmP,GAAG,EAAG,OAC1CnP,EAAMm2B,eAAc,EAEpB,MAAMsrC,GADQr4D,IAAWrL,OAAQyL,IAAS,CAACA,GAAKtE,QAAQ,EAC3BvI,IAAK6M,IAASA,GAAKjO,IAAI02B,OAAO,EACvDqjH,GAAU1iF,SAAS5yD,EAAMmP,GAAG,GAAGsyD,GAAes3E,UAClDl5G,IAAW4hC,EAAc,CAC3B,CAAC,EACDhb,OAAQ7mD,GAAqBrG,EAAMktD,OAASzmD,GAAU,CAC/CA,EAAM62E,cAAcxgD,SAASr2B,EAAM8B,MAAM,IAC5C+iD,OAAO+Q,aAAayb,EAASp/C,OAAO,EACpCy0C,EAAUz0C,QAAU,GAExB,CAAC,EACD+mH,cAAep5I,GACbrG,EAAMy/I,cACNC,GAAWj5I,GAAU,CACnB,MAAM8B,EAAS9B,EAAM8B,OACfo3I,EAAqBxB,EAAgBzlH,UAAYjyB,EAAMg0B,QAC7D,GAAIh0B,EAAM62E,cAAcxgD,SAASv0B,CAAM,GAAKo3I,EAAoB,CAC9D,MAAMC,EAASn5I,EAAMg0B,QAAU0jH,EAAgBzlH,QAAU,QAAU,OACnEwlH,EAAcxlH,QAAUknH,EACxBzB,EAAgBzlH,QAAUjyB,EAAMg0B,OAClC,CACF,CAAC,CACH,EAEJ,EAEJ,EAEJ,EAEJ,EAAG,CACL,CACF,CACF,CACF,EACA+iH,GAAY/5I,YAAc4I,GAC1B,IAAIi6D,IAAa,YACbu5E,GAAYn9I,EAAgB,WAC9B,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CAAEi6I,cAAa,GAAGz1E,CAAY,EAAGnnE,EACvC,OAAuBK,EAAI0H,GAAU+3I,IAAK,CAAEr6E,KAAM,QAAS,GAAG0B,EAAYnlE,IAAKW,CAAa,CAAC,CAC/F,CACF,EACAk9I,GAAUp8I,YAAc6iE,IACxB,IAAIkO,IAAa,YACburE,GAAYr9I,EAAgB,WAC9B,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CAAEi6I,cAAa,GAAGloE,CAAY,EAAG10E,EACvC,OAAuBK,EAAI0H,GAAU+3I,IAAK,CAAE,GAAGprE,EAAY1yE,IAAKW,CAAa,CAAC,CAChF,CACF,EACAo9I,GAAUt8I,YAAc+wE,IACxB,IAAI9jE,GAAY,WACZsvI,GAAc,kBACdC,GAAWv9I,EAAgB,WAC7B,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CAAEgJ,WAAW,GAAOooI,WAAU,GAAGzrE,CAAW,EAAGtoE,EAC/CgC,EAAMU,SAAa,IAAI,EACvB+6I,EAAcf,GAAmBhsI,GAAW1Q,EAAM48I,WAAW,EAC7D53F,EAAiBu4F,GAAsB7sI,GAAW1Q,EAAM48I,WAAW,EACnE/2I,EAAetD,GAAgBI,EAAcX,CAAG,EAChD06E,EAAmBh6E,SAAa,EAAK,EACrC4yE,EAAeA,IAAM,CACzB,MAAM4qE,EAAWl+I,EAAI02B,QACrB,GAAI,CAAC/sB,GAAYu0I,EAAU,CACzB,MAAMC,EAAkB,IAAIC,YAAYJ,GAAa,CAAE38H,QAAS,GAAMwkB,WAAY,EAAK,CAAC,EACxFq4G,EAAS3iH,iBAAiByiH,GAAcv5I,GAAUstI,iBAAWttI,GAAQ,CAAEw2I,KAAM,EAAK,CAAC,EACnF30I,GAA4B43I,EAAUC,CAAe,EACjDA,EAAgBE,iBAClB3jE,EAAiBhkD,QAAU,GAE3B+kH,EAAYxgE,QAAO,CAEvB,GAEF,OAAuB58E,EACrBigJ,GACA,CACE,GAAGh4E,EACHtmE,IAAK6D,EACL8F,WACAk5D,QAASx+D,GAAqBrG,EAAM6kE,QAASyQ,CAAY,EACzDirE,cAAgB95I,GAAU,QACxBzG,IAAMugJ,gBAANvgJ,eAAsByG,GACtBi2E,EAAiBhkD,QAAU,EAC5B,EACD8nH,YAAan6I,GAAqBrG,EAAMwgJ,YAAc/5I,GAAU,OACzDi2E,EAAiBhkD,UAASjyB,IAAM62E,gBAAN72E,QAAqBg6I,OACtD,CAAC,EACD/lD,UAAWr0F,GAAqBrG,EAAM06F,UAAYj0F,GAAU,CAC1D,MAAMonE,EAAgB7oB,EAAemoB,UAAUz0C,UAAY,GACvD/sB,GAAYkiE,GAAiBpnE,EAAMmP,MAAQ,KAC3C+1D,GAAetS,SAAS5yD,EAAMmP,GAAG,IACnCnP,EAAM62E,cAAcmjE,QACpBh6I,EAAMm2B,eAAc,GAEvB,CACH,CACF,CACF,CACF,EACAqjH,GAASx8I,YAAciN,GACvB,IAAI4vI,GAAe59I,EAAgB,WACjC,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CAAEi6I,cAAajxI,WAAW,GAAOspE,YAAW,GAAG3M,CAAW,EAAGtoE,EAC7DglD,EAAiBu4F,GAAsB7sI,GAAWksI,CAAW,EAC7DlyE,EAAwBP,GAAyByyE,CAAW,EAC5D56I,EAAMU,SAAa,IAAI,EACvBmD,EAAetD,GAAgBI,EAAcX,CAAG,EAChD,CAACmzE,EAAWC,CAAY,EAAI1yE,EAAc,SAAC,EAAK,EAChD,CAACozE,EAAa4qE,CAAc,EAAIh+I,EAAc,SAAC,EAAE,EACvDA,mBAAgB,IAAM,CACpB,MAAMw9I,EAAWl+I,EAAI02B,QACjBwnH,GACFQ,GAAgBR,EAASpqE,aAAe,IAAI6qE,KAAM,EAEtD,EAAG,CAACr4E,EAAUroE,QAAQ,CAAC,EACAI,EACrByN,GAAW8yI,SACX,CACE5/I,MAAO47I,EACPjxI,WACAspE,UAAWA,GAAaa,EACxB71E,SAA0BI,EAAIsmE,GAAuB,CAAEx+D,QAAS,GAAM,GAAGuiE,EAAuBtC,UAAW,CAACz8D,EAAU1L,SAA0BI,EAC9I0H,GAAU+3I,IACV,CACEr6E,KAAM,WACN,mBAAoB0P,EAAY,GAAK,OACrC,gBAAiBxpE,GAAY,OAC7B,gBAAiBA,EAAW,GAAK,OACjC,GAAG28D,EACHtmE,IAAK6D,EACL45I,cAAep5I,GACbrG,EAAMy/I,cACNC,GAAWj5I,GAAU,CACfkF,EACFq5C,EAAe+5F,YAAYt4I,CAAK,GAEhCu+C,EAAe85F,YAAYr4I,CAAK,EAC3BA,EAAM45I,kBACI55I,EAAM62E,cACdx3C,MAAM,CAAEmjC,cAAe,EAAK,CAAC,EAGxC,CAAC,CACH,EACA43E,eAAgBx6I,GACdrG,EAAM6gJ,eACNnB,GAAWj5I,GAAUu+C,EAAe+5F,YAAYt4I,CAAK,CAAC,CACxD,EACAoiF,QAASxiF,GAAqBrG,EAAM6oF,QAAS,IAAMzT,EAAa,EAAI,CAAC,EACrEloB,OAAQ7mD,GAAqBrG,EAAMktD,OAAQ,IAAMkoB,EAAa,EAAK,CAAC,EAExE,EAAG,CACL,CACF,CACF,CACF,EACI0rE,IAAqB,mBACrBC,GAAmBr+I,EAAgB,WACrC,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CAAE6f,UAAU,GAAOP,kBAAiB,GAAG++H,CAAmB,EAAGhhJ,EACnE,OAAuBK,EAAI4gJ,GAAuB,CAAEjgJ,MAAOhB,EAAM48I,YAAap6H,UAASviB,SAA0BI,EAC/G4/I,GACA,CACEx6E,KAAM,mBACN,eAAgB3iD,GAAgBN,CAAO,EAAI,QAAUA,EACrD,GAAGw+H,EACHh/I,IAAKW,EACL,aAAcu+I,GAAgB1+H,CAAO,EACrCuxH,SAAU1tI,GACR26I,EAAkBjN,SAClB,IAAM9xH,iBAAkBa,GAAgBN,CAAO,EAAI,GAAO,CAACA,GAC3D,CAAEhc,yBAA0B,GAC9B,EAEJ,CAAE,CAAC,CACL,CACF,EACAu6I,GAAiBt9I,YAAcq9I,IAC/B,IAAI/2E,GAAmB,iBACnB,CAACM,IAAoBC,GAAoB,EAAI+xE,GAC/CtyE,GACA,CAAE5pE,MAAO,OAAQ2O,cAAeA,IAAM,CACtC,CAAE,CACJ,EACIqyI,GAAiBz+I,EAAgB,WACnC,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CAAExC,QAAO2O,gBAAe,GAAGq4D,CAAY,EAAGnnE,EAC1CohJ,EAAoB16I,GAAeoI,CAAa,EACtD,OAAuBzO,EAAIgqE,IAAoB,CAAErpE,MAAOhB,EAAM48I,YAAaz8I,QAAO2O,cAAesyI,EAAmBnhJ,SAA0BI,EAAIw/I,GAAW,CAAE,GAAG14E,EAAYnlE,IAAKW,EAAc,CAAE,CAAC,CACtM,CACF,EACAw+I,GAAe19I,YAAcsmE,GAC7B,IAAIs3E,GAAkB,gBAClBC,GAAgB5+I,EAAgB,WAClC,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CAAExC,QAAO,GAAGohJ,CAAgB,EAAGvhJ,EAC/BE,EAAUoqE,IAAqB+2E,GAAiBrhJ,EAAM48I,WAAW,EACjEp6H,EAAUriB,IAAUD,EAAQC,MAClC,OAAuBE,EAAI4gJ,GAAuB,CAAEjgJ,MAAOhB,EAAM48I,YAAap6H,UAASviB,SAA0BI,EAC/G4/I,GACA,CACEx6E,KAAM,gBACN,eAAgBjjD,EAChB,GAAG++H,EACHv/I,IAAKW,EACL,aAAcu+I,GAAgB1+H,CAAO,EACrCuxH,SAAU1tI,GACRk7I,EAAexN,SACf,WAAM7zI,WAAQ4O,gBAAR5O,qBAAwBC,IAC9B,CAAEqG,yBAA0B,GAC9B,EAEJ,CAAE,CAAC,CACL,CACF,EACA86I,GAAc79I,YAAc49I,GAC5B,IAAInrE,GAAsB,oBACtB,CAAC+qE,GAAuBO,GAAuB,EAAInF,GACrDnmE,GACA,CAAE1zD,QAAS,EAAM,CACnB,EACIi/H,GAAoB/+I,EAAgB,WACtC,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CAAEi6I,cAAarwI,aAAY,GAAG6pE,CAAoB,EAAGp2E,EACrD0hJ,EAAmBF,IAAwBtrE,GAAqB0mE,CAAW,EACjF,OAAuBv8I,EACrB2I,GACA,CACEC,QAASsD,GAAcuW,GAAgB4+H,EAAiBl/H,OAAO,GAAKk/H,EAAiBl/H,UAAY,GACjGviB,SAA0BI,EACxB0H,GAAU45I,KACV,CACE,GAAGvrE,EACHp0E,IAAKW,EACL,aAAcu+I,GAAgBQ,EAAiBl/H,OAAO,EAE1D,CACF,CACF,CACF,CACF,EACAi/H,GAAkBh+I,YAAcyyE,GAChC,IAAIoB,IAAiB,gBACjBsqE,GAAgBl/I,EAAgB,WAClC,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CAAEi6I,cAAa,GAAGplE,CAAgB,EAAGx3E,EAC3C,OAAuBK,EACrB0H,GAAU+3I,IACV,CACEr6E,KAAM,YACN,mBAAoB,aACpB,GAAG+R,EACHx1E,IAAKW,CACP,CACF,CACF,CACF,EACAi/I,GAAcn+I,YAAc6zE,IAC5B,IAAIzyB,IAAa,YACbg9F,GAAYn/I,EAAgB,WAC9B,CAAC1C,EAAO2C,IAAiB,CACvB,KAAM,CAAEi6I,cAAa,GAAGv7F,CAAY,EAAGrhD,EACjCimD,EAAcL,GAAeg3F,CAAW,EAC9C,OAAuBv8I,EAAI68I,GAAuB,CAAE,GAAGj3F,EAAa,GAAG5E,EAAYr/C,IAAKW,CAAa,CAAC,CACxG,CACF,EACAk/I,GAAUp+I,YAAcohD,IACxB,IAAIi9F,IAAW,UACX,CAACC,IAAiBC,EAAiB,EAAI3F,GAAkByF,GAAQ,EAmCjEG,GAAmB,iBACnBC,GAAiBx/I,EAAgB,WACnC,CAAC1C,EAAO2C,IAAiB,CACvB,MAAMzC,EAAUs8I,GAAeyF,GAAkBjiJ,EAAM48I,WAAW,EAC5Da,EAAcf,GAAmBuF,GAAkBjiJ,EAAM48I,WAAW,EACpEuF,EAAaH,GAAkBC,GAAkBjiJ,EAAM48I,WAAW,EAClE53F,EAAiBu4F,GAAsB0E,GAAkBjiJ,EAAM48I,WAAW,EAC1ExgE,EAAe15E,SAAa,IAAI,EAChC,CAAEs7I,uBAAsBiB,4BAA4B,EAAGj6F,EACvDhkD,EAAQ,CAAE47I,YAAa58I,EAAM48I,aAC7BwF,EAAiB1/I,cAAkB,IAAM,CACzC05E,EAAa1jD,SAAS4yB,OAAO+Q,aAAa+f,EAAa1jD,OAAO,EAClE0jD,EAAa1jD,QAAU,IACxB,EAAE,CAAE,GACLh2B,mBAAgB,IAAM0/I,EAAgB,CAACA,CAAc,CAAC,EACtD1/I,YAAgB,IAAM,CACpB,MAAM2/I,EAAoBrE,EAAqBtlH,QAC/C,MAAO,IAAM,CACX4yB,OAAO+Q,aAAagmF,CAAiB,EACrCpD,EAA2B,IAAI,EAEnC,EAAG,CAACjB,EAAsBiB,CAA0B,CAAC,EAC9B5+I,EAAI+8I,GAAY,CAAEj1I,QAAS,GAAM,GAAGnH,EAAOf,SAA0BI,EAC1FigJ,GACA,CACEv9J,GAAIo/J,EAAWjxI,UACf,gBAAiB,OACjB,gBAAiBhR,EAAQ4L,KACzB,gBAAiBq2I,EAAWhmE,UAC5B,aAAcgjE,GAAaj/I,EAAQ4L,IAAI,EACvC,GAAG9L,EACHgC,IAAKC,GAAYU,EAAcw/I,EAAWG,eAAe,EACzDz9E,QAAUp+D,GAAU,QAClBzG,IAAM6kE,UAAN7kE,eAAgByG,GACZzG,IAAM2L,UAAYlF,EAAM45I,oBAC5B55I,EAAM62E,cAAcx3C,QACf5lC,EAAQ4L,MAAM5L,EAAQ0L,aAAa,EAAI,EAC7C,EACD6zI,cAAep5I,GACbrG,EAAMy/I,cACNC,GAAWj5I,GAAU,CACnBu+C,EAAe85F,YAAYr4I,CAAK,EAC5BA,GAAM45I,kBACN,CAACrgJ,EAAM2L,UAAY,CAACzL,EAAQ4L,MAAQ,CAACswE,EAAa1jD,UACpDssB,EAAei6F,2BAA2B,IAAI,EAC9C7iE,EAAa1jD,QAAU4yB,OAAOpuB,WAAW,IAAM,CAC7Ch9B,EAAQ0L,aAAa,EAAI,EACzBw2I,GACD,EAAE,GAAG,EAEV,CAAC,CACH,EACAvB,eAAgBx6I,GACdrG,EAAM6gJ,eACNnB,GAAWj5I,GAAU,SACnB27I,IACA,MAAMjxE,GAAcjxE,IAAQ6hC,UAAR7hC,cAAiBw4C,wBACrC,GAAIy4B,EAAa,CACf,MAAMxjC,GAAOztC,IAAQ6hC,UAAR7hC,cAAiBqiJ,QAAQ50G,KAChC60G,EAAY70G,IAAS,QACrB80G,EAAQD,EAAY,GAAK,EACzBE,EAAkBvxE,EAAYqxE,EAAY,OAAS,OAAO,EAC1DG,EAAiBxxE,EAAYqxE,EAAY,QAAU,MAAM,EAC/Dx9F,EAAei6F,2BAA2B,CACxCJ,KAAM,CAGJ,CAAE5oK,EAAGwwB,EAAMg0B,QAAUgoH,EAAOvsK,EAAGuwB,EAAMi0B,OAAQ,EAC7C,CAAEzkD,EAAGysK,EAAiBxsK,EAAGi7F,EAAYz6C,GAAI,EACzC,CAAEzgD,EAAG0sK,EAAgBzsK,EAAGi7F,EAAYz6C,GAAI,EACxC,CAAEzgD,EAAG0sK,EAAgBzsK,EAAGi7F,EAAY4H,MAAO,EAC3C,CAAE9iG,EAAGysK,EAAiBxsK,EAAGi7F,EAAY4H,MAAO,CAAC,EAE/CprC,MACF,CAAC,EACD2d,OAAO+Q,aAAa2hF,EAAqBtlH,OAAO,EAChDslH,EAAqBtlH,QAAU4yB,OAAOpuB,WACpC,IAAM8nB,EAAei6F,2BAA2B,IAAI,EACpD,GACF,CACF,KAAO,CAEL,GADAj6F,EAAeg6F,eAAev4I,CAAK,EAC/BA,EAAM45I,iBAAkB,OAC5Br7F,EAAei6F,2BAA2B,IAAI,CAChD,CACF,CAAC,CACH,EACAvkD,UAAWr0F,GAAqBrG,EAAM06F,UAAYj0F,GAAU,OAC1D,MAAMonE,EAAgB7oB,EAAemoB,UAAUz0C,UAAY,GACvD14B,EAAM2L,UAAYkiE,GAAiBpnE,EAAMmP,MAAQ,KACjDqmI,IAAcwB,EAAY/tI,GAAG,EAAE2pD,SAAS5yD,EAAMmP,GAAG,IACnD1V,EAAQ0L,aAAa,EAAI,GACzB1L,IAAQ6hC,UAAR7hC,QAAiB4lC,QACjBr/B,EAAMm2B,eAAc,GAEvB,EAEL,CAAE,CAAC,CACL,CACF,EACAslH,GAAez+I,YAAcw+I,GAC7B,IAAIW,GAAmB,iBACnBC,GAAiBngJ,EAAgB,WACnC,CAAC1C,EAAO2C,IAAiB,CACvB,MAAMu+B,EAAgBwH,GAAiBr8B,GAAcrM,EAAM48I,WAAW,EAChE,CAAErwI,aAAa20B,EAAc30B,WAAY,GAAGu2I,CAAiB,EAAG9iJ,EAChEE,EAAUs8I,GAAenwI,GAAcrM,EAAM48I,WAAW,EACxDa,EAAcf,GAAmBrwI,GAAcrM,EAAM48I,WAAW,EAChEuF,EAAaH,GAAkBY,GAAkB5iJ,EAAM48I,WAAW,EAClE56I,EAAMU,SAAa,IAAI,EACvBmD,EAAetD,GAAgBI,EAAcX,CAAG,EACtD,OAAuB3B,EAAIyN,GAAW/N,SAAU,CAAEiB,MAAOhB,EAAM48I,YAAa38I,SAA0BI,EAAI2I,GAAU,CAAEC,QAASsD,GAAcrM,EAAQ4L,KAAM7L,SAA0BI,EAAIyN,GAAWrL,KAAM,CAAEzB,MAAOhB,EAAM48I,YAAa38I,SAA0BI,EAC9Pu9I,GACA,CACE76J,GAAIo/J,EAAWhmE,UACf,kBAAmBgmE,EAAWjxI,UAC9B,GAAG4xI,EACH9gJ,IAAK6D,EACL08C,MAAO,QACP5U,KAAM8vG,EAAY/tI,MAAQ,MAAQ,OAAS,QAC3CgZ,4BAA6B,GAC7Bm1H,qBAAsB,GACtBl7G,UAAW,GACXC,gBAAkBn8B,GAAU,OACtBg3I,EAAYZ,mBAAmBnkH,WAAS12B,IAAI02B,UAAJ12B,QAAa8jC,SACzDr/B,EAAMm2B,eAAc,CACrB,EACDiG,iBAAmBp8B,GAAUA,EAAMm2B,eAAgB,EACnDhU,eAAgBviB,GAAqBrG,EAAM4oB,eAAiBniB,GAAU,CAChEA,EAAM8B,SAAW45I,EAAWz7F,SAASxmD,EAAQ0L,aAAa,EAAK,CACrE,CAAC,EACDmc,gBAAiB1hB,GAAqBrG,EAAM+nB,gBAAkBthB,GAAU,CACtEg3I,EAAYxgE,QAAO,EACnBx2E,EAAMm2B,eAAc,CACtB,CAAC,EACD89D,UAAWr0F,GAAqBrG,EAAM06F,UAAYj0F,GAAU,OAC1D,MAAM24I,EAAkB34I,EAAM62E,cAAcxgD,SAASr2B,EAAM8B,MAAM,EAC3Dw6I,EAAa5G,IAAesB,EAAY/tI,GAAG,EAAE2pD,SAAS5yD,EAAMmP,GAAG,EACjEwpI,GAAmB2D,IACrB7iJ,EAAQ0L,aAAa,EAAK,GAC1Bu2I,IAAWz7F,UAAXy7F,QAAoBr8G,QACpBr/B,EAAMm2B,eAAc,GAEvB,EAEL,EAAG,EAAG,CAAE,CAAC,CACX,CACF,EACAimH,GAAep/I,YAAcm/I,GAC7B,SAASzD,GAAarzI,EAAM,CAC1B,OAAOA,EAAO,OAAS,QACzB,CACA,SAASgX,GAAgBN,EAAS,CAChC,OAAOA,IAAY,eACrB,CACA,SAAS0+H,GAAgB1+H,EAAS,CAChC,OAAOM,GAAgBN,CAAO,EAAI,gBAAkBA,EAAU,UAAY,WAC5E,CACA,SAAS8jB,IAAWpY,EAAY,CAC9B,MAAMg7C,EAA6B1xC,SAAS8mH,cAC5C,UAAWlwH,KAAaF,EAGtB,GAFIE,IAAc86C,IAClB96C,EAAU0X,MAAK,EACXtO,SAAS8mH,gBAAkBp1E,GAA4B,MAE/D,CACA,SAASJ,IAAU55C,EAAOi6C,EAAY,CACpC,OAAOj6C,EAAM9rB,IAAI,CAAC8gB,EAAGnjB,IAAUmuB,GAAOi6C,EAAapoE,GAASmuB,EAAM6M,MAAM,CAAC,CAC3E,CACA,SAAS0iH,IAAaptF,EAAQ1G,EAAQ4zF,EAAc,CAElD,MAAMvmE,EADartB,EAAO5uB,OAAS,GAAKuuB,MAAMjrD,KAAKsrD,CAAM,EAAEiL,MAAOqiB,GAASA,IAASttB,EAAO,CAAC,CAAC,EACvDA,EAAO,CAAC,EAAIA,EAC5Cq4F,EAAoBzE,EAAeltF,EAAOwrC,QAAQ0hD,CAAY,EAAI,GACxE,IAAI0E,EAAgBn6E,IAAUzX,EAAQj1B,KAAK2P,IAAIi3G,EAAmB,CAAC,CAAC,EACxChrE,EAAiBj8C,SAAW,IAC/BknH,EAAgBA,EAAcz+I,OAAQzuB,GAAMA,IAAMwoK,CAAY,GACvF,MAAMC,EAAYyE,EAAcjgJ,KAC7B7C,GAAUA,EAAMy5G,YAAa,EAAC3qD,WAAW+oB,EAAiB4hC,YAAW,CAAE,CAC1E,EACA,OAAO4kC,IAAcD,EAAeC,EAAY,MAClD,CACA,SAASlgE,IAAiBM,EAAOC,EAAS,CACxC,KAAM,CAAE5oG,IAAGC,GAAG,EAAG0oG,EACjB,IAAIE,EAAS,GACb,QAAS7/E,EAAI,EAAG4kC,EAAIg7C,EAAQ9iD,OAAS,EAAG98B,EAAI4/E,EAAQ9iD,OAAQ8H,EAAI5kC,IAAK,CACnE,MAAMvK,EAAKmqF,EAAQ5/E,CAAC,EAAEhpB,EAChB0e,EAAKkqF,EAAQ5/E,CAAC,EAAE/oB,EAChB6hB,EAAK8mF,EAAQh7C,CAAC,EAAE5tD,EAChB+hB,EAAK6mF,EAAQh7C,CAAC,EAAE3tD,EACJye,EAAKze,GAAM8hB,EAAK9hB,GAAKD,GAAK8hB,EAAKrD,IAAOxe,EAAIye,IAAOqD,EAAKrD,GAAMD,IAC/DoqF,EAAS,CAACA,EAC3B,CACA,OAAOA,CACT,CACA,SAAS8/D,IAAqBn4I,EAAOo4I,EAAM,CACzC,GAAI,CAACA,EAAM,MAAO,GAClB,MAAMqE,EAAY,CAAEjtK,EAAGwwB,EAAMg0B,QAASvkD,EAAGuwB,EAAMi0B,SAC/C,OAAO4jD,IAAiB4kE,EAAWrE,CAAI,CACzC,CACA,SAASa,GAAUr0H,EAAS,CAC1B,OAAQ5kB,GAAUA,EAAM08I,cAAgB,QAAU93H,EAAQ5kB,CAAK,EAAI,MACrE,CACA,IAAI24E,IAAQu9D,GACRyG,IAAUhG,GACVn2G,IAASo2G,GACTprI,IAAWurI,GACX/xG,IAAQo0G,GACRv8E,IAAQy8E,GACRx0E,IAAQ00E,GACRoD,IAAetC,GACfx2E,IAAa42E,GACbmC,IAAYhC,GACZiC,IAAgB9B,GAChB91G,IAAYi2G,GACZ4B,IAAS3B,GAET4B,IAAavB,GACbwB,IAAab,GCnzBbc,GAAqB,eACrB,CAACC,IAA2BC,GAAuB,EAAIpjJ,GACzDkjJ,GACA,CAACrH,EAAe,CAClB,EACIwH,GAAexH,GAAe,EAC9B,CAACyH,IAAsBC,EAAsB,EAAIJ,IAA0BD,EAAkB,EAC7FM,GAAgBjkJ,GAAU,CAC5B,KAAM,CACJ,oBAAAkkJ,EACA,SAAAjkJ,EACA,IAAAyP,EACA,KAAMjE,EACN,YAAAC,EACA,aAAAE,EACA,MAAAo0B,EAAQ,EACT,EAAGhgC,EACEmkJ,EAAYL,GAAaI,CAAmB,EAC5CjkH,EAAap5B,SAAa,IAAI,EAC9B,CAACiF,EAAO,GAAOC,CAAO,EAAIhF,GAAqB,CACnD,KAAM0E,EACN,YAAaC,EACb,SAAUE,CACd,CAAG,EACD,OAAuBvL,EACrB0jJ,IACA,CACE,MAAOG,EACP,UAAWp5I,GAAO,EAClB,WAAAm1B,EACA,UAAWn1B,GAAO,EAClB,KAAAgB,EACA,aAAcC,EACd,aAAcvJ,cAAkB,IAAMuJ,EAASC,GAAa,CAACA,CAAQ,EAAG,CAACD,CAAO,CAAC,EACjF,MAAAi0B,EACA,SAA0B3/B,EAAI+jJ,IAAoB,CAAE,GAAGD,EAAW,KAAAr4I,EAAM,aAAcC,EAAS,IAAA2D,EAAK,MAAAswB,EAAO,SAAA//B,CAAQ,CAAE,CACtH,CACL,CACA,EACAgkJ,GAAa,YAAcN,GAC3B,IAAIz3I,GAAe,sBACfm4I,GAAsBn8I,EAAgB,WACxC,CAAClI,EAAO2C,IAAiB,CACvB,KAAM,CAAE,oBAAAuhJ,EAAqB,SAAAv4I,EAAW,GAAO,GAAGS,CAAc,EAAGpM,EAC7DE,EAAU8jJ,GAAuB93I,GAAcg4I,CAAmB,EAClEC,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAIikJ,IAAsB,CAAE,QAAS,GAAM,GAAGH,EAAW,SAA0B9jJ,EACxG0H,GAAU,OACV,CACE,KAAM,SACN,GAAI7H,EAAQ,UACZ,gBAAiB,OACjB,gBAAiBA,EAAQ,KACzB,gBAAiBA,EAAQ,KAAOA,EAAQ,UAAY,OACpD,aAAcA,EAAQ,KAAO,OAAS,SACtC,gBAAiByL,EAAW,GAAK,OACjC,SAAAA,EACA,GAAGS,EACH,IAAKnK,GAAYU,EAAczC,EAAQ,UAAU,EACjD,cAAemG,GAAqBrG,EAAM,cAAgByG,GAAU,CAC9D,CAACkF,GAAYlF,EAAM,SAAW,GAAKA,EAAM,UAAY,KACvDvG,EAAQ,aAAY,EACfA,EAAQ,MAAMuG,EAAM,eAAc,EAEnD,CAAS,EACD,UAAWJ,GAAqBrG,EAAM,UAAYyG,GAAU,CACtDkF,IACA,CAAC,QAAS,GAAG,EAAE,SAASlF,EAAM,GAAG,GAAGvG,EAAQ,eAC5CuG,EAAM,MAAQ,aAAavG,EAAQ,aAAa,EAAI,EACpD,CAAC,QAAS,IAAK,WAAW,EAAE,SAASuG,EAAM,GAAG,GAAGA,EAAM,iBACrE,CAAS,CACF,CACF,EAAE,CACJ,CACH,EACA49I,GAAoB,YAAcn4I,GAClC,IAAI86B,IAAc,qBACdu9G,GAAsBvkJ,GAAU,CAClC,KAAM,CAAE,oBAAAkkJ,EAAqB,GAAG10H,CAAW,EAAKxvB,EAC1CmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAImkJ,IAAsB,CAAE,GAAGL,EAAW,GAAG30H,CAAW,CAAE,CACnF,EACA+0H,GAAmB,YAAcv9G,IACjC,IAAI36B,GAAe,sBACfo4I,GAAsBv8I,EAAgB,WACxC,CAAClI,EAAO2C,IAAiB,CACvB,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAG13I,CAAY,EAAKxM,EAC3CE,EAAU8jJ,GAAuB33I,GAAc63I,CAAmB,EAClEC,EAAYL,GAAaI,CAAmB,EAC5C5hH,EAA0Bz7B,SAAa,EAAK,EAClD,OAAuBxG,EACrBqkJ,IACA,CACE,GAAIxkJ,EAAQ,UACZ,kBAAmBA,EAAQ,UAC3B,GAAGikJ,EACH,GAAG33I,EACH,IAAK7J,EACL,iBAAkB0D,GAAqBrG,EAAM,iBAAmByG,GAAU,OACnE67B,EAAwB,UAASrhC,EAAAf,EAAQ,WAAW,UAAnB,MAAAe,EAA4B,QAClEqhC,EAAwB,QAAU,GAClC77B,EAAM,eAAc,CAC9B,CAAS,EACD,kBAAmBJ,GAAqBrG,EAAM,kBAAoByG,GAAU,CAC1E,MAAM27B,EAAgB37B,EAAM,OAAO,cAC7B47B,EAAgBD,EAAc,SAAW,GAAKA,EAAc,UAAY,GACxE6kB,EAAe7kB,EAAc,SAAW,GAAKC,GAC/C,CAACniC,EAAQ,OAAS+mD,KAAc3kB,EAAwB,QAAU,GAChF,CAAS,EACD,MAAO,CACL,GAAGtiC,EAAM,MAGP,iDAAkD,uCAClD,gDAAiD,sCACjD,iDAAkD,uCAClD,sCAAuC,mCACvC,uCAAwC,mCAE3C,CACF,CACP,CACG,CACH,EACAykJ,GAAoB,YAAcp4I,GAClC,IAAIi6D,IAAa,oBACbq+E,GAAoBz8I,EAAgB,WACtC,CAAClI,EAAO2C,IAAiB,CACvB,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAG/8E,CAAU,EAAKnnE,EACzCmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAIukJ,IAAqB,CAAE,GAAGT,EAAW,GAAGh9E,EAAY,IAAKxkE,CAAY,CAAE,CACnG,CACH,EACAgiJ,GAAkB,YAAcr+E,IAChC,IAAIkO,IAAa,oBACbqwE,GAAoB38I,EAAgB,WACtC,CAAClI,EAAO2C,IAAiB,CACvB,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAGxvE,CAAU,EAAK10E,EACzCmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAIykJ,IAAqB,CAAE,GAAGX,EAAW,GAAGzvE,EAAY,IAAK/xE,CAAY,CAAE,CACnG,CACH,EACAkiJ,GAAkB,YAAcrwE,IAChC,IAAI9jE,IAAY,mBACZq0I,GAAmB78I,EAAgB,WACrC,CAAClI,EAAO2C,IAAiB,CACvB,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAG57E,CAAS,EAAKtoE,EACxCmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAI2kJ,IAAoB,CAAE,GAAGb,EAAW,GAAG77E,EAAW,IAAK3lE,CAAY,CAAE,CACjG,CACH,EACAoiJ,GAAiB,YAAcr0I,IAC/B,IAAIowI,IAAqB,2BACrBmE,GAA2B/8I,EAAgB,WAAC,CAAClI,EAAO2C,IAAiB,CACvE,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAGlD,CAAiB,EAAKhhJ,EAChDmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAI6kJ,IAA4B,CAAE,GAAGf,EAAW,GAAGnD,EAAmB,IAAKr+I,CAAY,CAAE,CAClH,CAAC,EACDsiJ,GAAyB,YAAcnE,IACvC,IAAI/2E,IAAmB,yBACnBo7E,IAAyBj9I,EAAgB,WAAC,CAAClI,EAAO2C,IAAiB,CACrE,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAGkB,CAAe,EAAKplJ,EAC9CmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAIglJ,IAA0B,CAAE,GAAGlB,EAAW,GAAGiB,EAAiB,IAAKziJ,CAAY,CAAE,CAC9G,CAAC,EACDwiJ,IAAuB,YAAcp7E,IACrC,IAAIs3E,IAAkB,wBAClBiE,GAAwBp9I,EAAgB,WAAC,CAAClI,EAAO2C,IAAiB,CACpE,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAG3C,CAAc,EAAKvhJ,EAC7CmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAIklJ,IAAyB,CAAE,GAAGpB,EAAW,GAAG5C,EAAgB,IAAK5+I,CAAY,CAAE,CAC5G,CAAC,EACD2iJ,GAAsB,YAAcjE,IACpC,IAAIp+H,IAAiB,4BACjBuiI,GAA4Bt9I,EAAgB,WAAC,CAAClI,EAAO2C,IAAiB,CACxE,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAG9tE,CAAkB,EAAKp2E,EACjDmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAIolJ,IAA6B,CAAE,GAAGtB,EAAW,GAAG/tE,EAAoB,IAAKzzE,CAAY,CAAE,CACpH,CAAC,EACD6iJ,GAA0B,YAAcviI,IACxC,IAAIq0D,IAAiB,wBACjBouE,GAAwBx9I,EAAgB,WAAC,CAAClI,EAAO2C,IAAiB,CACpE,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAG1sE,CAAc,EAAKx3E,EAC7CmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAIslJ,IAAyB,CAAE,GAAGxB,EAAW,GAAG3sE,EAAgB,IAAK70E,CAAY,CAAE,CAC5G,CAAC,EACD+iJ,GAAsB,YAAcpuE,IACpC,IAAIzyB,IAAa,oBACb+gG,IAAoB19I,EAAgB,WACtC,CAAClI,EAAO2C,IAAiB,CACvB,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAG7iG,CAAU,EAAKrhD,EACzCmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAIwlJ,IAAqB,CAAE,GAAG1B,EAAW,GAAG9iG,EAAY,IAAK1+C,CAAY,CAAE,CACnG,CACH,EACAijJ,IAAkB,YAAc/gG,IAWhC,IAAIo9F,IAAmB,yBACnB6D,GAAyB59I,EAAgB,WAAC,CAAClI,EAAO2C,IAAiB,CACrE,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAG6B,CAAe,EAAK/lJ,EAC9CmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EAAI2lJ,IAA0B,CAAE,GAAG7B,EAAW,GAAG4B,EAAiB,IAAKpjJ,CAAY,CAAE,CAC9G,CAAC,EACDmjJ,GAAuB,YAAc7D,IACrC,IAAIW,IAAmB,yBACnBqD,GAAyB/9I,EAAgB,WAAC,CAAClI,EAAO2C,IAAiB,CACrE,KAAM,CAAE,oBAAAuhJ,EAAqB,GAAGpB,CAAe,EAAK9iJ,EAC9CmkJ,EAAYL,GAAaI,CAAmB,EAClD,OAAuB7jJ,EACrB6lJ,IACA,CACE,GAAG/B,EACH,GAAGrB,EACH,IAAKngJ,EACL,MAAO,CACL,GAAG3C,EAAM,MAGP,iDAAkD,uCAClD,gDAAiD,sCACjD,iDAAkD,uCAClD,sCAAuC,mCACvC,uCAAwC,mCAE3C,CACF,CACL,CACA,CAAC,EACDimJ,GAAuB,YAAcrD,IACrC,IAAIr9F,IAAQ0+F,GACR32I,IAAU+2I,GACV96F,IAAUg7F,GACVtyI,GAAWwyI,GACX0B,IAASxB,GACTyB,GAASvB,GACTt5E,GAAQw5E,GACRsB,GAAgBpB,GAEhBqB,GAAahB,GACbiB,GAAiBf,GACjBgB,GAAad,GAGbe,GAAcX,GACdY,GAAcT,GC9PdH,IAAyBpjJ,EAAgB,WAAC,SAAUzB,EAAIe,EAAK,CAC7D,IAAI8Q,EAAY7R,EAAG6R,UAAWgK,EAAQ7b,EAAG6b,MAAO7c,EAAWgB,EAAGhB,SAAUD,EAAQd,GAAO+B,EAAI,CAAC,YAAa,QAAS,UAAU,CAAC,EAC7H,OAAA0d,EAAAgoI,GAAA,IAA8D5nJ,GAAS,CAAEiD,IAAKA,EAAK8Q,UAAWwL,GAAG,2MAA4MxB,GAAS,OAAQhK,CAAS,CAAG,EAAE9S,CAAK,EAACC,SAC9UA,GAAQwe,EAAApL,GAAA,CAAAP,UACuC,SAAS,KAChE,CAAC,EACDgzI,IAAuBriJ,YACnBkjJ,GAAiCljJ,YACrC,IAAIwiJ,IAAyBvjJ,EAAgB,WAAC,SAAUzB,EAAIe,EAAK,CAC7D,IAAI8Q,EAAY7R,EAAG6R,UAAW9S,EAAQd,GAAO+B,EAAI,CAAC,WAAW,CAAC,EAC9D,OAAAwd,EAAAkoI,GAAA,IAA8D5nJ,GAAS,CAAEiD,IAAKA,EAAK8Q,UAAWwL,GAAG,waAAyaxL,CAAS,CAAG,EAAE9S,CAAK,CAAC,EACliB,CAAC,EACDimJ,IAAuBxiJ,YACnBkjJ,GAAiCljJ,YACrC,IAAIghJ,IAAsB/hJ,EAAgB,WAAC,SAAUzB,EAAIe,EAAK,CAC1D,IAAI8Q,EAAY7R,EAAG6R,UAAWlI,EAAK3J,EAAGqhD,WAAYA,EAAa13C,IAAO,OAAS,EAAIA,EAAI5K,EAAQd,GAAO+B,EAAI,CAAC,YAAa,YAAY,CAAC,EACrI,OAAAwd,EAAAkoI,IAAA,CAAA1mJ,SAAAwe,EAAAkoI,GAAA,IACuD5nJ,GAAS,CAAEiD,IAAKA,EAAKsgD,WAAYA,EAAYxvC,UAAWwL,GAAG,waAAyaxL,CAAS,CAAG,EAAE9S,CAAK,CAAC,IACnjB,CAAC,EACDykJ,IAAoBhhJ,YAAckjJ,GAA8BljJ,YAChE,IAAIshJ,IAAmBriJ,EAAgB,WAAC,SAAUzB,EAAIe,EAAK,CACvD,IAAI8Q,EAAY7R,EAAG6R,UAAWgK,EAAQ7b,EAAG6b,MAAO9c,EAAQd,GAAO+B,EAAI,CAAC,YAAa,OAAO,CAAC,EACzF,OAAAwd,EAAAkoI,GAAA,IAAwD5nJ,GAAS,CAAEiD,IAAKA,EAAK8Q,UAAWwL,GAAG,sOAAuOxB,GAAS,OAAQhK,CAAS,CAAG,EAAE9S,CAAK,CAAC,EAC3W,CAAC,EACD+kJ,IAAiBthJ,YAAckjJ,GAA2BljJ,YAC1D,IAAIwhJ,IAA2BviJ,EAAgB,WAAC,SAAUzB,EAAIe,EAAK,CAC/D,IAAI8Q,EAAY7R,EAAG6R,UAAW7S,EAAWgB,EAAGhB,SAAUuiB,EAAUvhB,EAAGuhB,QAASxiB,EAAQd,GAAO+B,EAAI,CAAC,YAAa,WAAY,SAAS,CAAC,EACnI,OAAA0d,EAAAgoI,GAAA,IAAgE5nJ,GAAS,CAAEiD,IAAKA,EAAK8Q,UAAWwL,GAAG,wOAAyOxL,CAAS,EAAG0P,QAASA,CAAS,EAAExiB,CAAK,EAACC,UAAAwe,EAAA,QAAA3L,UACrU,+DAA8D7S,SAAAwe,EAAAkoI,GAAA,CAAA1mJ,SAAAwe,EAAAtL,GAAA,CAAAL,UAEvD,SAAS,OACzD7S,CAAQ,GAChB,CAAC,EACDglJ,IAAyBxhJ,YACrBkjJ,GAAmCljJ,YACvC,IAAI6hJ,IAAwB5iJ,EAAgB,WAAC,SAAUzB,EAAIe,EAAK,CAC5D,IAAI8Q,EAAY7R,EAAG6R,UAAW7S,EAAWgB,EAAGhB,SAAUD,EAAQd,GAAO+B,EAAI,CAAC,YAAa,UAAU,CAAC,EAClG,OAAA0d,EAAAgoI,GAAA,IAA6D5nJ,GAAS,CAAEiD,IAAKA,EAAK8Q,UAAWwL,GAAG,wOAAyOxL,CAAS,CAAG,EAAE9S,CAAK,EAACC,UAAAwe,EAAA,QAAA3L,UAChT,+DAA8D7S,SAAAwe,EAAAkoI,GAAA,CAAA1mJ,SAAAwe,EAAAlL,GAAA,CAAAT,UAEtD,sBAAsB,OACvE7S,CAAQ,GAChB,CAAC,EACDqlJ,IAAsB7hJ,YAAckjJ,GAAgCljJ,YACpE,IAAIohJ,IAAoBniJ,EAAgB,WAAC,SAAUzB,EAAIe,EAAK,CACxD,IAAI8Q,EAAY7R,EAAG6R,UAAWgK,EAAQ7b,EAAG6b,MAAO9c,EAAQd,GAAO+B,EAAI,CAAC,YAAa,OAAO,CAAC,EACzF,OAAAwd,EAAAkoI,GAAA,IAAyD5nJ,GAAS,CAAEiD,IAAKA,EAAK8Q,UAAWwL,GAAG,oCAAqCxB,GAAS,OAAQhK,CAAS,CAAG,EAAE9S,CAAK,CAAC,EAC1K,CAAC,EACD6kJ,IAAkBphJ,YAAckjJ,GAA4BljJ,YAC5D,IAAIiiJ,IAAwBhjJ,EAAgB,WAAC,SAAUzB,EAAIe,EAAK,CAC5D,IAAI8Q,EAAY7R,EAAG6R,UAAW9S,EAAQd,GAAO+B,EAAI,CAAC,WAAW,CAAC,EAC9D,OAAAwd,EAAAkoI,GAAA,IAA6D5nJ,GAAS,CAAEiD,IAAKA,EAAK8Q,UAAWwL,GAAG,8BAA+BxL,CAAS,CAAG,EAAE9S,CAAK,CAAC,EACvJ,CAAC,EACD0lJ,IAAsBjiJ,YAAckjJ,GAAgCljJ,YCjEpE,SAASm6F,GAAQjqF,EAAG,CAClB,0BAEA,OAAOiqF,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUjqF,EAAG,CAChG,OAAO,OAAOA,CACf,EAAG,SAAUA,EAAG,CACf,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CACtH,EAAKiqF,GAAQjqF,CAAC,CACd,CCPA,SAAS6sG,IAAY3qI,EAAGD,EAAG,CACzB,GAAgBgoH,GAAQ/nH,CAAC,GAArB,UAA0B,CAACA,EAAG,OAAOA,EACzC,IAAIc,EAAId,EAAE,OAAO,WAAW,EAC5B,GAAec,IAAX,OAAc,CAChB,IAAIsoB,EAAItoB,EAAE,KAAKd,EAAGD,GAAK,SAAS,EAChC,GAAgBgoH,GAAQ3+F,CAAC,GAArB,SAAwB,OAAOA,EACnC,MAAM,IAAI,UAAU,8CAA8C,CACnE,CACD,OAAqBrpB,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAC7C,CCRA,SAAS+wK,GAAc/wK,EAAG,CACxB,IAAIopB,EAAIuhH,IAAY3qI,EAAG,QAAQ,EAC/B,OAAmB+nH,GAAQ3+F,CAAC,GAArB,SAAyBA,EAAIA,EAAI,EAC1C,CCJA,SAASq8F,GAAgB,EAAG1lH,EAAGC,EAAG,CAChC,OAAQD,EAAIgxK,GAAchxK,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAC/D,MAAOC,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACX,GAAI,EAAED,CAAC,EAAIC,EAAG,CACjB,CCRA,SAAS4lH,IAA8B7lH,EAAGe,EAAG,CAC3C,GAAYf,GAAR,KAAW,MAAO,GACtB,IAAIC,EAAI,GACR,QAAS,KAAKD,EAAG,GAAI,GAAG,eAAe,KAAKA,EAAG,CAAC,EAAG,CACjD,GAAWe,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SACzBd,EAAE,CAAC,EAAID,EAAE,CAAC,CACX,CACD,OAAOC,CACT,CCPA,SAAS0lH,IAAyB,EAAG,EAAG,CACtC,GAAY,GAAR,KAAW,MAAO,GACtB,IAAI5nF,EACF/9B,EACA,EAAIixK,IAA6B,EAAG,CAAC,EACvC,GAAI,OAAO,sBAAuB,CAChC,IAAIpxK,EAAI,OAAO,sBAAsB,CAAC,EACtC,IAAKG,EAAI,EAAGA,EAAIH,EAAE,OAAQG,IAAK+9B,EAAIl+B,EAAEG,CAAC,EAAU,EAAE,QAAQ+9B,CAAC,IAAlB,IAAuB,CAAE,EAAC,qBAAqB,KAAK,EAAGA,CAAC,IAAM,EAAEA,CAAC,EAAI,EAAEA,CAAC,EAClH,CACD,OAAO,CACT,CCXO,SAASmzI,KAAO,CACrB,GAAI,SAAW,QAAQ,KAAM,CAG3B,QAFIC,EAEKC,EAAO,UAAU,OAAQziJ,EAAO,IAAI,MAAMyiJ,CAAI,EAAG34F,EAAO,EAAGA,EAAO24F,EAAM34F,IAC/E9pD,EAAK8pD,CAAI,EAAI,UAAUA,CAAI,EAGzB,OAAO9pD,EAAK,CAAC,GAAM,WAAUA,EAAK,CAAC,EAAI,mBAAmB,OAAOA,EAAK,CAAC,CAAC,IAE3EwiJ,EAAW,SAAS,KAAK,MAAMA,EAAUxiJ,CAAI,CAC/C,CACH,CACA,IAAI0iJ,GAAgB,GACb,SAASC,IAAW,CACzB,QAASC,EAAQ,UAAU,OAAQ5iJ,EAAO,IAAI,MAAM4iJ,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF7iJ,EAAK6iJ,CAAK,EAAI,UAAUA,CAAK,EAG3B,OAAO7iJ,EAAK,CAAC,GAAM,UAAY0iJ,GAAc1iJ,EAAK,CAAC,CAAC,IACpD,OAAOA,EAAK,CAAC,GAAM,WAAU0iJ,GAAc1iJ,EAAK,CAAC,CAAC,EAAI,IAAI,MAC9DuiJ,IAAK,MAAM,OAAQviJ,CAAI,EACzB,CAEA,IAAI8iJ,GAAY,SAAmBC,EAAMvrK,EAAI,CAC3C,OAAO,UAAY,CACjB,GAAIurK,EAAK,cACPvrK,QACK,CACL,IAAIwrK,EAAc,SAASA,GAAc,CACvC,WAAW,UAAY,CACrBD,EAAK,IAAI,cAAeC,CAAW,CACpC,EAAE,CAAC,EACJxrK,GACR,EAEMurK,EAAK,GAAG,cAAeC,CAAW,CACnC,CACL,CACA,EAEO,SAASC,GAAeF,EAAMG,EAAI1rK,EAAI,CAC3CurK,EAAK,eAAeG,EAAIJ,GAAUC,EAAMvrK,CAAE,CAAC,CAC7C,CACO,SAAS2rK,GAAcJ,EAAMK,EAAKF,EAAI1rK,EAAI,CAC3C,OAAO0rK,GAAO,WAAUA,EAAK,CAACA,CAAE,GACpCA,EAAG,QAAQ,SAAUhyK,EAAG,CAClB6xK,EAAK,QAAQ,GAAG,QAAQ7xK,CAAC,EAAI,GAAG6xK,EAAK,QAAQ,GAAG,KAAK7xK,CAAC,CAC9D,CAAG,EACD6xK,EAAK,cAAcK,EAAKN,GAAUC,EAAMvrK,CAAE,CAAC,CAC7C,CAEA,SAAS6rK,IAA6BH,EAAIH,EAAM,CAC9C,IAAIv0H,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E40H,EAAML,EAAK,UAAU,CAAC,EACtBO,EAAcP,EAAK,QAAUA,EAAK,QAAQ,YAAc,GACxDQ,EAAUR,EAAK,UAAUA,EAAK,UAAU,OAAS,CAAC,EACtD,GAAIK,EAAI,YAAW,IAAO,SAAU,MAAO,GAE3C,IAAII,EAAiB,SAAwBvyK,EAAGC,EAAG,CACjD,IAAIuyK,EAAYV,EAAK,SAAS,iBAAiB,MAAM,GAAG,OAAO9xK,EAAG,GAAG,EAAE,OAAOC,CAAC,CAAC,EAChF,OAAOuyK,IAAc,IAAMA,IAAc,CAC7C,EAEE,OAAIj1H,EAAQ,UAAYA,EAAQ,SAAS,QAAQ,kBAAkB,EAAI,IAAMu0H,EAAK,SAAS,iBAAiB,SAAWA,EAAK,sBAAwB,CAACS,EAAeT,EAAK,qBAAsBG,CAAE,EAAU,GACvM,GAAAH,EAAK,kBAAkBK,EAAKF,CAAE,GAC9B,CAACH,EAAK,SAAS,iBAAiB,SAAWA,EAAK,QAAQ,WAAa,CAACA,EAAK,QAAQ,yBACnFS,EAAeJ,EAAKF,CAAE,IAAM,CAACI,GAAeE,EAAeD,EAASL,CAAE,GAE5E,CAEO,SAASQ,IAAmBR,EAAIH,EAAM,CAC3C,IAAIv0H,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAElF,GAAI,CAACu0H,EAAK,WAAa,CAACA,EAAK,UAAU,OACrCJ,UAAS,yCAA0CI,EAAK,SAAS,EAC1D,GAGT,IAAIY,EAAiBZ,EAAK,QAAQ,sBAAwB,OAE1D,OAAKY,EAIEZ,EAAK,mBAAmBG,EAAI,CACjC,IAAK10H,EAAQ,IACb,SAAU,SAAkBo1H,EAAcJ,EAAgB,CACxD,GAAIh1H,EAAQ,UAAYA,EAAQ,SAAS,QAAQ,kBAAkB,EAAI,IAAMo1H,EAAa,SAAS,iBAAiB,SAAWA,EAAa,sBAAwB,CAACJ,EAAeI,EAAa,qBAAsBV,CAAE,EAAG,MAAO,EACpO,CACL,CAAG,EARQG,IAA6BH,EAAIH,EAAMv0H,CAAO,CASzD,CC3FA,IAAIq1H,IAAkB,oGAClBC,IAAe,CACjB,QAAS,IACT,QAAS,IACT,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,QAAS,IACT,SAAU,IACV,WAAY,IACZ,UAAW,IACX,SAAU,IACV,QAAS,GACX,EAEIC,IAAqB,SAA4B5wK,EAAG,CACtD,OAAO2wK,IAAa3wK,CAAC,CACvB,EAEW6wK,IAAW,SAAkB5wD,EAAM,CAC5C,OAAOA,EAAK,QAAQywD,IAAiBE,GAAkB,CACzD,EC5BA,SAASrtD,GAAQhvC,EAAQivC,EAAgB,CAAE,IAAIj8C,EAAO,OAAO,KAAKgN,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIkvC,EAAU,OAAO,sBAAsBlvC,CAAM,EAAOivC,IAAkBC,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CAAE,OAAO,OAAO,yBAAyBnvC,EAAQmvC,CAAG,EAAE,UAAW,CAAE,GAAKn8C,EAAK,KAAK,MAAMA,EAAMk8C,CAAO,CAAE,CAAG,OAAOl8C,CAAO,CAEzV,SAASo8C,GAAc9yF,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAS,UAAUz7D,CAAC,GAAK,KAAO,UAAUA,CAAC,EAAI,CAAE,EAAMA,EAAI,EAAKg8F,GAAQ,OAAOvgC,CAAM,EAAG,EAAI,EAAE,QAAQ,SAAU9kD,EAAK,CAAE0lF,GAAgB/yF,EAAQqN,EAAK8kD,EAAO9kD,CAAG,CAAC,CAAI,GAAc,OAAO,0BAA6B,OAAO,iBAAiBrN,EAAQ,OAAO,0BAA0BmyD,CAAM,CAAC,EAAYugC,GAAQ,OAAOvgC,CAAM,CAAC,EAAE,QAAQ,SAAU9kD,EAAK,CAAE,OAAO,eAAerN,EAAQqN,EAAK,OAAO,yBAAyB8kD,EAAQ9kD,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOrN,CAAS,CAGthB,IAAIgzD,GAAiB,CACnB,SAAU,kBACV,cAAe,GACf,oBAAqB,GACrB,2BAA4B,GAC5B,mBAAoB,GACpB,2BAA4B,CAAC,KAAM,SAAU,IAAK,GAAG,EACrD,YAAa,GACb,SAAUgtF,GACZ,EACO,SAASC,KAAc,CAC5B,IAAIz1H,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClFwoC,GAAiB8/B,GAAcA,GAAc,CAAE,EAAE9/B,EAAc,EAAGxoC,CAAO,CAC3E,CACO,SAAS01H,KAAc,CAC5B,OAAOltF,EACT,CCvBA,IAAI4sF,GACG,SAASO,IAAQzsD,EAAU,CAChCksD,GAAelsD,CACjB,CACO,SAAS0sD,KAAU,CACxB,OAAOR,EACT,CCNA,SAAShqD,GAAgB9nH,EAAGZ,EAAG,CAC7B,GAAI,EAAEY,aAAaZ,GAAI,MAAM,IAAI,UAAU,mCAAmC,CAChF,CCDA,SAASooH,GAAkB,EAAGjoH,EAAG,CAC/B,QAASC,EAAI,EAAGA,EAAID,EAAE,OAAQC,IAAK,CACjC,IAAI89B,EAAI/9B,EAAEC,CAAC,EACX89B,EAAE,WAAaA,EAAE,YAAc,GAAIA,EAAE,aAAe,GAAI,UAAWA,IAAMA,EAAE,SAAW,IAAK,OAAO,eAAe,EAAGizI,GAAcjzI,EAAE,GAAG,EAAGA,CAAC,CAC5I,CACH,CACA,SAASoqF,GAAa,EAAGnoH,EAAGC,EAAG,CAC7B,OAAOD,GAAKioH,GAAkB,EAAE,UAAWjoH,CAAC,EAAGC,GAAKgoH,GAAkB,EAAGhoH,CAAC,EAAG,OAAO,eAAe,EAAG,YAAa,CACjH,SAAU,EACX,GAAG,CACN,CCTO,IAAI+yK,IAAmB,CAC5B,KAAM,WACN,KAAM,SAAc3sD,EAAU,CAC5BusD,IAAYvsD,EAAS,QAAQ,KAAK,EAClCysD,IAAQzsD,CAAQ,CACjB,CACH,ECKW4sD,IAAcpoI,EAAa,gBAC3BqoI,IAAmB,UAAY,CACxC,SAASA,GAAmB,CAC1B3qD,GAAgB,KAAM2qD,CAAgB,EAEtC,KAAK,eAAiB,EACvB,CAED/qD,UAAa+qD,EAAkB,CAAC,CAC9B,IAAK,oBACL,MAAO,SAA2BC,EAAY,CAC5C,IAAInpD,EAAQ,KAEZmpD,EAAW,QAAQ,SAAUtB,EAAI,CAC1B7nD,EAAM,eAAe6nD,CAAE,IAAG7nD,EAAM,eAAe6nD,CAAE,EAAI,GAClE,CAAO,CACF,CACL,EAAK,CACD,IAAK,oBACL,MAAO,UAA6B,CAClC,OAAO,OAAO,KAAK,KAAK,cAAc,CACvC,CACF,EAAC,EAEKqB,CACT,EAAG,ECtCH,SAASr7C,GAAgB73H,EAAG,CAC1B,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAOA,CAC/B,CCFA,SAAS83H,IAAsB93H,EAAGJ,EAAG,CACnC,IAAIK,EAAYD,GAAR,KAAY,KAAsB,OAAO,OAAtB,KAAgCA,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC/F,GAAYC,GAAR,KAAW,CACb,IAAIc,EACFlB,EACAwpB,EACAnpB,EACAO,EAAI,CAAE,EACNoB,EAAI,GACJk8B,EAAI,GACN,GAAI,CACF,GAAI1U,GAAKppB,EAAIA,EAAE,KAAKD,CAAC,GAAG,KAAYJ,IAAN,EAAS,CACrC,GAAI,OAAOK,CAAC,IAAMA,EAAG,OACrB4B,EAAI,EACZ,KAAa,MAAO,EAAEA,GAAKd,EAAIsoB,EAAE,KAAKppB,CAAC,GAAG,QAAUQ,EAAE,KAAKM,EAAE,KAAK,EAAGN,EAAE,SAAWb,GAAIiC,EAAI,GAAG,CACxF,OAAQ7B,EAAG,CACV+9B,EAAI,GAAIl+B,EAAIG,CAClB,QAAc,CACR,GAAI,CACF,GAAI,CAAC6B,GAAa5B,EAAE,QAAV,OAAwBC,EAAID,EAAE,OAAW,EAAE,OAAOC,CAAC,IAAMA,GAAI,MAC/E,QAAgB,CACR,GAAI69B,EAAG,MAAMl+B,CACd,CACF,CACD,OAAOY,CACR,CACH,CC1BA,SAASgiH,GAAkBziH,EAAGS,EAAG,EACtBA,GAAR,MAAaA,EAAIT,EAAE,UAAYS,EAAIT,EAAE,QACtC,QAASe,EAAI,EAAG,EAAI,MAAMN,CAAC,EAAGM,EAAIN,EAAGM,IAAK,EAAEA,CAAC,EAAIf,EAAEe,CAAC,EACpD,OAAO,CACT,CCHA,SAASwhH,GAA4BviH,EAAGS,EAAG,CACzC,GAAIT,EAAG,CACL,GAAgB,OAAOA,GAAnB,SAAsB,OAAOozK,GAAiBpzK,EAAGS,CAAC,EACtD,IAAIR,EAAI,GAAG,SAAS,KAAKD,CAAC,EAAE,MAAM,EAAG,EAAE,EACvC,OAAoBC,IAAb,UAAkBD,EAAE,cAAgBC,EAAID,EAAE,YAAY,MAAiBC,IAAV,OAAyBA,IAAV,MAAc,MAAM,KAAKD,CAAC,EAAoBC,IAAhB,aAAqB,2CAA2C,KAAKA,CAAC,EAAImzK,GAAiBpzK,EAAGS,CAAC,EAAI,MACrN,CACH,CCPA,SAASs3H,IAAmB,CAC1B,MAAM,IAAI,UAAU;AAAA,mFAA2I,CACjK,CCEA,SAASH,IAAe53H,EAAGe,EAAG,CAC5B,OAAOsyK,GAAerzK,CAAC,GAAKszK,IAAqBtzK,EAAGe,CAAC,GAAKwyK,GAA2BvzK,EAAGe,CAAC,GAAKyyK,GAAe,CAC/G,CCFA,SAASnuD,GAAQhvC,EAAQivC,EAAgB,CAAE,IAAIj8C,EAAO,OAAO,KAAKgN,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIkvC,EAAU,OAAO,sBAAsBlvC,CAAM,EAAOivC,IAAkBC,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CAAE,OAAO,OAAO,yBAAyBnvC,EAAQmvC,CAAG,EAAE,UAAW,CAAE,GAAKn8C,EAAK,KAAK,MAAMA,EAAMk8C,CAAO,CAAE,CAAG,OAAOl8C,CAAO,CAEzV,SAASo8C,GAAc9yF,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAS,UAAUz7D,CAAC,GAAK,KAAO,UAAUA,CAAC,EAAI,CAAE,EAAMA,EAAI,EAAKg8F,GAAQ,OAAOvgC,CAAM,EAAG,EAAI,EAAE,QAAQ,SAAU9kD,EAAK,CAAE0lF,GAAgB/yF,EAAQqN,EAAK8kD,EAAO9kD,CAAG,CAAC,CAAI,GAAc,OAAO,0BAA6B,OAAO,iBAAiBrN,EAAQ,OAAO,0BAA0BmyD,CAAM,CAAC,EAAYugC,GAAQ,OAAOvgC,CAAM,CAAC,EAAE,QAAQ,SAAU9kD,EAAK,CAAE,OAAO,eAAerN,EAAQqN,EAAK,OAAO,yBAAyB8kD,EAAQ9kD,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOrN,CAAS,CAMthB,IAAIwY,IAAc,SAAqB5gB,EAAOkpJ,EAAQ,CACpD,IAAIrnJ,EAAMotD,WACVrQ,mBAAU,UAAY,CACpB/8C,EAAI,QAAUqnJ,EAASrnJ,EAAI,QAAU7B,CACzC,EAAK,CAACA,EAAOkpJ,CAAM,CAAC,EACXrnJ,EAAI,OACb,EAEO,SAASsnJ,GAAe7B,EAAI,CACjC,IAAIznJ,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC5EupJ,EAAgBvpJ,EAAM,KAEtBsuC,EAAO3tB,aAAWkoI,GAAW,GAAK,CAAE,EACpCW,EAAkBl7G,EAAK,KACvBm7G,EAAuBn7G,EAAK,UAE5Bg5G,EAAOiC,GAAiBC,GAAmBb,IAAO,EAGtD,GAFIrB,GAAQ,CAACA,EAAK,mBAAkBA,EAAK,iBAAmB,IAAIwB,KAE5D,CAACxB,EAAM,CACTJ,GAAS,wEAAwE,EAEjF,IAAIwC,EAAY,SAAmBpyK,EAAGqyK,EAAoB,CACxD,OAAI,OAAOA,GAAuB,SAAiBA,EAC/CA,GAAsB/rD,GAAQ+rD,CAAkB,IAAM,UAAY,OAAOA,EAAmB,cAAiB,SAAiBA,EAAmB,aAC9I,MAAM,QAAQryK,CAAC,EAAIA,EAAEA,EAAE,OAAS,CAAC,EAAIA,CAClD,EAEQsyK,EAAc,CAACF,EAAW,CAAE,EAAE,EAAK,EACvC,OAAAE,EAAY,EAAIF,EAChBE,EAAY,KAAO,GACnBA,EAAY,MAAQ,GACbA,CACR,CAEGtC,EAAK,QAAQ,OAASA,EAAK,QAAQ,MAAM,OAAS,QAAWJ,GAAS,qGAAqG,EAE/K,IAAI2C,EAAcxuD,GAAcA,GAAcA,GAAc,GAAIotD,KAAa,EAAGnB,EAAK,QAAQ,KAAK,EAAGtnJ,CAAK,EAEtG8pJ,EAAcD,EAAY,YAC1BE,EAAYF,EAAY,UACxBd,EAAatB,GAAMgC,GAAwBnC,EAAK,SAAWA,EAAK,QAAQ,UAC5EyB,EAAa,OAAOA,GAAe,SAAW,CAACA,CAAU,EAAIA,GAAc,CAAC,aAAa,EACrFzB,EAAK,iBAAiB,mBAAmBA,EAAK,iBAAiB,kBAAkByB,CAAU,EAC/F,IAAIiB,GAAS1C,EAAK,eAAiBA,EAAK,uBAAyByB,EAAW,MAAM,SAAUtzK,EAAG,CAC7F,OAAOwyK,IAAmBxyK,EAAG6xK,EAAMuC,CAAW,CAClD,CAAG,EAED,SAASI,GAAO,CACd,OAAO3C,EAAK,UAAUtnJ,EAAM,KAAO,KAAM6pJ,EAAY,SAAW,WAAad,EAAaA,EAAW,CAAC,EAAGgB,CAAS,CACnH,CAED,IAAIG,EAAYz4H,EAAQ,SAACw4H,CAAI,EACzBE,EAAa38C,IAAe08C,EAAW,CAAC,EACxCr0K,EAAIs0K,EAAW,CAAC,EAChBC,EAAOD,EAAW,CAAC,EAEnBE,EAAWtB,EAAW,OACtB/oJ,EAAM,MAAKqqJ,EAAW,GAAG,OAAOrqJ,EAAM,GAAG,EAAE,OAAOqqJ,CAAQ,GAC9D,IAAIC,EAAmBvpI,IAAYspI,CAAQ,EACvCE,EAAYn7F,SAAO,EAAI,EAC3BrQ,YAAU,UAAY,CACpB,IAAIyrG,EAAWX,EAAY,SACvBY,EAAgBZ,EAAY,cAChCU,EAAU,QAAU,GAEhB,CAACP,GAAS,CAACF,IACT9pJ,EAAM,IACR0nJ,GAAcJ,EAAMtnJ,EAAM,IAAK+oJ,EAAY,UAAY,CACjDwB,EAAU,SAASH,EAAKH,CAAI,CAC1C,CAAS,EAEDzC,GAAeF,EAAMyB,EAAY,UAAY,CACvCwB,EAAU,SAASH,EAAKH,CAAI,CAC1C,CAAS,GAIDD,GAASM,GAAoBA,IAAqBD,GAAYE,EAAU,SAC1EH,EAAKH,CAAI,EAGX,SAASS,GAAa,CAChBH,EAAU,SAASH,EAAKH,CAAI,CACjC,CAED,OAAIO,GAAYlD,GAAMA,EAAK,GAAGkD,EAAUE,CAAU,EAC9CD,GAAiBnD,GAAMA,EAAK,MAAM,GAAGmD,EAAeC,CAAU,EAC3D,UAAY,CACjBH,EAAU,QAAU,GAChBC,GAAYlD,GAAMkD,EAAS,MAAM,GAAG,EAAE,QAAQ,SAAU7zK,EAAG,CAC7D,OAAO2wK,EAAK,IAAI3wK,EAAG+zK,CAAU,CACrC,CAAO,EACGD,GAAiBnD,GAAMmD,EAAc,MAAM,GAAG,EAAE,QAAQ,SAAU9zK,EAAG,CACvE,OAAO2wK,EAAK,MAAM,IAAI3wK,EAAG+zK,CAAU,CAC3C,CAAO,CACP,CACA,EAAK,CAACpD,EAAM+C,CAAQ,CAAC,EACnB,IAAIM,EAAYv7F,SAAO,EAAI,EAC3BrQ,YAAU,UAAY,CAChBwrG,EAAU,SAAW,CAACI,EAAU,SAClCP,EAAKH,CAAI,EAGXU,EAAU,QAAU,EACxB,EAAK,CAACrD,EAAMyC,CAAS,CAAC,EACpB,IAAIa,EAAM,CAAC/0K,EAAGyxK,EAAM0C,CAAK,EAKzB,GAJAY,EAAI,EAAI/0K,EACR+0K,EAAI,KAAOtD,EACXsD,EAAI,MAAQZ,EACRA,GACA,CAACA,GAAS,CAACF,EAAa,OAAOc,EACnC,MAAM,IAAI,QAAQ,SAAUC,EAAS,CAC/B7qJ,EAAM,IACR0nJ,GAAcJ,EAAMtnJ,EAAM,IAAK+oJ,EAAY,UAAY,CACrD,OAAO8B,EAAO,CACtB,CAAO,EAEDrD,GAAeF,EAAMyB,EAAY,UAAY,CAC3C,OAAO8B,EAAO,CACtB,CAAO,CAEP,CAAG,CACH,CCvIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUA,SAAS1mI,IAAW,CAClBA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAI,EAAK,SAAU5b,EAAQ,CAClE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIy7D,EAAS,UAAUz7D,CAAC,EACxB,QAAS2W,KAAO8kD,EACV,OAAO,UAAU,eAAe,KAAKA,EAAQ9kD,CAAG,IAClDrN,EAAOqN,CAAG,EAAI8kD,EAAO9kD,CAAG,EAG7B,CACD,OAAOrN,CACX,EACS4b,GAAS,MAAM,KAAM,SAAS,CACvC,CAQA,IAAIslC,IACH,SAAUA,EAAQ,CAQjBA,EAAO,IAAS,MAMhBA,EAAO,KAAU,OAKjBA,EAAO,QAAa,SACtB,GAAGA,KAAWA,GAAS,CAAE,EAAC,EAC1B,MAAMqhG,GAAoB,WAgH1B,SAASC,IAAqBh4H,EAAS,CACjCA,IAAY,SACdA,EAAU,IAEZ,SAASi4H,EAAsB1/F,EAAQ2/F,EAAe,CACpD,GAAI,CACF,SAAAC,EACA,OAAAvgG,EACA,KAAAwgG,CACN,EAAQ7/F,EAAO,SACX,OAAO8/F,GAAe,GAAI,CACxB,SAAAF,EACA,OAAAvgG,EACA,KAAAwgG,CACD,EAEDF,EAAc,OAASA,EAAc,MAAM,KAAO,KAAMA,EAAc,OAASA,EAAc,MAAM,KAAO,SAAS,CACpH,CACD,SAASI,EAAkB//F,EAAQlsD,EAAI,CACrC,OAAO,OAAOA,GAAO,SAAWA,EAAKksJ,GAAWlsJ,CAAE,CACnD,CACD,OAAOmsJ,IAAmBP,EAAuBK,EAAmB,KAAMt4H,CAAO,CACnF,CAmDA,SAASy4H,GAAUrrJ,EAAOuyD,EAAS,CACjC,GAAIvyD,IAAU,IAASA,IAAU,MAAQ,OAAOA,EAAU,IACxD,MAAM,IAAI,MAAMuyD,CAAO,CAE3B,CACA,SAAS+4F,GAAQC,EAAMh5F,EAAS,CAC9B,GAAI,CAACg5F,EAAM,CAEL,OAAO,QAAY,KAAa,QAAQ,KAAKh5F,CAAO,EACxD,GAAI,CAMF,MAAM,IAAI,MAAMA,CAAO,CAE7B,MAAgB,CAAE,CACf,CACH,CACA,SAASi5F,KAAY,CACnB,OAAO,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,OAAO,EAAG,CAAC,CAC/C,CAIA,SAASC,GAAgBj1D,EAAU51F,EAAO,CACxC,MAAO,CACL,IAAK41F,EAAS,MACd,IAAKA,EAAS,IACd,IAAK51F,CACT,CACA,CAIA,SAASqqJ,GAAe1yH,EAASt5B,EAAI2J,EAAO6M,EAAK,CAC/C,OAAI7M,IAAU,SACZA,EAAQ,MAEKob,GAAS,CACtB,SAAU,OAAOuU,GAAY,SAAWA,EAAUA,EAAQ,SAC1D,OAAQ,GACR,KAAM,EACV,EAAK,OAAOt5B,GAAO,SAAWysJ,GAAUzsJ,CAAE,EAAIA,EAAI,CAC9C,MAAA2J,EAKA,IAAK3J,GAAMA,EAAG,KAAOwW,GAAO+1I,IAAW,CAC3C,CAAG,CAEH,CAIA,SAASL,GAAWh9G,EAAM,CACxB,GAAI,CACF,SAAA48G,EAAW,IACX,OAAAvgG,EAAS,GACT,KAAAwgG,EAAO,EACR,EAAG78G,EACJ,OAAIqc,GAAUA,IAAW,MAAKugG,GAAYvgG,EAAO,OAAO,CAAC,IAAM,IAAMA,EAAS,IAAMA,GAChFwgG,GAAQA,IAAS,MAAKD,GAAYC,EAAK,OAAO,CAAC,IAAM,IAAMA,EAAO,IAAMA,GACrED,CACT,CAIA,SAASW,GAAUh2I,EAAM,CACvB,IAAIi2I,EAAa,GACjB,GAAIj2I,EAAM,CACR,IAAIk2I,EAAYl2I,EAAK,QAAQ,GAAG,EAC5Bk2I,GAAa,IACfD,EAAW,KAAOj2I,EAAK,OAAOk2I,CAAS,EACvCl2I,EAAOA,EAAK,OAAO,EAAGk2I,CAAS,GAEjC,IAAIC,EAAcn2I,EAAK,QAAQ,GAAG,EAC9Bm2I,GAAe,IACjBF,EAAW,OAASj2I,EAAK,OAAOm2I,CAAW,EAC3Cn2I,EAAOA,EAAK,OAAO,EAAGm2I,CAAW,GAE/Bn2I,IACFi2I,EAAW,SAAWj2I,EAEzB,CACD,OAAOi2I,CACT,CACA,SAASP,IAAmBU,EAAaC,EAAYC,EAAkBp5H,EAAS,CAC1EA,IAAY,SACdA,EAAU,IAEZ,GAAI,CACF,OAAAu4B,EAAS,SAAS,YAClB,SAAA8gG,EAAW,EACZ,EAAGr5H,EACAk4H,EAAgB3/F,EAAO,QACvB2H,EAASxJ,GAAO,IAChBm9B,EAAW,KACX7lF,EAAQsrJ,IAIRtrJ,GAAS,OACXA,EAAQ,EACRkqJ,EAAc,aAAa9mI,GAAS,GAAI8mI,EAAc,MAAO,CAC3D,IAAKlqJ,CACX,CAAK,EAAG,EAAE,GAER,SAASsrJ,GAAW,CAIlB,OAHYpB,EAAc,OAAS,CACjC,IAAK,IACX,GACiB,GACd,CACD,SAASqB,GAAY,CACnBr5F,EAASxJ,GAAO,IAChB,IAAIr5C,EAAYi8I,IACZxyH,EAAQzpB,GAAa,KAAO,KAAOA,EAAYrP,EACnDA,EAAQqP,EACJw2E,GACFA,EAAS,CACP,OAAA3zB,EACA,SAAUs5F,EAAQ,SAClB,MAAA1yH,CACR,CAAO,CAEJ,CACD,SAASoD,EAAK79B,EAAI2J,EAAO,CACvBkqD,EAASxJ,GAAO,KAChB,IAAIktC,EAAWy0D,GAAemB,EAAQ,SAAUntJ,EAAI2J,CAAK,EACrDojJ,GAAkBA,EAAiBx1D,EAAUv3F,CAAE,EACnD2B,EAAQsrJ,EAAU,EAAG,EACrB,IAAIG,EAAeZ,GAAgBj1D,EAAU51F,CAAK,EAC9C0rJ,EAAMF,EAAQ,WAAW51D,CAAQ,EAErC,GAAI,CACFs0D,EAAc,UAAUuB,EAAc,GAAIC,CAAG,CAC9C,OAAQp6F,EAAO,CAKd,GAAIA,aAAiB,cAAgBA,EAAM,OAAS,iBAClD,MAAMA,EAIR/G,EAAO,SAAS,OAAOmhG,CAAG,CAC3B,CACGL,GAAYxlE,GACdA,EAAS,CACP,OAAA3zB,EACA,SAAUs5F,EAAQ,SAClB,MAAO,CACf,CAAO,CAEJ,CACD,SAAShgG,EAAQntD,EAAI2J,EAAO,CAC1BkqD,EAASxJ,GAAO,QAChB,IAAIktC,EAAWy0D,GAAemB,EAAQ,SAAUntJ,EAAI2J,CAAK,EACrDojJ,GAAkBA,EAAiBx1D,EAAUv3F,CAAE,EACnD2B,EAAQsrJ,EAAQ,EAChB,IAAIG,EAAeZ,GAAgBj1D,EAAU51F,CAAK,EAC9C0rJ,EAAMF,EAAQ,WAAW51D,CAAQ,EACrCs0D,EAAc,aAAauB,EAAc,GAAIC,CAAG,EAC5CL,GAAYxlE,GACdA,EAAS,CACP,OAAA3zB,EACA,SAAUs5F,EAAQ,SAClB,MAAO,CACf,CAAO,CAEJ,CACD,SAASG,EAAUttJ,EAAI,CAIrB,IAAI2f,EAAOusC,EAAO,SAAS,SAAW,OAASA,EAAO,SAAS,OAASA,EAAO,SAAS,KACpFqhG,EAAO,OAAOvtJ,GAAO,SAAWA,EAAKksJ,GAAWlsJ,CAAE,EAItD,OAAAutJ,EAAOA,EAAK,QAAQ,KAAM,KAAK,EAC/BnB,GAAUzsI,EAAM,sEAAwE4tI,CAAI,EACrF,IAAI,IAAIA,EAAM5tI,CAAI,CAC1B,CACD,IAAIwtI,EAAU,CACZ,IAAI,QAAS,CACX,OAAOt5F,CACR,EACD,IAAI,UAAW,CACb,OAAOg5F,EAAY3gG,EAAQ2/F,CAAa,CACzC,EACD,OAAO17G,EAAI,CACT,GAAIq3C,EACF,MAAM,IAAI,MAAM,4CAA4C,EAE9D,OAAAt7B,EAAO,iBAAiBw/F,GAAmBwB,CAAS,EACpD1lE,EAAWr3C,EACJ,IAAM,CACX+b,EAAO,oBAAoBw/F,GAAmBwB,CAAS,EACvD1lE,EAAW,IACnB,CACK,EACD,WAAWxnF,EAAI,CACb,OAAO8sJ,EAAW5gG,EAAQlsD,CAAE,CAC7B,EACD,UAAAstJ,EACA,eAAettJ,EAAI,CAEjB,IAAIqtJ,EAAMC,EAAUttJ,CAAE,EACtB,MAAO,CACL,SAAUqtJ,EAAI,SACd,OAAQA,EAAI,OACZ,KAAMA,EAAI,IAClB,CACK,EACD,KAAAxvH,EACA,QAAAsvB,EACA,GAAG92E,EAAG,CACJ,OAAOw1K,EAAc,GAAGx1K,CAAC,CAC1B,CACL,EACE,OAAO82K,CACT,CAGA,IAAIK,IACH,SAAUA,EAAY,CACrBA,EAAW,KAAU,OACrBA,EAAW,SAAc,WACzBA,EAAW,SAAc,WACzBA,EAAW,MAAW,OACxB,GAAGA,KAAeA,GAAa,CAAE,EAAC,EA2ClC,SAASC,IAAYC,EAAQC,EAAaC,EAAU,CAClD,OAAIA,IAAa,SACfA,EAAW,KAENC,IAAgBH,EAAQC,EAAaC,EAAU,EAAK,CAC7D,CACA,SAASC,IAAgBH,EAAQC,EAAaC,EAAUE,EAAc,CACpE,IAAIv2D,EAAW,OAAOo2D,GAAgB,SAAWlB,GAAUkB,CAAW,EAAIA,EACtE7B,EAAWiC,GAAcx2D,EAAS,UAAY,IAAKq2D,CAAQ,EAC/D,GAAI9B,GAAY,KACd,OAAO,KAET,IAAIz6C,EAAW28C,GAAcN,CAAM,EACnCO,IAAkB58C,CAAQ,EAC1B,IAAIpM,EAAU,KACd,QAASplG,EAAI,EAAGolG,GAAW,MAAQplG,EAAIwxG,EAAS,OAAQ,EAAExxG,EAAG,CAO3D,IAAIquJ,EAAUC,IAAWrC,CAAQ,EACjC7mD,EAAUmpD,IAAiB/8C,EAASxxG,CAAC,EAAGquJ,EAASJ,CAAY,CAC9D,CACD,OAAO7oD,CACT,CAeA,SAAS+oD,GAAcN,EAAQr8C,EAAUg9C,EAAaC,EAAY,CAC5Dj9C,IAAa,SACfA,EAAW,IAETg9C,IAAgB,SAClBA,EAAc,IAEZC,IAAe,SACjBA,EAAa,IAEf,IAAIC,EAAe,CAACC,EAAO7sJ,EAAO8sJ,IAAiB,CACjD,IAAIC,EAAO,CACT,aAAcD,IAAiB,OAAYD,EAAM,MAAQ,GAAKC,EAC9D,cAAeD,EAAM,gBAAkB,GACvC,cAAe7sJ,EACf,MAAA6sJ,CACN,EACQE,EAAK,aAAa,WAAW,GAAG,IAClCtC,GAAUsC,EAAK,aAAa,WAAWJ,CAAU,EAAG,wBAA2BI,EAAK,aAAe,wBAA2B,IAAOJ,EAAa,iDAAoD,6DAA6D,EACnQI,EAAK,aAAeA,EAAK,aAAa,MAAMJ,EAAW,MAAM,GAE/D,IAAI73I,EAAOk4I,GAAU,CAACL,EAAYI,EAAK,YAAY,CAAC,EAChDE,EAAaP,EAAY,OAAOK,CAAI,EAIpCF,EAAM,UAAYA,EAAM,SAAS,OAAS,IAC5CpC,GAGAoC,EAAM,QAAU,GAAM,2DAA6D,qCAAwC/3I,EAAO,KAAM,EACxIu3I,GAAcQ,EAAM,SAAUn9C,EAAUu9C,EAAYn4I,CAAI,GAItD,EAAA+3I,EAAM,MAAQ,MAAQ,CAACA,EAAM,QAGjCn9C,EAAS,KAAK,CACZ,KAAA56F,EACA,MAAOo4I,IAAap4I,EAAM+3I,EAAM,KAAK,EACrC,WAAAI,CACN,CAAK,CACL,EACE,OAAAlB,EAAO,QAAQ,CAACc,EAAO7sJ,IAAU,CAC/B,IAAImtJ,EAEJ,GAAIN,EAAM,OAAS,IAAM,GAAGM,EAAcN,EAAM,OAAS,MAAQM,EAAY,SAAS,GAAG,GACvFP,EAAaC,EAAO7sJ,CAAK,MAEzB,SAASotJ,KAAYC,GAAwBR,EAAM,IAAI,EACrDD,EAAaC,EAAO7sJ,EAAOotJ,CAAQ,CAG3C,CAAG,EACM19C,CACT,CAeA,SAAS29C,GAAwBv4I,EAAM,CACrC,IAAIw4I,EAAWx4I,EAAK,MAAM,GAAG,EAC7B,GAAIw4I,EAAS,SAAW,EAAG,MAAO,GAClC,GAAI,CAACzgI,EAAO,GAAG7a,CAAI,EAAIs7I,EAEnBC,EAAa1gI,EAAM,SAAS,GAAG,EAE/B5L,EAAW4L,EAAM,QAAQ,MAAO,EAAE,EACtC,GAAI7a,EAAK,SAAW,EAGlB,OAAOu7I,EAAa,CAACtsI,EAAU,EAAE,EAAI,CAACA,CAAQ,EAEhD,IAAIusI,EAAeH,GAAwBr7I,EAAK,KAAK,GAAG,CAAC,EACrDwF,EAAS,GAQb,OAAAA,EAAO,KAAK,GAAGg2I,EAAa,IAAIC,GAAWA,IAAY,GAAKxsI,EAAW,CAACA,EAAUwsI,CAAO,EAAE,KAAK,GAAG,CAAC,CAAC,EAEjGF,GACF/1I,EAAO,KAAK,GAAGg2I,CAAY,EAGtBh2I,EAAO,IAAI41I,GAAYt4I,EAAK,WAAW,GAAG,GAAKs4I,IAAa,GAAK,IAAMA,CAAQ,CACxF,CACA,SAASd,IAAkB58C,EAAU,CACnCA,EAAS,KAAK,CAACp6H,EAAGK,IAAML,EAAE,QAAUK,EAAE,MAAQA,EAAE,MAAQL,EAAE,MACxDo4K,IAAep4K,EAAE,WAAW,IAAIy3K,GAAQA,EAAK,aAAa,EAAGp3K,EAAE,WAAW,IAAIo3K,GAAQA,EAAK,aAAa,CAAC,CAAC,CAC9G,CACA,MAAMY,IAAU,YACVC,IAAsB,EACtBC,IAAkB,EAClBC,IAAoB,EACpBC,IAAqB,GACrBC,IAAe,GACfC,GAAUhwJ,GAAKA,IAAM,IAC3B,SAASivJ,IAAap4I,EAAM9U,EAAO,CACjC,IAAIstJ,EAAWx4I,EAAK,MAAM,GAAG,EACzBo5I,EAAeZ,EAAS,OAC5B,OAAIA,EAAS,KAAKW,EAAO,IACvBC,GAAgBF,KAEdhuJ,IACFkuJ,GAAgBL,KAEXP,EAAS,OAAOrvJ,GAAK,CAACgwJ,GAAQhwJ,CAAC,CAAC,EAAE,OAAO,CAACkwJ,EAAOC,IAAYD,GAASR,IAAQ,KAAKS,CAAO,EAAIR,IAAsBQ,IAAY,GAAKN,IAAoBC,KAAqBG,CAAY,CACnM,CACA,SAASR,IAAep4K,EAAGK,EAAG,CAE5B,OADeL,EAAE,SAAWK,EAAE,QAAUL,EAAE,MAAM,EAAG,EAAE,EAAE,MAAM,CAAC,EAAG,IAAM,IAAMK,EAAE,CAAC,CAAC,EAMjFL,EAAEA,EAAE,OAAS,CAAC,EAAIK,EAAEA,EAAE,OAAS,CAAC,EAGhC,CACF,CACA,SAAS82K,IAAiB3jI,EAAQqhI,EAAUgC,EAAc,CACpDA,IAAiB,SACnBA,EAAe,IAEjB,GAAI,CACF,WAAAc,CACD,EAAGnkI,EACAulI,EAAgB,GAChBC,EAAkB,IAClBhrD,EAAU,GACd,QAASplG,EAAI,EAAGA,EAAI+uJ,EAAW,OAAQ,EAAE/uJ,EAAG,CAC1C,IAAI6uJ,EAAOE,EAAW/uJ,CAAC,EACnBstC,EAAMttC,IAAM+uJ,EAAW,OAAS,EAChCsB,EAAoBD,IAAoB,IAAMnE,EAAWA,EAAS,MAAMmE,EAAgB,MAAM,GAAK,IACnGr3F,EAAQu3F,GAAU,CACpB,KAAMzB,EAAK,aACX,cAAeA,EAAK,cACpB,IAAAvhH,CACD,EAAE+iH,CAAiB,EAChB1B,EAAQE,EAAK,MAQjB,GAPI,CAAC91F,GAASzrB,GAAO2gH,GAAgB,CAACc,EAAWA,EAAW,OAAS,CAAC,EAAE,MAAM,QAC5Eh2F,EAAQu3F,GAAU,CAChB,KAAMzB,EAAK,aACX,cAAeA,EAAK,cACpB,IAAK,EACN,EAAEwB,CAAiB,GAElB,CAACt3F,EACH,OAAO,KAET,OAAO,OAAOo3F,EAAep3F,EAAM,MAAM,EACzCqsC,EAAQ,KAAK,CAEX,OAAQ+qD,EACR,SAAUrB,GAAU,CAACsB,EAAiBr3F,EAAM,QAAQ,CAAC,EACrD,aAAcw3F,IAAkBzB,GAAU,CAACsB,EAAiBr3F,EAAM,YAAY,CAAC,CAAC,EAChF,MAAA41F,CACN,CAAK,EACG51F,EAAM,eAAiB,MACzBq3F,EAAkBtB,GAAU,CAACsB,EAAiBr3F,EAAM,YAAY,CAAC,EAEpE,CACD,OAAOqsC,CACT,CA8CA,SAASkrD,GAAU9hG,EAASy9F,EAAU,CAChC,OAAOz9F,GAAY,WACrBA,EAAU,CACR,KAAMA,EACN,cAAe,GACf,IAAK,EACX,GAEE,GAAI,CAACsiD,EAAS0/C,CAAc,EAAIC,IAAYjiG,EAAQ,KAAMA,EAAQ,cAAeA,EAAQ,GAAG,EACxFuK,EAAQkzF,EAAS,MAAMn7C,CAAO,EAClC,GAAI,CAAC/3C,EAAO,OAAO,KACnB,IAAIq3F,EAAkBr3F,EAAM,CAAC,EACzB23F,EAAeN,EAAgB,QAAQ,UAAW,IAAI,EACtDO,EAAgB53F,EAAM,MAAM,CAAC,EAoBjC,MAAO,CACL,OApBWy3F,EAAe,OAAO,CAACI,EAAMvhH,EAAMvtC,IAAU,CACxD,GAAI,CACF,UAAA+uJ,EACA,WAAAxB,CACD,EAAGhgH,EAGJ,GAAIwhH,IAAc,IAAK,CACrB,IAAIC,EAAaH,EAAc7uJ,CAAK,GAAK,GACzC4uJ,EAAeN,EAAgB,MAAM,EAAGA,EAAgB,OAASU,EAAW,MAAM,EAAE,QAAQ,UAAW,IAAI,CAC5G,CACD,MAAM5vJ,EAAQyvJ,EAAc7uJ,CAAK,EACjC,OAAIutJ,GAAc,CAACnuJ,EACjB0vJ,EAAKC,CAAS,EAAI,OAElBD,EAAKC,CAAS,GAAK3vJ,GAAS,IAAI,QAAQ,OAAQ,GAAG,EAE9C0vJ,CACR,EAAE,CAAE,GAGH,SAAUR,EACV,aAAAM,EACA,QAAAliG,CACJ,CACA,CACA,SAASiiG,IAAY75I,EAAMm6I,EAAezjH,EAAK,CACzCyjH,IAAkB,SACpBA,EAAgB,IAEdzjH,IAAQ,SACVA,EAAM,IAERk/G,GAAQ51I,IAAS,KAAO,CAACA,EAAK,SAAS,GAAG,GAAKA,EAAK,SAAS,IAAI,EAAG,eAAkBA,EAAO,oCAAuC,IAAOA,EAAK,QAAQ,MAAO,IAAI,EAAI,qCAAwC,oEAAsE,oCAAuCA,EAAK,QAAQ,MAAO,IAAI,EAAI,KAAM,EAC9V,IAAIo6I,EAAS,GACTC,EAAe,IAAMr6I,EAAK,QAAQ,UAAW,EAAE,EAClD,QAAQ,OAAQ,GAAG,EACnB,QAAQ,qBAAsB,MAAM,EACpC,QAAQ,oBAAqB,CAACqO,EAAG4rI,EAAWxB,KAC3C2B,EAAO,KAAK,CACV,UAAAH,EACA,WAAYxB,GAAc,IAChC,CAAK,EACMA,EAAa,eAAiB,aACtC,EACD,OAAIz4I,EAAK,SAAS,GAAG,GACnBo6I,EAAO,KAAK,CACV,UAAW,GACjB,CAAK,EACDC,GAAgBr6I,IAAS,KAAOA,IAAS,KAAO,QAC9C,qBACO02B,EAET2jH,GAAgB,QACPr6I,IAAS,IAAMA,IAAS,MAQjCq6I,GAAgB,iBAGX,CADO,IAAI,OAAOA,EAAcF,EAAgB,OAAY,GAAG,EACrDC,CAAM,CACzB,CACA,SAAS1C,IAAWptJ,EAAO,CACzB,GAAI,CACF,OAAOA,EAAM,MAAM,GAAG,EAAE,IAAIpqB,GAAK,mBAAmBA,CAAC,EAAE,QAAQ,MAAO,KAAK,CAAC,EAAE,KAAK,GAAG,CACvF,OAAQs8E,EAAO,CACdo5F,UAAQ,GAAO,iBAAoBtrJ,EAAQ,2GAAmH,aAAekyD,EAAQ,KAAK,EACnLlyD,CACR,CACH,CAIA,SAASgtJ,GAAcjC,EAAU8B,EAAU,CACzC,GAAIA,IAAa,IAAK,OAAO9B,EAC7B,GAAI,CAACA,EAAS,YAAa,EAAC,WAAW8B,EAAS,YAAW,CAAE,EAC3D,OAAO,KAIT,IAAI7jF,EAAa6jF,EAAS,SAAS,GAAG,EAAIA,EAAS,OAAS,EAAIA,EAAS,OACrEmD,EAAWjF,EAAS,OAAO/hF,CAAU,EACzC,OAAIgnF,GAAYA,IAAa,IAEpB,KAEFjF,EAAS,MAAM/hF,CAAU,GAAK,GACvC,CAMA,SAASinF,IAAYhxJ,EAAIixJ,EAAc,CACjCA,IAAiB,SACnBA,EAAe,KAEjB,GAAI,CACF,SAAUC,EACV,OAAA3lG,EAAS,GACT,KAAAwgG,EAAO,EACX,EAAM,OAAO/rJ,GAAO,SAAWysJ,GAAUzsJ,CAAE,EAAIA,EAE7C,MAAO,CACL,SAFakxJ,EAAaA,EAAW,WAAW,GAAG,EAAIA,EAAaC,IAAgBD,EAAYD,CAAY,EAAIA,EAGhH,OAAQG,IAAgB7lG,CAAM,EAC9B,KAAM8lG,IAActF,CAAI,CAC5B,CACA,CACA,SAASoF,IAAgB1C,EAAcwC,EAAc,CACnD,IAAIhC,EAAWgC,EAAa,QAAQ,OAAQ,EAAE,EAAE,MAAM,GAAG,EAEzD,OADuBxC,EAAa,MAAM,GAAG,EAC5B,QAAQsB,GAAW,CAC9BA,IAAY,KAEVd,EAAS,OAAS,GAAGA,EAAS,IAAG,EAC5Bc,IAAY,KACrBd,EAAS,KAAKc,CAAO,CAE3B,CAAG,EACMd,EAAS,OAAS,EAAIA,EAAS,KAAK,GAAG,EAAI,GACpD,CACA,SAASqC,GAAoBz4E,EAAM3lB,EAAOq+F,EAAM96I,EAAM,CACpD,MAAO,qBAAuBoiE,EAAO,wCAA0C,OAAS3lB,EAAQ,YAAc,KAAK,UAAUz8C,CAAI,EAAI,uCAAyC,OAAS86I,EAAO,4DAA8D,mEAC9P,CAwBA,SAASC,IAA2BvsD,EAAS,CAC3C,OAAOA,EAAQ,OAAO,CAACrsC,EAAOj3D,IAAUA,IAAU,GAAKi3D,EAAM,MAAM,MAAQA,EAAM,MAAM,KAAK,OAAS,CAAC,CACxG,CAGA,SAAS64F,GAAoBxsD,EAASysD,EAAsB,CAC1D,IAAIC,EAAcH,IAA2BvsD,CAAO,EAIpD,OAAIysD,EACKC,EAAY,IAAI,CAAC/4F,EAAOg5F,IAAQA,IAAQD,EAAY,OAAS,EAAI/4F,EAAM,SAAWA,EAAM,YAAY,EAEtG+4F,EAAY,IAAI/4F,GAASA,EAAM,YAAY,CACpD,CAIA,SAASi5F,GAAUC,EAAOC,EAAgBC,EAAkBC,EAAgB,CACtEA,IAAmB,SACrBA,EAAiB,IAEnB,IAAIjyJ,EACA,OAAO8xJ,GAAU,SACnB9xJ,EAAKysJ,GAAUqF,CAAK,GAEpB9xJ,EAAK+kB,GAAS,GAAI+sI,CAAK,EACvB1F,GAAU,CAACpsJ,EAAG,UAAY,CAACA,EAAG,SAAS,SAAS,GAAG,EAAGsxJ,GAAoB,IAAK,WAAY,SAAUtxJ,CAAE,CAAC,EACxGosJ,GAAU,CAACpsJ,EAAG,UAAY,CAACA,EAAG,SAAS,SAAS,GAAG,EAAGsxJ,GAAoB,IAAK,WAAY,OAAQtxJ,CAAE,CAAC,EACtGosJ,GAAU,CAACpsJ,EAAG,QAAU,CAACA,EAAG,OAAO,SAAS,GAAG,EAAGsxJ,GAAoB,IAAK,SAAU,OAAQtxJ,CAAE,CAAC,GAElG,IAAIkyJ,EAAcJ,IAAU,IAAM9xJ,EAAG,WAAa,GAC9CkxJ,EAAagB,EAAc,IAAMlyJ,EAAG,SACpCC,EAUJ,GAAIixJ,GAAc,KAChBjxJ,EAAO+xJ,MACF,CACL,IAAIG,EAAqBJ,EAAe,OAAS,EAKjD,GAAI,CAACE,GAAkBf,EAAW,WAAW,IAAI,EAAG,CAClD,IAAIkB,EAAalB,EAAW,MAAM,GAAG,EACrC,KAAOkB,EAAW,CAAC,IAAM,MACvBA,EAAW,MAAK,EAChBD,GAAsB,EAExBnyJ,EAAG,SAAWoyJ,EAAW,KAAK,GAAG,CAClC,CACDnyJ,EAAOkyJ,GAAsB,EAAIJ,EAAeI,CAAkB,EAAI,GACvE,CACD,IAAI17I,EAAOu6I,IAAYhxJ,EAAIC,CAAI,EAE3BoyJ,EAA2BnB,GAAcA,IAAe,KAAOA,EAAW,SAAS,GAAG,EAEtFoB,GAA2BJ,GAAehB,IAAe,MAAQc,EAAiB,SAAS,GAAG,EAClG,MAAI,CAACv7I,EAAK,SAAS,SAAS,GAAG,IAAM47I,GAA4BC,KAC/D77I,EAAK,UAAY,KAEZA,CACT,CAWA,MAAMk4I,GAAYv1F,GAASA,EAAM,KAAK,GAAG,EAAE,QAAQ,SAAU,GAAG,EAI1Dg3F,IAAoBtE,GAAYA,EAAS,QAAQ,OAAQ,EAAE,EAAE,QAAQ,OAAQ,GAAG,EAIhFsF,IAAkB7lG,GAAU,CAACA,GAAUA,IAAW,IAAM,GAAKA,EAAO,WAAW,GAAG,EAAIA,EAAS,IAAMA,EAIrG8lG,IAAgBtF,GAAQ,CAACA,GAAQA,IAAS,IAAM,GAAKA,EAAK,WAAW,GAAG,EAAIA,EAAO,IAAMA,EAmQ/F,SAASwG,IAAqBt/F,EAAO,CACnC,OAAOA,GAAS,MAAQ,OAAOA,EAAM,QAAW,UAAY,OAAOA,EAAM,YAAe,UAAY,OAAOA,EAAM,UAAa,WAAa,SAAUA,CACvJ,CAEA,MAAMu/F,GAA0B,CAAC,OAAQ,MAAO,QAAS,QAAQ,EACpC,IAAI,IAAIA,EAAuB,EAC5D,MAAMC,IAAyB,CAAC,MAAO,GAAGD,EAAuB,EACrC,IAAI,IAAIC,GAAsB,EC3xC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAcA,SAAS1tI,IAAW,CAClBA,UAAWtf,OAAOitJ,OAASjtJ,OAAOitJ,OAAOn7F,KAAI,EAAK,SAAUpuD,EAAQ,CAClE,QAAStJ,EAAI,EAAGA,EAAIw9F,UAAU1gE,OAAQ98B,IAAK,CACzC,IAAIy7D,EAAS+hC,UAAUx9F,CAAC,EACxB,QAAS2W,KAAO8kD,EACV71D,OAAOsmD,UAAUC,eAAe2xC,KAAKriC,EAAQ9kD,CAAG,IAClDrN,EAAOqN,CAAG,EAAI8kD,EAAO9kD,CAAG,EAG9B,CACA,OAAOrN,GAEF4b,GAASwwB,MAAM,KAAM8nD,SAAS,CACvC,CAIA,MAAMs1D,GAAiCrvJ,gBAAoB,IAAI,EAIzDsvJ,GAAsCtvJ,gBAAoB,IAAI,EAmB9DuvJ,GAAiCvvJ,gBAAoB,IAAI,EAIzDwvJ,GAA+BxvJ,gBAAoB,IAAI,EAIvDyvJ,GAA4BzvJ,gBAAoB,CACpD0vJ,OAAQ,KACR/tD,QAAS,CAAE,EACXguD,YAAa,EACf,CAAC,EAIKC,GAAiC5vJ,gBAAoB,IAAI,EAW/D,SAAS6vJ,IAAQnzJ,EAAIozJ,EAAO,CAC1B,GAAI,CACFC,UACD,EAAGD,IAAU,OAAS,GAAKA,EAC3BE,GAAkB,GAEqDC,GAAiB,EAAK,EAC9F,GAAI,CACF3F,WACA4F,WACF,EAAIlwJ,aAAiBuvJ,EAAiB,EAClC,CACF9G,OACAD,WACAvgG,QACF,EAAIkoG,GAAgBzzJ,EAAI,CACtBqzJ,UACF,CAAC,EACGK,EAAiB5H,EAMrB,OAAI8B,IAAa,MACf8F,EAAiB5H,IAAa,IAAM8B,EAAWe,GAAU,CAACf,EAAU9B,CAAQ,CAAC,GAExE0H,EAAU1G,WAAW,CAC1BhB,SAAU4H,EACVnoG,SACAwgG,MACF,CAAC,CACH,CAOA,SAASuH,IAAqB,CAC5B,OAAOhwJ,EAAgB,WAACwvJ,EAAe,GAAK,IAC9C,CAYA,SAASa,IAAc,CACrB,OAACL,GAAkB,GAEyDC,GAAiB,EAAK,EAC3FjwJ,EAAgB,WAACwvJ,EAAe,EAAEv7D,QAC3C,CAoCA,SAASjlE,GAA0B31C,EAAI,CACtB2mB,aAAiBuvJ,EAAiB,EAAEe,QAKjDtwJ,EAAqB,gBAAC3mB,CAAE,CAE5B,CAQA,SAASk3K,IAAc,CACrB,GAAI,CACFZ,aACF,EAAI3vJ,aAAiByvJ,EAAY,EAGjC,OAAOE,EAAca,MAAsBC,KAC7C,CACA,SAASA,KAAsB,CAC5BT,GAAkB,GAEyDC,GAAiB,EAAK,EAClG,IAAIS,EAAoB1wJ,aAAiBqvJ,EAAiB,EACtD,CACF/E,WACAqG,SACAT,WACF,EAAIlwJ,aAAiBuvJ,EAAiB,EAClC,CACF5tD,SACF,EAAI3hG,aAAiByvJ,EAAY,EAC7B,CACFjH,SAAUkG,CACX,EAAG2B,GAAW,EACXO,EAAqBC,KAAKC,UAAUC,GAA2BpvD,EAASgvD,EAAOvC,oBAAoB,CAAC,EACpG4C,EAAYhxJ,SAAa,EAAK,EAClCgvB,UAA0B,IAAM,CAC9BgiI,EAAUh7H,QAAU,EACtB,CAAC,EACch2B,cAAkB,SAAUtD,EAAI2zB,EAAS,CAQtD,GAPIA,IAAY,SACdA,EAAU,IAMR,CAAC2gI,EAAUh7H,QAAS,OACxB,GAAI,OAAOt5B,GAAO,SAAU,CAC1BwzJ,EAAUe,GAAGv0J,CAAE,EACf,MACF,CACA,IAAIyW,EAAOo7I,GAAU7xJ,EAAIm0J,KAAKl9H,MAAMi9H,CAAkB,EAAGlC,EAAkBr+H,EAAQ0/H,WAAa,MAAM,EAQlGW,GAAqB,MAAQpG,IAAa,MAC5Cn3I,EAAKq1I,SAAWr1I,EAAKq1I,WAAa,IAAM8B,EAAWe,GAAU,CAACf,EAAUn3I,EAAKq1I,QAAQ,CAAC,IAErFn4H,EAAQw5B,QAAUqmG,EAAUrmG,QAAUqmG,EAAU31H,MAAMpnB,EAAMkd,EAAQhqB,MAAOgqB,CAAO,CACvF,EAAG,CAACi6H,EAAU4F,EAAWU,EAAoBlC,EAAkBgC,CAAiB,CAAC,CAEnF,CACA,MAAMQ,IAA6BlxJ,gBAAoB,IAAI,EAiB3D,SAASmxJ,IAAU3zJ,EAAS,CAC1B,IAAIkyJ,EAAS1vJ,aAAiByvJ,EAAY,EAAEC,OAC5C,OAAIA,GACK3zI,EAAAm1I,IAAA7zJ,SAAA,CAAAI,MACED,EAAOD,SACbmyJ,CAAM,EAGb,CAqBA,SAASS,GAAgBzzJ,EAAI00J,EAAQ,CACnC,GAAI,CACFrB,UACD,EAAGqB,IAAW,OAAS,GAAKA,EACzB,CACFT,QACF,EAAI3wJ,aAAiBuvJ,EAAiB,EAClC,CACF5tD,SACF,EAAI3hG,aAAiByvJ,EAAY,EAC7B,CACFjH,SAAUkG,CACX,EAAG2B,GAAW,EACXO,EAAqBC,KAAKC,UAAUC,GAA2BpvD,EAASgvD,EAAOvC,oBAAoB,CAAC,EACxG,OAAOpuJ,UAAc,IAAMuuJ,GAAU7xJ,EAAIm0J,KAAKl9H,MAAMi9H,CAAkB,EAAGlC,EAAkBqB,IAAa,MAAM,EAAG,CAACrzJ,EAAIk0J,EAAoBlC,EAAkBqB,CAAQ,CAAC,CACvK,CAUA,SAASsB,IAAUjH,EAAQC,EAAa,CACtC,OAAOiH,IAAclH,EAAQC,CAAW,CAC1C,CAGA,SAASiH,IAAclH,EAAQC,EAAakH,EAAiBZ,EAAQ,CAClEX,GAAkB,GAEuDC,GAAiB,EAAK,EAChG,GAAI,CACFC,YACAI,OAAQkB,CACV,EAAIxxJ,aAAiBuvJ,EAAiB,EAClC,CACF5tD,QAAS8vD,CACX,EAAIzxJ,aAAiByvJ,EAAY,EAC7BiC,EAAaD,EAAcA,EAAcp4H,OAAS,CAAC,EACnDs4H,EAAeD,EAAaA,EAAWnE,OAAS,GAC/BmE,GAAaA,EAAWlJ,SAC7C,IAAIoJ,EAAqBF,EAAaA,EAAWzE,aAAe,IAC9CyE,GAAcA,EAAWxG,MAyB3C,IAAI2G,EAAsBxB,KACtBp8D,EACJ,GAAIo2D,EAAa,CACf,IAAIyH,EACJ,IAAIC,EAAoB,OAAO1H,GAAgB,SAAWlB,GAAUkB,CAAW,EAAIA,EACjFuH,IAAuB,MAASE,EAAwBC,EAAkBvJ,WAAa,MAAgBsJ,EAAsBvlG,WAAWqlG,CAAkB,GAAsb3B,GAAiB,EAAK,EACxmBh8D,EAAW89D,CACb,MACE99D,EAAW49D,EAEb,IAAIrJ,EAAWv0D,EAASu0D,UAAY,IAChCoE,EAAoBpE,EACxB,GAAIoJ,IAAuB,IAAK,CAe9B,IAAII,EAAiBJ,EAAmB/nG,QAAQ,MAAO,EAAE,EAAEL,MAAM,GAAG,EAEpEojG,EAAoB,IADLpE,EAAS3+F,QAAQ,MAAO,EAAE,EAAEL,MAAM,GAAG,EACjBkI,MAAMsgG,EAAe34H,MAAM,EAAEr3B,KAAK,GAAG,CAC1E,CACA,IAAI2/F,EAAU,CAAC6vD,GAAYD,GAAmBA,EAAgB5vD,SAAW4vD,EAAgB5vD,QAAQtoE,OAAS,EAAIk4H,EAAgB5vD,QAAUwoD,IAAYC,EAAQ,CAC1J5B,SAAUoE,CACZ,CAAC,EAKGqF,EAAkBC,IAAevwD,GAAWA,EAAQjhG,IAAI40D,GAASnzD,OAAOitJ,OAAO,CAAE,EAAE95F,EAAO,CAC5Fi4F,OAAQprJ,OAAOitJ,OAAO,CAAE,EAAEuC,EAAcr8F,EAAMi4F,MAAM,EACpD/E,SAAU6C,GAAU,CAACuG,EAErB1B,EAAUiC,eAAiBjC,EAAUiC,eAAe78F,EAAMkzF,QAAQ,EAAEA,SAAWlzF,EAAMkzF,QAAQ,CAAC,EAC9FyE,aAAc33F,EAAM23F,eAAiB,IAAM2E,EAAqBvG,GAAU,CAACuG,EAE3E1B,EAAUiC,eAAiBjC,EAAUiC,eAAe78F,EAAM23F,YAAY,EAAEzE,SAAWlzF,EAAM23F,YAAY,CAAC,CACvG,EAAC,EAAGwE,EAAeF,EAAiBZ,CAAM,EAK3C,OAAItG,GAAe4H,EACVl2I,EAAAyzI,GAAAnyJ,SAAA,CAAAI,MACE,CACLw2F,SAAUxyE,GAAS,CACjB+mI,SAAU,IACVvgG,OAAQ,GACRwgG,KAAM,GACNpiJ,MAAO,KACP6M,IAAK,SACN,EAAE+gF,CAAQ,EACXm+D,eAAgBrrG,GAAOsrG,GACxB,EAAA90J,SACA00J,CAAe,GAEbA,CACT,CACA,SAASK,KAAwB,CAC/B,IAAI3iG,EAAQ4iG,MACRviG,EAAUi/F,IAAqBt/F,CAAK,EAAIA,EAAM6iG,OAAS,IAAM7iG,EAAM8iG,WAAa9iG,aAAiBn/B,MAAQm/B,EAAMK,QAAU6gG,KAAKC,UAAUnhG,CAAK,EAC7IvjC,EAAQujC,aAAiBn/B,MAAQm/B,EAAMvjC,MAAQ,KAmBnD,OAAOnQ,EAAAkW,GAAA,CAAA50B,UAAAwe,EAAA,MAAAxe,SAAA,kCAAAwe,EAAA,MAAAoC,MACE,CACLu0I,UAAW,QACZ,EAAAn1J,SACAyyD,CAAO,GAAG5jC,EAAQrQ,EAAA,OAAAoC,MArBL,CACd5D,QAAS,SACTy7F,gBAHc,0BAuBEz4G,SACf6uB,EAAS,OAfE,IAeW,GAC3B,CACA,MAAMumI,IAAsB52I,EAAAu2I,IAA6D,IACzF,MAAMM,YAA4B5yJ,WAAgB,CAChDwoD,YAAYlrD,EAAO,CACjB,MAAMA,CAAK,EACX,KAAK+I,MAAQ,CACX4tF,SAAU32F,EAAM22F,SAChB4+D,aAAcv1J,EAAMu1J,aACpBljG,MAAOryD,EAAMqyD,MAEjB,CACA,OAAOmjG,yBAAyBnjG,EAAO,CACrC,MAAO,CACLA,MAAOA,EAEX,CACA,OAAOojG,yBAAyBz1J,EAAO+I,EAAO,CAS5C,OAAIA,EAAM4tF,WAAa32F,EAAM22F,UAAY5tF,EAAMwsJ,eAAiB,QAAUv1J,EAAMu1J,eAAiB,OACxF,CACLljG,MAAOryD,EAAMqyD,MACbskC,SAAU32F,EAAM22F,SAChB4+D,aAAcv1J,EAAMu1J,cAQjB,CACLljG,MAAOryD,EAAMqyD,QAAUj1B,OAAYp9B,EAAMqyD,MAAQtpD,EAAMspD,MACvDskC,SAAU5tF,EAAM4tF,SAChB4+D,aAAcv1J,EAAMu1J,cAAgBxsJ,EAAMwsJ,aAE9C,CACAG,kBAAkBrjG,EAAOsjG,EAAW,CAClCC,QAAQvjG,MAAM,wDAAyDA,EAAOsjG,CAAS,CACzF,CACAriG,QAAS,CACP,OAAO,KAAKvqD,MAAMspD,QAAUj1B,OAAY3e,EAAA0zI,GAAApyJ,SAAA,CAAAI,MAC/B,KAAKH,MAAM61J,aAAY51J,SAAAwe,EAAA6zI,GAAAvyJ,SAAA,CAAAI,MAEvB,KAAK4I,MAAMspD,MAAKpyD,SACb,KAAKD,MAAM81J,SAAS,KAC1B,KAAK91J,MAAMC,QACnB,CACF,CACA,SAAS81J,IAAcznH,EAAM,CAC3B,GAAI,CACFunH,eACA79F,QACA/3D,UACD,EAAGquC,EACA8kH,EAAoB1wJ,aAAiBqvJ,EAAiB,EAI1D,OAAIqB,GAAqBA,EAAkBJ,QAAUI,EAAkB4C,gBAAkBh+F,EAAM41F,MAAMqI,cAAgBj+F,EAAM41F,MAAMsI,iBAC/H9C,EAAkB4C,cAAcG,2BAA6Bn+F,EAAM41F,MAAM7qK,IAEpE07B,EAAA0zI,GAAApyJ,SAAA,CAAAI,MACE01J,EAAY51J,SAClBA,CAAQ,EACb,CACA,SAAS20J,IAAevwD,EAAS8vD,EAAeF,EAAiBZ,EAAQ,CACvE,IAAI+C,EAUJ,GATIjC,IAAkB,SACpBA,EAAgB,IAEdF,IAAoB,SACtBA,EAAkB,MAEhBZ,IAAW,SACbA,EAAS,MAEPhvD,GAAW,KAAM,CACnB,IAAIgyD,EACJ,GAAI,CAACpC,EACH,OAAO,KAET,GAAIA,EAAgB3jG,OAGlB+zC,EAAU4vD,EAAgB5vD,iBAChBgyD,EAAUhD,IAAW,MAAQgD,EAAQC,qBAAuBnC,EAAcp4H,SAAW,GAAK,CAACk4H,EAAgB1M,aAAe0M,EAAgB5vD,QAAQtoE,OAAS,EAOrKsoE,EAAU4vD,EAAgB5vD,YAE1B,QAAO,IAEX,CACA,IAAIswD,EAAkBtwD,EAGlB/zC,GAAU8lG,EAAmBnC,IAAoB,KAAO,OAASmC,EAAiB9lG,OACtF,GAAIA,GAAU,KAAM,CAClB,IAAIimG,EAAa5B,EAAgB6B,UAAU9+K,GAAKA,EAAEk2K,MAAM7qK,KAAOutE,GAAU,KAAO,OAASA,EAAO54E,EAAEk2K,MAAM7qK,EAAE,KAAOq6C,MAAS,EACxHm5H,GAAc,GAAoK5D,GAAiB,EAAK,EAC1MgC,EAAkBA,EAAgBvgG,MAAM,EAAGh4B,KAAK0P,IAAI6oH,EAAgB54H,OAAQw6H,EAAa,CAAC,CAAC,CAC7F,CAIA,IAAIE,EAAiB,GACjBC,EAAgB,GACpB,GAAIzC,GAAmBZ,GAAUA,EAAOiD,oBACtC,QAASr3J,EAAI,EAAGA,EAAI01J,EAAgB54H,OAAQ98B,IAAK,CAC/C,IAAI+4D,EAAQ28F,EAAgB11J,CAAC,EAK7B,IAHI+4D,EAAM41F,MAAM+I,iBAAmB3+F,EAAM41F,MAAMgJ,0BAC7CF,EAAgBz3J,GAEd+4D,EAAM41F,MAAM7qK,GAAI,CAClB,GAAI,CACF8zK,aACAvmG,QACD,EAAG2jG,EACA6C,EAAmB9+F,EAAM41F,MAAMmJ,QAAUF,EAAW7+F,EAAM41F,MAAM7qK,EAAE,IAAMq6C,SAAc,CAACkzB,GAAUA,EAAO0H,EAAM41F,MAAM7qK,EAAE,IAAMq6C,QAChI,GAAI46B,EAAM41F,MAAMoJ,MAAQF,EAAkB,CAIxCL,EAAiB,GACbC,GAAiB,EACnB/B,EAAkBA,EAAgBvgG,MAAM,EAAGsiG,EAAgB,CAAC,EAE5D/B,EAAkB,CAACA,EAAgB,CAAC,CAAC,EAEvC,KACF,CACF,CACF,CAEF,OAAOA,EAAgBsC,YAAY,CAAC7E,EAAQp6F,EAAOj3D,IAAU,CAE3D,IAAIsxD,EACA6kG,EAA8B,GAC9BjB,EAAe,KACfW,EAAyB,KACzB3C,IACF5hG,EAAQ/B,GAAU0H,EAAM41F,MAAM7qK,GAAKutE,EAAO0H,EAAM41F,MAAM7qK,EAAE,EAAIq6C,OAC5D64H,EAAej+F,EAAM41F,MAAMqI,cAAgBZ,IACvCoB,IACEC,EAAgB,GAAK31J,IAAU,GACjCo2J,IAAY,iBAAkB,EAAiF,EAC/GD,EAA8B,GAC9BN,EAAyB,MAChBF,IAAkB31J,IAC3Bm2J,EAA8B,GAC9BN,EAAyB5+F,EAAM41F,MAAMgJ,wBAA0B,QAIrE,IAAIvyD,EAAU8vD,EAAc98H,OAAOs9H,EAAgBvgG,MAAM,EAAGrzD,EAAQ,CAAC,CAAC,EAClEq2J,EAAcA,IAAM,CACtB,IAAIn3J,EACJ,OAAIoyD,EACFpyD,EAAWg2J,EACFiB,EACTj3J,EAAW22J,EACF5+F,EAAM41F,MAAMp7I,UAOrBvS,EAAwByC,EAAmB,cAACs1D,EAAM41F,MAAMp7I,UAAW,IAAI,EAC9DwlD,EAAM41F,MAAMjpJ,QACrB1E,EAAW+3D,EAAM41F,MAAMjpJ,QAEvB1E,EAAWmyJ,EAEN3zI,EAAAs3I,IAAA,CAAA/9F,MACEA,EAAK69F,aACE,CACZzD,SACA/tD,UACAguD,YAAa4B,GAAmB,IACjC,EAAAh0J,SACSA,CAAQ,IAMtB,OAAOg0J,IAAoBj8F,EAAM41F,MAAMsI,eAAiBl+F,EAAM41F,MAAMqI,cAAgBl1J,IAAU,GAAK0d,EAAA62I,IAAA,CAAA3+D,SACvFs9D,EAAgBt9D,SAAQ4+D,aACpBtB,EAAgBsB,aAAYO,UAC/BG,EAAY5jG,MAChBA,EAAKpyD,SACFm3J,EAAa,EAAAvB,aACT,CACZzD,OAAQ,KACR/tD,UACAguD,YAAa,EACf,EACG+E,IAAW,CACjB,EAAE,IAAI,CACT,CACA,IAAIC,GAA8B,SAAUA,EAAgB,CAC1DA,SAAe,WAAgB,aAC/BA,EAAe,eAAoB,iBACnCA,EAAe,kBAAuB,cAC/BA,CACT,EAAEA,IAAkB,EAAE,EAClBC,GAAmC,SAAUA,EAAqB,CACpEA,SAAoB,WAAgB,aACpCA,EAAoB,cAAmB,gBACvCA,EAAoB,cAAmB,gBACvCA,EAAoB,cAAmB,gBACvCA,EAAoB,cAAmB,gBACvCA,EAAoB,mBAAwB,qBAC5CA,EAAoB,WAAgB,aACpCA,EAAoB,eAAoB,iBACxCA,EAAoB,kBAAuB,cAC3CA,EAAoB,WAAgB,aAC7BA,CACT,EAAEA,IAAuB,EAAE,EAI3B,SAASC,IAAqBC,EAAU,CACtC,IAAIC,EAAM/0J,aAAiBqvJ,EAAiB,EAC5C,OAAC0F,GAA6G9E,GAAiB,EAAK,EAC7H8E,CACT,CACA,SAASC,IAAmBF,EAAU,CACpC,IAAIzuJ,EAAQrG,aAAiBsvJ,EAAsB,EACnD,OAACjpJ,GAA+G4pJ,GAAiB,EAAK,EAC/H5pJ,CACT,CACA,SAAS4uJ,IAAgBH,EAAU,CACjC,IAAI5J,EAAQlrJ,aAAiByvJ,EAAY,EACzC,OAACvE,GAA+G+E,GAAiB,EAAK,EAC/H/E,CACT,CAGA,SAASgK,GAAkBJ,EAAU,CACnC,IAAI5J,EAAQ+J,IAAwB,EAChCE,EAAYjK,EAAMvpD,QAAQupD,EAAMvpD,QAAQtoE,OAAS,CAAC,EACtD,OAAC87H,EAAUjK,MAAM7qK,IAA8I4vK,GAAiB,EAAK,EAC9KkF,EAAUjK,MAAM7qK,EACzB,CA8EA,SAASkyK,KAAgB,CACvB,IAAI6C,EACJ,IAAIzlG,EAAQ3vD,aAAiB4vJ,EAAiB,EAC1CvpJ,EAAQ2uJ,IAAmBJ,GAAoBS,aAAa,EAC5DC,EAAUJ,GAAkBN,GAAoBS,aAAa,EAIjE,OAAI1lG,IAAUj1B,OACLi1B,GAIDylG,EAAgB/uJ,EAAMunD,SAAW,KAAO,OAASwnG,EAAcE,CAAO,CAChF,CAsFA,SAAS9E,KAAoB,CAC3B,GAAI,CACF+E,QACF,EAAIV,IAAqBF,GAAea,iBAAiB,EACrDn1K,EAAK60K,GAAkBN,GAAoBY,iBAAiB,EAC5DxE,EAAYhxJ,SAAa,EAAK,EAClCgvB,UAA0B,IAAM,CAC9BgiI,EAAUh7H,QAAU,EACtB,CAAC,EACch2B,cAAkB,SAAUtD,EAAI2zB,EAAS,CAClDA,IAAY,SACdA,EAAU,IAMP2gI,EAAUh7H,UACX,OAAOt5B,GAAO,SAChB64J,EAAOE,SAAS/4J,CAAE,EAElB64J,EAAOE,SAAS/4J,EAAI+kB,GAAS,CAC3Bi0I,YAAar1K,GACZgwC,CAAO,CAAC,EAEf,EAAG,CAACklI,EAAQl1K,CAAE,CAAC,CAEjB,CACA,MAAMs1K,GAAkB,GACxB,SAASlB,IAAYvhJ,EAAK81I,EAAMh5F,EAAS,CACnC,CAACg5F,GAAQ,CAAC2M,GAAgBziJ,CAAG,IAC/ByiJ,GAAgBziJ,CAAG,EAAI,GAG3B,CAUA,SAAS0iJ,IAAyBC,EAAcC,EAAc,CACvDD,GAAgB,MAAgBA,EAAaE,oBAG7CF,GAAgB,KAAO,OAASA,EAAazH,wBAA0B1zH,SAAc,CAACo7H,GAAiBA,EAAa1H,sBAGrH0H,IACEA,EAAaE,kBAGbF,EAAaG,uBAGbH,EAAalC,oBAGbkC,EAAaI,+BAIrB,CAoKA,SAASC,IAAStlD,EAAO,CACvB,GAAI,CACFn0G,KACAmtD,UACAxjD,QACA0pJ,UACD,EAAGl/C,EACHm/C,GAAkB,GAEsDC,GAAiB,EAAK,EAC/F,GAAI,CACFU,SACAL,OAAQkB,CACV,EAAIxxJ,aAAiBuvJ,EAAiB,EAElC,CACF5tD,SACF,EAAI3hG,aAAiByvJ,EAAY,EAC7B,CACFjH,SAAUkG,CACX,EAAG2B,GAAW,EACXoF,EAAWlF,KAIXp9I,EAAOo7I,GAAU7xJ,EAAIq0J,GAA2BpvD,EAASgvD,EAAOvC,oBAAoB,EAAGM,EAAkBqB,IAAa,MAAM,EAC5HqG,EAAWvF,KAAKC,UAAU39I,CAAI,EAClCnT,mBAAgB,IAAMy1J,EAAS5E,KAAKl9H,MAAMyiI,CAAQ,EAAG,CACnDvsG,UACAxjD,QACA0pJ,UACF,CAAC,EAAG,CAAC0F,EAAUW,EAAUrG,EAAUlmG,EAASxjD,CAAK,CAAC,EAC3C,IACT,CAMA,SAASgwJ,IAAO/4J,EAAO,CACrB,OAAO6zJ,IAAU7zJ,EAAME,OAAO,CAChC,CAMA,SAAS84J,GAAM7pG,EAAQ,CAC0LwjG,GAAiB,EAAK,CACvO,CAUA,SAASsG,IAAOnlD,EAAO,CACrB,GAAI,CACFk5C,SAAUkM,EAAe,IACzBj5J,WAAW,KACX02F,SAAUwiE,EACVrE,iBAAiBrrG,GAAOsrG,IACxBnC,YACAI,OAAQoG,EAAa,GACrB/F,QACD,EAAGv/C,EACF4+C,GAAkB,GAAsLC,GAAiB,EAAK,EAIhO,IAAI3F,EAAWkM,EAAa3sG,QAAQ,OAAQ,GAAG,EAC3C8sG,EAAoB32J,UAAc,KAAO,CAC3CsqJ,WACA4F,YACAI,OAAQoG,EACR/F,OAAQlvI,GAAS,CACf2sI,qBAAsB,EACvB,EAAEuC,CAAM,IACP,CAACrG,EAAUqG,EAAQT,EAAWwG,CAAU,CAAC,EACzC,OAAOD,GAAiB,WAC1BA,EAAetN,GAAUsN,CAAY,GAEvC,GAAI,CACFjO,WAAW,IACXvgG,SAAS,GACTwgG,OAAO,GACPpiJ,QAAQ,KACR6M,MAAM,SACP,EAAGujJ,EACAG,EAAkB52J,UAAc,IAAM,CACxC,IAAI62J,EAAmBpM,GAAcjC,EAAU8B,CAAQ,EACvD,OAAIuM,GAAoB,KACf,KAEF,CACL5iE,SAAU,CACRu0D,SAAUqO,EACV5uG,SACAwgG,OACApiJ,QACA6M,KACD,EACDk/I,iBAEJ,EAAG,CAAC9H,EAAU9B,EAAUvgG,EAAQwgG,EAAMpiJ,EAAO6M,EAAKk/I,CAAc,CAAC,EAEjE,OAAIwE,GAAmB,KACd,KAEF76I,EAAAwzI,GAAAlyJ,SAAA,CAAAI,MACEk5J,EAAiBp5J,SAAAwe,EAAAyzI,GAAAnyJ,SAAA,CAAAE,SAEdA,EAAQE,MACXm5J,CAAe,IAE1B,CAOA,SAASE,IAAO/6C,EAAO,CACrB,GAAI,CACFx+G,WACA02F,UACD,EAAG8nB,EACJ,OAAOs1C,IAAU0F,GAAyBx5J,CAAQ,EAAG02F,CAAQ,CAC/D,CAsB4B,IAAI12B,QAAQ,IAAM,EAAE,EAiHhD,SAASw5F,GAAyBx5J,EAAUytJ,EAAY,CAClDA,IAAe,SACjBA,EAAa,IAEf,IAAIZ,EAAS,GACbpqJ,kBAAeg5B,QAAQz7B,EAAU,CAAC0E,EAAS5D,IAAU,CACnD,GAAI,CAAe2B,iBAAqBiC,CAAO,EAG7C,OAEF,IAAI+0J,EAAW,CAAC,GAAGhM,EAAY3sJ,CAAK,EACpC,GAAI4D,EAAQb,OAASpB,WAAgB,CAEnCoqJ,EAAO7vH,KAAK0X,MAAMm4G,EAAQ2M,GAAyB90J,EAAQ3E,MAAMC,SAAUy5J,CAAQ,CAAC,EACpF,MACF,CACE/0J,EAAQb,OAASk1J,IAAmQrG,GAAiB,EAAK,EAC1S,CAAChuJ,EAAQ3E,MAAMe,OAAS,CAAC4D,EAAQ3E,MAAMC,UAA0H0yJ,GAAiB,EAAK,EACzL,IAAI/E,EAAQ,CACV7qK,GAAI4hB,EAAQ3E,MAAMjd,IAAM22K,EAASh1J,KAAK,GAAG,EACzCsrJ,cAAerrJ,EAAQ3E,MAAMgwJ,cAC7BrrJ,QAASA,EAAQ3E,MAAM2E,QACvB6N,UAAW7N,EAAQ3E,MAAMwS,UACzBzR,MAAO4D,EAAQ3E,MAAMe,MACrB8U,KAAMlR,EAAQ3E,MAAM6V,KACpBkhJ,OAAQpyJ,EAAQ3E,MAAM+2J,OACtB9jG,OAAQtuD,EAAQ3E,MAAMizD,OACtBgjG,aAActxJ,EAAQ3E,MAAMi2J,aAC5BC,cAAevxJ,EAAQ3E,MAAMk2J,cAC7ByD,iBAAkBh1J,EAAQ3E,MAAMk2J,eAAiB,MAAQvxJ,EAAQ3E,MAAMi2J,cAAgB,KACvF2D,iBAAkBj1J,EAAQ3E,MAAM45J,iBAChCC,OAAQl1J,EAAQ3E,MAAM65J,OACtB7C,KAAMryJ,EAAQ3E,MAAMg3J,MAElBryJ,EAAQ3E,MAAMC,WAChB2tJ,EAAM3tJ,SAAWw5J,GAAyB90J,EAAQ3E,MAAMC,SAAUy5J,CAAQ,GAE5E5M,EAAO7vH,KAAK2wH,CAAK,CACnB,CAAC,EACMd,CACT,CCv5CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA+BA,SAASrxD,GAA8B/gC,EAAQ8gC,EAAU,CACvD,GAAI9gC,GAAU,KAAM,MAAO,GAC3B,IAAInyD,EAAS,GACTozF,EAAa92F,OAAOo6C,KAAKyb,CAAM,EAC/B9kD,EAAK3W,EACT,IAAKA,EAAI,EAAGA,EAAI08F,EAAW5/D,OAAQ98B,IACjC2W,EAAM+lF,EAAW18F,CAAC,EACdu8F,IAASqB,QAAQjnF,CAAG,GAAK,KAC7BrN,EAAOqN,CAAG,EAAI8kD,EAAO9kD,CAAG,GAE1B,OAAOrN,CACT,CAgBA,SAASuxJ,IAAgBrzJ,EAAO,CAC9B,MAAO,CAAC,EAAEA,EAAM64I,SAAW74I,EAAM44I,QAAU54I,EAAMkhC,SAAWlhC,EAAMszJ,SACpE,CACA,SAASC,IAAuBvzJ,EAAO8B,EAAQ,CAC7C,OAAO9B,EAAM2b,SAAW,IAExB,CAAC7Z,GAAUA,IAAW,UAEtB,CAACuxJ,IAAgBrzJ,CAAK,CAExB,CAsBA,SAASwzJ,GAAmBC,EAAM,CAChC,OAAIA,IAAS,SACXA,EAAO,IAEF,IAAIC,gBAAgB,OAAOD,GAAS,UAAY5vG,MAAMC,QAAQ2vG,CAAI,GAAKA,aAAgBC,gBAAkBD,EAAOr1J,OAAOo6C,KAAKi7G,CAAI,EAAE/tG,OAAO,CAAC0jG,EAAMj6I,IAAQ,CAC7J,IAAIzV,EAAQ+5J,EAAKtkJ,CAAG,EACpB,OAAOi6I,EAAKx4H,OAAOizB,MAAMC,QAAQpqD,CAAK,EAAIA,EAAMiD,IAAIrtB,GAAK,CAAC6/B,EAAK7/B,CAAC,CAAC,EAAI,CAAC,CAAC6/B,EAAKzV,CAAK,CAAC,CAAC,GAClF,EAAE,CAAC,CACR,CACA,SAASi6J,IAA2BC,EAAgBC,EAAqB,CACvE,IAAIC,EAAeN,GAAmBI,CAAc,EACpD,OAAIC,GAMFA,EAAoB5+H,QAAQ,CAACxX,EAAGtO,IAAQ,CACjC2kJ,EAAazvG,IAAIl1C,CAAG,GACvB0kJ,EAAoBE,OAAO5kJ,CAAG,EAAE8lB,QAAQv7B,GAAS,CAC/Co6J,EAAaE,OAAO7kJ,EAAKzV,CAAK,CAChC,CAAC,CAEL,CAAC,EAEIo6J,CACT,CA8FMv/D,UAAY,CAAC,UAAW,WAAY,iBAAkB,UAAW,QAAS,SAAU,KAAM,qBAAsB,gBAAgB,EACpI4c,IAAa,CAAC,eAAgB,gBAAiB,YAAa,MAAO,QAAS,KAAM,iBAAkB,UAAU,EAW1G8iD,IAAuB,IAC7B,GAAI,CACFpvG,OAAOqvG,qBAAuBD,GAChC,MAAY,CACV,CAqFF,MAAME,IAAqCl4J,gBAAoB,CAC7Dm4J,gBAAiB,EACnB,CAAC,EAiCKC,IAAmB,kBACnBC,GAAsBr4J,GAAMo4J,GAAgB,EA6QlD,SAASE,IAAcznD,EAAO,CAC5B,GAAI,CACFy5C,WACA/sJ,WACAozJ,SACA/nG,QACD,EAAGioD,EACA0nD,EAAav4J,WACbu4J,EAAWviI,SAAW,OACxBuiI,EAAWviI,QAAUqyH,IAAqB,CACxCz/F,SACA8gG,SAAU,EACZ,CAAC,GAEH,IAAIG,EAAU0O,EAAWviI,QACrB,CAAC3vB,EAAOmyJ,CAAY,EAAIx4J,WAAe,CACzCuwD,OAAQs5F,EAAQt5F,OAChB0jC,SAAU41D,EAAQ51D,QACpB,CAAC,EACG,CACF8hE,oBACF,EAAIpF,GAAU,GACVtsE,EAAWrkF,EAAiB,YAACy4J,GAAY,CAC3C1C,GAAsBsC,GAAsBA,GAAoB,IAAMG,EAAaC,CAAQ,CAAC,EAAID,EAAaC,CAAQ,CACvH,EAAG,CAACD,EAAczC,CAAkB,CAAC,EACrC/1J,yBAAsB,IAAM6pJ,EAAQ6O,OAAOr0E,CAAQ,EAAG,CAACwlE,EAASxlE,CAAQ,CAAC,EACzErkF,EAAe,UAAC,IAAM24J,IAAgChI,CAAM,EAAG,CAACA,CAAM,CAAC,EAChE50I,EAAAw6I,IAAA,CAAAjM,SACKA,EAAQ/sJ,SACRA,EAAQ02F,SACR5tF,EAAM4tF,SAAQm+D,eACR/rJ,EAAMkqD,OAAM2/F,UACjBrG,EAAO8G,OACVA,CAAM,EAElB,CA8EA,MAAMiI,IAAY,OAAOhwG,OAAW,KAAe,OAAOA,OAAO9zB,SAAa,KAAe,OAAO8zB,OAAO9zB,SAASxkB,cAAkB,IAChIuoJ,IAAqB,gCAIrBC,GAAoB94J,aAAiB,SAAqBgyH,EAAO1yH,EAAK,CAC1E,GAAI,CACA6iE,UACA4tF,WACAgJ,iBACAlvG,UACAxjD,QACAR,SACAnJ,KACAs8J,qBACAC,gBACF,EAAIjnC,EACJ3hH,EAAO0oF,GAA8Bi5B,EAAO15B,GAAS,EACnD,CACFgyD,UACF,EAAItqJ,aAAiBk5J,EAAwB,EAEzCC,EACAC,EAAa,GACjB,GAAI,OAAO18J,GAAO,UAAYm8J,IAAmBj3J,KAAKlF,CAAE,IAEtDy8J,EAAez8J,EAEXk8J,KACF,GAAI,CACF,IAAIS,EAAa,IAAIC,IAAI1wG,OAAOqrC,SAASg2D,IAAI,EACzCsP,EAAY78J,EAAG6vD,WAAW,IAAI,EAAI,IAAI+sG,IAAID,EAAWG,SAAW98J,CAAE,EAAI,IAAI48J,IAAI58J,CAAE,EAChFyW,EAAOs3I,GAAc8O,EAAU/Q,SAAU8B,CAAQ,EACjDiP,EAAUE,SAAWJ,EAAWI,QAAUtmJ,GAAQ,KAEpDzW,EAAKyW,EAAOomJ,EAAUtxG,OAASsxG,EAAU9Q,KAEzC2Q,EAAa,EAEhB,MAAW,CAGZ,CAIJ,IAAInP,EAAO4F,IAAQnzJ,EAAI,CACrBqzJ,UACF,CAAC,EACG2J,EAAkBC,IAAoBj9J,EAAI,CAC5CmtD,UACAxjD,QACAR,SACAmzJ,qBACAjJ,WACAkJ,gBACF,CAAC,EACD,SAASW,EAAY71J,EAAO,CACtBo+D,GAASA,EAAQp+D,CAAK,EACrBA,EAAM45I,kBACT+b,EAAgB31J,CAAK,CAEzB,CACA,OAEEgY,EAAA,QACsC1L,EAAI45I,KAClCkP,GAAgBlP,EAAI9nF,QACjBi3F,GAAcL,EAAiB52F,EAAUy3F,EAAWt6J,IACxDA,EAAGuG,OACAA,CAAM,EAGpB,CAAC,EAOKg0J,GAAuB75J,aAAiB,SAAwBkyH,EAAO5yH,EAAK,CAChF,GAAI,CACA,eAAgBw6J,EAAkB,OAClCxM,gBAAgB,GAChBl9I,UAAW2pJ,EAAgB,GAC3BlwH,MAAM,GACN1rB,MAAO67I,EACPt9J,KACAu8J,iBACA17J,UACF,EAAI20H,EACJ7hH,EAAO0oF,GAA8Bm5B,EAAOhd,GAAU,EACpD/hG,EAAOg9I,GAAgBzzJ,EAAI,CAC7BqzJ,SAAU1/I,EAAK0/I,QACjB,CAAC,EACG97D,EAAWo8D,KACX4J,EAAcj6J,aAAiBk6J,EAA6B,EAC5D,CACFhK,YACA5F,UACF,EAAItqJ,aAAiBk5J,EAAwB,EACzCf,EAAkB8B,GAAe,MAGrCE,IAAuBhnJ,CAAI,GAAK8lJ,IAAmB,GAC/CrL,EAAasC,EAAUiC,eAAiBjC,EAAUiC,eAAeh/I,CAAI,EAAEq1I,SAAWr1I,EAAKq1I,SACvFkG,EAAmBz6D,EAASu0D,SAC5B4R,EAAuBH,GAAeA,EAAYI,YAAcJ,EAAYI,WAAWpmE,SAAWgmE,EAAYI,WAAWpmE,SAASu0D,SAAW,KAC5I8E,IACHoB,EAAmBA,EAAiBx3C,cACpCkjD,EAAuBA,EAAuBA,EAAqBljD,YAAW,EAAK,KACnF02C,EAAaA,EAAW12C,eAEtBkjD,GAAwB9P,IAC1B8P,EAAuB3P,GAAc2P,EAAsB9P,CAAQ,GAAK8P,GAO1E,MAAME,EAAmB1M,IAAe,KAAOA,EAAW2M,SAAS,GAAG,EAAI3M,EAAWv0H,OAAS,EAAIu0H,EAAWv0H,OAC7G,IAAImhI,EAAW9L,IAAqBd,GAAc,CAAC/jH,GAAO6kH,EAAiBniG,WAAWqhG,CAAU,GAAKc,EAAiB+L,OAAOH,CAAgB,IAAM,IAC/II,EAAYN,GAAwB,OAASA,IAAyBxM,GAAc,CAAC/jH,GAAOuwH,EAAqB7tG,WAAWqhG,CAAU,GAAKwM,EAAqBK,OAAO7M,EAAWv0H,MAAM,IAAM,KAC9LshI,EAAc,CAChBH,WACAE,YACAvC,mBAEEyC,EAAcJ,EAAWV,EAAkBp/H,OAC3CtqB,EACA,OAAO2pJ,GAAkB,WAC3B3pJ,EAAY2pJ,EAAcY,CAAW,EAOrCvqJ,EAAY,CAAC2pJ,EAAeS,EAAW,SAAW,KAAME,EAAY,UAAY,KAAMvC,EAAkB,gBAAkB,IAAI,EAAEr2J,OAAOC,OAAO,EAAEC,KAAK,GAAG,EAE1J,IAAImc,EAAQ,OAAO67I,GAAc,WAAaA,EAAUW,CAAW,EAAIX,EACvE,OAAOj+I,EAAA+8I,GAAA,IAAoDzoJ,EAAI,eAC7CuqJ,EAAWxqJ,UAChBA,EAAS9Q,IACfA,EAAG6e,MACDA,EAAKzhB,GACRA,EAAEu8J,eACUA,EAAc17J,SAC5B,OAAOA,GAAa,WAAaA,EAASo9J,CAAW,EAAIp9J,CAAQ,EACvE,CAAC,EA+ED,IAAIo3J,IACH,SAAUA,EAAgB,CACzBA,EAAe,qBAA0B,uBACzCA,EAAe,UAAe,YAC9BA,EAAe,iBAAsB,mBACrCA,EAAe,WAAgB,aAC/BA,EAAe,uBAA4B,wBAC7C,GAAGA,KAAmBA,GAAiB,CAAE,EAAC,EAC1C,IAAIC,IACH,SAAUA,EAAqB,CAC9BA,EAAoB,WAAgB,aACpCA,EAAoB,YAAiB,cACrCA,EAAoB,qBAA0B,sBAChD,GAAGA,KAAwBA,GAAsB,CAAE,EAAC,EAKpD,SAASC,IAAqBC,EAAU,CACtC,IAAIC,EAAM/0J,aAAiB66J,EAAwB,EACnD,OAAC9F,GAA6G9E,GAAiB,EAAK,EAC7H8E,CACT,CAYA,SAAS4E,IAAoBj9J,EAAIozJ,EAAO,CACtC,GAAI,CACFjqJ,SACAgkD,QAASixG,EACTz0J,QACA2yJ,qBACAjJ,WACAkJ,gBACD,EAAGnJ,IAAU,OAAS,GAAKA,EACxB2F,EAAWlF,KACXt8D,EAAWo8D,KACXl9I,EAAOg9I,GAAgBzzJ,EAAI,CAC7BqzJ,UACF,CAAC,EACD,OAAO/vJ,cAAkB+D,GAAS,CAChC,GAAIuzJ,IAAuBvzJ,EAAO8B,CAAM,EAAG,CACzC9B,EAAMm2B,eAAc,EAGpB,IAAI2vB,EAAUixG,IAAgBpgI,OAAYogI,EAAclS,GAAW30D,CAAQ,IAAM20D,GAAWz1I,CAAI,EAChGsiJ,EAAS/4J,EAAI,CACXmtD,UACAxjD,QACA2yJ,qBACAjJ,WACAkJ,gBACF,CAAC,CACH,CACD,EAAE,CAAChlE,EAAUwhE,EAAUtiJ,EAAM2nJ,EAAaz0J,EAAOR,EAAQnJ,EAAIs8J,EAAoBjJ,EAAUkJ,CAAc,CAAC,CAC7G,CAKA,SAAS8B,IAAgBC,EAAa,CAEpC,IAAIC,EAAyBj7J,EAAY,OAACu3J,GAAmByD,CAAW,CAAC,EACrEE,EAAwBl7J,SAAa,EAAK,EAC1Ci0F,EAAWo8D,KACXwH,EAAe73J,UAAc,IAIjC03J,IAA2BzjE,EAAShsC,OAAQizG,EAAsBllI,QAAU,KAAOilI,EAAuBjlI,OAAO,EAAG,CAACi+D,EAAShsC,MAAM,CAAC,EACjIwtG,EAAWlF,KACX4K,EAAkBn7J,cAAkB,CAACo7J,EAAUC,IAAoB,CACrE,MAAMC,EAAkB/D,GAAmB,OAAO6D,GAAa,WAAaA,EAASvD,CAAY,EAAIuD,CAAQ,EAC7GF,EAAsBllI,QAAU,GAChCy/H,EAAS,IAAM6F,EAAiBD,CAAe,CACjD,EAAG,CAAC5F,EAAUoC,CAAY,CAAC,EAC3B,MAAO,CAACA,EAAcsD,CAAe,CACvC,CA2XA,SAAShB,IAAuBz9J,EAAI6+J,EAAM,CACpCA,IAAS,SACXA,EAAO,IAET,IAAIC,EAAYx7J,aAAiBk4J,GAAqB,EACpDsD,GAAa,MAAyOvL,GAAiB,EAAK,EAC9Q,GAAI,CACF3F,UACF,EAAIuK,IAAqBF,GAAewF,sBAAsB,EAC1DhnJ,EAAOg9I,GAAgBzzJ,EAAI,CAC7BqzJ,SAAUwL,EAAKxL,QACjB,CAAC,EACD,GAAI,CAACyL,EAAUrD,gBACb,MAAO,GAET,IAAIsD,EAAchR,GAAc+Q,EAAUE,gBAAgBlT,SAAU8B,CAAQ,GAAKkR,EAAUE,gBAAgBlT,SACvGmT,EAAWlR,GAAc+Q,EAAUI,aAAapT,SAAU8B,CAAQ,GAAKkR,EAAUI,aAAapT,SAclG,OAAOqE,GAAU15I,EAAKq1I,SAAUmT,CAAQ,GAAK,MAAQ9O,GAAU15I,EAAKq1I,SAAUiT,CAAW,GAAK,IAChG,CC76CA,IAAII,IACH,SAAUA,EAAU,CACjBA,EAASA,EAAS,SAAc,CAAC,EAAI,WACrCA,EAASA,EAAS,aAAkB,CAAC,EAAI,eACzCA,EAASA,EAAS,QAAa,CAAC,EAAI,UACpCA,EAASA,EAAS,KAAU,CAAC,EAAI,OACjCA,EAASA,EAAS,MAAW,CAAC,EAAI,QAClCA,EAASA,EAAS,QAAa,CAAC,EAAI,SACxC,GAAGA,KAAaA,GAAW,CAAE,EAAC,EAE9B,SAASvoH,IAAUvgE,EAAG,CAClB,OAAOA,EAAE,WAAaA,EAAE,YAC5B,CACA,SAASygE,GAAazgE,EAAG,CACrB,MAAMuyD,EAAOvyD,GAAM,KAAuB,OAASA,EAAE,KACrD,OAAgBuyD,GAAS,KAA0B,OAASA,EAAK,cAAgBvyD,CACrF,CACA,SAAS+oL,GAAkBC,EAAY,CACnC,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAU,IAAM,qBAC1D,CACA,SAASC,IAAmCC,EAAS,CACjD,OAAIA,EAAQ,SAAS,yBAAyB,GAC1C,CAACA,EAAQ,SAAS,iCAAiC,IACnDA,EAAUA,EAAQ,QAAQ,0BAA2B,wDAAwD,GAE1GA,CACX,CACA,SAASC,IAAsBnkG,EAAM,CACjC,KAAM,CAAE,QAAAkkG,CAAS,EAAGlkG,EACpB,GAAIkkG,EAAQ,MAAM,GAAG,EAAE,OAAS,EAC5B,OAAOA,EACX,MAAME,EAAY,CAAC,UAAW,OAAO,KAAK,UAAUpkG,EAAK,IAAI,CAAC,GAAG,EACjE,OAAIA,EAAK,YAAc,GACnBokG,EAAU,KAAK,OAAO,EAEjBpkG,EAAK,WACVokG,EAAU,KAAK,SAASpkG,EAAK,SAAS,GAAG,EAEzCA,EAAK,cACLokG,EAAU,KAAK,YAAYpkG,EAAK,YAAY,GAAG,EAE/CA,EAAK,MAAM,QACXokG,EAAU,KAAKpkG,EAAK,MAAM,SAAS,EAEhCokG,EAAU,KAAK,GAAG,EAAI,GACjC,CACA,SAASC,GAAoB9/J,EAAG,CAC5B,GAAI,CACA,MAAM+yD,EAAQ/yD,EAAE,OAASA,EAAE,SAC3B,OAAO+yD,EACD2sG,IAAmC,MAAM,KAAK3sG,EAAOgtG,EAAa,EAAE,KAAK,EAAE,CAAC,EAC5E,IACT,MACa,CACV,OAAO,IACV,CACL,CACA,SAASA,GAActkG,EAAM,CACzB,IAAIukG,EACJ,GAAIC,IAAgBxkG,CAAI,EACpB,GAAI,CACAukG,EACIF,GAAoBrkG,EAAK,UAAU,GAC/BmkG,IAAsBnkG,CAAI,CACrC,MACa,CACb,SAEIykG,IAAezkG,CAAI,GAAKA,EAAK,aAAa,SAAS,GAAG,EAC3D,OAAO0kG,IAAgB1kG,EAAK,OAAO,EAEvC,OAAOukG,GAAqBvkG,EAAK,OACrC,CACA,SAAS0kG,IAAgBC,EAAgB,CACrC,MAAMC,EAAQ,uCACd,OAAOD,EAAe,QAAQC,EAAO,QAAQ,CACjD,CACA,SAASJ,IAAgBxkG,EAAM,CAC3B,MAAO,eAAgBA,CAC3B,CACA,SAASykG,IAAezkG,EAAM,CAC1B,MAAO,iBAAkBA,CAC7B,CACA,MAAM6kG,EAAO,CACT,aAAc,CACV,KAAK,UAAY,IAAI,IACrB,KAAK,YAAc,IAAI,OAC1B,CACD,MAAM7pL,EAAG,CACL,IAAIwrB,EACJ,GAAI,CAACxrB,EACD,MAAO,GACX,MAAMsN,GAAMke,EAAK,KAAK,QAAQxrB,CAAC,KAAO,MAAQwrB,IAAO,OAAS,OAASA,EAAG,GAC1E,OAAOle,GAAoC,EAC9C,CACD,QAAQA,EAAI,CACR,OAAO,KAAK,UAAU,IAAIA,CAAE,GAAK,IACpC,CACD,QAAS,CACL,OAAO,MAAM,KAAK,KAAK,UAAU,KAAM,EAC1C,CACD,QAAQtN,EAAG,CACP,OAAO,KAAK,YAAY,IAAIA,CAAC,GAAK,IACrC,CACD,kBAAkBA,EAAG,CACjB,MAAMsN,EAAK,KAAK,MAAMtN,CAAC,EACvB,KAAK,UAAU,OAAOsN,CAAE,EACpBtN,EAAE,YACFA,EAAE,WAAW,QAAS8pL,GAAc,KAAK,kBAAkBA,CAAS,CAAC,CAE5E,CACD,IAAIx8K,EAAI,CACJ,OAAO,KAAK,UAAU,IAAIA,CAAE,CAC/B,CACD,QAAQof,EAAM,CACV,OAAO,KAAK,YAAY,IAAIA,CAAI,CACnC,CACD,IAAI1sB,EAAGq4K,EAAM,CACT,MAAM/qK,EAAK+qK,EAAK,GAChB,KAAK,UAAU,IAAI/qK,EAAItN,CAAC,EACxB,KAAK,YAAY,IAAIA,EAAGq4K,CAAI,CAC/B,CACD,QAAQ/qK,EAAItN,EAAG,CACX,MAAM+pL,EAAU,KAAK,QAAQz8K,CAAE,EAC/B,GAAIy8K,EAAS,CACT,MAAM1R,EAAO,KAAK,YAAY,IAAI0R,CAAO,EACrC1R,GACA,KAAK,YAAY,IAAIr4K,EAAGq4K,CAAI,CACnC,CACD,KAAK,UAAU,IAAI/qK,EAAItN,CAAC,CAC3B,CACD,OAAQ,CACJ,KAAK,UAAY,IAAI,IACrB,KAAK,YAAc,IAAI,OAC1B,CACL,CACA,SAASgqL,KAAe,CACpB,OAAO,IAAIH,EACf,CACA,SAASI,GAAe,CAAE,QAAA/6J,EAAS,iBAAAg7J,EAAkB,QAAAC,EAAS,KAAA97J,EAAM,MAAA3D,EAAO,YAAA0/J,GAAgB,CACvF,IAAIloE,EAAOx3F,GAAS,GACpB,MAAM2/J,EAAah8J,GAAQ81G,GAAY91G,CAAI,EAC3C,OAAI67J,EAAiBC,EAAQ,aAAa,GACrCE,GAAcH,EAAiBG,CAAU,KACtCD,EACAloE,EAAOkoE,EAAYloE,EAAMhzF,CAAO,EAGhCgzF,EAAO,IAAI,OAAOA,EAAK,MAAM,GAG9BA,CACX,CACA,SAASiiB,GAAYmmD,EAAK,CACtB,OAAOA,EAAI,aACf,CACA,MAAMC,GAA0B,qBAChC,SAASC,IAAgBC,EAAQ,CAC7B,MAAMzI,EAAMyI,EAAO,WAAW,IAAI,EAClC,GAAI,CAACzI,EACD,MAAO,GACX,MAAM0I,EAAY,GAClB,QAASlqL,EAAI,EAAGA,EAAIiqL,EAAO,MAAOjqL,GAAKkqL,EACnC,QAASjqL,EAAI,EAAGA,EAAIgqL,EAAO,OAAQhqL,GAAKiqL,EAAW,CAC/C,MAAMC,EAAe3I,EAAI,aACnB4I,EAAuBL,MAA2BI,EAClDA,EAAaJ,EAAuB,EACpCI,EAEN,GADoB,IAAI,YAAYC,EAAqB,KAAK5I,EAAKxhL,EAAGC,EAAG,KAAK,IAAIiqL,EAAWD,EAAO,MAAQjqL,CAAC,EAAG,KAAK,IAAIkqL,EAAWD,EAAO,OAAShqL,CAAC,CAAC,EAAE,KAAK,MAAM,EACnJ,KAAMoqL,GAAUA,IAAU,CAAC,EACvC,MAAO,EACd,CAEL,MAAO,EACX,CACA,SAASC,GAAa57J,EAAS,CAC3B,MAAMb,EAAOa,EAAQ,KACrB,OAAOA,EAAQ,aAAa,qBAAqB,EAC3C,WACAb,EAEM81G,GAAY91G,CAAI,EAClB,IACd,CACA,SAAS08J,GAAqB3qJ,EAAM4qJ,EAAS,CACzC,IAAIx/J,EACJ,IAAIwrJ,EACJ,GAAI,CACAA,EAAM,IAAI,IAAI52I,EAAM4qJ,GAAmD,OAAO,SAAS,IAAI,CAC9F,MACW,CACR,OAAO,IACV,CACD,MAAMpB,EAAQ,sBACRrnG,EAAQy0F,EAAI,SAAS,MAAM4S,CAAK,EACtC,OAAQp+J,EAAK+2D,GAAU,KAA2B,OAASA,EAAM,CAAC,KAAO,MAAQ/2D,IAAO,OAASA,EAAK,IAC1G,CAEA,IAAIy/J,IAAM,EACV,MAAMC,IAAe,IAAI,OAAO,cAAc,EACxCC,GAAe,GACrB,SAAS16E,IAAQ,CACb,OAAOw6E,KACX,CACA,SAASG,IAAgBl8J,EAAS,CAC9B,GAAIA,aAAmB,gBACnB,MAAO,OAEX,MAAMm8J,EAAmBlnD,GAAYj1G,EAAQ,OAAO,EACpD,OAAIg8J,IAAa,KAAKG,CAAgB,EAC3B,MAEJA,CACX,CACA,SAASC,IAActU,EAAK,CACxB,IAAI0P,EAAS,GACb,OAAI1P,EAAI,QAAQ,IAAI,EAAI,GACpB0P,EAAS1P,EAAI,MAAM,GAAG,EAAE,MAAM,EAAG,CAAC,EAAE,KAAK,GAAG,EAG5C0P,EAAS1P,EAAI,MAAM,GAAG,EAAE,CAAC,EAE7B0P,EAASA,EAAO,MAAM,GAAG,EAAE,CAAC,EACrBA,CACX,CACA,IAAI6E,GACAC,GACJ,MAAMC,IAAiB,6CACjBC,IAAqB,sBACrBC,IAAgB,YAChBC,IAAW,wBACjB,SAASC,GAAqB3C,EAAShS,EAAM,CACzC,OAAQgS,GAAW,IAAI,QAAQuC,IAAgB,CAAC/E,EAAQoF,EAAQC,EAAOC,EAAQC,EAAOC,IAAU,CAC5F,MAAMC,EAAWJ,GAASE,GAASC,EAC7BE,EAAaN,GAAUE,GAAU,GACvC,GAAI,CAACG,EACD,OAAOzF,EAEX,GAAIgF,IAAmB,KAAKS,CAAQ,GAAKR,IAAc,KAAKQ,CAAQ,EAChE,MAAO,OAAOC,CAAU,GAAGD,CAAQ,GAAGC,CAAU,IAEpD,GAAIR,IAAS,KAAKO,CAAQ,EACtB,MAAO,OAAOC,CAAU,GAAGD,CAAQ,GAAGC,CAAU,IAEpD,GAAID,EAAS,CAAC,IAAM,IAChB,MAAO,OAAOC,CAAU,GAAGd,IAAcpU,CAAI,EAAIiV,CAAQ,GAAGC,CAAU,IAE1E,MAAM/yI,EAAQ69H,EAAK,MAAM,GAAG,EACtBmV,EAAQF,EAAS,MAAM,GAAG,EAChC9yI,EAAM,IAAG,EACT,UAAWizI,KAAQD,EACXC,IAAS,MAGJA,IAAS,KACdjzI,EAAM,IAAG,EAGTA,EAAM,KAAKizI,CAAI,GAGvB,MAAO,OAAOF,CAAU,GAAG/yI,EAAM,KAAK,GAAG,CAAC,GAAG+yI,CAAU,GAC/D,CAAK,CACL,CACA,MAAMG,IAAoB,qBACpBC,IAA0B,qBAChC,SAASC,IAAwBC,EAAKC,EAAgB,CAClD,GAAIA,EAAe,KAAM,IAAK,GAC1B,OAAOA,EAEX,IAAIC,EAAM,EACV,SAASC,EAAkBC,EAAO,CAC9B,IAAIC,EACJ,MAAMxqG,EAAQuqG,EAAM,KAAKH,EAAe,UAAUC,CAAG,CAAC,EACtD,OAAIrqG,GACAwqG,EAAQxqG,EAAM,CAAC,EACfqqG,GAAOG,EAAM,OACNA,GAEJ,EACV,CACD,MAAM1kG,EAAS,GACf,KACIwkG,EAAkBL,GAAuB,EACrC,EAAAI,GAAOD,EAAe,SAFjB,CAKT,IAAI3V,EAAM6V,EAAkBN,GAAiB,EAC7C,GAAIvV,EAAI,MAAM,EAAE,IAAM,IAClBA,EAAMgW,GAAcN,EAAK1V,EAAI,UAAU,EAAGA,EAAI,OAAS,CAAC,CAAC,EACzD3uF,EAAO,KAAK2uF,CAAG,MAEd,CACD,IAAIiW,EAAiB,GACrBjW,EAAMgW,GAAcN,EAAK1V,CAAG,EAC5B,IAAIkW,EAAW,GACf,OAAa,CACT,MAAM,EAAIP,EAAe,OAAOC,CAAG,EACnC,GAAI,IAAM,GAAI,CACVvkG,EAAO,MAAM2uF,EAAMiW,GAAgB,KAAM,GACzC,KACH,SACSC,EAWF,IAAM,MACNA,EAAW,YAXX,IAAM,IAAK,CACXN,GAAO,EACPvkG,EAAO,MAAM2uF,EAAMiW,GAAgB,KAAM,GACzC,KACH,MACQ,IAAM,MACXC,EAAW,IAQnBD,GAAkB,EAClBL,GAAO,CACV,CACJ,CACJ,CACD,OAAOvkG,EAAO,KAAK,IAAI,CAC3B,CACA,SAAS2kG,GAAcN,EAAKC,EAAgB,CACxC,GAAI,CAACA,GAAkBA,EAAe,KAAI,IAAO,GAC7C,OAAOA,EAEX,MAAM/rL,EAAI8rL,EAAI,cAAc,GAAG,EAC/B,OAAA9rL,EAAE,KAAO+rL,EACF/rL,EAAE,IACb,CACA,SAASusL,IAAarlK,EAAI,CACtB,MAAO,GAAQA,EAAG,UAAY,OAASA,EAAG,gBAC9C,CACA,SAASslK,IAAU,CACf,MAAMxsL,EAAI,SAAS,cAAc,GAAG,EACpC,OAAAA,EAAE,KAAO,GACFA,EAAE,IACb,CACA,SAASysL,GAAmBX,EAAKvC,EAASz6J,EAAMhF,EAAO,CACnD,OAAKA,IAGDgF,IAAS,OACRA,IAAS,QAAU,EAAEy6J,IAAY,OAASz/J,EAAM,CAAC,IAAM,MAGnDgF,IAAS,cAAgBhF,EAAM,CAAC,IAAM,KAGtCgF,IAAS,eACby6J,IAAY,SAAWA,IAAY,MAAQA,IAAY,MANjD6C,GAAcN,EAAKhiK,CAAK,EAS1BgF,IAAS,SACP+8J,IAAwBC,EAAKhiK,CAAK,EAEpCgF,IAAS,QACPm8J,GAAqBnhK,EAAO0iK,GAAO,CAAE,EAEvCjD,IAAY,UAAYz6J,IAAS,OAC/Bs9J,GAAcN,EAAKhiK,CAAK,EAE5BA,EACX,CACA,SAAS4iK,GAAgBnD,EAASz6J,EAAM84G,EAAQ,CAC5C,OAAQ2hD,IAAY,SAAWA,IAAY,UAAYz6J,IAAS,UACpE,CACA,SAAS69J,IAAkBr+J,EAASs+J,EAAYC,EAAe,CAC3D,GAAI,CACA,GAAI,OAAOD,GAAe,UACtB,GAAIt+J,EAAQ,UAAU,SAASs+J,CAAU,EACrC,MAAO,OAIX,SAASE,EAASx+J,EAAQ,UAAU,OAAQw+J,KAAW,CACnD,MAAMrwJ,EAAYnO,EAAQ,UAAUw+J,CAAM,EAC1C,GAAIF,EAAW,KAAKnwJ,CAAS,EACzB,MAAO,EAEd,CAEL,GAAIowJ,EACA,OAAOv+J,EAAQ,QAAQu+J,CAAa,CAE3C,MACS,CACT,CACD,MAAO,EACX,CACA,SAASE,GAAkBjhK,EAAMk9J,EAAOgE,EAAgB,CACpD,GAAI,CAAClhK,EACD,MAAO,GACX,GAAIA,EAAK,WAAaA,EAAK,aACvB,OAAKkhK,EAEED,GAAkBjhK,EAAK,WAAYk9J,EAAOgE,CAAc,EADpD,GAGf,QAASF,EAAShhK,EAAK,UAAU,OAAQghK,KAAW,CAChD,MAAMrwJ,EAAY3Q,EAAK,UAAUghK,CAAM,EACvC,GAAI9D,EAAM,KAAKvsJ,CAAS,EACpB,MAAO,EAEd,CACD,OAAKuwJ,EAEED,GAAkBjhK,EAAK,WAAYk9J,EAAOgE,CAAc,EADpD,EAEf,CACA,SAASC,GAAgBnhK,EAAMohK,EAAeC,EAAkBH,EAAgB,CAC5E,GAAI,CACA,MAAM9lK,EAAK4E,EAAK,WAAaA,EAAK,aAC5BA,EACAA,EAAK,cACX,GAAI5E,IAAO,KACP,MAAO,GACX,GAAI,OAAOgmK,GAAkB,UACzB,GAAIF,GACA,GAAI9lK,EAAG,QAAQ,IAAIgmK,CAAa,EAAE,EAC9B,MAAO,WAGPhmK,EAAG,UAAU,SAASgmK,CAAa,EACnC,MAAO,WAIXH,GAAkB7lK,EAAIgmK,EAAeF,CAAc,EACnD,MAAO,GAEf,GAAIG,GACA,GAAIH,GACA,GAAI9lK,EAAG,QAAQimK,CAAgB,EAC3B,MAAO,WAGPjmK,EAAG,QAAQimK,CAAgB,EAC3B,MAAO,GAGtB,MACS,CACT,CACD,MAAO,EACX,CACA,SAASC,IAAiBC,EAAU98E,EAAU+8E,EAAmB,CAC7D,MAAMjsH,EAAMgsH,EAAS,cACrB,GAAI,CAAChsH,EACD,OAEJ,IAAIksH,EAAQ,GACRC,EACJ,GAAI,CACAA,EAAansH,EAAI,SAAS,UAC7B,MACa,CACV,MACH,CACD,GAAImsH,IAAe,WAAY,CAC3B,MAAM9nG,EAAQ,WAAW,IAAM,CACtB6nG,IACDh9E,IACAg9E,EAAQ,GAEf,EAAED,CAAiB,EACpBD,EAAS,iBAAiB,OAAQ,IAAM,CACpC,aAAa3nG,CAAK,EAClB6nG,EAAQ,GACRh9E,GACZ,CAAS,EACD,MACH,CACD,MAAMk9E,EAAW,cACjB,GAAIpsH,EAAI,SAAS,OAASosH,GACtBJ,EAAS,MAAQI,GACjBJ,EAAS,MAAQ,GACjB,kBAAW98E,EAAU,CAAC,EACf88E,EAAS,iBAAiB,OAAQ98E,CAAQ,EAErD88E,EAAS,iBAAiB,OAAQ98E,CAAQ,CAC9C,CACA,SAASm9E,IAAqBC,EAAMp9E,EAAUq9E,EAAuB,CACjE,IAAIL,EAAQ,GACRM,EACJ,GAAI,CACAA,EAAmBF,EAAK,KAC3B,MACa,CACV,MACH,CACD,GAAIE,EACA,OACJ,MAAMnoG,EAAQ,WAAW,IAAM,CACtB6nG,IACDh9E,IACAg9E,EAAQ,GAEf,EAAEK,CAAqB,EACxBD,EAAK,iBAAiB,OAAQ,IAAM,CAChC,aAAajoG,CAAK,EAClB6nG,EAAQ,GACRh9E,GACR,CAAK,CACL,CACA,SAASu9E,IAAc1uL,EAAGs9C,EAAS,CAC/B,KAAM,CAAE,IAAAovI,EAAK,OAAAiC,EAAQ,WAAAnB,EAAY,cAAAC,EAAe,UAAAmB,EAAW,iBAAAC,EAAkB,iBAAA3E,EAAmB,GAAI,WAAA4E,EAAY,YAAA1E,EAAa,eAAA2E,EAAiB,CAAE,EAAE,aAAAC,EAAc,aAAAC,EAAc,gBAAAC,EAAiB,kBAAAC,EAAoB,EAAQ,EAAG7xI,EACxN8xI,EAASC,IAAU3C,EAAKiC,CAAM,EACpC,OAAQ3uL,EAAE,SAAQ,CACd,KAAKA,EAAE,cACH,OAAIA,EAAE,aAAe,aACV,CACH,KAAM8oL,GAAS,SACf,WAAY,CAAE,EACd,WAAY9oL,EAAE,UAClC,EAGuB,CACH,KAAM8oL,GAAS,SACf,WAAY,CAAE,CAClC,EAEQ,KAAK9oL,EAAE,mBACH,MAAO,CACH,KAAM8oL,GAAS,aACf,KAAM9oL,EAAE,KACR,SAAUA,EAAE,SACZ,SAAUA,EAAE,SACZ,OAAAovL,CAChB,EACQ,KAAKpvL,EAAE,aACH,OAAOsvL,IAAqBtvL,EAAG,CAC3B,IAAA0sL,EACA,WAAAc,EACA,cAAAC,EACA,iBAAAoB,EACA,iBAAA3E,EACA,YAAAE,EACA,eAAA2E,EACA,aAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,OAAAC,CAChB,CAAa,EACL,KAAKpvL,EAAE,UACH,OAAOuvL,IAAkBvvL,EAAG,CACxB,UAAA4uL,EACA,WAAAE,EACA,OAAAM,CAChB,CAAa,EACL,KAAKpvL,EAAE,mBACH,MAAO,CACH,KAAM8oL,GAAS,MACf,YAAa,GACb,OAAAsG,CAChB,EACQ,KAAKpvL,EAAE,aACH,MAAO,CACH,KAAM8oL,GAAS,QACf,YAAa9oL,EAAE,aAAe,GAC9B,OAAAovL,CAChB,EACQ,QACI,MAAO,EACd,CACL,CACA,SAASC,IAAU3C,EAAKiC,EAAQ,CAC5B,GAAI,CAACA,EAAO,QAAQjC,CAAG,EACnB,OACJ,MAAM8C,EAAQb,EAAO,MAAMjC,CAAG,EAC9B,OAAO8C,IAAU,EAAI,OAAYA,CACrC,CACA,SAASD,IAAkBvvL,EAAGs9C,EAAS,CACnC,IAAI9xB,EACJ,KAAM,CAAE,UAAAojK,EAAW,WAAAE,EAAY,OAAAM,CAAM,EAAK9xI,EACpCmyI,EAAgBzvL,EAAE,YAAcA,EAAE,WAAW,QACnD,IAAIqgG,EAAcrgG,EAAE,YACpB,MAAM0vL,EAAUD,IAAkB,QAAU,GAAO,OAC7CE,EAAWF,IAAkB,SAAW,GAAO,OACrD,GAAIC,GAAWrvF,EAAa,CACxB,GAAI,CACIrgG,EAAE,aAAeA,EAAE,iBAEb,GAAAwrB,EAAKxrB,EAAE,WAAW,SAAW,MAAQwrB,IAAO,SAAkBA,EAAG,WACvE60E,EAAcgpF,GAAoBrpL,EAAE,WAAW,KAAK,EAE3D,OACMkpB,EAAK,CACR,QAAQ,KAAK,wDAAwDA,CAAG,GAAIlpB,CAAC,CAChF,CACDqgG,EAAcwrF,GAAqBxrF,EAAa+sF,GAAS,EAC5D,CACD,OAAIuC,IACAtvF,EAAc,sBAEd,CAACqvF,GAAW,CAACC,GAAYtvF,GAAeuuF,IACxCvuF,EAAcyuF,EACRA,EAAWzuF,EAAargG,EAAE,aAAa,EACvCqgG,EAAY,QAAQ,QAAS,GAAG,GAEnC,CACH,KAAMyoF,GAAS,KACf,YAAazoF,GAAe,GAC5B,QAAAqvF,EACA,OAAAN,CACR,CACA,CACA,SAASE,IAAqBtvL,EAAGs9C,EAAS,CACtC,KAAM,CAAE,IAAAovI,EAAK,WAAAc,EAAY,cAAAC,EAAe,iBAAAoB,EAAkB,iBAAA3E,EAAmB,CAAE,EAAE,YAAAE,EAAa,eAAA2E,EAAiB,GAAI,aAAAC,EAAc,aAAAC,EAAc,gBAAAC,EAAiB,kBAAAC,EAAoB,GAAO,OAAAC,CAAS,EAAG9xI,EACjMsyI,EAAYrC,IAAkBvtL,EAAGwtL,EAAYC,CAAa,EAC1DtD,EAAUiB,IAAgBprL,CAAC,EACjC,IAAI8/E,EAAa,GACjB,MAAMnhB,EAAM3+D,EAAE,WAAW,OACzB,QAASwpB,EAAI,EAAGA,EAAIm1C,EAAKn1C,IAAK,CAC1B,MAAMigC,EAAOzpD,EAAE,WAAWwpB,CAAC,EACtB8jK,GAAgBnD,EAAS1gI,EAAK,KAAMA,EAAK,KAAK,IAC/Cq2B,EAAWr2B,EAAK,IAAI,EAAI4jI,GAAmBX,EAAKvC,EAAShmD,GAAY16E,EAAK,IAAI,EAAGA,EAAK,KAAK,EAElG,CACD,GAAI0gI,IAAY,QAAU0E,EAAkB,CACxC,MAAM1uI,EAAa,MAAM,KAAKusI,EAAI,WAAW,EAAE,KAAMnjK,GAC1CA,EAAE,OAASvpB,EAAE,IACvB,EACD,IAAIkpL,EAAU,KACV/oI,IACA+oI,EAAUG,GAAoBlpI,CAAU,GAExC+oI,IACA,OAAOppG,EAAW,IAClB,OAAOA,EAAW,KAClBA,EAAW,SAAW+rG,GAAqB3C,EAAS/oI,EAAW,IAAI,EAE1E,CACD,GAAIgqI,IAAY,SACZnqL,EAAE,OACF,EAAEA,EAAE,WAAaA,EAAE,aAAe,IAAI,KAAM,EAAC,OAAQ,CACrD,MAAMkpL,EAAUG,GAAoBrpL,EAAE,KAAK,EACvCkpL,IACAppG,EAAW,SAAW+rG,GAAqB3C,EAASkE,GAAS,GAEpE,CACD,GAAIjD,IAAY,SAAWA,IAAY,YAAcA,IAAY,SAAU,CACvE,MAAMz/J,EAAQ1qB,EAAE,MACV+sC,EAAU/sC,EAAE,QACd8/E,EAAW,OAAS,SACpBA,EAAW,OAAS,YACpBA,EAAW,OAAS,UACpBA,EAAW,OAAS,UACpBp1D,EACAo1D,EAAW,MAAQmqG,GAAe,CAC9B,QAASjqL,EACT,KAAM8qL,GAAa9qL,CAAC,EACpB,QAAAmqL,EACA,MAAAz/J,EACA,iBAAAw/J,EACA,YAAAE,CAChB,CAAa,EAEIr9I,IACL+yC,EAAW,QAAU/yC,EAE5B,CASD,GARIo9I,IAAY,WACRnqL,EAAE,UAAY,CAACkqL,EAAiB,OAChCpqG,EAAW,SAAW,GAGtB,OAAOA,EAAW,UAGtBqqG,IAAY,UAAY8E,GACxB,GAAIjvL,EAAE,YAAc,KACXwqL,IAAgBxqL,CAAC,IAClB8/E,EAAW,WAAa9/E,EAAE,UAAU+uL,EAAe,KAAMA,EAAe,OAAO,WAG9E,EAAE,cAAe/uL,GAAI,CAC1B,MAAM6vL,EAAgB7vL,EAAE,UAAU+uL,EAAe,KAAMA,EAAe,OAAO,EACvEe,EAAc,SAAS,cAAc,QAAQ,EACnDA,EAAY,MAAQ9vL,EAAE,MACtB8vL,EAAY,OAAS9vL,EAAE,OACvB,MAAM+vL,EAAqBD,EAAY,UAAUf,EAAe,KAAMA,EAAe,OAAO,EACxFc,IAAkBE,IAClBjwG,EAAW,WAAa+vG,EAE/B,EAEL,GAAI1F,IAAY,OAAS6E,EAAc,CAC9BzD,KACDA,GAAgBmB,EAAI,cAAc,QAAQ,EAC1ClB,GAAYD,GAAc,WAAW,IAAI,GAE7C,MAAMyE,EAAQhwL,EACRq8C,EAAW2zI,EAAM,YACvBA,EAAM,YAAc,YACpB,MAAMC,EAAoB,IAAM,CAC5BD,EAAM,oBAAoB,OAAQC,CAAiB,EACnD,GAAI,CACA1E,GAAc,MAAQyE,EAAM,aAC5BzE,GAAc,OAASyE,EAAM,cAC7BxE,GAAU,UAAUwE,EAAO,EAAG,CAAC,EAC/BlwG,EAAW,WAAayrG,GAAc,UAAUwD,EAAe,KAAMA,EAAe,OAAO,CAC9F,OACM7lK,EAAK,CACR,QAAQ,KAAK,yBAAyB8mK,EAAM,UAAU,YAAY9mK,CAAG,EAAE,CAC1E,CACDmzB,EACOyjC,EAAW,YAAczjC,EAC1B2zI,EAAM,gBAAgB,aAAa,CACrD,EACYA,EAAM,UAAYA,EAAM,eAAiB,EACzCC,IAEAD,EAAM,iBAAiB,OAAQC,CAAiB,CACvD,CACD,GAAI9F,IAAY,SAAWA,IAAY,QAAS,CAC5C,MAAM+F,EAAkBpwG,EACxBowG,EAAgB,cAAgBlwL,EAAE,OAC5B,SACA,SACNkwL,EAAgB,oBAAsBlwL,EAAE,YACxCkwL,EAAgB,qBAAuBlwL,EAAE,aACzCkwL,EAAgB,cAAgBlwL,EAAE,MAClCkwL,EAAgB,aAAelwL,EAAE,KACjCkwL,EAAgB,eAAiBlwL,EAAE,MACtC,CASD,GARKmvL,IACGnvL,EAAE,aACF8/E,EAAW,cAAgB9/E,EAAE,YAE7BA,EAAE,YACF8/E,EAAW,aAAe9/E,EAAE,YAGhC4vL,EAAW,CACX,KAAM,CAAE,MAAAt4J,EAAO,OAAAF,CAAQ,EAAGp3B,EAAE,sBAAqB,EACjD8/E,EAAa,CACT,MAAOA,EAAW,MAClB,SAAU,GAAGxoD,CAAK,KAClB,UAAW,GAAGF,CAAM,IAChC,CACK,CACG+yJ,IAAY,UAAY,CAAC+E,EAAgBpvG,EAAW,GAAG,IAClD9/E,EAAE,kBACH8/E,EAAW,OAASA,EAAW,KAEnC,OAAOA,EAAW,KAEtB,IAAIqwG,EACJ,GAAI,CACI,eAAe,IAAIhG,CAAO,IAC1BgG,EAAkB,GACzB,MACS,CACT,CACD,MAAO,CACH,KAAMrH,GAAS,QACf,QAAAqB,EACA,WAAArqG,EACA,WAAY,CAAE,EACd,MAAOqtG,IAAantL,CAAC,GAAK,OAC1B,UAAA4vL,EACA,OAAAR,EACA,SAAUe,CAClB,CACA,CACA,SAASC,GAAcC,EAAW,CAC9B,OAA+BA,GAAc,KAClC,GAGAA,EAAU,aAEzB,CACA,SAASC,IAAgBC,EAAIC,EAAgB,CACzC,GAAIA,EAAe,SAAWD,EAAG,OAASzH,GAAS,QAC/C,MAAO,GAEN,GAAIyH,EAAG,OAASzH,GAAS,QAAS,CACnC,GAAI0H,EAAe,SACdD,EAAG,UAAY,UACXA,EAAG,UAAY,SACXA,EAAG,WAAW,MAAQ,WACnBA,EAAG,WAAW,MAAQ,kBAC1BA,EAAG,WAAW,KAAO,UACxBA,EAAG,UAAY,QACZA,EAAG,WAAW,MAAQ,YACtB,OAAOA,EAAG,WAAW,MAAS,UAC9BxF,GAAqBwF,EAAG,WAAW,IAAI,IAAM,MACrD,MAAO,GAEN,GAAIC,EAAe,cAClBD,EAAG,UAAY,QAAUA,EAAG,WAAW,MAAQ,iBAC5CA,EAAG,UAAY,SACXH,GAAcG,EAAG,WAAW,IAAI,EAAE,MAAM,mCAAmC,GACxEH,GAAcG,EAAG,WAAW,IAAI,IAAM,oBACtCH,GAAcG,EAAG,WAAW,GAAG,IAAM,QACrCH,GAAcG,EAAG,WAAW,GAAG,IAAM,oBACrCH,GAAcG,EAAG,WAAW,GAAG,IAAM,kBACjD,MAAO,GAEN,GAAIA,EAAG,UAAY,OAAQ,CAC5B,GAAIC,EAAe,sBACfJ,GAAcG,EAAG,WAAW,IAAI,EAAE,MAAM,wBAAwB,EAChE,MAAO,GAEN,GAAIC,EAAe,iBACnBJ,GAAcG,EAAG,WAAW,QAAQ,EAAE,MAAM,mBAAmB,GAC5DH,GAAcG,EAAG,WAAW,IAAI,EAAE,MAAM,gBAAgB,GACxDH,GAAcG,EAAG,WAAW,IAAI,IAAM,aAC1C,MAAO,GAEN,GAAIC,EAAe,iBACnBJ,GAAcG,EAAG,WAAW,IAAI,IAAM,UACnCH,GAAcG,EAAG,WAAW,IAAI,IAAM,aACtCH,GAAcG,EAAG,WAAW,IAAI,IAAM,WAC1C,MAAO,GAEN,GAAIC,EAAe,mBACpBD,EAAG,WAAW,YAAY,IAAM,OAChC,MAAO,GAEN,GAAIC,EAAe,qBACnBJ,GAAcG,EAAG,WAAW,IAAI,IAAM,UACnCH,GAAcG,EAAG,WAAW,IAAI,IAAM,aACtCH,GAAcG,EAAG,WAAW,IAAI,IAAM,aACtCH,GAAcG,EAAG,WAAW,IAAI,IAAM,aACtCH,GAAcG,EAAG,WAAW,IAAI,IAAM,UACtCH,GAAcG,EAAG,WAAW,QAAQ,EAAE,MAAM,WAAW,GACvDH,GAAcG,EAAG,WAAW,QAAQ,EAAE,MAAM,WAAW,GAC3D,MAAO,GAEN,GAAIC,EAAe,uBACnBJ,GAAcG,EAAG,WAAW,IAAI,IAAM,4BACnCH,GAAcG,EAAG,WAAW,IAAI,IAAM,uBACtCH,GAAcG,EAAG,WAAW,IAAI,IAAM,cACtCH,GAAcG,EAAG,WAAW,IAAI,IAAM,mBACtCH,GAAcG,EAAG,WAAW,IAAI,IAAM,aACtCH,GAAcG,EAAG,WAAW,IAAI,IAAM,gBACtCH,GAAcG,EAAG,WAAW,IAAI,IAAM,8BAC1C,MAAO,EAEd,CACJ,CACD,MAAO,EACX,CACA,SAASE,GAAoBzwL,EAAGs9C,EAAS,CACrC,KAAM,CAAE,IAAAovI,EAAK,OAAAiC,EAAQ,WAAAnB,EAAY,cAAAC,EAAe,cAAAK,EAAe,iBAAAC,EAAkB,UAAA2C,EAAY,GAAO,iBAAA7B,EAAmB,GAAM,iBAAA3E,EAAmB,GAAI,WAAA4E,EAAY,YAAA1E,EAAa,eAAAoG,EAAgB,eAAAzB,EAAiB,CAAE,EAAE,aAAAC,EAAe,GAAO,aAAAC,EAAe,GAAO,YAAA0B,EAAa,aAAAC,EAAc,kBAAA1C,EAAoB,IAAM,iBAAA2C,EAAkB,sBAAAC,EAAwB,IAAM,gBAAA5B,EAAkB,IAAM,GAAO,kBAAAC,EAAoB,EAAQ,EAAG7xI,EACja,GAAI,CAAE,UAAAsxI,CAAW,EAAGtxI,EAChB,CAAE,mBAAAyzI,EAAqB,EAAM,EAAGzzI,EAChC,CAACsxI,GACD5uL,EAAE,aAEF4uL,EAAYf,GAAgB7tL,EAAG8tL,EAAeC,EADvBa,IAAc,MACyC,GAElF,MAAMoC,EAAkBtC,IAAc1uL,EAAG,CACrC,IAAA0sL,EACA,OAAAiC,EACA,WAAAnB,EACA,cAAAC,EACA,UAAAmB,EACA,iBAAAC,EACA,iBAAA3E,EACA,WAAA4E,EACA,YAAA1E,EACA,eAAA2E,EACA,aAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,kBAAAC,CACR,CAAK,EACD,GAAI,CAAC6B,EACD,eAAQ,KAAKhxL,EAAG,gBAAgB,EACzB,KAEX,IAAIsN,EACAqhL,EAAO,QAAQ3uL,CAAC,EAChBsN,EAAKqhL,EAAO,MAAM3uL,CAAC,EAEdswL,IAAgBU,EAAiBR,CAAc,GACnD,CAACO,GACEC,EAAgB,OAASlI,GAAS,MAClC,CAACkI,EAAgB,SACjB,CAACA,EAAgB,YAAY,QAAQ,cAAe,EAAE,EAAE,OAC5D1jL,EAAK69K,GAGL79K,EAAKmjG,GAAK,EAEd,MAAMwgF,EAAiB,OAAO,OAAOD,EAAiB,CAAE,GAAA1jL,CAAE,CAAE,EAE5D,GADAqhL,EAAO,IAAI3uL,EAAGixL,CAAc,EACxB3jL,IAAO69K,GACP,OAAO,KAEPwF,GACAA,EAAY3wL,CAAC,EAEjB,IAAIkxL,EAAc,CAACR,EACnB,GAAIO,EAAe,OAASnI,GAAS,QAAS,CAC1CoI,EAAcA,GAAe,CAACD,EAAe,UAC7C,OAAOA,EAAe,UACtB,MAAMjI,EAAahpL,EAAE,WACjBgpL,GAAcD,GAAkBC,CAAU,IAC1CiI,EAAe,aAAe,GACrC,CACD,IAAKA,EAAe,OAASnI,GAAS,UAClCmI,EAAe,OAASnI,GAAS,UACjCoI,EAAa,CACTV,EAAe,gBACfS,EAAe,OAASnI,GAAS,SACjCmI,EAAe,UAAY,SAC3BF,EAAqB,IAEzB,MAAMI,EAAgB,CAClB,IAAAzE,EACA,OAAAiC,EACA,WAAAnB,EACA,cAAAC,EACA,UAAAmB,EACA,cAAAd,EACA,iBAAAC,EACA,UAAA2C,EACA,iBAAA7B,EACA,iBAAA3E,EACA,WAAA4E,EACA,YAAA1E,EACA,eAAAoG,EACA,eAAAzB,EACA,aAAAC,EACA,aAAAC,EACA,mBAAA8B,EACA,YAAAJ,EACA,aAAAC,EACA,kBAAA1C,EACA,iBAAA2C,EACA,sBAAAC,EACA,gBAAA5B,CACZ,EACQ,GAAI,EAAA+B,EAAe,OAASnI,GAAS,SACjCmI,EAAe,UAAY,YAC3BA,EAAe,WAAW,QAAU,QAEpC,UAAWG,KAAU,MAAM,KAAKpxL,EAAE,UAAU,EAAG,CAC3C,MAAMqxL,EAAsBZ,GAAoBW,EAAQD,CAAa,EACjEE,GACAJ,EAAe,WAAW,KAAKI,CAAmB,CAEzD,CAEL,GAAI9wH,IAAUvgE,CAAC,GAAKA,EAAE,WAClB,UAAWoxL,KAAU,MAAM,KAAKpxL,EAAE,WAAW,UAAU,EAAG,CACtD,MAAMqxL,EAAsBZ,GAAoBW,EAAQD,CAAa,EACjEE,IACAtI,GAAkB/oL,EAAE,UAAU,IACzBqxL,EAAoB,SAAW,IACpCJ,EAAe,WAAW,KAAKI,CAAmB,EAEzD,CAER,CACD,OAAIrxL,EAAE,YACFygE,GAAazgE,EAAE,UAAU,GACzB+oL,GAAkB/oL,EAAE,UAAU,IAC9BixL,EAAe,SAAW,IAE1BA,EAAe,OAASnI,GAAS,SACjCmI,EAAe,UAAY,UAC3BjD,IAAiBhuL,EAAG,IAAM,CACtB,MAAMsxL,EAAYtxL,EAAE,gBACpB,GAAIsxL,GAAaV,EAAc,CAC3B,MAAMW,EAAuBd,GAAoBa,EAAW,CACxD,IAAKA,EACL,OAAA3C,EACA,WAAAnB,EACA,cAAAC,EACA,UAAAmB,EACA,cAAAd,EACA,iBAAAC,EACA,UAAW,GACX,iBAAAc,EACA,iBAAA3E,EACA,WAAA4E,EACA,YAAA1E,EACA,eAAAoG,EACA,eAAAzB,EACA,aAAAC,EACA,aAAAC,EACA,mBAAA8B,EACA,YAAAJ,EACA,aAAAC,EACA,kBAAA1C,EACA,iBAAA2C,EACA,sBAAAC,EACA,gBAAA5B,CACpB,CAAiB,EACGqC,GACAX,EAAa5wL,EAAGuxL,CAAoB,CAE3C,CACJ,EAAErD,CAAiB,EAEpB+C,EAAe,OAASnI,GAAS,SACjCmI,EAAe,UAAY,QAC3B,OAAOA,EAAe,WAAW,KAAQ,WACxCA,EAAe,WAAW,MAAQ,cAC9BA,EAAe,WAAW,MAAQ,WAC/B,OAAOA,EAAe,WAAW,MAAS,UAC1ClG,GAAqBkG,EAAe,WAAW,IAAI,IAAM,QACjE3C,IAAqBtuL,EAAG,IAAM,CAC1B,GAAI6wL,EAAkB,CAClB,MAAMW,EAAqBf,GAAoBzwL,EAAG,CAC9C,IAAA0sL,EACA,OAAAiC,EACA,WAAAnB,EACA,cAAAC,EACA,UAAAmB,EACA,cAAAd,EACA,iBAAAC,EACA,UAAW,GACX,iBAAAc,EACA,iBAAA3E,EACA,WAAA4E,EACA,YAAA1E,EACA,eAAAoG,EACA,eAAAzB,EACA,aAAAC,EACA,aAAAC,EACA,mBAAA8B,EACA,YAAAJ,EACA,aAAAC,EACA,kBAAA1C,EACA,iBAAA2C,EACA,sBAAAC,EACA,gBAAA5B,CACpB,CAAiB,EACGsC,GACAX,EAAiB7wL,EAAGwxL,CAAkB,CAE7C,CACJ,EAAEV,CAAqB,EAErBG,CACX,CACA,SAASQ,IAASzxL,EAAGs9C,EAAS,CAC1B,KAAM,CAAE,OAAAqxI,EAAS,IAAI9E,GAAU,WAAA2D,EAAa,WAAY,cAAAC,EAAgB,KAAM,cAAAK,EAAgB,UAAW,iBAAAC,EAAmB,KAAM,iBAAAc,EAAmB,GAAM,aAAAG,EAAe,GAAO,aAAAC,EAAe,GAAO,cAAAyC,EAAgB,GAAO,WAAA5C,EAAY,YAAA1E,EAAa,QAAAuH,EAAU,GAAO,eAAA5C,EAAgB,mBAAAgC,EAAoB,YAAAJ,EAAa,aAAAC,EAAc,kBAAA1C,EAAmB,iBAAA2C,EAAkB,sBAAAC,EAAuB,gBAAA5B,EAAkB,IAAM,EAAQ,EAAG5xI,GAAW,GA0Cjb,OAAOmzI,GAAoBzwL,EAAG,CAC1B,IAAKA,EACL,OAAA2uL,EACA,WAAAnB,EACA,cAAAC,EACA,cAAAK,EACA,iBAAAC,EACA,UAAW,GACX,iBAAAc,EACA,iBAlDqB6C,IAAkB,GACrC,CACE,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,SAAU,EACb,EACCA,IAAkB,GACd,CACE,SAAU,EACb,EACCA,EA4BN,WAAA5C,EACA,YAAA1E,EACA,eA7BmBuH,IAAY,IAAQA,IAAY,MAE/C,CACI,OAAQ,GACR,QAAS,GACT,YAAa,GACb,eAAgB,GAChB,qBAAsBA,IAAY,MAClC,eAAgB,GAChB,eAAgB,GAChB,kBAAmB,GACnB,mBAAoB,GACpB,qBAAsB,EACzB,EACHA,IAAY,GACR,CAAE,EACFA,EAcN,eAAA5C,EACA,aAAAC,EACA,aAAAC,EACA,mBAAA8B,EACA,YAAAJ,EACA,aAAAC,EACA,kBAAA1C,EACA,iBAAA2C,EACA,sBAAAC,EACA,gBAAA5B,EACA,kBAAmB,EAC3B,CAAK,CACL,CAEA,SAAS,GAAG7gK,EAAMyrC,EAAIhnC,EAAS,SAAU,CACrC,MAAMwqB,EAAU,CAAE,QAAS,GAAM,QAAS,EAAI,EAC9C,OAAAxqB,EAAO,iBAAiBzE,EAAMyrC,EAAIxc,CAAO,EAClC,IAAMxqB,EAAO,oBAAoBzE,EAAMyrC,EAAIxc,CAAO,CAC7D,CACA,MAAMs0I,GAAiC;AAAA;AAAA,8EAKvC,IAAIC,GAAU,CACV,IAAK,CAAE,EACP,OAAQ,CACJ,eAAQ,MAAMD,EAA8B,EACrC,EACV,EACD,SAAU,CACN,eAAQ,MAAMA,EAA8B,EACrC,IACV,EACD,mBAAoB,CAChB,QAAQ,MAAMA,EAA8B,CAC/C,EACD,KAAM,CACF,eAAQ,MAAMA,EAA8B,EACrC,EACV,EACD,OAAQ,CACJ,QAAQ,MAAMA,EAA8B,CAC/C,CACL,EACI,OAAO,OAAW,KAAe,OAAO,OAAS,OAAO,UACxDC,GAAU,IAAI,MAAMA,GAAS,CACzB,IAAI/+J,EAAQvB,EAAMugK,EAAU,CACxB,OAAIvgK,IAAS,OACT,QAAQ,MAAMqgK,EAA8B,EAEzC,QAAQ,IAAI9+J,EAAQvB,EAAMugK,CAAQ,CAC5C,CACT,CAAK,GAEL,SAASC,GAASxxJ,EAAMomD,EAAMrpC,EAAU,GAAI,CACxC,IAAIuzD,EAAU,KACV5wB,EAAW,EACf,OAAO,YAAanxD,EAAM,CACtB,MAAMkjK,EAAM,KAAK,MACb,CAAC/xG,GAAY3iC,EAAQ,UAAY,KACjC2iC,EAAW+xG,GAEf,MAAMC,EAAYtrG,GAAQqrG,EAAM/xG,GAC1Bx1D,EAAU,KACZwnK,GAAa,GAAKA,EAAYtrG,GAC1BkqB,IACA,aAAaA,CAAO,EACpBA,EAAU,MAEd5wB,EAAW+xG,EACXzxJ,EAAK,MAAM9V,EAASqE,CAAI,GAEnB,CAAC+hF,GAAWvzD,EAAQ,WAAa,KACtCuzD,EAAU,WAAW,IAAM,CACvB5wB,EAAW3iC,EAAQ,UAAY,GAAQ,EAAI,KAAK,MAChDuzD,EAAU,KACVtwE,EAAK,MAAM9V,EAASqE,CAAI,CAC3B,EAAEmjK,CAAS,EAExB,CACA,CACA,SAASC,GAAWp/J,EAAQqN,EAAKx+B,EAAGwwL,EAAWlwH,EAAM,OAAQ,CACzD,MAAMmwH,EAAWnwH,EAAI,OAAO,yBAAyBnvC,EAAQqN,CAAG,EAChE,OAAA8hC,EAAI,OAAO,eAAenvC,EAAQqN,EAAKgyJ,EACjCxwL,EACA,CACE,IAAI+oB,EAAO,CACP,WAAW,IAAM,CACb/oB,EAAE,IAAI,KAAK,KAAM+oB,CAAK,CACzB,EAAE,CAAC,EACA0nK,GAAYA,EAAS,KACrBA,EAAS,IAAI,KAAK,KAAM1nK,CAAK,CAEpC,CACb,CAAS,EACE,IAAMwnK,GAAWp/J,EAAQqN,EAAKiyJ,GAAY,GAAI,EAAI,CAC7D,CACA,SAASC,GAAMptG,EAAQv1D,EAAM4iK,EAAa,CACtC,GAAI,CACA,GAAI,EAAE5iK,KAAQu1D,GACV,MAAO,IAAM,CACzB,EAEQ,MAAMmtG,EAAWntG,EAAOv1D,CAAI,EACtB6iK,EAAUD,EAAYF,CAAQ,EACpC,OAAI,OAAOG,GAAY,aACnBA,EAAQ,UAAYA,EAAQ,WAAa,GACzC,OAAO,iBAAiBA,EAAS,CAC7B,mBAAoB,CAChB,WAAY,GACZ,MAAOH,CACV,CACjB,CAAa,GAELntG,EAAOv1D,CAAI,EAAI6iK,EACR,IAAM,CACTttG,EAAOv1D,CAAI,EAAI0iK,CAC3B,CACK,MACU,CACP,MAAO,IAAM,CACrB,CACK,CACL,CACA,IAAII,GAAe,KAAK,IAClB,iBAAiB,KAAK,KAAK,IAAG,EAAG,SAAU,KAC7CA,GAAe,IAAM,IAAI,KAAM,EAAC,QAAO,GAE3C,SAASC,GAAgBxwH,EAAK,CAC1B,IAAIz2C,EAAI2J,EAAI25C,EAAIG,EAAIC,EAAIC,EACxB,MAAMu9G,EAAMzqH,EAAI,SAChB,MAAO,CACH,KAAMyqH,EAAI,iBACJA,EAAI,iBAAiB,WACrBzqH,EAAI,cAAgB,OAChBA,EAAI,aACHyqH,GAAQ,KAAyB,OAASA,EAAI,gBAAgB,eAC3Dv3J,GAAM3J,EAAKkhK,GAAQ,KAAyB,OAASA,EAAI,QAAU,MAAQlhK,IAAO,OAAS,OAASA,EAAG,iBAAmB,MAAQ2J,IAAO,OAAS,OAASA,EAAG,eAC9J25C,EAAK49G,GAAQ,KAAyB,OAASA,EAAI,QAAU,MAAQ59G,IAAO,OAAS,OAASA,EAAG,aACnG,EACZ,IAAK49G,EAAI,iBACHA,EAAI,iBAAiB,UACrBzqH,EAAI,cAAgB,OAChBA,EAAI,aACHyqH,GAAQ,KAAyB,OAASA,EAAI,gBAAgB,cAC3Dx9G,GAAMD,EAAKy9G,GAAQ,KAAyB,OAASA,EAAI,QAAU,MAAQz9G,IAAO,OAAS,OAASA,EAAG,iBAAmB,MAAQC,IAAO,OAAS,OAASA,EAAG,cAC9JC,EAAKu9G,GAAQ,KAAyB,OAASA,EAAI,QAAU,MAAQv9G,IAAO,OAAS,OAASA,EAAG,YACnG,CACpB,CACA,CACA,SAASujH,IAAkB,CACvB,OAAQ,OAAO,aACV,SAAS,iBAAmB,SAAS,gBAAgB,cACrD,SAAS,MAAQ,SAAS,KAAK,YACxC,CACA,SAASC,IAAiB,CACtB,OAAQ,OAAO,YACV,SAAS,iBAAmB,SAAS,gBAAgB,aACrD,SAAS,MAAQ,SAAS,KAAK,WACxC,CACA,SAASC,GAAqBlmK,EAAM,CAChC,OAAKA,EAGMA,EAAK,WAAaA,EAAK,aAC5BA,EACAA,EAAK,cAJA,IAMf,CACA,SAASmmK,GAAUnmK,EAAM8gK,EAAYC,EAAeG,EAAgB,CAChE,GAAI,CAAClhK,EACD,MAAO,GAEX,MAAM5E,EAAK8qK,GAAqBlmK,CAAI,EACpC,GAAI,CAAC5E,EACD,MAAO,GAEX,GAAI,CACA,GAAI,OAAO0lK,GAAe,UAGtB,GAFI1lK,EAAG,UAAU,SAAS0lK,CAAU,GAEhCI,GAAkB9lK,EAAG,QAAQ,IAAM0lK,CAAU,IAAM,KACnD,MAAO,WAGPG,GAAkB7lK,EAAI0lK,EAAYI,CAAc,EAChD,MAAO,EAElB,MACS,CACT,CACD,MAAI,GAAAH,IACI3lK,EAAG,QAAQ2lK,CAAa,GAExBG,GAAkB9lK,EAAG,QAAQ2lK,CAAa,IAAM,MAI5D,CACA,SAASqF,IAAa9yL,EAAG2uL,EAAQ,CAC7B,OAAOA,EAAO,MAAM3uL,CAAC,IAAM,EAC/B,CACA,SAAS+yL,GAAU/yL,EAAG2uL,EAAQ,CAC1B,OAAOA,EAAO,MAAM3uL,CAAC,IAAMmrL,EAC/B,CACA,SAAS6H,GAAkBlgK,EAAQ67J,EAAQ,CACvC,GAAIluH,GAAa3tC,CAAM,EACnB,MAAO,GAEX,MAAMxlB,EAAKqhL,EAAO,MAAM77J,CAAM,EAC9B,OAAK67J,EAAO,IAAIrhL,CAAE,EAGdwlB,EAAO,YACPA,EAAO,WAAW,WAAaA,EAAO,cAC/B,GAENA,EAAO,WAGLkgK,GAAkBlgK,EAAO,WAAY67J,CAAM,EAFvC,GAPA,EAUf,CACA,SAASsE,GAAoBjiK,EAAO,CAChC,MAAO,EAAQA,EAAM,cACzB,CACA,SAASi1C,IAAShE,EAAM,OAAQ,CACxB,aAAcA,GAAO,CAACA,EAAI,SAAS,UAAU,UAC7CA,EAAI,SAAS,UAAU,QAAU,MAAM,UAClC,SAEL,iBAAkBA,GAAO,CAACA,EAAI,aAAa,UAAU,UACrDA,EAAI,aAAa,UAAU,QAAU,MAAM,UACtC,SAEJ,KAAK,UAAU,WAChB,KAAK,UAAU,SAAW,IAAInzC,IAAS,CACnC,IAAIpC,EAAOoC,EAAK,CAAC,EACjB,GAAI,EAAE,KAAKA,GACP,MAAM,IAAI,UAAU,wBAAwB,EAEhD,EACI,IAAI,OAASpC,EACT,MAAO,SAELA,EAAOA,GAAQA,EAAK,YAC9B,MAAO,EACnB,EAEA,CACA,SAASwmK,GAAmBlzL,EAAG2uL,EAAQ,CACnC,MAAO,GAAQ3uL,EAAE,WAAa,UAAY2uL,EAAO,QAAQ3uL,CAAC,EAC9D,CACA,SAASmzL,GAAuBnzL,EAAG2uL,EAAQ,CACvC,MAAO,GAAQ3uL,EAAE,WAAa,QAC1BA,EAAE,WAAaA,EAAE,cACjBA,EAAE,cACFA,EAAE,aAAa,KAAK,IAAM,cAC1B2uL,EAAO,QAAQ3uL,CAAC,EACxB,CACA,SAASozL,GAAcpzL,EAAG,CACtB,MAAO,GAAQA,GAAM,MAAgCA,EAAE,WAC3D,CACA,MAAMqzL,GAAiB,CACnB,aAAc,CACV,KAAK,GAAK,EACV,KAAK,WAAa,IAAI,QACtB,KAAK,WAAa,IAAI,GACzB,CACD,MAAMlzI,EAAY,CACd,IAAI30B,EACJ,OAAQA,EAAK,KAAK,WAAW,IAAI20B,CAAU,KAAO,MAAQ30B,IAAO,OAASA,EAAK,EAClF,CACD,IAAI20B,EAAY,CACZ,OAAO,KAAK,WAAW,IAAIA,CAAU,CACxC,CACD,IAAIA,EAAY7yC,EAAI,CAChB,GAAI,KAAK,IAAI6yC,CAAU,EACnB,OAAO,KAAK,MAAMA,CAAU,EAChC,IAAImzI,EACJ,OAAIhmL,IAAO,OACPgmL,EAAQ,KAAK,KAGbA,EAAQhmL,EACZ,KAAK,WAAW,IAAI6yC,EAAYmzI,CAAK,EACrC,KAAK,WAAW,IAAIA,EAAOnzI,CAAU,EAC9BmzI,CACV,CACD,SAAShmL,EAAI,CACT,OAAO,KAAK,WAAW,IAAIA,CAAE,GAAK,IACrC,CACD,OAAQ,CACJ,KAAK,WAAa,IAAI,QACtB,KAAK,WAAa,IAAI,IACtB,KAAK,GAAK,CACb,CACD,YAAa,CACT,OAAO,KAAK,IACf,CACL,CACA,SAASimL,GAAcvzL,EAAG,CACtB,IAAIwrB,EAAI2J,EACR,IAAIq+J,EAAa,KACjB,QAAMr+J,GAAM3J,EAAKxrB,EAAE,eAAiB,MAAQwrB,IAAO,OAAS,OAASA,EAAG,KAAKxrB,CAAC,KAAO,MAAQm1B,IAAO,OAAS,OAASA,EAAG,YAAc,KAAK,wBACxIn1B,EAAE,YAAW,EAAG,OAChBwzL,EAAaxzL,EAAE,YAAa,EAAC,MAC1BwzL,CACX,CACA,SAASC,IAAkBzzL,EAAG,CAC1B,IAAI0zL,EAAiB1zL,EACjBwzL,EACJ,KAAQA,EAAaD,GAAcG,CAAc,GAC7CA,EAAiBF,EACrB,OAAOE,CACX,CACA,SAASC,IAAgB3zL,EAAG,CACxB,MAAM0sL,EAAM1sL,EAAE,cACd,GAAI,CAAC0sL,EACD,MAAO,GACX,MAAM8G,EAAaC,IAAkBzzL,CAAC,EACtC,OAAO0sL,EAAI,SAAS8G,CAAU,CAClC,CACA,SAASI,GAAM5zL,EAAG,CACd,MAAM0sL,EAAM1sL,EAAE,cACd,OAAK0sL,EAEEA,EAAI,SAAS1sL,CAAC,GAAK2zL,IAAgB3zL,CAAC,EADhC,EAEf,CAEA,IAAI6zL,IAAgCC,IAClCA,EAAWA,EAAW,iBAAsB,CAAC,EAAI,mBACjDA,EAAWA,EAAW,KAAU,CAAC,EAAI,OACrCA,EAAWA,EAAW,aAAkB,CAAC,EAAI,eAC7CA,EAAWA,EAAW,oBAAyB,CAAC,EAAI,sBACpDA,EAAWA,EAAW,KAAU,CAAC,EAAI,OACrCA,EAAWA,EAAW,OAAY,CAAC,EAAI,SACvCA,EAAWA,EAAW,OAAY,CAAC,EAAI,SAChCA,IACND,IAAe,EAAE,EAChBE,IAAwCC,IAC1CA,EAAmBA,EAAmB,SAAc,CAAC,EAAI,WACzDA,EAAmBA,EAAmB,UAAe,CAAC,EAAI,YAC1DA,EAAmBA,EAAmB,iBAAsB,CAAC,EAAI,mBACjEA,EAAmBA,EAAmB,OAAY,CAAC,EAAI,SACvDA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,MAAW,CAAC,EAAI,QACtDA,EAAmBA,EAAmB,UAAe,CAAC,EAAI,YAC1DA,EAAmBA,EAAmB,iBAAsB,CAAC,EAAI,mBACjEA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,KAAU,EAAE,EAAI,OACtDA,EAAmBA,EAAmB,IAAS,EAAE,EAAI,MACrDA,EAAmBA,EAAmB,KAAU,EAAE,EAAI,OACtDA,EAAmBA,EAAmB,iBAAsB,EAAE,EAAI,mBAClEA,EAAmBA,EAAmB,UAAe,EAAE,EAAI,YAC3DA,EAAmBA,EAAmB,kBAAuB,EAAE,EAAI,oBACnEA,EAAmBA,EAAmB,cAAmB,EAAE,EAAI,gBACxDA,IACND,IAAuB,EAAE,EACxBE,IAAsCC,IACxCA,EAAmBA,EAAmB,QAAa,CAAC,EAAI,UACxDA,EAAmBA,EAAmB,UAAe,CAAC,EAAI,YAC1DA,EAAmBA,EAAmB,MAAW,CAAC,EAAI,QACtDA,EAAmBA,EAAmB,YAAiB,CAAC,EAAI,cAC5DA,EAAmBA,EAAmB,SAAc,CAAC,EAAI,WACzDA,EAAmBA,EAAmB,MAAW,CAAC,EAAI,QACtDA,EAAmBA,EAAmB,KAAU,CAAC,EAAI,OACrDA,EAAmBA,EAAmB,WAAgB,CAAC,EAAI,aAC3DA,EAAmBA,EAAmB,mBAAwB,CAAC,EAAI,qBACnEA,EAAmBA,EAAmB,SAAc,CAAC,EAAI,WACzDA,EAAmBA,EAAmB,YAAiB,EAAE,EAAI,cACtDA,IACND,IAAqB,EAAE,EACtBE,IAAiCC,IACnCA,EAAcA,EAAc,MAAW,CAAC,EAAI,QAC5CA,EAAcA,EAAc,IAAS,CAAC,EAAI,MAC1CA,EAAcA,EAAc,MAAW,CAAC,EAAI,QACrCA,IACND,IAAgB,EAAE,EACjBE,IAAkCC,IACpCA,EAAeA,EAAe,IAAI,EAAI,CAAC,EAAI,KAC3CA,EAAeA,EAAe,MAAW,CAAC,EAAI,QAC9CA,EAAeA,EAAe,OAAY,CAAC,EAAI,SACxCA,IACND,IAAiB,EAAE,EAEtB,SAASE,GAAmBv0L,EAAG,CAC3B,MAAO,SAAUA,CACrB,CACA,MAAMw0L,GAAiB,CACnB,aAAc,CACV,KAAK,OAAS,EACd,KAAK,KAAO,KACZ,KAAK,KAAO,IACf,CACD,IAAI9vI,EAAU,CACV,GAAIA,GAAY,KAAK,OACjB,MAAM,IAAI,MAAM,gCAAgC,EAEpD,IAAIzB,EAAU,KAAK,KACnB,QAAS33B,EAAQ,EAAGA,EAAQo5B,EAAUp5B,IAClC23B,GAAWA,GAAY,KAA6B,OAASA,EAAQ,OAAS,KAElF,OAAOA,CACV,CACD,QAAQjjD,EAAG,CACP,MAAM0sB,EAAO,CACT,MAAO1sB,EACP,SAAU,KACV,KAAM,IAClB,EAEQ,GADAA,EAAE,KAAO0sB,EACL1sB,EAAE,iBAAmBu0L,GAAmBv0L,EAAE,eAAe,EAAG,CAC5D,MAAMijD,EAAUjjD,EAAE,gBAAgB,KAAK,KACvC0sB,EAAK,KAAOu2B,EACZv2B,EAAK,SAAW1sB,EAAE,gBAAgB,KAClCA,EAAE,gBAAgB,KAAK,KAAO0sB,EAC1Bu2B,IACAA,EAAQ,SAAWv2B,EAE1B,SACQ1sB,EAAE,aACPu0L,GAAmBv0L,EAAE,WAAW,GAChCA,EAAE,YAAY,KAAK,SAAU,CAC7B,MAAMijD,EAAUjjD,EAAE,YAAY,KAAK,SACnC0sB,EAAK,SAAWu2B,EAChBv2B,EAAK,KAAO1sB,EAAE,YAAY,KAC1BA,EAAE,YAAY,KAAK,SAAW0sB,EAC1Bu2B,IACAA,EAAQ,KAAOv2B,EAEtB,MAEO,KAAK,OACL,KAAK,KAAK,SAAWA,GAEzBA,EAAK,KAAO,KAAK,KACjB,KAAK,KAAOA,EAEZA,EAAK,OAAS,OACd,KAAK,KAAOA,GAEhB,KAAK,QACR,CACD,WAAW1sB,EAAG,CACV,MAAMijD,EAAUjjD,EAAE,KACb,KAAK,OAGLijD,EAAQ,UAUTA,EAAQ,SAAS,KAAOA,EAAQ,KAC5BA,EAAQ,KACRA,EAAQ,KAAK,SAAWA,EAAQ,SAGhC,KAAK,KAAOA,EAAQ,WAdxB,KAAK,KAAOA,EAAQ,KAChB,KAAK,KACL,KAAK,KAAK,SAAW,KAGrB,KAAK,KAAO,MAYhBjjD,EAAE,MACF,OAAOA,EAAE,KAEb,KAAK,SACR,CACL,CACA,MAAMy0L,GAAU,CAACnnL,EAAIonL,IAAa,GAAGpnL,CAAE,IAAIonL,CAAQ,GACnD,MAAMC,GAAe,CACjB,aAAc,CACV,KAAK,OAAS,GACd,KAAK,OAAS,GACd,KAAK,MAAQ,GACb,KAAK,WAAa,GAClB,KAAK,aAAe,IAAI,QACxB,KAAK,QAAU,GACf,KAAK,WAAa,GAClB,KAAK,SAAW,GAChB,KAAK,SAAW,IAAI,IACpB,KAAK,SAAW,IAAI,IACpB,KAAK,WAAa,IAAI,IACtB,KAAK,iBAAoBlkI,GAAc,CACnCA,EAAU,QAAQ,KAAK,eAAe,EACtC,KAAK,KAAI,CACrB,EACQ,KAAK,KAAO,IAAM,CACd,GAAI,KAAK,QAAU,KAAK,OACpB,OAEJ,MAAMmkI,EAAO,GACPC,EAAW,IAAI,IACfC,EAAU,IAAIN,IACdO,EAAa/0L,GAAM,CACrB,IAAIgyK,EAAKhyK,EACLg1L,EAAS7J,GACb,KAAO6J,IAAW7J,IACdnZ,EAAKA,GAAMA,EAAG,YACdgjB,EAAShjB,GAAM,KAAK,OAAO,MAAMA,CAAE,EAEvC,OAAOgjB,CACvB,EACkBC,EAAWj1L,GAAM,CACnB,GAAI,CAACA,EAAE,YACH,CAAC4zL,GAAM5zL,CAAC,GACRA,EAAE,WAAW,UAAY,WACzB,OAEJ,MAAM00L,EAAWj0H,GAAazgE,EAAE,UAAU,EACpC,KAAK,OAAO,MAAMuzL,GAAcvzL,CAAC,CAAC,EAClC,KAAK,OAAO,MAAMA,EAAE,UAAU,EAC9Bg1L,EAASD,EAAU/0L,CAAC,EAC1B,GAAI00L,IAAa,IAAMM,IAAW,GAC9B,OAAOF,EAAQ,QAAQ90L,CAAC,EAE5B,MAAMuwL,EAAKE,GAAoBzwL,EAAG,CAC9B,IAAK,KAAK,IACV,OAAQ,KAAK,OACb,WAAY,KAAK,WACjB,cAAe,KAAK,cACpB,cAAe,KAAK,cACpB,iBAAkB,KAAK,iBACvB,UAAW,GACX,kBAAmB,GACnB,iBAAkB,KAAK,iBACvB,iBAAkB,KAAK,iBACvB,WAAY,KAAK,WACjB,YAAa,KAAK,YAClB,eAAgB,KAAK,eACrB,eAAgB,KAAK,eACrB,aAAc,KAAK,aACnB,aAAc,KAAK,aACnB,YAAck1L,GAAa,CACnBhC,GAAmBgC,EAAU,KAAK,MAAM,GACxC,KAAK,cAAc,UAAUA,CAAQ,EAErC/B,GAAuB+B,EAAU,KAAK,MAAM,GAC5C,KAAK,kBAAkB,iBAAiBA,CAAQ,EAEhD9B,GAAcpzL,CAAC,GACf,KAAK,iBAAiB,cAAcA,EAAE,WAAY,KAAK,GAAG,CAEjE,EACD,aAAc,CAACm1L,EAAQC,IAAY,CAC/B,KAAK,cAAc,aAAaD,EAAQC,CAAO,EAC/C,KAAK,iBAAiB,oBAAoBD,CAAM,CACnD,EACD,iBAAkB,CAAC5G,EAAM6G,IAAY,CACjC,KAAK,kBAAkB,kBAAkB7G,EAAM6G,CAAO,CACzD,CACrB,CAAiB,EACG7E,IACAqE,EAAK,KAAK,CACN,SAAAF,EACA,OAAAM,EACA,KAAMzE,CAC9B,CAAqB,EACDsE,EAAS,IAAItE,EAAG,EAAE,EAEtC,EACY,KAAO,KAAK,WAAW,QACnB,KAAK,OAAO,kBAAkB,KAAK,WAAW,MAAK,CAAE,EAEzD,UAAWvwL,KAAK,KAAK,SACbq1L,GAAgB,KAAK,QAASr1L,EAAG,KAAK,MAAM,GAC5C,CAAC,KAAK,SAAS,IAAIA,EAAE,UAAU,GAGnCi1L,EAAQj1L,CAAC,EAEb,UAAWA,KAAK,KAAK,SACb,CAACs1L,GAAgB,KAAK,WAAYt1L,CAAC,GACnC,CAACq1L,GAAgB,KAAK,QAASr1L,EAAG,KAAK,MAAM,GAGxCs1L,GAAgB,KAAK,SAAUt1L,CAAC,EAFrCi1L,EAAQj1L,CAAC,EAMT,KAAK,WAAW,IAAIA,CAAC,EAG7B,IAAI24C,EAAY,KAChB,KAAOm8I,EAAQ,QAAQ,CACnB,IAAIpoK,EAAO,KACX,GAAIisB,EAAW,CACX,MAAM+7I,EAAW,KAAK,OAAO,MAAM/7I,EAAU,MAAM,UAAU,EACvDq8I,EAASD,EAAUp8I,EAAU,KAAK,EACpC+7I,IAAa,IAAMM,IAAW,KAC9BtoK,EAAOisB,EAEd,CACD,GAAI,CAACjsB,EAAM,CACP,IAAI6oK,EAAWT,EAAQ,KACvB,KAAOS,GAAU,CACb,MAAMC,EAAQD,EAEd,GADAA,EAAWA,EAAS,SAChBC,EAAO,CACP,MAAMd,EAAW,KAAK,OAAO,MAAMc,EAAM,MAAM,UAAU,EAEzD,GADeT,EAAUS,EAAM,KAAK,IACrB,GACX,SACC,GAAId,IAAa,GAAI,CACtBhoK,EAAO8oK,EACP,KACH,KACI,CACD,MAAMC,EAAgBD,EAAM,MAC5B,GAAIC,EAAc,YACdA,EAAc,WAAW,WACrB,KAAK,uBAAwB,CACjC,MAAMjC,EAAaiC,EAAc,WAC5B,KAEL,GADiB,KAAK,OAAO,MAAMjC,CAAU,IAC5B,GAAI,CACjB9mK,EAAO8oK,EACP,KACH,CACJ,CACJ,CACJ,CACJ,CACJ,CACD,GAAI,CAAC9oK,EAAM,CACP,KAAOooK,EAAQ,MACXA,EAAQ,WAAWA,EAAQ,KAAK,KAAK,EAEzC,KACH,CACDn8I,EAAYjsB,EAAK,SACjBooK,EAAQ,WAAWpoK,EAAK,KAAK,EAC7BuoK,EAAQvoK,EAAK,KAAK,CACrB,CACD,MAAMu+D,EAAU,CACZ,MAAO,KAAK,MACP,IAAKi3B,GAAS,CACf,MAAMliH,EAAIkiH,EAAK,KACf,OAAIliH,EAAE,YACFA,EAAE,WAAW,UAAY,YACzB,KAAK,yBAAyBA,EAAE,UAAU,EAEvC,CACH,GAAI,KAAK,OAAO,MAAMA,CAAC,EACvB,MAAOkiH,EAAK,KACpC,CACA,CAAiB,EACI,OAAQA,GAAS,CAAC2yE,EAAS,IAAI3yE,EAAK,EAAE,CAAC,EACvC,OAAQA,GAAS,KAAK,OAAO,IAAIA,EAAK,EAAE,CAAC,EAC9C,WAAY,KAAK,WACZ,IAAKwzE,GAAc,CACpB,KAAM,CAAE,WAAA51G,CAAY,EAAG41G,EACvB,GAAI,OAAO51G,EAAW,OAAU,SAAU,CACtC,MAAM61G,EAAY,KAAK,UAAUD,EAAU,SAAS,EAC9CE,EAAiB,KAAK,UAAUF,EAAU,gBAAgB,EAC5DC,EAAU,OAAS71G,EAAW,MAAM,SAC/B61G,EAAYC,GAAgB,MAAM,MAAM,EAAE,SAC3C91G,EAAW,MAAM,MAAM,MAAM,EAAE,SAC/BA,EAAW,MAAQ41G,EAAU,UAGxC,CACD,MAAO,CACH,GAAI,KAAK,OAAO,MAAMA,EAAU,IAAI,EACpC,WAAY51G,CACpC,CACA,CAAiB,EACI,OAAQ41G,GAAc,CAACb,EAAS,IAAIa,EAAU,EAAE,CAAC,EACjD,OAAQA,GAAc,KAAK,OAAO,IAAIA,EAAU,EAAE,CAAC,EACxD,QAAS,KAAK,QACd,KAAAd,CAChB,EACgB,CAAC3pG,EAAQ,MAAM,QACf,CAACA,EAAQ,WAAW,QACpB,CAACA,EAAQ,QAAQ,QACjB,CAACA,EAAQ,KAAK,SAGlB,KAAK,MAAQ,GACb,KAAK,WAAa,GAClB,KAAK,aAAe,IAAI,QACxB,KAAK,QAAU,GACf,KAAK,SAAW,IAAI,IACpB,KAAK,SAAW,IAAI,IACpB,KAAK,WAAa,IAAI,IACtB,KAAK,SAAW,GAChB,KAAK,WAAWA,CAAO,EACnC,EACQ,KAAK,yBAA4B4qG,GAAa,CAC1C,IAAIr7J,EAAO,KAAK,aAAa,IAAIq7J,CAAQ,EACpCr7J,IACDA,EAAO,CACH,KAAMq7J,EACN,WAAY,CAAE,EACd,UAAW,CAAE,EACb,iBAAkB,CAAE,CACxC,EACgB,KAAK,WAAW,KAAKr7J,CAAI,EACzB,KAAK,aAAa,IAAIq7J,EAAUr7J,CAAI,GAExCA,EAAK,WAAW,MAAQ,MAAM,KAAKq7J,EAAS,WAAahtJ,GAAOA,EAAG,aAAe,EAAE,EAAE,KAAK,EAAE,CACzG,EACQ,KAAK,gBAAmB5mC,GAAM,CAC1B,GAAI,CAAA8wL,GAAU9wL,EAAE,OAAQ,KAAK,MAAM,EAGnC,OAAQA,EAAE,KAAI,CACV,IAAK,gBAAiB,CAClB,MAAMyoB,EAAQzoB,EAAE,OAAO,YACnB,CAAC4wL,GAAU5wL,EAAE,OAAQ,KAAK,WAAY,KAAK,cAAe,EAAK,GAC/DyoB,IAAUzoB,EAAE,UACZ,KAAK,MAAM,KAAK,CACZ,MAAO4rL,GAAgB5rL,EAAE,OAAQ,KAAK,cAAe,KAAK,iBAAkB,EAAI,GAAKyoB,EAC/E,KAAK,WACD,KAAK,WAAWA,EAAOkoK,GAAqB3wL,EAAE,MAAM,CAAC,EACrDyoB,EAAM,QAAQ,QAAS,GAAG,EAC9BA,EACN,KAAMzoB,EAAE,MACpC,CAAyB,EAEL,KACH,CACD,IAAK,aAAc,CACf,MAAM6wB,EAAS7wB,EAAE,OACjB,IAAI6zL,EAAgB7zL,EAAE,cAClByoB,EAAQzoB,EAAE,OAAO,aAAa6zL,CAAa,EAC/C,GAAIA,IAAkB,QAAS,CAC3B,MAAMznK,EAAOy8J,GAAah4J,CAAM,EAChCpI,EAAQu/J,GAAe,CACnB,QAASn3J,EACT,iBAAkB,KAAK,iBACvB,QAASA,EAAO,QAChB,KAAAzE,EACA,MAAA3D,EACA,YAAa,KAAK,WAC9C,CAAyB,CACJ,CACD,GAAImoK,GAAU5wL,EAAE,OAAQ,KAAK,WAAY,KAAK,cAAe,EAAK,GAC9DyoB,IAAUzoB,EAAE,SACZ,OAEJ,IAAIu4B,EAAO,KAAK,aAAa,IAAIv4B,EAAE,MAAM,EACzC,GAAI6wB,EAAO,UAAY,UACnBgjK,IAAkB,OAClB,CAAC,KAAK,gBAAgBprK,CAAK,EAC3B,GAAI,CAACoI,EAAO,gBACRgjK,EAAgB,aAGhB,QAkBR,GAfKt7J,IACDA,EAAO,CACH,KAAMv4B,EAAE,OACR,WAAY,CAAE,EACd,UAAW,CAAE,EACb,iBAAkB,CAAE,CAChD,EACwB,KAAK,WAAW,KAAKu4B,CAAI,EACzB,KAAK,aAAa,IAAIv4B,EAAE,OAAQu4B,CAAI,GAEpCs7J,IAAkB,QAClBhjK,EAAO,UAAY,UAClB7wB,EAAE,UAAY,IAAI,YAAW,IAAO,YACrC6wB,EAAO,aAAa,sBAAuB,MAAM,EAEjD,CAACw6J,GAAgBx6J,EAAO,QAASgjK,CAAa,IAC9Ct7J,EAAK,WAAWs7J,CAAa,EAAIzI,GAAmB,KAAK,IAAKlpD,GAAYrxG,EAAO,OAAO,EAAGqxG,GAAY2xD,CAAa,EAAGprK,CAAK,EACxHorK,IAAkB,SAAS,CAC3B,GAAI,CAAC,KAAK,cACN,GAAI,CACA,KAAK,cACD,SAAS,eAAe,oBAC/B,MACS,CACN,KAAK,cAAgB,KAAK,GAC7B,CAEL,MAAMC,EAAM,KAAK,cAAc,cAAc,MAAM,EAC/C9zL,EAAE,UACF8zL,EAAI,aAAa,QAAS9zL,EAAE,QAAQ,EAExC,UAAW+zL,KAAS,MAAM,KAAKljK,EAAO,KAAK,EAAG,CAC1C,MAAMspB,EAAWtpB,EAAO,MAAM,iBAAiBkjK,CAAK,EAC9CC,EAAcnjK,EAAO,MAAM,oBAAoBkjK,CAAK,EACtD55I,IAAa25I,EAAI,MAAM,iBAAiBC,CAAK,GAC7CC,IAAgBF,EAAI,MAAM,oBAAoBC,CAAK,EAC/CC,IAAgB,GAChBz7J,EAAK,UAAUw7J,CAAK,EAAI55I,EAGxB5hB,EAAK,UAAUw7J,CAAK,EAAI,CAAC55I,EAAU65I,CAAW,EAIlDz7J,EAAK,iBAAiBw7J,CAAK,EAAI,CAAC55I,EAAU65I,CAAW,CAE5D,CACD,UAAWD,KAAS,MAAM,KAAKD,EAAI,KAAK,EAChCjjK,EAAO,MAAM,iBAAiBkjK,CAAK,IAAM,KACzCx7J,EAAK,UAAUw7J,CAAK,EAAI,GAGnC,CAEL,KACH,CACD,IAAK,YAAa,CACd,GAAInD,GAAU5wL,EAAE,OAAQ,KAAK,WAAY,KAAK,cAAe,EAAI,EAC7D,OACJ,GAAIA,EAAE,OAAO,UAAY,WAAY,CACjC,KAAK,yBAAyBA,EAAE,MAAM,EACtC,MACH,CACDA,EAAE,WAAW,QAASjC,GAAM,KAAK,QAAQA,EAAGiC,EAAE,MAAM,CAAC,EACrDA,EAAE,aAAa,QAASjC,GAAM,CAC1B,MAAMk2L,EAAS,KAAK,OAAO,MAAMl2L,CAAC,EAC5B00L,EAAWj0H,GAAax+D,EAAE,MAAM,EAChC,KAAK,OAAO,MAAMA,EAAE,OAAO,IAAI,EAC/B,KAAK,OAAO,MAAMA,EAAE,MAAM,EAC5B4wL,GAAU5wL,EAAE,OAAQ,KAAK,WAAY,KAAK,cAAe,EAAK,GAC9D8wL,GAAU/yL,EAAG,KAAK,MAAM,GACxB,CAAC8yL,IAAa9yL,EAAG,KAAK,MAAM,IAG5B,KAAK,SAAS,IAAIA,CAAC,GACnBm2L,GAAW,KAAK,SAAUn2L,CAAC,EAC3B,KAAK,WAAW,IAAIA,CAAC,GAEhB,KAAK,SAAS,IAAIiC,EAAE,MAAM,GAAKi0L,IAAW,IAC1ClD,GAAkB/wL,EAAE,OAAQ,KAAK,MAAM,IACvC,KAAK,SAAS,IAAIjC,CAAC,GACxB,KAAK,SAASy0L,GAAQyB,EAAQxB,CAAQ,CAAC,EACvCyB,GAAW,KAAK,SAAUn2L,CAAC,EAG3B,KAAK,QAAQ,KAAK,CACd,SAAA00L,EACA,GAAIwB,EACJ,SAAUz1H,GAAax+D,EAAE,MAAM,GAAK8mL,GAAkB9mL,EAAE,MAAM,EACxD,GACA,MACtC,CAA6B,GAEL,KAAK,WAAW,KAAKjC,CAAC,EAC9C,CAAqB,EACD,KACH,CACJ,CACb,EACQ,KAAK,QAAU,CAACA,EAAG8yB,IAAW,CAC1B,GAAI,MAAK,qBAAqB,cAAc9yB,EAAG,IAAI,GAE/C,OAAK,SAAS,IAAIA,CAAC,GAAK,KAAK,SAAS,IAAIA,CAAC,GAE/C,IAAI,KAAK,OAAO,QAAQA,CAAC,EAAG,CACxB,GAAI+yL,GAAU/yL,EAAG,KAAK,MAAM,EACxB,OAEJ,KAAK,SAAS,IAAIA,CAAC,EACnB,IAAIo2L,EAAW,KACXtjK,GAAU,KAAK,OAAO,QAAQA,CAAM,IACpCsjK,EAAW,KAAK,OAAO,MAAMtjK,CAAM,GAEnCsjK,GAAYA,IAAa,KACzB,KAAK,SAAS3B,GAAQ,KAAK,OAAO,MAAMz0L,CAAC,EAAGo2L,CAAQ,CAAC,EAAI,GAEhE,MAEG,KAAK,SAAS,IAAIp2L,CAAC,EACnB,KAAK,WAAW,OAAOA,CAAC,EAEvB6yL,GAAU7yL,EAAG,KAAK,WAAY,KAAK,cAAe,EAAK,IACxDA,EAAE,WAAW,QAASoxL,GAAW,KAAK,QAAQA,CAAM,CAAC,EACjDgC,GAAcpzL,CAAC,GACfA,EAAE,WAAW,WAAW,QAASoxL,GAAW,CACxC,KAAK,qBAAqB,IAAIA,EAAQ,IAAI,EAC1C,KAAK,QAAQA,EAAQpxL,CAAC,CAC9C,CAAqB,GAGrB,CACK,CACD,KAAKs9C,EAAS,CACV,CACI,aACA,aACA,gBACA,gBACA,mBACA,mBACA,mBACA,aACA,cACA,kBACA,eACA,eACA,iBACA,iBACA,MACA,SACA,gBACA,oBACA,mBACA,gBACA,sBACZ,EAAU,QAASnd,GAAQ,CACf,KAAKA,CAAG,EAAImd,EAAQnd,CAAG,CACnC,CAAS,CACJ,CACD,QAAS,CACL,KAAK,OAAS,GACd,KAAK,cAAc,QACtB,CACD,UAAW,CACP,KAAK,OAAS,GACd,KAAK,cAAc,WACnB,KAAK,KAAI,CACZ,CACD,UAAW,CACP,OAAO,KAAK,MACf,CACD,MAAO,CACH,KAAK,OAAS,GACd,KAAK,cAAc,MACtB,CACD,QAAS,CACL,KAAK,OAAS,GACd,KAAK,cAAc,SACnB,KAAK,KAAI,CACZ,CACD,OAAQ,CACJ,KAAK,iBAAiB,QACtB,KAAK,cAAc,OACtB,CACL,CACA,SAASg2J,GAAWE,EAASr2L,EAAG,CAC5Bq2L,EAAQ,OAAOr2L,CAAC,EAChBA,EAAE,WAAW,QAASoxL,GAAW+E,GAAWE,EAASjF,CAAM,CAAC,CAChE,CACA,SAASiE,GAAgBiB,EAASt2L,EAAG2uL,EAAQ,CACzC,OAAI2H,EAAQ,SAAW,EACZ,GACJC,GAAiBD,EAASt2L,EAAG2uL,CAAM,CAC9C,CACA,SAAS4H,GAAiBD,EAASt2L,EAAG2uL,EAAQ,CAC1C,KAAM,CAAE,WAAA3lI,CAAY,EAAGhpD,EACvB,GAAI,CAACgpD,EACD,MAAO,GAEX,MAAM0rI,EAAW/F,EAAO,MAAM3lI,CAAU,EACxC,OAAIstI,EAAQ,KAAMn2L,GAAMA,EAAE,KAAOu0L,CAAQ,EAC9B,GAEJ6B,GAAiBD,EAASttI,EAAY2lI,CAAM,CACvD,CACA,SAAS2G,GAAgBv+G,EAAK/2E,EAAG,CAC7B,OAAI+2E,EAAI,OAAS,EACN,GACJy/G,GAAiBz/G,EAAK/2E,CAAC,CAClC,CACA,SAASw2L,GAAiBz/G,EAAK/2E,EAAG,CAC9B,KAAM,CAAE,WAAAgpD,CAAY,EAAGhpD,EACvB,OAAKgpD,EAGD+tB,EAAI,IAAI/tB,CAAU,EACX,GAEJwtI,GAAiBz/G,EAAK/tB,CAAU,EAL5B,EAMf,CAEA,IAAIytI,GACJ,SAASC,IAAqB9gJ,EAAS,CACnC6gJ,GAAe7gJ,CACnB,CACA,SAAS+gJ,KAAyB,CAC9BF,GAAe,MACnB,CACA,MAAMG,GAAmBtwL,GAChBmwL,GAGiB,IAAIn5J,IAAS,CAC/B,GAAI,CACA,OAAOh3B,EAAG,GAAGg3B,CAAI,CACpB,OACMs/C,EAAO,CACV,GAAI65G,IAAgBA,GAAa75G,CAAK,IAAM,GACxC,OAEJ,MAAMA,CACT,CACT,EAZet2E,EAgBTuwL,GAAkB,GACxB,SAASC,GAAe9lK,EAAO,CAC3B,GAAI,CACA,GAAI,iBAAkBA,EAAO,CACzB,MAAMoP,EAAOpP,EAAM,eACnB,GAAIoP,EAAK,OACL,OAAOA,EAAK,CAAC,CAEpB,SACQ,SAAUpP,GAASA,EAAM,KAAK,OACnC,OAAOA,EAAM,KAAK,CAAC,CAE1B,MACU,CACV,CACD,OAAOA,GAASA,EAAM,MAC1B,CACA,SAAS+lK,GAAqBz5I,EAAS05I,EAAQ,CAC3C,IAAIxrK,EAAI2J,EACR,MAAM8hK,EAAiB,IAAItC,IAC3BkC,GAAgB,KAAKI,CAAc,EACnCA,EAAe,KAAK35I,CAAO,EAC3B,IAAI45I,EAAuB,OAAO,kBAC9B,OAAO,qBACX,MAAMC,GAAqBhiK,GAAM3J,EAAK,QAAW,KAA4B,OAAS,OAAO,QAAU,MAAQA,IAAO,OAAS,OAASA,EAAG,cAAgB,MAAQ2J,IAAO,OAAS,OAASA,EAAG,KAAK3J,EAAI,kBAAkB,EACtN2rK,GACA,OAAOA,CAAiB,IACxBD,EAAuB,OAAOC,CAAiB,GAEnD,MAAM/zG,EAAW,IAAI8zG,EAAqBN,GAAgBK,EAAe,iBAAiB,KAAKA,CAAc,CAAC,CAAC,EAC/G,OAAA7zG,EAAS,QAAQ4zG,EAAQ,CACrB,WAAY,GACZ,kBAAmB,GACnB,cAAe,GACf,sBAAuB,GACvB,UAAW,GACX,QAAS,EACjB,CAAK,EACM5zG,CACX,CACA,SAASg0G,IAAiB,CAAE,YAAAC,EAAa,SAAAC,EAAU,IAAA5K,EAAK,OAAAiC,CAAM,EAAK,CAC/D,GAAI2I,EAAS,YAAc,GACvB,MAAO,IAAM,CACrB,EAEI,MAAMpwH,EAAY,OAAOowH,EAAS,WAAc,SAAWA,EAAS,UAAY,GAC1EC,EAAoB,OAAOD,EAAS,mBAAsB,SAC1DA,EAAS,kBACT,IACN,IAAIE,EAAY,GACZC,EACJ,MAAMC,EAAY3F,GAAS6E,GAAiB3xG,GAAW,CACnD,MAAM0yG,EAAc,KAAK,IAAG,EAAKF,EACjCJ,EAAYG,EAAU,IAAKv3L,IACvBA,EAAE,YAAc03L,EACT13L,EACV,EAAGglF,CAAM,EACVuyG,EAAY,GACZC,EAAe,IACvB,CAAK,EAAGF,CAAiB,EACfK,EAAiBhB,GAAgB7E,GAAS6E,GAAiBiB,GAAQ,CACrE,MAAM/kK,EAASgkK,GAAee,CAAG,EAC3B,CAAE,QAAA7yI,EAAS,QAAAC,GAAYguI,GAAoB4E,CAAG,EAC9CA,EAAI,eAAe,CAAC,EACpBA,EACDJ,IACDA,EAAejF,GAAY,GAE/BgF,EAAU,KAAK,CACX,EAAGxyI,EACH,EAAGC,EACH,GAAI0pI,EAAO,MAAM77J,CAAM,EACvB,WAAY0/J,GAAY,EAAKiF,CACzC,CAAS,EACDC,EAAU,OAAO,UAAc,KAAeG,aAAe,UACvD9D,GAAoB,KACpB8D,aAAe,WACX9D,GAAoB,UACpBA,GAAoB,SAAS,CAC1C,GAAG7sH,EAAW,CACX,SAAU,EACb,EAAC,EACI4wH,EAAW,CACb,GAAG,YAAaF,EAAgBlL,CAAG,EACnC,GAAG,YAAakL,EAAgBlL,CAAG,EACnC,GAAG,OAAQkL,EAAgBlL,CAAG,CACtC,EACI,OAAOkK,GAAgB,IAAM,CACzBkB,EAAS,QAASh2L,GAAMA,EAAG,EACnC,CAAK,CACL,CACA,SAASi2L,IAA6B,CAAE,mBAAAC,EAAoB,IAAAtL,EAAK,OAAAiC,EAAQ,WAAAnB,EAAY,cAAAC,EAAe,SAAA6J,GAAa,CAC7G,GAAIA,EAAS,mBAAqB,GAC9B,MAAO,IAAM,CACrB,EAEI,MAAMW,EAAaX,EAAS,mBAAqB,IAC7CA,EAAS,mBAAqB,OAC5B,CAAE,EACFA,EAAS,iBACTQ,EAAW,GACjB,IAAII,EAAqB,KACzB,MAAMC,EAAcC,GACRpnK,GAAU,CACd,MAAM8B,EAASgkK,GAAe9lK,CAAK,EACnC,GAAI6hK,GAAU//J,EAAQ06J,EAAYC,EAAe,EAAI,EACjD,OAEJ,IAAI/f,EAAc,KACd2qB,EAAeD,EACnB,GAAI,gBAAiBpnK,EAAO,CACxB,OAAQA,EAAM,YAAW,CACrB,IAAK,QACD08I,EAAcymB,GAAa,MAC3B,MACJ,IAAK,QACDzmB,EAAcymB,GAAa,MAC3B,MACJ,IAAK,MACDzmB,EAAcymB,GAAa,IAC3B,KACP,CACGzmB,IAAgBymB,GAAa,MACzBF,GAAkBmE,CAAQ,IAAMnE,GAAkB,UAClDoE,EAAe,aAEVpE,GAAkBmE,CAAQ,IAAMnE,GAAkB,UACvDoE,EAAe,YAGElE,GAAa,GACzC,MACQlB,GAAoBjiK,CAAK,IAC9B08I,EAAcymB,GAAa,OAE3BzmB,IAAgB,MAChBwqB,EAAqBxqB,GAChB2qB,EAAa,WAAW,OAAO,GAChC3qB,IAAgBymB,GAAa,OAC5BkE,EAAa,WAAW,OAAO,GAC5B3qB,IAAgBymB,GAAa,SACjCzmB,EAAc,OAGbumB,GAAkBmE,CAAQ,IAAMnE,GAAkB,QACvDvmB,EAAcwqB,EACdA,EAAqB,MAEzB,MAAMh3L,EAAI+xL,GAAoBjiK,CAAK,EAAIA,EAAM,eAAe,CAAC,EAAIA,EACjE,GAAI,CAAC9vB,EACD,OAEJ,MAAMoM,EAAKqhL,EAAO,MAAM77J,CAAM,EACxB,CAAE,QAAAkyB,EAAS,QAAAC,CAAS,EAAG/jD,EAC7B01L,GAAgBoB,CAAkB,EAAE,OAAO,OAAO,CAAE,KAAM/D,GAAkBoE,CAAY,EAAG,GAAA/qL,EAAI,EAAG03C,EAAS,EAAGC,CAAS,EAAGyoH,IAAgB,MAAQ,CAAE,YAAAA,CAAa,EAAE,CAC/K,EAEI,cAAO,KAAKumB,EAAiB,EACxB,OAAQ9zJ,GAAQ,OAAO,MAAM,OAAOA,CAAG,CAAC,GACzC,CAACA,EAAI,SAAS,WAAW,GACzB83J,EAAW93J,CAAG,IAAM,EAAK,EACxB,QAASi4J,GAAa,CACvB,IAAIj3D,EAAYgD,GAAYi0D,CAAQ,EACpC,MAAMxiJ,EAAUuiJ,EAAWC,CAAQ,EACnC,GAAI,OAAO,aACP,OAAQnE,GAAkBmE,CAAQ,EAAC,CAC/B,KAAKnE,GAAkB,UACvB,KAAKA,GAAkB,QACnB9yD,EAAYA,EAAU,QAAQ,QAAS,SAAS,EAChD,MACJ,KAAK8yD,GAAkB,WACvB,KAAKA,GAAkB,SACnB,MACP,CAEL6D,EAAS,KAAK,GAAG32D,EAAWvrF,EAAS82I,CAAG,CAAC,CACjD,CAAK,EACMkK,GAAgB,IAAM,CACzBkB,EAAS,QAASh2L,GAAMA,EAAG,EACnC,CAAK,CACL,CACA,SAASw2L,GAAmB,CAAE,SAAAC,EAAU,IAAA7L,EAAK,OAAAiC,EAAQ,WAAAnB,EAAY,cAAAC,EAAe,SAAA6J,GAAa,CACzF,MAAMM,EAAiBhB,GAAgB7E,GAAS6E,GAAiBiB,GAAQ,CACrE,MAAM/kK,EAASgkK,GAAee,CAAG,EACjC,GAAI,CAAC/kK,GACD+/J,GAAU//J,EAAQ06J,EAAYC,EAAe,EAAI,EACjD,OAEJ,MAAMngL,EAAKqhL,EAAO,MAAM77J,CAAM,EAC9B,GAAIA,IAAW45J,GAAOA,EAAI,YAAa,CACnC,MAAM8L,EAAgB/F,GAAgB/F,EAAI,WAAW,EACrD6L,EAAS,CACL,GAAAjrL,EACA,EAAGkrL,EAAc,KACjB,EAAGA,EAAc,GACjC,CAAa,CACJ,MAEGD,EAAS,CACL,GAAAjrL,EACA,EAAGwlB,EAAO,WACV,EAAGA,EAAO,SAC1B,CAAa,CAER,GAAGwkK,EAAS,QAAU,GAAG,CAAC,EAC3B,OAAO,GAAG,SAAUM,EAAgBlL,CAAG,CAC3C,CACA,SAAS+L,IAA2B,CAAE,iBAAAC,GAAoB,CAAE,IAAAz2H,CAAG,EAAI,CAC/D,IAAI02H,EAAQ,GACRC,EAAQ,GACZ,MAAMC,EAAkBjC,GAAgB7E,GAAS6E,GAAgB,IAAM,CACnE,MAAMx/J,EAASs7J,KACTp7J,EAAQq7J,MACVgG,IAAUvhK,GAAUwhK,IAAUthK,KAC9BohK,EAAiB,CACb,MAAO,OAAOphK,CAAK,EACnB,OAAQ,OAAOF,CAAM,CACrC,CAAa,EACDuhK,EAAQvhK,EACRwhK,EAAQthK,EAEpB,CAAK,EAAG,GAAG,CAAC,EACR,OAAO,GAAG,SAAUuhK,EAAiB52H,CAAG,CAC5C,CACA,MAAM62H,IAAa,CAAC,QAAS,WAAY,QAAQ,EAC3CC,GAAoB,IAAI,QAC9B,SAASC,IAAkB,CAAE,QAAAC,EAAS,IAAAvM,EAAK,OAAAiC,EAAQ,WAAAnB,EAAY,cAAAC,EAAe,YAAAyL,EAAa,eAAAC,EAAgB,iBAAAjP,EAAkB,YAAAE,EAAa,SAAAkN,EAAU,qBAAA8B,CAAoB,EAAK,CACzK,SAASC,EAAaroK,EAAO,CACzB,IAAI8B,EAASgkK,GAAe9lK,CAAK,EACjC,MAAMsoK,EAAgBtoK,EAAM,UACtBm5J,EAAUr3J,GAAUA,EAAO,QAUjC,GATIA,GAAUq3J,IAAY,WACtBr3J,EAASA,EAAO,eAEhB,CAACA,GACD,CAACq3J,GACD2O,IAAW,QAAQ3O,CAAO,EAAI,GAC9B0I,GAAU//J,EAAQ06J,EAAYC,EAAe,EAAI,GAGjD36J,EAAO,UAAU,SAASomK,CAAW,GACpCC,GAAkBrmK,EAAO,QAAQqmK,CAAc,EAChD,OAEJ,IAAIj3E,EAAOpvF,EAAO,MACdymK,EAAY,GAChB,MAAMlrK,EAAOy8J,GAAah4J,CAAM,GAAK,GACjCzE,IAAS,SAAWA,IAAS,WAC7BkrK,EAAYzmK,EAAO,SAEdo3J,EAAiBC,EAAQ,aAAa,GAC3CD,EAAiB77J,CAAI,KACrB6zF,EAAO+nE,GAAe,CAClB,QAASn3J,EACT,iBAAAo3J,EACA,QAAAC,EACA,KAAA97J,EACA,MAAO6zF,EACP,YAAAkoE,CAChB,CAAa,GAELoP,EAAY1mK,EAAQsmK,EACd,CAAE,KAAAl3E,EAAM,UAAAq3E,EAAW,cAAAD,CAAe,EAClC,CAAE,KAAAp3E,EAAM,UAAAq3E,CAAS,CAAE,EACzB,MAAM7pK,EAAOoD,EAAO,KAChBzE,IAAS,SAAWqB,GAAQ6pK,GAC5B7M,EACK,iBAAiB,6BAA6Bh9J,CAAI,IAAI,EACtD,QAAS5H,GAAO,CACjB,GAAIA,IAAOgL,EAAQ,CACf,MAAMovF,EAAOp6F,EAAG,MAChB0xK,EAAY1xK,EAAIsxK,EACV,CAAE,KAAAl3E,EAAM,UAAW,CAACq3E,EAAW,cAAe,EAAO,EACrD,CAAE,KAAAr3E,EAAM,UAAW,CAACq3E,CAAW,EACxC,CACjB,CAAa,CAER,CACD,SAASC,EAAY1mK,EAAQxyB,EAAG,CAC5B,MAAMm5L,EAAiBV,GAAkB,IAAIjmK,CAAM,EACnD,GAAI,CAAC2mK,GACDA,EAAe,OAASn5L,EAAE,MAC1Bm5L,EAAe,YAAcn5L,EAAE,UAAW,CAC1Cy4L,GAAkB,IAAIjmK,EAAQxyB,CAAC,EAC/B,MAAMgN,EAAKqhL,EAAO,MAAM77J,CAAM,EAC9B8jK,GAAgBqC,CAAO,EAAE,OAAO,OAAO,OAAO,OAAO,GAAI34L,CAAC,EAAG,CAAE,GAAAgN,CAAE,CAAE,CAAC,CACvE,CACJ,CAED,MAAMwqL,GADSR,EAAS,QAAU,OAAS,CAAC,QAAQ,EAAI,CAAC,QAAS,QAAQ,GAClD,IAAKn2D,GAAc,GAAGA,EAAWy1D,GAAgByC,CAAY,EAAG3M,CAAG,CAAC,EACtFgN,EAAgBhN,EAAI,YAC1B,GAAI,CAACgN,EACD,MAAO,IAAM,CACT5B,EAAS,QAASh2L,GAAMA,EAAG,EACvC,EAEI,MAAM63L,EAAqBD,EAAc,OAAO,yBAAyBA,EAAc,iBAAiB,UAAW,OAAO,EACpHE,EAAiB,CACnB,CAACF,EAAc,iBAAiB,UAAW,OAAO,EAClD,CAACA,EAAc,iBAAiB,UAAW,SAAS,EACpD,CAACA,EAAc,kBAAkB,UAAW,OAAO,EACnD,CAACA,EAAc,oBAAoB,UAAW,OAAO,EACrD,CAACA,EAAc,kBAAkB,UAAW,eAAe,EAC3D,CAACA,EAAc,kBAAkB,UAAW,UAAU,CAC9D,EACI,OAAIC,GAAsBA,EAAmB,KACzC7B,EAAS,KAAK,GAAG8B,EAAe,IAAK35L,GAAMiyL,GAAWjyL,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAG,CAC9D,KAAM,CACF22L,GAAgByC,CAAY,EAAE,CAC1B,OAAQ,KACR,UAAW,EAC/B,CAAiB,CACJ,CACb,EAAW,GAAOK,CAAa,CAAC,CAAC,EAEtB9C,GAAgB,IAAM,CACzBkB,EAAS,QAASh2L,GAAMA,EAAG,EACnC,CAAK,CACL,CACA,SAAS+3L,GAA0B70G,EAAM,CACrC,MAAMwyG,EAAY,GAClB,SAASsC,EAAQC,EAAWnN,EAAK,CAC7B,GAAKoN,GAAiB,iBAAiB,GACnCD,EAAU,sBAAsB,iBAC/BC,GAAiB,cAAc,GAC5BD,EAAU,sBAAsB,cACnCC,GAAiB,iBAAiB,GAC/BD,EAAU,sBAAsB,iBACnCC,GAAiB,kBAAkB,GAChCD,EAAU,sBAAsB,iBAAmB,CAEvD,MAAMzuK,EADQ,MAAM,KAAKyuK,EAAU,WAAW,QAAQ,EAClC,QAAQA,CAAS,EACrCnN,EAAI,QAAQthK,CAAK,CACpB,SACQyuK,EAAU,iBAAkB,CAEjC,MAAMzuK,EADQ,MAAM,KAAKyuK,EAAU,iBAAiB,QAAQ,EACxC,QAAQA,CAAS,EACrCnN,EAAI,QAAQthK,CAAK,CACpB,CACD,OAAOshK,CACV,CACD,OAAOkN,EAAQ90G,EAAMwyG,CAAS,CAClC,CACA,SAASyC,GAAgB55I,EAAOsuI,EAAQuL,EAAa,CACjD,IAAI5sL,EAAI6sL,EACR,OAAK95I,GAEDA,EAAM,UACN/yC,EAAKqhL,EAAO,MAAMtuI,EAAM,SAAS,EAEjC85I,EAAUD,EAAY,MAAM75I,CAAK,EAC9B,CACH,QAAA85I,EACA,GAAA7sL,CACR,GARe,EASf,CACA,SAAS8sL,IAAuB,CAAE,iBAAAC,EAAkB,OAAA1L,EAAQ,kBAAA2L,CAAmB,EAAE,CAAE,IAAAr4H,GAAO,CACtF,GAAI,CAACA,EAAI,eAAiB,CAACA,EAAI,cAAc,UACzC,MAAO,IAAM,CACrB,EAEI,MAAMs4H,EAAat4H,EAAI,cAAc,UAAU,WAC/CA,EAAI,cAAc,UAAU,WAAa,IAAI,MAAMs4H,EAAY,CAC3D,MAAO3D,GAAgB,CAAC9jK,EAAQ0nK,EAASC,IAAkB,CACvD,KAAM,CAACz1G,EAAM15D,CAAK,EAAImvK,EAChB,CAAE,GAAAntL,EAAI,QAAA6sL,GAAYF,GAAgBO,EAAS7L,EAAQ2L,EAAkB,WAAW,EACtF,OAAKhtL,GAAMA,IAAO,IAAQ6sL,GAAWA,IAAY,KAC7CE,EAAiB,CACb,GAAA/sL,EACA,QAAA6sL,EACA,KAAM,CAAC,CAAE,KAAAn1G,EAAM,MAAA15D,EAAO,CAC1C,CAAiB,EAEEwH,EAAO,MAAM0nK,EAASC,CAAa,CACtD,CAAS,CACT,CAAK,EACD,MAAMC,EAAaz4H,EAAI,cAAc,UAAU,WAC/CA,EAAI,cAAc,UAAU,WAAa,IAAI,MAAMy4H,EAAY,CAC3D,MAAO9D,GAAgB,CAAC9jK,EAAQ0nK,EAASC,IAAkB,CACvD,KAAM,CAACnvK,CAAK,EAAImvK,EACV,CAAE,GAAAntL,EAAI,QAAA6sL,GAAYF,GAAgBO,EAAS7L,EAAQ2L,EAAkB,WAAW,EACtF,OAAKhtL,GAAMA,IAAO,IAAQ6sL,GAAWA,IAAY,KAC7CE,EAAiB,CACb,GAAA/sL,EACA,QAAA6sL,EACA,QAAS,CAAC,CAAE,MAAA7uK,EAAO,CACvC,CAAiB,EAEEwH,EAAO,MAAM0nK,EAASC,CAAa,CACtD,CAAS,CACT,CAAK,EACD,IAAI3jH,EACA7U,EAAI,cAAc,UAAU,UAC5B6U,EAAU7U,EAAI,cAAc,UAAU,QACtCA,EAAI,cAAc,UAAU,QAAU,IAAI,MAAM6U,EAAS,CACrD,MAAO8/G,GAAgB,CAAC9jK,EAAQ0nK,EAASC,IAAkB,CACvD,KAAM,CAACv4E,CAAI,EAAIu4E,EACT,CAAE,GAAAntL,EAAI,QAAA6sL,GAAYF,GAAgBO,EAAS7L,EAAQ2L,EAAkB,WAAW,EACtF,OAAKhtL,GAAMA,IAAO,IAAQ6sL,GAAWA,IAAY,KAC7CE,EAAiB,CACb,GAAA/sL,EACA,QAAA6sL,EACA,QAASj4E,CACjC,CAAqB,EAEEpvF,EAAO,MAAM0nK,EAASC,CAAa,CAC1D,CAAa,CACb,CAAS,GAEL,IAAIE,EACA14H,EAAI,cAAc,UAAU,cAC5B04H,EAAc14H,EAAI,cAAc,UAAU,YAC1CA,EAAI,cAAc,UAAU,YAAc,IAAI,MAAM04H,EAAa,CAC7D,MAAO/D,GAAgB,CAAC9jK,EAAQ0nK,EAASC,IAAkB,CACvD,KAAM,CAACv4E,CAAI,EAAIu4E,EACT,CAAE,GAAAntL,EAAI,QAAA6sL,GAAYF,GAAgBO,EAAS7L,EAAQ2L,EAAkB,WAAW,EACtF,OAAKhtL,GAAMA,IAAO,IAAQ6sL,GAAWA,IAAY,KAC7CE,EAAiB,CACb,GAAA/sL,EACA,QAAA6sL,EACA,YAAaj4E,CACrC,CAAqB,EAEEpvF,EAAO,MAAM0nK,EAASC,CAAa,CAC1D,CAAa,CACb,CAAS,GAEL,MAAMG,EAA8B,GAChCC,GAA4B,iBAAiB,EAC7CD,EAA4B,gBAAkB34H,EAAI,iBAG9C44H,GAA4B,cAAc,IAC1CD,EAA4B,aAAe34H,EAAI,cAE/C44H,GAA4B,kBAAkB,IAC9CD,EAA4B,iBAAmB34H,EAAI,kBAEnD44H,GAA4B,iBAAiB,IAC7CD,EAA4B,gBAAkB34H,EAAI,kBAG1D,MAAM64H,EAAsB,GAC5B,cAAO,QAAQF,CAA2B,EAAE,QAAQ,CAAC,CAACG,EAAS1sK,CAAI,IAAM,CACrEysK,EAAoBC,CAAO,EAAI,CAC3B,WAAY1sK,EAAK,UAAU,WAC3B,WAAYA,EAAK,UAAU,UACvC,EACQA,EAAK,UAAU,WAAa,IAAI,MAAMysK,EAAoBC,CAAO,EAAE,WAAY,CAC3E,MAAOnE,GAAgB,CAAC9jK,EAAQ0nK,EAASC,IAAkB,CACvD,KAAM,CAACz1G,EAAM15D,CAAK,EAAImvK,EAChB,CAAE,GAAAntL,EAAI,QAAA6sL,CAAO,EAAKF,GAAgBO,EAAQ,iBAAkB7L,EAAQ2L,EAAkB,WAAW,EACvG,OAAKhtL,GAAMA,IAAO,IAAQ6sL,GAAWA,IAAY,KAC7CE,EAAiB,CACb,GAAA/sL,EACA,QAAA6sL,EACA,KAAM,CACF,CACI,KAAAn1G,EACA,MAAO,CACH,GAAG60G,GAA0BW,CAAO,EACpClvK,GAAS,CACZ,CACJ,CACJ,CACzB,CAAqB,EAEEwH,EAAO,MAAM0nK,EAASC,CAAa,CAC1D,CAAa,CACb,CAAS,EACDpsK,EAAK,UAAU,WAAa,IAAI,MAAMysK,EAAoBC,CAAO,EAAE,WAAY,CAC3E,MAAOnE,GAAgB,CAAC9jK,EAAQ0nK,EAASC,IAAkB,CACvD,KAAM,CAACnvK,CAAK,EAAImvK,EACV,CAAE,GAAAntL,EAAI,QAAA6sL,CAAO,EAAKF,GAAgBO,EAAQ,iBAAkB7L,EAAQ2L,EAAkB,WAAW,EACvG,OAAKhtL,GAAMA,IAAO,IAAQ6sL,GAAWA,IAAY,KAC7CE,EAAiB,CACb,GAAA/sL,EACA,QAAA6sL,EACA,QAAS,CACL,CAAE,MAAO,CAAC,GAAGN,GAA0BW,CAAO,EAAGlvK,CAAK,CAAG,CAC5D,CACzB,CAAqB,EAEEwH,EAAO,MAAM0nK,EAASC,CAAa,CAC1D,CAAa,CACb,CAAS,CACT,CAAK,EACM7D,GAAgB,IAAM,CACzB30H,EAAI,cAAc,UAAU,WAAas4H,EACzCt4H,EAAI,cAAc,UAAU,WAAay4H,EACzC5jH,IAAY7U,EAAI,cAAc,UAAU,QAAU6U,GAClD6jH,IAAgB14H,EAAI,cAAc,UAAU,YAAc04H,GAC1D,OAAO,QAAQC,CAA2B,EAAE,QAAQ,CAAC,CAACG,EAAS1sK,CAAI,IAAM,CACrEA,EAAK,UAAU,WAAaysK,EAAoBC,CAAO,EAAE,WACzD1sK,EAAK,UAAU,WAAaysK,EAAoBC,CAAO,EAAE,UACrE,CAAS,CACT,CAAK,CACL,CACA,SAASC,GAA8B,CAAE,OAAArM,EAAQ,kBAAA2L,CAAiB,EAAK/nI,EAAM,CACzE,IAAI/mC,EAAI2J,EAAI25C,EACZ,IAAImsH,EAAS,KACT1oI,EAAK,WAAa,YAClB0oI,EAAStM,EAAO,MAAMp8H,CAAI,EAE1B0oI,EAAStM,EAAO,MAAMp8H,EAAK,IAAI,EACnC,MAAM2oI,EAAc3oI,EAAK,WAAa,aAC/B/mC,EAAK+mC,EAAK,eAAiB,MAAQ/mC,IAAO,OAAS,OAASA,EAAG,UAC/DsjD,GAAM35C,EAAKo9B,EAAK,iBAAmB,MAAQp9B,IAAO,OAAS,OAASA,EAAG,eAAiB,MAAQ25C,IAAO,OAAS,OAASA,EAAG,WAC7HqsH,EAA8BD,GAAgB,MAA0CA,EAAY,UACpG,OAAO,yBAAyBA,GAAgB,KAAiC,OAASA,EAAY,UAAW,oBAAoB,EACrI,OACN,OAAID,IAAW,MACXA,IAAW,IACX,CAACC,GACD,CAACC,EACM,IAAM,CACrB,GACI,OAAO,eAAe5oI,EAAM,qBAAsB,CAC9C,aAAc4oI,EAA2B,aACzC,WAAYA,EAA2B,WACvC,KAAM,CACF,IAAI3vK,EACJ,OAAQA,EAAK2vK,EAA2B,OAAS,MAAQ3vK,IAAO,OAAS,OAASA,EAAG,KAAK,IAAI,CACjG,EACD,IAAI4vK,EAAQ,CACR,IAAI5vK,EACJ,MAAMsX,GAAUtX,EAAK2vK,EAA2B,OAAS,MAAQ3vK,IAAO,OAAS,OAASA,EAAG,KAAK,KAAM4vK,CAAM,EAC9G,GAAIH,IAAW,MAAQA,IAAW,GAC9B,GAAI,CACAX,EAAkB,iBAAiBc,EAAQH,CAAM,CACpD,MACS,CACT,CAEL,OAAOn4J,CACV,CACT,CAAK,EACM8zJ,GAAgB,IAAM,CACzB,OAAO,eAAerkI,EAAM,qBAAsB,CAC9C,aAAc4oI,EAA2B,aACzC,WAAYA,EAA2B,WACvC,IAAKA,EAA2B,IAChC,IAAKA,EAA2B,GAC5C,CAAS,CACT,CAAK,EACL,CACA,SAASE,IAA6B,CAAE,mBAAAC,EAAoB,OAAA3M,EAAQ,oBAAA4M,EAAqB,kBAAAjB,CAAoB,EAAE,CAAE,IAAAr4H,GAAO,CACpH,MAAMu5H,EAAcv5H,EAAI,oBAAoB,UAAU,YACtDA,EAAI,oBAAoB,UAAU,YAAc,IAAI,MAAMu5H,EAAa,CACnE,MAAO5E,GAAgB,CAAC9jK,EAAQ0nK,EAASC,IAAkB,CACvD,IAAIjvK,EACJ,KAAM,CAACiU,EAAU/U,EAAO+wK,CAAQ,EAAIhB,EACpC,GAAIc,EAAoB,IAAI97J,CAAQ,EAChC,OAAO+7J,EAAY,MAAMhB,EAAS,CAAC/6J,EAAU/U,EAAO+wK,CAAQ,CAAC,EAEjE,KAAM,CAAE,GAAAnuL,EAAI,QAAA6sL,GAAYF,IAAiBzuK,EAAKgvK,EAAQ,cAAgB,MAAQhvK,IAAO,OAAS,OAASA,EAAG,iBAAkBmjK,EAAQ2L,EAAkB,WAAW,EACjK,OAAKhtL,GAAMA,IAAO,IAAQ6sL,GAAWA,IAAY,KAC7CmB,EAAmB,CACf,GAAAhuL,EACA,QAAA6sL,EACA,IAAK,CACD,SAAA16J,EACA,MAAA/U,EACA,SAAA+wK,CACH,EACD,MAAO5B,GAA0BW,EAAQ,UAAU,CACvE,CAAiB,EAEE1nK,EAAO,MAAM0nK,EAASC,CAAa,CACtD,CAAS,CACT,CAAK,EACD,MAAMiB,EAAiBz5H,EAAI,oBAAoB,UAAU,eACzD,OAAAA,EAAI,oBAAoB,UAAU,eAAiB,IAAI,MAAMy5H,EAAgB,CACzE,MAAO9E,GAAgB,CAAC9jK,EAAQ0nK,EAASC,IAAkB,CACvD,IAAIjvK,EACJ,KAAM,CAACiU,CAAQ,EAAIg7J,EACnB,GAAIc,EAAoB,IAAI97J,CAAQ,EAChC,OAAOi8J,EAAe,MAAMlB,EAAS,CAAC/6J,CAAQ,CAAC,EAEnD,KAAM,CAAE,GAAAnyB,EAAI,QAAA6sL,GAAYF,IAAiBzuK,EAAKgvK,EAAQ,cAAgB,MAAQhvK,IAAO,OAAS,OAASA,EAAG,iBAAkBmjK,EAAQ2L,EAAkB,WAAW,EACjK,OAAKhtL,GAAMA,IAAO,IAAQ6sL,GAAWA,IAAY,KAC7CmB,EAAmB,CACf,GAAAhuL,EACA,QAAA6sL,EACA,OAAQ,CACJ,SAAA16J,CACH,EACD,MAAOo6J,GAA0BW,EAAQ,UAAU,CACvE,CAAiB,EAEE1nK,EAAO,MAAM0nK,EAASC,CAAa,CACtD,CAAS,CACT,CAAK,EACM7D,GAAgB,IAAM,CACzB30H,EAAI,oBAAoB,UAAU,YAAcu5H,EAChDv5H,EAAI,oBAAoB,UAAU,eAAiBy5H,CAC3D,CAAK,CACL,CACA,SAASC,IAA6B,CAAE,mBAAAC,EAAoB,WAAApO,EAAY,cAAAC,EAAe,OAAAkB,EAAQ,SAAA2I,EAAU,IAAA5K,GAAQ,CAC7G,MAAM92I,EAAUghJ,GAAiBvoK,GAAS0jK,GAAS6E,GAAiB5lK,GAAU,CAC1E,MAAM8B,EAASgkK,GAAe9lK,CAAK,EACnC,GAAI,CAAC8B,GACD+/J,GAAU//J,EAAQ06J,EAAYC,EAAe,EAAI,EACjD,OAEJ,KAAM,CAAE,YAAAoO,EAAa,OAAAC,EAAQ,MAAAC,EAAO,aAAAC,EAAc,KAAA3lJ,CAAM,EAAGvjB,EAC3D8oK,EAAmB,CACf,KAAAvtK,EACA,GAAIsgK,EAAO,MAAM77J,CAAM,EACvB,YAAA+oK,EACA,OAAAC,EACA,MAAAC,EACA,aAAAC,EACA,KAAA3lJ,CACZ,CAAS,CACJ,GAAGihJ,EAAS,OAAS,GAAG,CAAC,EACpBQ,EAAW,CACb,GAAG,OAAQliJ,EAAQ,CAAC,EAAG82I,CAAG,EAC1B,GAAG,QAAS92I,EAAQ,CAAC,EAAG82I,CAAG,EAC3B,GAAG,SAAU92I,EAAQ,CAAC,EAAG82I,CAAG,EAC5B,GAAG,eAAgB92I,EAAQ,CAAC,EAAG82I,CAAG,EAClC,GAAG,aAAc92I,EAAQ,CAAC,EAAG82I,CAAG,CACxC,EACI,OAAOkK,GAAgB,IAAM,CACzBkB,EAAS,QAASh2L,GAAMA,EAAG,EACnC,CAAK,CACL,CACA,SAASm6L,IAAiB,CAAE,OAAAC,EAAQ,IAAAxP,GAAO,CACvC,MAAMzqH,EAAMyqH,EAAI,YAChB,GAAI,CAACzqH,EACD,MAAO,IAAM,CACrB,EAEI,MAAM61H,EAAW,GACXqE,EAAU,IAAI,QACdC,EAAmBn6H,EAAI,SAC7BA,EAAI,SAAW,SAAkBo6H,EAAQp3G,EAAQq3G,EAAa,CAC1D,MAAMC,EAAW,IAAIH,EAAiBC,EAAQp3G,EAAQq3G,CAAW,EACjE,OAAAH,EAAQ,IAAII,EAAU,CAClB,OAAAF,EACA,OAAQ,OAAOp3G,GAAW,SAC1B,YAAAq3G,EACA,WAAY,OAAOr3G,GAAW,SACxBA,EACA,KAAK,UAAU,MAAM,KAAK,IAAI,WAAWA,CAAM,CAAC,CAAC,CACnE,CAAS,EACMs3G,CACf,EACI,MAAMC,EAAiBnK,GAAM3F,EAAI,MAAO,MAAO,SAAU0F,EAAU,CAC/D,OAAO,SAAUmK,EAAU,CACvB,kBAAW3F,GAAgB,IAAM,CAC7B,MAAM32L,EAAIk8L,EAAQ,IAAII,CAAQ,EAC1Bt8L,IACAi8L,EAAOj8L,CAAC,EACRk8L,EAAQ,OAAOI,CAAQ,EAE3C,CAAa,EAAG,CAAC,EACEnK,EAAS,MAAM,KAAM,CAACmK,CAAQ,CAAC,CAClD,CACA,CAAK,EACD,OAAAzE,EAAS,KAAK,IAAM,CAChB71H,EAAI,SAAWm6H,CACvB,CAAK,EACDtE,EAAS,KAAK0E,CAAc,EACrB5F,GAAgB,IAAM,CACzBkB,EAAS,QAASh2L,GAAMA,EAAG,EACnC,CAAK,CACL,CACA,SAAS26L,IAAsBxyJ,EAAO,CAClC,KAAM,CAAE,IAAAyiJ,EAAK,OAAAiC,EAAQ,WAAAnB,EAAY,cAAAC,EAAe,YAAAiP,CAAa,EAAGzyJ,EAChE,IAAI0yJ,EAAY,GAChB,MAAMC,EAAkBhG,GAAgB,IAAM,CAC1C,MAAM1xE,EAAYwnE,EAAI,eACtB,GAAI,CAACxnE,GAAcy3E,IAAcz3E,GAAc,MAAwCA,EAAU,aAC7F,OACJy3E,EAAYz3E,EAAU,aAAe,GACrC,MAAM23E,EAAS,GACThvK,EAAQq3F,EAAU,YAAc,EACtC,QAAS17F,EAAI,EAAGA,EAAIqE,EAAOrE,IAAK,CAC5B,MAAMszK,EAAQ53E,EAAU,WAAW17F,CAAC,EAC9B,CAAE,eAAAuzK,EAAgB,YAAAC,EAAa,aAAAC,EAAc,UAAAC,CAAS,EAAKJ,EACjDjK,GAAUkK,EAAgBvP,EAAYC,EAAe,EAAI,GACrEoF,GAAUoK,EAAczP,EAAYC,EAAe,EAAI,GAG3DoP,EAAO,KAAK,CACR,MAAOlO,EAAO,MAAMoO,CAAc,EAClC,YAAAC,EACA,IAAKrO,EAAO,MAAMsO,CAAY,EAC9B,UAAAC,CAChB,CAAa,CACJ,CACDR,EAAY,CAAE,OAAAG,CAAM,CAAE,CAC9B,CAAK,EACD,OAAAD,IACO,GAAG,kBAAmBA,CAAe,CAChD,CACA,SAASO,IAA0B,CAAE,IAAAzQ,EAAK,gBAAA0Q,GAAoB,CAC1D,MAAMn7H,EAAMyqH,EAAI,YAChB,MAAI,CAACzqH,GAAO,CAACA,EAAI,eACN,IAAM,GACMowH,GAAMpwH,EAAI,eAAgB,SAAU,SAAUmwH,EAAU,CAC3E,OAAO,SAAU1iK,EAAM+lD,EAAan4B,EAAS,CACzC,GAAI,CACA8/I,EAAgB,CACZ,OAAQ,CACJ,KAAA1tK,CACH,CACrB,CAAiB,CACJ,MACS,CACN,QAAQ,KAAK,sCAAsCA,CAAI,EAAE,CAC5D,CACD,OAAO0iK,EAAS,MAAM,KAAM,CAAC1iK,EAAM+lD,EAAan4B,CAAO,CAAC,CACpE,CACA,CAAK,CAEL,CACA,SAAS+/I,IAAWn/J,EAAGo/J,EAAO,CAC1B,KAAM,CAAE,WAAAC,EAAY,YAAAlG,EAAa,mBAAAW,EAAoB,SAAAO,EAAU,iBAAAG,EAAkB,QAAAO,EAAS,mBAAA2C,EAAoB,iBAAAvB,EAAkB,mBAAAiB,EAAoB,iBAAAkC,EAAkB,OAAAtB,EAAQ,YAAAQ,EAAa,gBAAAU,CAAkB,EAAGl/J,EAChNA,EAAE,WAAa,IAAIj+B,IAAM,CACjBq9L,EAAM,UACNA,EAAM,SAAS,GAAGr9L,CAAC,EAEvBs9L,EAAW,GAAGt9L,CAAC,CACvB,EACIi+B,EAAE,YAAc,IAAIj+B,IAAM,CAClBq9L,EAAM,WACNA,EAAM,UAAU,GAAGr9L,CAAC,EAExBo3L,EAAY,GAAGp3L,CAAC,CACxB,EACIi+B,EAAE,mBAAqB,IAAIj+B,IAAM,CACzBq9L,EAAM,kBACNA,EAAM,iBAAiB,GAAGr9L,CAAC,EAE/B+3L,EAAmB,GAAG/3L,CAAC,CAC/B,EACIi+B,EAAE,SAAW,IAAIj+B,IAAM,CACfq9L,EAAM,QACNA,EAAM,OAAO,GAAGr9L,CAAC,EAErBs4L,EAAS,GAAGt4L,CAAC,CACrB,EACIi+B,EAAE,iBAAmB,IAAIj+B,IAAM,CACvBq9L,EAAM,gBACNA,EAAM,eAAe,GAAGr9L,CAAC,EAE7By4L,EAAiB,GAAGz4L,CAAC,CAC7B,EACIi+B,EAAE,QAAU,IAAIj+B,IAAM,CACdq9L,EAAM,OACNA,EAAM,MAAM,GAAGr9L,CAAC,EAEpBg5L,EAAQ,GAAGh5L,CAAC,CACpB,EACIi+B,EAAE,mBAAqB,IAAIj+B,IAAM,CACzBq9L,EAAM,iBACNA,EAAM,gBAAgB,GAAGr9L,CAAC,EAE9B27L,EAAmB,GAAG37L,CAAC,CAC/B,EACIi+B,EAAE,iBAAmB,IAAIj+B,IAAM,CACvBq9L,EAAM,gBACNA,EAAM,eAAe,GAAGr9L,CAAC,EAE7Bo6L,EAAiB,GAAGp6L,CAAC,CAC7B,EACIi+B,EAAE,mBAAqB,IAAIj+B,IAAM,CACzBq9L,EAAM,kBACNA,EAAM,iBAAiB,GAAGr9L,CAAC,EAE/Bq7L,EAAmB,GAAGr7L,CAAC,CAC/B,EACIi+B,EAAE,iBAAmB,IAAIj+B,IAAM,CACvBq9L,EAAM,gBACNA,EAAM,eAAe,GAAGr9L,CAAC,EAE7Bu9L,EAAiB,GAAGv9L,CAAC,CAC7B,EACIi+B,EAAE,OAAS,IAAIj+B,IAAM,CACbq9L,EAAM,MACNA,EAAM,KAAK,GAAGr9L,CAAC,EAEnBi8L,EAAO,GAAGj8L,CAAC,CACnB,EACIi+B,EAAE,YAAc,IAAIj+B,IAAM,CAClBq9L,EAAM,WACNA,EAAM,UAAU,GAAGr9L,CAAC,EAExBy8L,EAAY,GAAGz8L,CAAC,CACxB,EACIi+B,EAAE,gBAAkB,IAAIt8B,IAAM,CACtB07L,EAAM,eACNA,EAAM,cAAc,GAAG17L,CAAC,EAE5Bw7L,EAAgB,GAAGx7L,CAAC,CAC5B,CACA,CACA,SAAS67L,IAAcv/J,EAAGo/J,EAAQ,GAAI,CAClC,MAAM5D,EAAgBx7J,EAAE,IAAI,YAC5B,GAAI,CAACw7J,EACD,MAAO,IAAM,CACrB,EAEI2D,IAAWn/J,EAAGo/J,CAAK,EACnB,IAAI3sI,EACAzyB,EAAE,YACFyyB,EAAmBomI,GAAqB74J,EAAGA,EAAE,GAAG,GAEpD,MAAMw/J,EAAmBtG,IAAiBl5J,CAAC,EACrCy/J,EAA0B5F,IAA6B75J,CAAC,EACxD0/J,EAAgBtF,GAAmBp6J,CAAC,EACpC2/J,EAAwBpF,IAA2Bv6J,EAAG,CACxD,IAAKw7J,CACb,CAAK,EACKoE,EAAe9E,IAAkB96J,CAAC,EAClC6/J,EAA0BpC,IAA6Bz9J,CAAC,EAC9D,IAAI8/J,EAAqB,IAAM,GAC3BC,EAA4B,IAAM,GAClCC,EAA2B,IAAM,GACjCC,EAAe,IAAM,GACrBjgK,EAAE,YACF8/J,EAAqB5D,IAAuBl8J,EAAG,CAAE,IAAKw7J,CAAe,GACrEuE,EAA4BjD,GAA8B98J,EAAGA,EAAE,GAAG,EAClEggK,EAA2B7C,IAA6Bn9J,EAAG,CACvD,IAAKw7J,CACjB,CAAS,EACGx7J,EAAE,eACFigK,EAAelC,IAAiB/9J,CAAC,IAGzC,MAAMkgK,EAAoB3B,IAAsBv+J,CAAC,EAC3CmgK,EAAwBlB,IAA0Bj/J,CAAC,EACnDogK,EAAiB,GACvB,UAAWC,KAAUrgK,EAAE,QACnBogK,EAAe,KAAKC,EAAO,SAASA,EAAO,SAAU7E,EAAe6E,EAAO,OAAO,CAAC,EAEvF,OAAO3H,GAAgB,IAAM,CACzBC,GAAgB,QAAS51L,GAAMA,EAAE,MAAO,GACxC0vD,GAAqB,MAA+CA,EAAiB,aACrF+sI,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,EAAe,QAASx8L,GAAMA,EAAG,EACzC,CAAK,CACL,CACA,SAASk4L,GAAiBzoK,EAAM,CAC5B,OAAO,OAAO,OAAOA,CAAI,EAAM,GACnC,CACA,SAASspK,GAA4BtpK,EAAM,CACvC,MAAO,GAAQ,OAAO,OAAOA,CAAI,EAAM,KACnC,OAAOA,CAAI,EAAE,WACb,eAAgB,OAAOA,CAAI,EAAE,WAC7B,eAAgB,OAAOA,CAAI,EAAE,UACrC,CAEA,MAAMitK,EAAwB,CAC1B,YAAYC,EAAc,CACtB,KAAK,aAAeA,EACpB,KAAK,sBAAwB,IAAI,QACjC,KAAK,sBAAwB,IAAI,OACpC,CACD,MAAMtJ,EAAQuJ,EAAUC,EAAeC,EAAe,CAClD,MAAMC,EAAkBF,GAAiB,KAAK,mBAAmBxJ,CAAM,EACjE2J,EAAkBF,GAAiB,KAAK,mBAAmBzJ,CAAM,EACvE,IAAI7nL,EAAKuxL,EAAgB,IAAIH,CAAQ,EACrC,OAAKpxL,IACDA,EAAK,KAAK,eACVuxL,EAAgB,IAAIH,EAAUpxL,CAAE,EAChCwxL,EAAgB,IAAIxxL,EAAIoxL,CAAQ,GAE7BpxL,CACV,CACD,OAAO6nL,EAAQuJ,EAAU,CACrB,MAAMG,EAAkB,KAAK,mBAAmB1J,CAAM,EAChD2J,EAAkB,KAAK,mBAAmB3J,CAAM,EACtD,OAAOuJ,EAAS,IAAKpxL,GAAO,KAAK,MAAM6nL,EAAQ7nL,EAAIuxL,EAAiBC,CAAe,CAAC,CACvF,CACD,YAAY3J,EAAQ7nL,EAAIqgB,EAAK,CACzB,MAAMmxK,EAAkBnxK,GAAO,KAAK,mBAAmBwnK,CAAM,EAC7D,GAAI,OAAO7nL,GAAO,SACd,OAAOA,EACX,MAAMoxL,EAAWI,EAAgB,IAAIxxL,CAAE,EACvC,OAAKoxL,GACM,EAEd,CACD,aAAavJ,EAAQ4J,EAAK,CACtB,MAAMD,EAAkB,KAAK,mBAAmB3J,CAAM,EACtD,OAAO4J,EAAI,IAAKzxL,GAAO,KAAK,YAAY6nL,EAAQ7nL,EAAIwxL,CAAe,CAAC,CACvE,CACD,MAAM3J,EAAQ,CACV,GAAI,CAACA,EAAQ,CACT,KAAK,sBAAwB,IAAI,QACjC,KAAK,sBAAwB,IAAI,QACjC,MACH,CACD,KAAK,sBAAsB,OAAOA,CAAM,EACxC,KAAK,sBAAsB,OAAOA,CAAM,CAC3C,CACD,mBAAmBA,EAAQ,CACvB,IAAI0J,EAAkB,KAAK,sBAAsB,IAAI1J,CAAM,EAC3D,OAAK0J,IACDA,EAAkB,IAAI,IACtB,KAAK,sBAAsB,IAAI1J,EAAQ0J,CAAe,GAEnDA,CACV,CACD,mBAAmB1J,EAAQ,CACvB,IAAI2J,EAAkB,KAAK,sBAAsB,IAAI3J,CAAM,EAC3D,OAAK2J,IACDA,EAAkB,IAAI,IACtB,KAAK,sBAAsB,IAAI3J,EAAQ2J,CAAe,GAEnDA,CACV,CACL,CAEA,MAAME,GAAc,CAChB,YAAY1hJ,EAAS,CACjB,KAAK,QAAU,IAAI,QACnB,KAAK,qBAAuB,IAAI,QAChC,KAAK,wBAA0B,IAAIkhJ,GAAwB/tF,EAAK,EAChE,KAAK,2BAA6B,IAAI,QACtC,KAAK,WAAanzD,EAAQ,WAC1B,KAAK,YAAcA,EAAQ,YAC3B,KAAK,kBAAoBA,EAAQ,kBACjC,KAAK,yBAA2BA,EAAQ,yBACxC,KAAK,6BAA+B,IAAIkhJ,GAAwB,KAAK,kBAAkB,YAAY,WAAW,KAAK,KAAK,kBAAkB,WAAW,CAAC,EACtJ,KAAK,OAASlhJ,EAAQ,OAClB,KAAK,0BACL,OAAO,iBAAiB,UAAW,KAAK,cAAc,KAAK,IAAI,CAAC,CAEvE,CACD,UAAU2wI,EAAU,CAChB,KAAK,QAAQ,IAAIA,EAAU,EAAI,EAC3BA,EAAS,eACT,KAAK,qBAAqB,IAAIA,EAAS,cAAeA,CAAQ,CACrE,CACD,gBAAgB3nL,EAAI,CAChB,KAAK,aAAeA,CACvB,CACD,aAAa2nL,EAAUmH,EAAS,CAC5B,IAAI5pK,EACJ,KAAK,WAAW,CACZ,KAAM,CACF,CACI,SAAU,KAAK,OAAO,MAAMyiK,CAAQ,EACpC,OAAQ,KACR,KAAMmH,CACT,CACJ,EACD,QAAS,CAAE,EACX,MAAO,CAAE,EACT,WAAY,CAAE,EACd,eAAgB,EAC5B,CAAS,GACA5pK,EAAK,KAAK,gBAAkB,MAAQA,IAAO,QAAkBA,EAAG,KAAK,KAAMyiK,CAAQ,EAChFA,EAAS,iBACTA,EAAS,gBAAgB,oBACzBA,EAAS,gBAAgB,mBAAmB,OAAS,GACrD,KAAK,kBAAkB,iBAAiBA,EAAS,gBAAgB,mBAAoB,KAAK,OAAO,MAAMA,EAAS,eAAe,CAAC,CACvI,CACD,cAAchxG,EAAS,CACnB,MAAMgiH,EAA0BhiH,EAKhC,GAJIgiH,EAAwB,KAAK,OAAS,SACtCA,EAAwB,SAAWA,EAAwB,KAAK,QAGhE,CADuBhiH,EAAQ,OAE/B,OACJ,MAAMgxG,EAAW,KAAK,qBAAqB,IAAIhxG,EAAQ,MAAM,EAC7D,GAAI,CAACgxG,EACD,OACJ,MAAMiR,EAAmB,KAAK,0BAA0BjR,EAAUgR,EAAwB,KAAK,KAAK,EAChGC,GACA,KAAK,YAAYA,EAAkBD,EAAwB,KAAK,UAAU,CACjF,CACD,0BAA0BhR,EAAU/sL,EAAG,CACnC,IAAIsqB,EACJ,OAAQtqB,EAAE,KAAI,CACV,KAAK2yL,GAAY,aAAc,CAC3B,KAAK,wBAAwB,MAAM5F,CAAQ,EAC3C,KAAK,6BAA6B,MAAMA,CAAQ,EAChD,KAAK,gBAAgB/sL,EAAE,KAAK,KAAM+sL,CAAQ,EAC1C,MAAMmB,EAASluL,EAAE,KAAK,KAAK,GAC3B,YAAK,2BAA2B,IAAI+sL,EAAUmB,CAAM,EACpD,KAAK,kBAAkBluL,EAAE,KAAK,KAAMkuL,CAAM,EACnC,CACH,UAAWluL,EAAE,UACb,KAAM2yL,GAAY,oBAClB,KAAM,CACF,OAAQE,GAAoB,SAC5B,KAAM,CACF,CACI,SAAU,KAAK,OAAO,MAAM9F,CAAQ,EACpC,OAAQ,KACR,KAAM/sL,EAAE,KAAK,IAChB,CACJ,EACD,QAAS,CAAE,EACX,MAAO,CAAE,EACT,WAAY,CAAE,EACd,eAAgB,EACnB,CACrB,CACa,CACD,KAAK2yL,GAAY,KACjB,KAAKA,GAAY,KACjB,KAAKA,GAAY,iBACb,MAAO,GAEX,KAAKA,GAAY,OACb,OAAO3yL,EAEX,KAAK2yL,GAAY,OACb,YAAK,WAAW3yL,EAAE,KAAK,QAAS+sL,EAAU,CAAC,KAAM,WAAY,aAAc,QAAQ,CAAC,EAC7E/sL,EAEX,KAAK2yL,GAAY,oBACb,OAAQ3yL,EAAE,KAAK,OAAM,CACjB,KAAK6yL,GAAoB,SACrB,OAAA7yL,EAAE,KAAK,KAAK,QAASlB,GAAM,CACvB,KAAK,WAAWA,EAAGiuL,EAAU,CACzB,WACA,SACA,YAChC,CAA6B,EACD,KAAK,gBAAgBjuL,EAAE,KAAMiuL,CAAQ,EACrC,MAAMmB,EAAS,KAAK,2BAA2B,IAAInB,CAAQ,EAC3DmB,GAAU,KAAK,kBAAkBpvL,EAAE,KAAMovL,CAAM,CAC3E,CAAyB,EACDluL,EAAE,KAAK,QAAQ,QAASlB,GAAM,CAC1B,KAAK,WAAWA,EAAGiuL,EAAU,CAAC,WAAY,IAAI,CAAC,CAC3E,CAAyB,EACD/sL,EAAE,KAAK,WAAW,QAASlB,GAAM,CAC7B,KAAK,WAAWA,EAAGiuL,EAAU,CAAC,IAAI,CAAC,CAC/D,CAAyB,EACD/sL,EAAE,KAAK,MAAM,QAASlB,GAAM,CACxB,KAAK,WAAWA,EAAGiuL,EAAU,CAAC,IAAI,CAAC,CAC/D,CAAyB,EACM/sL,EAEX,KAAK6yL,GAAoB,KACzB,KAAKA,GAAoB,UACzB,KAAKA,GAAoB,UACrB,OAAA7yL,EAAE,KAAK,UAAU,QAASjB,GAAM,CAC5B,KAAK,WAAWA,EAAGguL,EAAU,CAAC,IAAI,CAAC,CAC/D,CAAyB,EACM/sL,EAEX,KAAK6yL,GAAoB,eACrB,MAAO,GAEX,KAAKA,GAAoB,iBACzB,KAAKA,GAAoB,iBACzB,KAAKA,GAAoB,OACzB,KAAKA,GAAoB,eACzB,KAAKA,GAAoB,MACrB,YAAK,WAAW7yL,EAAE,KAAM+sL,EAAU,CAAC,IAAI,CAAC,EACjC/sL,EAEX,KAAK6yL,GAAoB,eACzB,KAAKA,GAAoB,iBACrB,YAAK,WAAW7yL,EAAE,KAAM+sL,EAAU,CAAC,IAAI,CAAC,EACxC,KAAK,gBAAgB/sL,EAAE,KAAM+sL,EAAU,CAAC,SAAS,CAAC,EAC3C/sL,EAEX,KAAK6yL,GAAoB,KACrB,OAAO7yL,EAEX,KAAK6yL,GAAoB,UACrB,OAAA7yL,EAAE,KAAK,OAAO,QAAS47L,GAAU,CAC7B,KAAK,WAAWA,EAAO7O,EAAU,CAAC,QAAS,KAAK,CAAC,CAC7E,CAAyB,EACM/sL,EAEX,KAAK6yL,GAAoB,kBACrB,YAAK,WAAW7yL,EAAE,KAAM+sL,EAAU,CAAC,IAAI,CAAC,EACxC,KAAK,gBAAgB/sL,EAAE,KAAM+sL,EAAU,CAAC,UAAU,CAAC,GAClDziK,EAAKtqB,EAAE,KAAK,UAAY,MAAQsqB,IAAO,QAAkBA,EAAG,QAAS4f,GAAU,CAC5E,KAAK,gBAAgBA,EAAO6iJ,EAAU,CAAC,SAAS,CAAC,CAC7E,CAAyB,EACM/sL,CAEd,CAER,CACD,MAAO,EACV,CACD,QAAQi+L,EAAct8G,EAAKorG,EAAUzkH,EAAM,CACvC,UAAWrpC,KAAOqpC,EACV,CAAC,MAAM,QAAQqZ,EAAI1iD,CAAG,CAAC,GAAK,OAAO0iD,EAAI1iD,CAAG,GAAM,WAEhD,MAAM,QAAQ0iD,EAAI1iD,CAAG,CAAC,EACtB0iD,EAAI1iD,CAAG,EAAIg/J,EAAa,OAAOlR,EAAUprG,EAAI1iD,CAAG,CAAC,EAGjD0iD,EAAI1iD,CAAG,EAAIg/J,EAAa,MAAMlR,EAAUprG,EAAI1iD,CAAG,CAAC,GAGxD,OAAO0iD,CACV,CACD,WAAWA,EAAKorG,EAAUzkH,EAAM,CAC5B,OAAO,KAAK,QAAQ,KAAK,wBAAyBqZ,EAAKorG,EAAUzkH,CAAI,CACxE,CACD,gBAAgBqZ,EAAKorG,EAAUzkH,EAAM,CACjC,OAAO,KAAK,QAAQ,KAAK,6BAA8BqZ,EAAKorG,EAAUzkH,CAAI,CAC7E,CACD,gBAAgB98C,EAAMuhK,EAAU,CAC5B,KAAK,WAAWvhK,EAAMuhK,EAAU,CAAC,KAAM,QAAQ,CAAC,EAC5C,eAAgBvhK,GAChBA,EAAK,WAAW,QAASkB,GAAU,CAC/B,KAAK,gBAAgBA,EAAOqgK,CAAQ,CACpD,CAAa,CAER,CACD,kBAAkBvhK,EAAM0iK,EAAQ,CACxB1iK,EAAK,OAASo8J,GAAS,UAAY,CAACp8J,EAAK,SACzCA,EAAK,OAAS0iK,GACd,eAAgB1iK,GAChBA,EAAK,WAAW,QAASkB,GAAU,CAC/B,KAAK,kBAAkBA,EAAOwhK,CAAM,CACpD,CAAa,CAER,CACL,CAEA,MAAMgQ,GAAiB,CACnB,YAAY9hJ,EAAS,CACjB,KAAK,WAAa,IAAI,QACtB,KAAK,gBAAkB,GACvB,KAAK,WAAaA,EAAQ,WAC1B,KAAK,SAAWA,EAAQ,SACxB,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,OAASA,EAAQ,OACtB,KAAK,KAAI,CACZ,CACD,MAAO,CACH,KAAK,MAAK,EACV,KAAK,kBAAkB,QAAS,QAAQ,CAC3C,CACD,cAAc0rI,EAAY0D,EAAK,CAG3B,GAFI,CAAC3D,GAAkBC,CAAU,GAE7B,KAAK,WAAW,IAAIA,CAAU,EAC9B,OACJ,KAAK,WAAW,IAAIA,CAAU,EAC9B,MAAM5lG,EAAW2zG,GAAqB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAE,KAAK,aAAa,EAAG,CAAE,IAAArK,EAAK,WAAY,KAAK,WAAY,OAAQ,KAAK,OAAQ,iBAAkB,IAAI,CAAE,EAAG1D,CAAU,EACzL,KAAK,gBAAgB,KAAK,IAAM5lG,EAAS,WAAY,GACrD,KAAK,gBAAgB,KAAKk1G,GAAmB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAE,KAAK,aAAa,EAAG,CAAE,SAAU,KAAK,SAAU,IAAKtP,EAAY,OAAQ,KAAK,OAAQ,CAAC,CAAC,EACrK,WAAW,IAAM,CACTA,EAAW,oBACXA,EAAW,mBAAmB,OAAS,GACvC,KAAK,cAAc,kBAAkB,iBAAiBA,EAAW,mBAAoB,KAAK,OAAO,MAAMA,EAAW,IAAI,CAAC,EAC3H,KAAK,gBAAgB,KAAKgS,GAA8B,CACpD,OAAQ,KAAK,OACb,kBAAmB,KAAK,cAAc,iBACtD,EAAehS,CAAU,CAAC,CACjB,EAAE,CAAC,CACP,CACD,oBAAoBqW,EAAe,CAC3B,CAACA,EAAc,eAAiB,CAACA,EAAc,iBAEnD,KAAK,kBAAkBA,EAAc,cAAc,QAASA,EAAc,eAAe,CAC5F,CACD,kBAAkBnwK,EAASw9J,EAAK,CAC5B,MAAM4S,EAAU,KAChB,KAAK,gBAAgB,KAAKjN,GAAMnjK,EAAQ,UAAW,eAAgB,SAAUkjK,EAAU,CACnF,OAAO,SAAUvyG,EAAQ,CACrB,MAAMmpG,EAAaoJ,EAAS,KAAK,KAAMvyG,CAAM,EAC7C,OAAI,KAAK,YAAc+zG,GAAM,IAAI,GAC7B0L,EAAQ,cAAc,KAAK,WAAY5S,CAAG,EACvC1D,CACvB,CACS,EAAC,CACL,CACD,OAAQ,CACJ,KAAK,gBAAgB,QAASpzI,GAAY,CACtC,GAAI,CACAA,GACH,MACS,CACT,CACb,CAAS,EACD,KAAK,gBAAkB,GACvB,KAAK,WAAa,IAAI,OACzB,CACL,CAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gFAeA,SAASnsB,IAAOF,EAAGroB,EAAG,CAClB,IAAId,EAAI,GACR,QAASH,KAAKspB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGtpB,CAAC,GAAKiB,EAAE,QAAQjB,CAAC,EAAI,IAC9EG,EAAEH,CAAC,EAAIspB,EAAEtpB,CAAC,GACd,GAAIspB,GAAK,MAAQ,OAAO,OAAO,uBAA0B,WACrD,QAAS,EAAI,EAAGtpB,EAAI,OAAO,sBAAsBspB,CAAC,EAAG,EAAItpB,EAAE,OAAQ,IAC3DiB,EAAE,QAAQjB,EAAE,CAAC,CAAC,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAKspB,EAAGtpB,EAAE,CAAC,CAAC,IACzEG,EAAEH,EAAE,CAAC,CAAC,EAAIspB,EAAEtpB,EAAE,CAAC,CAAC,GAE5B,OAAOG,CACX,CAEA,SAASm/L,IAAU/E,EAAS/rD,EAAYpsI,EAAGuqI,EAAW,CAClD,SAAS4yD,EAAM90K,EAAO,CAAE,OAAOA,aAAiBroB,EAAIqoB,EAAQ,IAAIroB,EAAE,SAAU+yK,EAAS,CAAEA,EAAQ1qJ,CAAK,CAAE,CAAE,CAAI,CAC5G,OAAO,IAAKroB,IAAMA,EAAI,UAAU,SAAU+yK,EAASqqB,EAAQ,CACvD,SAASC,EAAUh1K,EAAO,CAAE,GAAI,CAAEi1K,EAAK/yD,EAAU,KAAKliH,CAAK,CAAC,CAAE,OAAUxpB,EAAG,CAAEu+L,EAAOv+L,CAAC,EAAM,CAC3F,SAAS0+L,EAASl1K,EAAO,CAAE,GAAI,CAAEi1K,EAAK/yD,EAAU,MAASliH,CAAK,CAAC,CAAI,OAAQxpB,EAAG,CAAEu+L,EAAOv+L,CAAC,EAAM,CAC9F,SAASy+L,EAAK78J,EAAQ,CAAEA,EAAO,KAAOsyI,EAAQtyI,EAAO,KAAK,EAAI08J,EAAM18J,EAAO,KAAK,EAAE,KAAK48J,EAAWE,CAAQ,CAAI,CAC9GD,GAAM/yD,EAAYA,EAAU,MAAM4tD,EAAS/rD,GAAc,CAAE,IAAG,KAAI,CAAE,CAC5E,CAAK,CACL,CAOA,IAAIs+C,GAAQ,mEAER8S,IAAS,OAAO,WAAe,IAAc,CAAE,EAAG,IAAI,WAAW,GAAG,EACxE,QAASr2K,GAAI,EAAGA,GAAIujK,GAAM,OAAQvjK,KAC9Bq2K,IAAO9S,GAAM,WAAWvjK,EAAC,CAAC,EAAIA,GAElC,IAAIs2K,IAAS,SAAUC,EAAa,CAChC,IAAIC,EAAQ,IAAI,WAAWD,CAAW,EAAGv2K,EAAGm1C,EAAMqhI,EAAM,OAAQC,EAAS,GACzE,IAAKz2K,EAAI,EAAGA,EAAIm1C,EAAKn1C,GAAK,EACtBy2K,GAAUlT,GAAMiT,EAAMx2K,CAAC,GAAK,CAAC,EAC7By2K,GAAUlT,IAAQiT,EAAMx2K,CAAC,EAAI,IAAM,EAAMw2K,EAAMx2K,EAAI,CAAC,GAAK,CAAE,EAC3Dy2K,GAAUlT,IAAQiT,EAAMx2K,EAAI,CAAC,EAAI,KAAO,EAAMw2K,EAAMx2K,EAAI,CAAC,GAAK,CAAE,EAChEy2K,GAAUlT,GAAMiT,EAAMx2K,EAAI,CAAC,EAAI,EAAE,EAErC,OAAIm1C,EAAM,IAAM,EACZshI,EAASA,EAAO,UAAU,EAAGA,EAAO,OAAS,CAAC,EAAI,IAE7CthI,EAAM,IAAM,IACjBshI,EAASA,EAAO,UAAU,EAAGA,EAAO,OAAS,CAAC,EAAI,MAE/CA,CACX,EAEA,MAAMC,GAAe,IAAI,IACzB,SAASC,IAAgBne,EAAKoe,EAAM,CAChC,IAAIC,EAAaH,GAAa,IAAIle,CAAG,EACrC,OAAKqe,IACDA,EAAa,IAAI,IACjBH,GAAa,IAAIle,EAAKqe,CAAU,GAE/BA,EAAW,IAAID,CAAI,GACpBC,EAAW,IAAID,EAAM,EAAE,EAEpBC,EAAW,IAAID,CAAI,CAC9B,CACA,MAAME,GAAe,CAAC51K,EAAOu3C,EAAK+/G,IAAQ,CACtC,GAAI,CAACt3J,GACD,EAAE61K,GAAwB71K,EAAOu3C,CAAG,GAAK,OAAOv3C,GAAU,UAC1D,OACJ,MAAMgF,EAAOhF,EAAM,YAAY,KACzB8tC,EAAO2nI,IAAgBne,EAAKtyJ,CAAI,EACtC,IAAIpE,EAAQktC,EAAK,QAAQ9tC,CAAK,EAC9B,OAAIY,IAAU,KACVA,EAAQktC,EAAK,OACbA,EAAK,KAAK9tC,CAAK,GAEZY,CACX,EACA,SAASk1K,GAAa91K,EAAOu3C,EAAK+/G,EAAK,CACnC,GAAIt3J,aAAiB,MACjB,OAAOA,EAAM,IAAKg3F,GAAQ8+E,GAAa9+E,EAAKz/C,EAAK+/G,CAAG,CAAC,EAEpD,GAAIt3J,IAAU,KACf,OAAOA,EAEN,GAAIA,aAAiB,cACtBA,aAAiB,cACjBA,aAAiB,YACjBA,aAAiB,aACjBA,aAAiB,YACjBA,aAAiB,aACjBA,aAAiB,YACjBA,aAAiB,WACjBA,aAAiB,kBAEjB,MAAO,CACH,QAFSA,EAAM,YAAY,KAG3B,KAAM,CAAC,OAAO,OAAOA,CAAK,CAAC,CACvC,EAES,GAAIA,aAAiB,YAAa,CACnC,MAAMgF,EAAOhF,EAAM,YAAY,KACzBu1K,EAASH,IAAOp1K,CAAK,EAC3B,MAAO,CACH,QAASgF,EACT,OAAAuwK,CACZ,CACK,KACI,IAAIv1K,aAAiB,SAEtB,MAAO,CACH,QAFSA,EAAM,YAAY,KAG3B,KAAM,CACF81K,GAAa91K,EAAM,OAAQu3C,EAAK+/G,CAAG,EACnCt3J,EAAM,WACNA,EAAM,UACT,CACb,EAES,GAAIA,aAAiB,iBAAkB,CACxC,MAAMgF,EAAOhF,EAAM,YAAY,KACzB,CAAE,IAAAw5G,CAAK,EAAGx5G,EAChB,MAAO,CACH,QAASgF,EACT,IAAAw0G,CACZ,CACK,SACQx5G,aAAiB,kBAAmB,CACzC,MAAMgF,EAAO,mBACPw0G,EAAMx5G,EAAM,YAClB,MAAO,CACH,QAASgF,EACT,IAAAw0G,CACZ,CACK,KACI,IAAIx5G,aAAiB,UAEtB,MAAO,CACH,QAFSA,EAAM,YAAY,KAG3B,KAAM,CAAC81K,GAAa91K,EAAM,KAAMu3C,EAAK+/G,CAAG,EAAGt3J,EAAM,MAAOA,EAAM,MAAM,CAChF,EAES,GAAI61K,GAAwB71K,EAAOu3C,CAAG,GAAK,OAAOv3C,GAAU,SAAU,CACvE,MAAMgF,EAAOhF,EAAM,YAAY,KACzBY,EAAQg1K,GAAa51K,EAAOu3C,EAAK+/G,CAAG,EAC1C,MAAO,CACH,QAAStyJ,EACT,MAAOpE,CACnB,CACK,GACD,OAAOZ,CACX,CACA,MAAM+1K,GAAgB,CAAC3xK,EAAMmzC,EAAK+/G,IACvBlzJ,EAAK,IAAK4yF,GAAQ8+E,GAAa9+E,EAAKz/C,EAAK+/G,CAAG,CAAC,EAElDue,GAA0B,CAAC71K,EAAOu3C,IAe7B,EAduB,CAC1B,kBACA,cACA,mBACA,eACA,oBACA,cACA,6BACA,eACA,uBACA,yBACA,2BACR,EACiE,OAAQvyC,GAAS,OAAOuyC,EAAIvyC,CAAI,GAAM,UAAU,EAC/D,KAAMA,GAAShF,aAAiBu3C,EAAIvyC,CAAI,CAAC,EAG3F,SAASgxK,IAA6Bp6L,EAAI27D,EAAKurH,EAAYC,EAAe,CACtE,MAAMqK,EAAW,GACX6I,EAAU,OAAO,oBAAoB1+H,EAAI,yBAAyB,SAAS,EACjF,UAAW1wC,KAAQovK,EACf,GAAI,CACA,GAAI,OAAO1+H,EAAI,yBAAyB,UAAU1wC,CAAI,GAAM,WACxD,SAEJ,MAAMirK,EAAiBnK,GAAMpwH,EAAI,yBAAyB,UAAW1wC,EAAM,SAAU6gK,EAAU,CAC3F,OAAO,YAAatjK,EAAM,CACtB,OAAK+jK,GAAU,KAAK,OAAQrF,EAAYC,EAAe,EAAI,GACvD,WAAW,IAAM,CACb,MAAMmT,EAAaH,GAAc3xK,EAAMmzC,EAAK,IAAI,EAChD37D,EAAG,KAAK,OAAQ,CACZ,KAAM+tL,GAAc,IAAI,EACxB,SAAU9iK,EACV,KAAMqvK,CACtC,CAA6B,CACJ,EAAE,CAAC,EAEDxO,EAAS,MAAM,KAAMtjK,CAAI,CACpD,CACA,CAAa,EACDgpK,EAAS,KAAK0E,CAAc,CAC/B,MACU,CACP,MAAMqE,EAAc3O,GAAWjwH,EAAI,yBAAyB,UAAW1wC,EAAM,CACzE,IAAIjxB,EAAG,CACHgG,EAAG,KAAK,OAAQ,CACZ,KAAM+tL,GAAc,IAAI,EACxB,SAAU9iK,EACV,KAAM,CAACjxB,CAAC,EACR,OAAQ,EAChC,CAAqB,CACJ,CACjB,CAAa,EACDw3L,EAAS,KAAK+I,CAAW,CAC5B,CAEL,MAAO,IAAM,CACT/I,EAAS,QAASh2L,GAAMA,EAAG,EACnC,CACA,CAEA,SAASg/L,IAAyBC,EAAa,CAC3C,OAAOA,IAAgB,qBAAuB,QAAUA,CAC5D,CACA,SAASC,GAA0B/+H,EAAKurH,EAAYC,EAAewT,EAAgC,CAC/F,MAAMnJ,EAAW,GACjB,GAAI,CACA,MAAM0E,EAAiBnK,GAAMpwH,EAAI,kBAAkB,UAAW,aAAc,SAAUmwH,EAAU,CAC5F,OAAO,SAAU2O,KAAgBjyK,EAAM,CACnC,GAAI,CAAC+jK,GAAU,KAAMrF,EAAYC,EAAe,EAAI,EAAG,CACnD,MAAMyT,EAAUJ,IAAyBC,CAAW,EAGpD,GAFM,cAAe,OACjB,KAAK,UAAYG,GACjBD,GACA,CAAC,QAAS,QAAQ,EAAE,SAASC,CAAO,EACpC,GAAIpyK,EAAK,CAAC,GAAK,OAAOA,EAAK,CAAC,GAAM,SAAU,CACxC,MAAMqyK,EAAoBryK,EAAK,CAAC,EAC3BqyK,EAAkB,wBACnBA,EAAkB,sBAAwB,GAEjD,MAEGryK,EAAK,OAAO,EAAG,EAAG,CACd,sBAAuB,EACvD,CAA6B,CAGZ,CACD,OAAOsjK,EAAS,MAAM,KAAM,CAAC2O,EAAa,GAAGjyK,CAAI,CAAC,CAClE,CACA,CAAS,EACDgpK,EAAS,KAAK0E,CAAc,CAC/B,MACU,CACP,QAAQ,MAAM,wDAAwD,CACzE,CACD,MAAO,IAAM,CACT1E,EAAS,QAASh2L,GAAMA,EAAG,EACnC,CACA,CAEA,SAASs/L,GAAiB1rH,EAAWrnD,EAAM/nB,EAAIknL,EAAYC,EAAekB,EAAQ1sH,EAAK,CACnF,MAAM61H,EAAW,GACXvtK,EAAQ,OAAO,oBAAoBmrD,CAAS,EAClD,UAAWnkD,KAAQhH,EACf,GAAI,EACA,gBACA,SACA,qBACA,qBACZ,EAAU,SAASgH,CAAI,EAGf,GAAI,CACA,GAAI,OAAOmkD,EAAUnkD,CAAI,GAAM,WAC3B,SAEJ,MAAMirK,EAAiBnK,GAAM38G,EAAWnkD,EAAM,SAAU6gK,EAAU,CAC9D,OAAO,YAAatjK,EAAM,CACtB,MAAMgU,EAASsvJ,EAAS,MAAM,KAAMtjK,CAAI,EAExC,GADAwxK,GAAax9J,EAAQm/B,EAAK,IAAI,EAC1B,YAAa,KAAK,QAClB,CAAC4wH,GAAU,KAAK,OAAQrF,EAAYC,EAAe,EAAI,EAAG,CAC1D,MAAMmT,EAAaH,GAAc3xK,EAAMmzC,EAAK,IAAI,EAC1CvR,EAAW,CACb,KAAAriC,EACA,SAAUkD,EACV,KAAMqvK,CAClC,EACwBt6L,EAAG,KAAK,OAAQoqD,CAAQ,CAC3B,CACD,OAAO5tB,CAC3B,CACA,CAAa,EACDg1J,EAAS,KAAK0E,CAAc,CAC/B,MACU,CACP,MAAMqE,EAAc3O,GAAWx8G,EAAWnkD,EAAM,CAC5C,IAAIjxB,EAAG,CACHgG,EAAG,KAAK,OAAQ,CACZ,KAAA+nB,EACA,SAAUkD,EACV,KAAM,CAACjxB,CAAC,EACR,OAAQ,EAChC,CAAqB,CACJ,CACjB,CAAa,EACDw3L,EAAS,KAAK+I,CAAW,CAC5B,CAEL,OAAO/I,CACX,CACA,SAASuJ,IAAgC/6L,EAAI27D,EAAKurH,EAAYC,EAAekB,EAAQ,CACjF,MAAMmJ,EAAW,GACjB,OAAAA,EAAS,KAAK,GAAGsJ,GAAiBn/H,EAAI,sBAAsB,UAAWoyH,GAAc,MAAO/tL,EAAIknL,EAAYC,EAAekB,EAAQ1sH,CAAG,CAAC,EACnI,OAAOA,EAAI,uBAA2B,KACtC61H,EAAS,KAAK,GAAGsJ,GAAiBn/H,EAAI,uBAAuB,UAAWoyH,GAAc,OAAQ/tL,EAAIknL,EAAYC,EAAekB,EAAQ1sH,CAAG,CAAC,EAEtI,IAAM,CACT61H,EAAS,QAASh2L,GAAMA,EAAG,EACnC,CACA,CAEA,SAASw/L,IAAaxnI,EAAIynI,EAAc,CACpC,IAAIC,EAAYD,IAAiB,OAAY,KAAOA,EAChDt8G,EAASnrB,EAAG,WACZ2nI,EAAQx8G,EAAO,MAAM;AAAA,CAAI,EAC7Bw8G,EAAM,IAAG,EACTA,EAAM,MAAK,EAGX,QAFIC,EAAoBD,EAAM,CAAC,EAAE,OAAO,IAAI,EACxC7X,EAAQ,wCACHpgK,EAAI,EAAGxpB,EAAIyhM,EAAM,OAAQj4K,EAAIxpB,EAAG,EAAEwpB,EACvCi4K,EAAMj4K,CAAC,EAAIi4K,EAAMj4K,CAAC,EAAE,UAAUk4K,CAAiB,EAAE,QAAQ9X,EAAO,gBAAgB,EAAI;AAAA,EAExF,OAAI4X,GACAC,EAAM,KAAK,wBAA4BD,EAAY;AAAA,CAAI,EAEpDC,CACX,CAEA,SAASxqB,IAAUn9G,EAAIynI,EAAc,CACjC,IAAIE,EAAQH,IAAaxnI,EAAIynI,CAAY,EACrCI,EAAO,IAAI,KAAKF,EAAO,CAAE,KAAM,wBAAwB,CAAE,EAC7D,OAAO,IAAI,gBAAgBE,CAAI,CACnC,CAEA,SAASC,IAA0B9nI,EAAIynI,EAAc,CACjD,IAAIvqB,EACJ,OAAO,SAAuB15H,EAAS,CACnC,OAAA05H,EAAMA,GAAOC,IAAUn9G,EAAIynI,CAAY,EAChC,IAAI,OAAOvqB,EAAK15H,CAAO,CACtC,CACA,CAEA,IAAIukJ,IAAgBD,IAA+D,UAAY,EAC9F,UAAY,CACT,2BAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oFAeI,SAASrC,EAAU/E,EAAS/rD,EAAYpsI,EAAGuqI,EAAW,CAClD,SAAS4yD,EAAM90K,EAAO,CAAE,OAAOA,aAAiBroB,EAAIqoB,EAAQ,IAAIroB,EAAE,SAAU+yK,EAAS,CAAEA,EAAQ1qJ,CAAK,CAAE,CAAE,CAAI,CAC5G,OAAO,IAAKroB,IAAMA,EAAI,UAAU,SAAU+yK,EAASqqB,EAAQ,CACvD,SAASC,EAAUh1K,EAAO,CAAE,GAAI,CAAEi1K,EAAK/yD,EAAU,KAAKliH,CAAK,CAAC,CAAE,OAAUxpB,EAAG,CAAEu+L,EAAOv+L,CAAC,EAAM,CAC3F,SAAS0+L,EAASl1K,EAAO,CAAE,GAAI,CAAEi1K,EAAK/yD,EAAU,MAASliH,CAAK,CAAC,CAAI,OAAQxpB,EAAG,CAAEu+L,EAAOv+L,CAAC,EAAM,CAC9F,SAASy+L,EAAK78J,EAAQ,CAAEA,EAAO,KAAOsyI,EAAQtyI,EAAO,KAAK,EAAI08J,EAAM18J,EAAO,KAAK,EAAE,KAAK48J,EAAWE,CAAQ,CAAI,CAC9GD,GAAM/yD,EAAYA,EAAU,MAAM4tD,EAAS/rD,GAAc,CAAE,IAAG,KAAI,CAAE,CAChF,CAAS,CACJ,CAUD,QAHIs+C,EAAQ,mEAER8S,EAAS,OAAO,WAAe,IAAc,GAAK,IAAI,WAAW,GAAG,EAC/Dr2K,EAAI,EAAGA,EAAIujK,EAAM,OAAQvjK,IAC9Bq2K,EAAO9S,EAAM,WAAWvjK,CAAC,CAAC,EAAIA,EAElC,IAAIs2K,EAAS,SAAUC,EAAa,CAChC,IAAIC,EAAQ,IAAI,WAAWD,CAAW,EAAGv2K,EAAGm1C,EAAMqhI,EAAM,OAAQC,EAAS,GACzE,IAAKz2K,EAAI,EAAGA,EAAIm1C,EAAKn1C,GAAK,EACtBy2K,GAAUlT,EAAMiT,EAAMx2K,CAAC,GAAK,CAAC,EAC7By2K,GAAUlT,GAAQiT,EAAMx2K,CAAC,EAAI,IAAM,EAAMw2K,EAAMx2K,EAAI,CAAC,GAAK,CAAE,EAC3Dy2K,GAAUlT,GAAQiT,EAAMx2K,EAAI,CAAC,EAAI,KAAO,EAAMw2K,EAAMx2K,EAAI,CAAC,GAAK,CAAE,EAChEy2K,GAAUlT,EAAMiT,EAAMx2K,EAAI,CAAC,EAAI,EAAE,EAErC,OAAIm1C,EAAM,IAAM,EACZshI,EAASA,EAAO,UAAU,EAAGA,EAAO,OAAS,CAAC,EAAI,IAE7CthI,EAAM,IAAM,IACjBshI,EAASA,EAAO,UAAU,EAAGA,EAAO,OAAS,CAAC,EAAI,MAE/CA,CACf,EAEI,MAAM6B,EAAc,IAAI,IAClBC,EAAqB,IAAI,IAC/B,SAASC,EAAsB1qK,EAAOF,EAAQ23J,EAAgB,CAC1D,OAAOwQ,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,MAAMjyL,EAAK,GAAGgqB,CAAK,IAAIF,CAAM,GAC7B,GAAI,oBAAqB,WAAY,CACjC,GAAI2qK,EAAmB,IAAIz0L,CAAE,EACzB,OAAOy0L,EAAmB,IAAIz0L,CAAE,EACpC,MAAM20L,EAAY,IAAI,gBAAgB3qK,EAAOF,CAAM,EACnD6qK,EAAU,WAAW,IAAI,EAEzB,MAAMC,EAAc,MADP,MAAMD,EAAU,cAAclT,CAAc,GAC1B,cACzBkR,EAASH,EAAOoC,CAAW,EACjC,OAAAH,EAAmB,IAAIz0L,EAAI2yL,CAAM,EAC1BA,CACV,KAEG,OAAO,EAEvB,CAAS,CACJ,CACD,MAAMkC,EAAS,KACfA,EAAO,UAAY,SAAUjhM,EAAG,CAC5B,OAAOq+L,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,GAAI,oBAAqB,WAAY,CACjC,KAAM,CAAE,GAAAjyL,EAAI,OAAA80L,EAAQ,MAAA9qK,EAAO,OAAAF,EAAQ,eAAA23J,CAAgB,EAAG7tL,EAAE,KAClDmhM,EAAoBL,EAAsB1qK,EAAOF,EAAQ23J,CAAc,EACvEkT,EAAY,IAAI,gBAAgB3qK,EAAOF,CAAM,EACvC6qK,EAAU,WAAW,IAAI,EACjC,UAAUG,EAAQ,EAAG,CAAC,EAC1BA,EAAO,MAAK,EACZ,MAAMT,EAAO,MAAMM,EAAU,cAAclT,CAAc,EACnD1gK,EAAOszK,EAAK,KACZO,EAAc,MAAMP,EAAK,cACzB1B,EAASH,EAAOoC,CAAW,EACjC,GAAI,CAACJ,EAAY,IAAIx0L,CAAE,IAAM,MAAM+0L,KAAuBpC,EACtD,OAAA6B,EAAY,IAAIx0L,EAAI2yL,CAAM,EACnBkC,EAAO,YAAY,CAAE,GAAA70L,CAAI,GAEpC,GAAIw0L,EAAY,IAAIx0L,CAAE,IAAM2yL,EACxB,OAAOkC,EAAO,YAAY,CAAE,GAAA70L,CAAI,GACpC60L,EAAO,YAAY,CACf,GAAA70L,EACA,KAAA+gB,EACA,OAAA4xK,EACA,MAAA3oK,EACA,OAAAF,CACpB,CAAiB,EACD0qK,EAAY,IAAIx0L,EAAI2yL,CAAM,CAC7B,KAEG,QAAOkC,EAAO,YAAY,CAAE,GAAIjhM,EAAE,KAAK,EAAE,CAAE,CAE3D,CAAS,CACT,CAEA,IACA,EAAG,IAAI,EAEP,MAAMohM,GAAc,CAChB,OAAQ,CACJ,KAAK,uBAAuB,QAC5B,KAAK,gBAAkB,KAAK,gBAC/B,CACD,QAAS,CACL,KAAK,OAAS,EACjB,CACD,UAAW,CACP,KAAK,OAAS,EACjB,CACD,MAAO,CACH,KAAK,OAAS,EACjB,CACD,QAAS,CACL,KAAK,OAAS,EACjB,CACD,YAAYhlJ,EAAS,CACjB,KAAK,uBAAyB,IAAI,IAClC,KAAK,UAAY,CAAE,SAAU,EAAG,SAAU,MAC1C,KAAK,OAAS,GACd,KAAK,OAAS,GACd,KAAK,gBAAkB,CAACxqB,EAAQ49B,IAAa,EACxB,KAAK,UAAU,UAC5B,KAAK,UAAU,WAAa,KAAK,UAAU,UAC/B,CAAC,KAAK,UAAU,YAC5B,KAAK,UAAU,SAAW,KAAK,UAAU,UACxC,KAAK,uBAAuB,IAAI59B,CAAM,GACvC,KAAK,uBAAuB,IAAIA,EAAQ,CAAE,GAE9C,KAAK,uBAAuB,IAAIA,CAAM,EAAE,KAAK49B,CAAQ,CACjE,EACQ,KAAM,CAAE,SAAA4mI,EAAW,MAAO,IAAAr1H,EAAK,WAAAurH,EAAY,cAAAC,EAAe,aAAAwB,EAAc,eAAAF,CAAiB,EAAGzxI,EAC5F,KAAK,WAAaA,EAAQ,WAC1B,KAAK,OAASA,EAAQ,OAClB2xI,GAAgBqI,IAAa,OAC7B,KAAK,2BAA2Br1H,EAAKurH,EAAYC,CAAa,EAC9DwB,GAAgB,OAAOqI,GAAa,UACpC,KAAK,sBAAsBA,EAAUr1H,EAAKurH,EAAYC,EAAe,CACjE,eAAAsB,CAChB,CAAa,CACR,CACD,sBAAsBwT,EAAKtgI,EAAKurH,EAAYC,EAAenwI,EAAS,CAChE,MAAMklJ,EAAqBxB,GAA0B/+H,EAAKurH,EAAYC,EAAe,EAAI,EACnFgV,EAAwB,IAAI,IAC5BN,EAAS,IAAIN,IACnBM,EAAO,UAAajhM,GAAM,CACtB,KAAM,CAAE,GAAAoM,CAAE,EAAKpM,EAAE,KAEjB,GADAuhM,EAAsB,IAAIn1L,EAAI,EAAK,EAC/B,EAAE,WAAYpM,EAAE,MAChB,OACJ,KAAM,CAAE,OAAA++L,EAAQ,KAAA5xK,EAAM,MAAAiJ,EAAO,OAAAF,CAAQ,EAAGl2B,EAAE,KAC1C,KAAK,WAAW,CACZ,GAAAoM,EACA,KAAM+mL,GAAc,IAAI,EACxB,SAAU,CACN,CACI,SAAU,YACV,KAAM,CAAC,EAAG,EAAG/8J,EAAOF,CAAM,CAC7B,EACD,CACI,SAAU,YACV,KAAM,CACF,CACI,QAAS,cACT,KAAM,CACF,CACI,QAAS,OACT,KAAM,CAAC,CAAE,QAAS,cAAe,OAAA6oK,CAAM,CAAE,EACzC,KAAA5xK,CACH,CACJ,CACJ,EACD,EACA,CACH,CACJ,CACJ,CACjB,CAAa,CACb,EACQ,MAAMq0K,EAAuB,IAAOH,EACpC,IAAII,EAAmB,EACnBC,EACJ,MAAMC,EAAY,IAAM,CACpB,MAAMC,EAAgB,GACtB,OAAA7gI,EAAI,SAAS,iBAAiB,QAAQ,EAAE,QAASwoH,GAAW,CACnDoI,GAAUpI,EAAQ+C,EAAYC,EAAe,EAAI,GAClDqV,EAAc,KAAKrY,CAAM,CAE7C,CAAa,EACMqY,CACnB,EACcC,EAAuBC,GAAc,CACvC,GAAIL,GACAK,EAAYL,EAAmBD,EAAsB,CACrDE,EAAQ,sBAAsBG,CAAmB,EACjD,MACH,CACDJ,EAAmBK,EACnBH,EAAW,EACN,QAASpY,GAAW8U,IAAU,KAAM,OAAQ,OAAQ,WAAa,CAClE,IAAI/zK,EACJ,MAAMle,EAAK,KAAK,OAAO,MAAMm9K,CAAM,EAGnC,GAFIgY,EAAsB,IAAIn1L,CAAE,GAE5Bm9K,EAAO,QAAU,GAAKA,EAAO,SAAW,EACxC,OAEJ,GADAgY,EAAsB,IAAIn1L,EAAI,EAAI,EAC9B,CAAC,QAAS,QAAQ,EAAE,SAASm9K,EAAO,SAAS,EAAG,CAChD,MAAMhgK,EAAUggK,EAAO,WAAWA,EAAO,SAAS,IAC5Cj/J,EAAKf,GAAY,KAA6B,OAASA,EAAQ,0BAA4B,MAAQe,IAAO,OAAS,OAASA,EAAG,yBAA2B,IAC5Jf,EAAQ,MAAMA,EAAQ,gBAAgB,CAE7C,CACD,MAAM23K,EAAS,MAAM,kBAAkB3X,CAAM,EAC7C0X,EAAO,YAAY,CACf,GAAA70L,EACA,OAAA80L,EACA,MAAO3X,EAAO,MACd,OAAQA,EAAO,OACf,eAAgBntI,EAAQ,cAC5C,EAAmB,CAAC8kJ,CAAM,CAAC,CACd,EAAC,EACFQ,EAAQ,sBAAsBG,CAAmB,CAC7D,EACQH,EAAQ,sBAAsBG,CAAmB,EACjD,KAAK,eAAiB,IAAM,CACxBP,IACA,qBAAqBI,CAAK,CACtC,CACK,CACD,2BAA2B3gI,EAAKurH,EAAYC,EAAe,CACvD,KAAK,qBAAoB,EACzB,KAAK,kCAAiC,EACtC,MAAM+U,EAAqBxB,GAA0B/+H,EAAKurH,EAAYC,EAAe,EAAK,EACpFwV,EAAgBvC,IAA6B,KAAK,gBAAgB,KAAK,IAAI,EAAGz+H,EAAKurH,EAAYC,CAAa,EAC5GyV,EAAwB7B,IAAgC,KAAK,gBAAgB,KAAK,IAAI,EAAGp/H,EAAKurH,EAAYC,EAAe,KAAK,MAAM,EAC1I,KAAK,eAAiB,IAAM,CACxB+U,IACAS,IACAC,GACZ,CACK,CACD,mCAAoC,CAChC,sBAAsB,IAAM,KAAK,4BAA2B,CAAE,CACjE,CACD,sBAAuB,CACnB,MAAMC,EAAyBH,GAAc,CACzC,KAAK,UAAU,SAAWA,EAC1B,sBAAsBG,CAAqB,CACvD,EACQ,sBAAsBA,CAAqB,CAC9C,CACD,6BAA8B,CAC1B,KAAK,uBAAuB,QAAQ,CAACvnH,EAAQ6uG,IAAW,CACpD,MAAMn9K,EAAK,KAAK,OAAO,MAAMm9K,CAAM,EACnC,KAAK,8BAA8BA,EAAQn9K,CAAE,CACzD,CAAS,EACD,sBAAsB,IAAM,KAAK,4BAA2B,CAAE,CACjE,CACD,8BAA8Bm9K,EAAQn9K,EAAI,CACtC,GAAI,KAAK,QAAU,KAAK,OACpB,OAEJ,MAAM81L,EAAiB,KAAK,uBAAuB,IAAI3Y,CAAM,EAC7D,GAAI,CAAC2Y,GAAkB91L,IAAO,GAC1B,OACJ,MAAMsuE,EAASwnH,EAAe,IAAK14K,GAClBjB,IAAOiB,EAAO,CAAC,MAAM,CAAC,CAEtC,EACK,CAAE,KAAA2D,CAAI,EAAK+0K,EAAe,CAAC,EACjC,KAAK,WAAW,CAAE,GAAA91L,EAAI,KAAA+gB,EAAM,SAAUutD,CAAM,CAAE,EAC9C,KAAK,uBAAuB,OAAO6uG,CAAM,CAC5C,CACL,CAEA,MAAM4Y,GAAkB,CACpB,YAAY/lJ,EAAS,CACjB,KAAK,oBAAsB,IAAI,QAC/B,KAAK,YAAc,IAAI+1I,IACvB,KAAK,WAAa/1I,EAAQ,WAC1B,KAAK,oBAAsBA,EAAQ,mBACtC,CACD,kBAAkBgmJ,EAAQlO,EAAS,CAC3B,aAAcA,EAAQ,YACtB,KAAK,WAAW,CACZ,KAAM,CAAE,EACR,QAAS,CAAE,EACX,MAAO,CAAE,EACT,WAAY,CACR,CACI,GAAIA,EAAQ,GACZ,WAAYA,EACP,UACR,CACJ,CACjB,CAAa,EACL,KAAK,iBAAiBkO,CAAM,CAC/B,CACD,iBAAiBA,EAAQ,CACjB,KAAK,oBAAoB,IAAIA,CAAM,IAEvC,KAAK,oBAAoB,IAAIA,CAAM,EACnC,KAAK,6BAA6BA,CAAM,EAC3C,CACD,iBAAiBlI,EAAQH,EAAQ,CAC7B,GAAIG,EAAO,SAAW,EAClB,OACJ,MAAMmI,EAAwB,CAC1B,GAAItI,EACJ,SAAU,CAAE,CACxB,EACczmK,EAAS,GACf,UAAW6rB,KAAS+6I,EAAQ,CACxB,IAAIjB,EACC,KAAK,YAAY,IAAI95I,CAAK,EAW3B85I,EAAU,KAAK,YAAY,MAAM95I,CAAK,GAVtC85I,EAAU,KAAK,YAAY,IAAI95I,CAAK,EACpC7rB,EAAO,KAAK,CACR,QAAA2lK,EACA,MAAO,MAAM,KAAK95I,EAAM,OAAS,QAAS,CAAClgD,EAAGmrB,KAAW,CACrD,KAAMg+J,GAAcnpL,CAAC,EACrB,MAAAmrB,CACxB,EAAsB,CACtB,CAAiB,GAILi4K,EAAsB,SAAS,KAAKpJ,CAAO,CAC9C,CACG3lK,EAAO,OAAS,IAChB+uK,EAAsB,OAAS/uK,GACnC,KAAK,oBAAoB+uK,CAAqB,CACjD,CACD,OAAQ,CACJ,KAAK,YAAY,QACjB,KAAK,oBAAsB,IAAI,OAClC,CACD,6BAA6BD,EAAQ,CACpC,CACL,CAEA,MAAME,GAAqB,CACvB,aAAc,CACV,KAAK,QAAU,IAAI,QACnB,KAAK,KAAO,GACZ,KAAK,kBAAiB,CACzB,CACD,mBAAoB,CAChB,sBAAsB,IAAM,CACxB,KAAK,MAAK,EACN,KAAK,MACL,KAAK,kBAAiB,CACtC,CAAS,CACJ,CACD,cAAc92K,EAAM+2K,EAAY,CAC5B,MAAMC,EAAU,KAAK,QAAQ,IAAIh3K,CAAI,EACrC,OAAQg3K,GAAW,MAAM,KAAKA,CAAO,EAAE,KAAM7mJ,GAAWA,IAAW4mJ,CAAU,CAChF,CACD,IAAI/2K,EAAMmwB,EAAQ,CACd,KAAK,QAAQ,IAAInwB,GAAO,KAAK,QAAQ,IAAIA,CAAI,GAAK,IAAI,KAAO,IAAImwB,CAAM,CAAC,CAC3E,CACD,OAAQ,CACJ,KAAK,QAAU,IAAI,OACtB,CACD,SAAU,CACN,KAAK,KAAO,EACf,CACL,CAEA,SAAS8mJ,GAAU,EAAG,CAClB,OAAO,OAAO,OAAO,OAAO,OAAO,GAAI,CAAC,EAAG,CAAE,UAAWnR,GAAY,CAAI,EAC5E,CACA,IAAIoR,GACAC,GACAC,GACAC,GAAY,GAChB,MAAMpV,GAAS3E,IAAY,EAC3B,SAASga,GAAO1mJ,EAAU,GAAI,CAC1B,KAAM,CAAE,KAAA2mJ,EAAM,iBAAAC,EAAkB,iBAAAC,EAAkB,WAAA3W,EAAa,WAAY,cAAAC,EAAgB,KAAM,YAAAyL,EAAc,YAAa,eAAAC,EAAiB,KAAM,cAAArL,EAAgB,UAAW,iBAAAC,EAAmB,KAAM,iBAAAc,EAAmB,GAAM,cAAA6C,EAAe,iBAAkB0S,EAAmB,eAAgBC,EAAiB,YAAAja,EAAa,WAAA0E,EAAY,MAAAwO,EAAO,OAAAgH,EAAQ,SAAAhN,EAAW,GAAI,eAAAvI,EAAiB,CAAE,EAAE,cAAAwV,EAAe,UAAAC,EAAY,GAAM,aAAAvV,EAAe,GAAO,yBAAAwV,EAA2B,GAAO,YAAAC,EAAcpnJ,EAAQ,cAAgB,mBAC1fA,EAAQ,YACR,OAAQ,qBAAA87I,EAAuB,GAAO,aAAAuL,EAAe,GAAO,aAAA3V,EAAe,GAAO,QAAA4V,EAAS,gBAAA1V,EAAkB,IAAM,GAAO,oBAAAqM,EAAsB,IAAI,IAAI,EAAE,EAAG,aAAA9E,CAAe,EAAGn5I,EACrLo5I,IAAqBD,CAAY,EACjC,MAAMoO,EAAkBJ,EAClB,OAAO,SAAW,OAClB,GACN,IAAIK,EAAoB,GACxB,GAAI,CAACD,EACD,GAAI,CACI,OAAO,OAAO,WACdC,EAAoB,GAE3B,MACS,CACNA,EAAoB,EACvB,CAEL,GAAID,GAAmB,CAACZ,EACpB,MAAM,IAAI,MAAM,2BAA2B,EAE3CM,IAAkB,QAAajN,EAAS,YAAc,SACtDA,EAAS,UAAYiN,GAEzB5V,GAAO,MAAK,EACZ,MAAMzE,EAAmBwH,IAAkB,GACrC,CACE,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,SAAU,EACb,EACC0S,IAAsB,OAClBA,EACA,CAAE,SAAU,IAChB5T,EAAiB6T,IAAoB,IAAQA,IAAoB,MACjE,CACE,OAAQ,GACR,QAAS,GACT,YAAa,GACb,eAAgB,GAChB,eAAgB,GAChB,eAAgB,GAChB,kBAAmB,GACnB,qBAAsB,GACtB,mBAAoBA,IAAoB,MACxC,qBAAsBA,IAAoB,KAC7C,EACCA,GAEI,GACVp+H,MACA,IAAI8+H,EACAC,EAA2B,EAC/B,MAAMC,EAAkB/jM,IAAM,CAC1B,UAAWq9L,MAAUqG,GAAW,GACxBrG,GAAO,iBACPr9L,GAAIq9L,GAAO,eAAer9L,EAAC,GAGnC,OAAIojM,GACA,CAACQ,IACD5jM,GAAIojM,EAAOpjM,EAAC,GAETA,EACf,EACI0iM,GAAc,CAAC1iM,GAAGgkM,KAAe,CAC7B,IAAI15K,GAOJ,GANM,GAAAA,GAAKqrK,GAAgB,CAAC,KAAO,MAAQrrK,KAAO,SAAkBA,GAAG,SAAU,GAC7EtqB,GAAE,OAAS2yL,GAAY,cACvB,EAAE3yL,GAAE,OAAS2yL,GAAY,qBACrB3yL,GAAE,KAAK,SAAW6yL,GAAoB,WAC1C8C,GAAgB,QAASsO,IAAQA,GAAI,SAAU,GAE/CN,EACAZ,GAAS,MAAmCA,EAAKgB,EAAe/jM,EAAC,EAAGgkM,EAAU,UAEzEJ,EAAmB,CACxB,MAAM7nH,GAAU,CACZ,KAAM,QACN,MAAOgoH,EAAe/jM,EAAC,EACvB,OAAQ,OAAO,SAAS,OACxB,WAAAgkM,EAChB,EACY,OAAO,OAAO,YAAYjoH,GAAS,GAAG,CACzC,CACD,GAAI/7E,GAAE,OAAS2yL,GAAY,aACvBkR,EAAwB7jM,GACxB8jM,EAA2B,UAEtB9jM,GAAE,OAAS2yL,GAAY,oBAAqB,CACjD,GAAI3yL,GAAE,KAAK,SAAW6yL,GAAoB,UACtC7yL,GAAE,KAAK,eACP,OAEJ8jM,IACA,MAAMI,GAAcjB,GAAoBa,GAA4Bb,EAC9DkB,GAAanB,GACfhjM,GAAE,UAAY6jM,EAAsB,UAAYb,GAChDkB,IAAeC,KACfxB,GAAiB,EAAI,CAE5B,CACT,EACI,MAAMyB,EAAuBrjM,IAAM,CAC/B2hM,GAAYD,GAAU,CAClB,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,QAAU,EAAE9xL,EAAC,CAClE,EAAC,CACV,EACUsjM,GAAqBtlM,IAAM2jM,GAAYD,GAAU,CACnD,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,MAAQ,EAAE9zL,EAAC,CAChE,EAAC,EACIulM,GAA6BvlM,IAAM2jM,GAAYD,GAAU,CAC3D,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,cAAgB,EAAE9zL,EAAC,CACxE,EAAC,EACIwlM,GAAgC7kM,IAAMgjM,GAAYD,GAAU,CAC9D,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,iBAAmB,EAAEnzL,EAAC,CAC3E,EAAC,EACI05L,GAAoB,IAAI+I,IAAkB,CAC5C,WAAYiC,EACZ,oBAAqBG,EAC7B,CAAK,EACKC,GAAgB,IAAI1G,IAAc,CACpC,OAAArQ,GACA,WAAY2W,EACZ,kBAAmBhL,GACnB,yBAAAmK,EACA,YAAAb,EACR,CAAK,EACD,UAAWrF,MAAUqG,GAAW,GACxBrG,GAAO,WACPA,GAAO,UAAU,CACb,WAAY5P,GACZ,wBAAyB+W,GAAc,wBACvC,6BAA8BA,GAAc,4BAC5D,CAAa,EAET,MAAMC,GAAuB,IAAInC,IACjCM,GAAgB,IAAIxB,IAAc,CAC9B,aAAArT,EACA,WAAYuW,GACZ,IAAK,OACL,WAAAhY,EACA,cAAAC,EACA,OAAAkB,GACA,SAAU2I,EAAS,OACnB,eAAAvI,CACR,CAAK,EACD,MAAM6W,GAAmB,IAAIxG,IAAiB,CAC1C,WAAYkG,EACZ,SAAUC,GACV,cAAe,CACX,WAAA/X,EACA,cAAAC,EACA,cAAAK,EACA,iBAAAC,EACA,iBAAAc,EACA,iBAAA3E,EACA,eAAA6E,EACA,WAAAD,EACA,YAAA1E,EACA,aAAA6E,EACA,aAAAD,EACA,SAAAsI,EACA,eAAA9G,EACA,cAAAkV,GACA,kBAAApL,GACA,cAAAwJ,GACA,gBAAA5U,EACA,qBAAAyW,EACH,EACD,OAAAhX,EACR,CAAK,EACDkV,GAAmB,CAACqB,GAAa,KAAU,CACvC,GAAI,CAACV,EACD,OAEJZ,GAAYD,GAAU,CAClB,KAAM9P,GAAY,KAClB,KAAM,CACF,KAAM,OAAO,SAAS,KACtB,MAAOlB,GAAgB,EACvB,OAAQD,GAAiB,CAC5B,CACb,CAAS,EAAGwS,EAAU,EACd5K,GAAkB,MAAK,EACvBsL,GAAiB,KAAI,EACrB/O,GAAgB,QAASsO,IAAQA,GAAI,KAAM,GAC3C,MAAMz4K,GAAO+kK,IAAS,SAAU,CAC5B,OAAA9C,GACA,WAAAnB,EACA,cAAAC,EACA,cAAAK,EACA,iBAAAC,EACA,iBAAAc,EACA,cAAe3E,EACf,WAAA4E,EACA,QAAS0B,EACT,eAAAzB,EACA,aAAAE,EACA,aAAAD,EACA,YAAchvL,IAAM,CACZkzL,GAAmBlzL,GAAG2uL,EAAM,GAC5B+W,GAAc,UAAU1lM,EAAC,EAEzBmzL,GAAuBnzL,GAAG2uL,EAAM,GAChC2L,GAAkB,iBAAiBt6L,EAAC,EAEpCozL,GAAcpzL,EAAC,GACf4lM,GAAiB,cAAc5lM,GAAE,WAAY,QAAQ,CAE5D,EACD,aAAc,CAACm1L,GAAQC,KAAY,CAC/BsQ,GAAc,aAAavQ,GAAQC,EAAO,EAC1CwQ,GAAiB,oBAAoBzQ,EAAM,CAC9C,EACD,iBAAkB,CAACmO,GAAQlO,KAAY,CACnCkF,GAAkB,kBAAkBgJ,GAAQlO,EAAO,CACtD,EACD,gBAAAlG,CACZ,CAAS,EACD,GAAI,CAACxiK,GACD,OAAO,QAAQ,KAAK,iCAAiC,EAEzDk3K,GAAYD,GAAU,CAClB,KAAM9P,GAAY,aAClB,KAAM,CACF,KAAAnnK,GACA,cAAe+lK,GAAgB,MAAM,CACxC,CACb,CAAS,EAAGyS,EAAU,EACdrO,GAAgB,QAASsO,IAAQA,GAAI,OAAQ,GACzC,SAAS,oBAAsB,SAAS,mBAAmB,OAAS,GACpE7K,GAAkB,iBAAiB,SAAS,mBAAoB3L,GAAO,MAAM,QAAQ,CAAC,CAClG,EACI,GAAI,CACA,MAAMmJ,GAAW,GACX+N,GAAWnZ,IAAQ,CACrB,IAAIlhK,GACJ,OAAOorK,GAAgB6G,GAAa,EAAE,CAClC,WAAY6H,EACZ,YAAa,CAAC9N,GAAWvyG,KAAW2+G,GAAYD,GAAU,CACtD,KAAM9P,GAAY,oBAClB,KAAM,CACF,OAAA5uG,GACA,UAAAuyG,EACH,CACrB,CAAiB,CAAC,EACF,mBAAqB71L,IAAMiiM,GAAYD,GAAU,CAC7C,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,gBAAkB,EAAEpyL,EAAC,CAC3F,CAAiB,CAAC,EACF,SAAU4jM,GACV,iBAAmB5jM,IAAMiiM,GAAYD,GAAU,CAC3C,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,cAAgB,EAAEpyL,EAAC,CACzF,CAAiB,CAAC,EACF,QAAUrB,IAAMsjM,GAAYD,GAAU,CAClC,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,KAAO,EAAEzzL,EAAC,CAChF,CAAiB,CAAC,EACF,mBAAqBL,IAAM2jM,GAAYD,GAAU,CAC7C,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,gBAAkB,EAAE9zL,EAAC,CAC3F,CAAiB,CAAC,EACF,iBAAmBE,IAAMyjM,GAAYD,GAAU,CAC3C,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,cAAgB,EAAE5zL,EAAC,CACzF,CAAiB,CAAC,EACF,mBAAqBA,IAAMyjM,GAAYD,GAAU,CAC7C,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,gBAAkB,EAAE5zL,EAAC,CAC3F,CAAiB,CAAC,EACF,iBAAkBqlM,GAClB,OAASvlM,IAAM2jM,GAAYD,GAAU,CACjC,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,IAAM,EAAE9zL,EAAC,CAC/E,CAAiB,CAAC,EACF,YAAcA,IAAM,CAChB2jM,GAAYD,GAAU,CAClB,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,SAAW,EAAE9zL,EAAC,CACnE,EAAC,CACL,EACD,gBAAkB2B,IAAM,CACpBgiM,GAAYD,GAAU,CAClB,KAAM9P,GAAY,oBAClB,KAAM,OAAO,OAAO,CAAE,OAAQE,GAAoB,aAAe,EAAEnyL,EAAC,CACvE,EAAC,CACL,EACD,WAAA4rL,EACA,YAAA0L,EACA,eAAAC,EACA,cAAArL,EACA,iBAAAC,EACA,iBAAA7D,EACA,iBAAA2E,EACA,SAAAyI,EACA,UAAAkN,EACA,aAAAvV,EACA,aAAAD,EACA,qBAAAoK,EACA,aAAAuL,EACA,IAAAjY,GACA,YAAAtC,EACA,WAAA0E,EACA,gBAAAI,EACA,cAAAzB,EACA,eAAA+C,EACA,eAAAzB,EACA,OAAAJ,GACA,cAAA+W,GACA,kBAAApL,GACA,iBAAAsL,GACA,qBAAAD,GACA,cAAA7B,GACA,oBAAAvI,EACA,UAAW/vK,GAAKo5K,GAAY,KAA6B,OAASA,EAAQ,OAAQ3kM,IAAMA,GAAE,QAAQ,KAAO,MAAQurB,KAAO,OAAS,OAASA,GAAG,IAAKvrB,KAAO,CACrJ,SAAUA,GAAE,SACZ,QAASA,GAAE,QACX,SAAWgrF,IAAY24G,GAAYD,GAAU,CACzC,KAAM9P,GAAY,OAClB,KAAM,CACF,OAAQ5zL,GAAE,KACV,QAAAgrF,EACH,CACzB,CAAqB,CAAC,CACL,EAAC,IAAM,CAAE,CACb,EAAEqyG,CAAK,CACpB,EACQoI,GAAc,gBAAiBzX,IAAa,CACxC,GAAI,CACA6J,GAAS,KAAK+N,GAAQ5X,GAAS,eAAe,CAAC,CAClD,OACMrxG,GAAO,CACV,QAAQ,KAAKA,EAAK,CACrB,CACb,CAAS,EACD,MAAM6nG,GAAO,IAAM,CACfof,KACA/L,GAAS,KAAK+N,GAAQ,QAAQ,CAAC,EAC/B9B,GAAY,EACxB,EACQ,OAAI,SAAS,aAAe,eACxB,SAAS,aAAe,WACxBtf,MAGAqT,GAAS,KAAK,GAAG,mBAAoB,IAAM,CACvC8L,GAAYD,GAAU,CAClB,KAAM9P,GAAY,iBAClB,KAAM,CAAE,CACX,EAAC,EACE6Q,IAAgB,oBAChBjgB,IACP,EAAC,EACFqT,GAAS,KAAK,GAAG,OAAQ,IAAM,CAC3B8L,GAAYD,GAAU,CAClB,KAAM9P,GAAY,KAClB,KAAM,CAAE,CACX,EAAC,EACE6Q,IAAgB,QAChBjgB,IACpB,EAAe,MAAM,CAAC,GAEP,IAAM,CACTqT,GAAS,QAASh2L,IAAMA,GAAG,GAC3B6jM,GAAqB,QAAO,EAC5B5B,GAAY,GACZpN,KACZ,CACK,OACM/5G,GAAO,CACV,QAAQ,KAAKA,EAAK,CACrB,CACL,CACAonH,GAAO,eAAiB,CAACxmK,EAAKytD,IAAY,CACtC,GAAI,CAAC84G,GACD,MAAM,IAAI,MAAM,+CAA+C,EAEnEH,GAAYD,GAAU,CAClB,KAAM9P,GAAY,OAClB,KAAM,CACF,IAAAr2J,EACA,QAAAytD,CACH,CACJ,EAAC,CACN,EACA+4G,GAAO,WAAa,IAAM,CACtBnN,GAAgB,QAASsO,GAAQA,EAAI,OAAQ,EACjD,EACAnB,GAAO,iBAAoBkB,GAAe,CACtC,GAAI,CAACnB,GACD,MAAM,IAAI,MAAM,iDAAiD,EAErEF,GAAiBqB,CAAU,CAC/B,EACAlB,GAAO,OAASrV,GAEhB,IAAImX,IAA8BhS,IAChCA,EAAWA,EAAW,iBAAsB,CAAC,EAAI,mBACjDA,EAAWA,EAAW,KAAU,CAAC,EAAI,OACrCA,EAAWA,EAAW,aAAkB,CAAC,EAAI,eAC7CA,EAAWA,EAAW,oBAAyB,CAAC,EAAI,sBACpDA,EAAWA,EAAW,KAAU,CAAC,EAAI,OACrCA,EAAWA,EAAW,OAAY,CAAC,EAAI,SACvCA,EAAWA,EAAW,OAAY,CAAC,EAAI,SAChCA,IACNgS,IAAa,EAAE,EACdC,IAAsC/R,IACxCA,EAAmBA,EAAmB,SAAc,CAAC,EAAI,WACzDA,EAAmBA,EAAmB,UAAe,CAAC,EAAI,YAC1DA,EAAmBA,EAAmB,iBAAsB,CAAC,EAAI,mBACjEA,EAAmBA,EAAmB,OAAY,CAAC,EAAI,SACvDA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,MAAW,CAAC,EAAI,QACtDA,EAAmBA,EAAmB,UAAe,CAAC,EAAI,YAC1DA,EAAmBA,EAAmB,iBAAsB,CAAC,EAAI,mBACjEA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,KAAU,EAAE,EAAI,OACtDA,EAAmBA,EAAmB,IAAS,EAAE,EAAI,MACrDA,EAAmBA,EAAmB,KAAU,EAAE,EAAI,OACtDA,EAAmBA,EAAmB,iBAAsB,EAAE,EAAI,mBAClEA,EAAmBA,EAAmB,UAAe,EAAE,EAAI,YAC3DA,EAAmBA,EAAmB,kBAAuB,EAAE,EAAI,oBACnEA,EAAmBA,EAAmB,cAAmB,EAAE,EAAI,gBACxDA,IACN+R,IAAqB,EAAE,EAEtBC,GAAS,CACT,MAAO,GACP,YAAa,QACjB,EAGI/jI,GACJ,GAAI,OAAO,OAAY,IAAa,CAChC,IAAIgkI,GAAM,CACN,SAAU,EAClB,EACIhkI,GAAM,CACF,UAAW,CAAE,UAAW,GAAI,OAAQ,EAAM,EAC1C,SAAU,CACN,cAAe,UAAW,CAAE,MAAO,EAAK,EACxC,SAAUgkI,GACV,SAAU,EACb,EACD,OAAQ,CAAE,MAAO,EAAG,OAAQ,CAAG,EAC/B,SAAUA,GACV,iBAAkB,UAAW,CAAE,EAC/B,oBAAqB,UAAW,CAAE,CAC1C,CACA,MACIhkI,GAAM,OAGV,IAAIikI,GAAejkI,GAAI,aACnBkkI,GAAa/oJ,GAAOgpJ,GACpBC,GAAW,OAAO,UAAU,SAC5B//G,IAAS,OAAO4/G,GAAiB,IAC7B,SAAepsI,EAAI,CAAE,OAAOosI,GAAapsI,CAAE,CAAI,EAC/C,WAGR,GAAI,CACA,OAAO,eAAe,GAAG,IAAI,CAAE,GAC/BqsI,GAAc,SAAqBtjH,EAAInzD,EAAK6mD,EAAIj4C,EAAQ,CACpD,OAAO,OAAO,eAAeukD,EAAInzD,EAAK,CAClC,MAAO6mD,EACP,SAAU,GACV,aAAcj4C,IAAW,EACrC,CAAS,CACT,CACA,MACY,CACR6nK,GAAc,SAAqBtjH,EAAInzD,EAAK6mD,EAAK,CAC7C,OAAAsM,EAAInzD,CAAI,EAAI6mD,EACLsM,CACf,CACA,CAGAujH,GAAmB,UAAiB,CAChC,IAAIjuJ,EAAOC,EAAM5d,EAEjB,SAAS6B,EAAKy9B,EAAGyvD,EAAM,CACnB,KAAK,GAAKzvD,EACV,KAAK,KAAOyvD,EACZ,KAAK,KAAO,MACf,CAED,MAAO,CACH,IAAK,SAAazvD,EAAGyvD,EAAM,CACvB/uF,EAAO,IAAI6B,EAAKy9B,EAAGyvD,CAAI,EACnBnxE,EACAA,EAAK,KAAO5d,EAGZ2d,EAAQ3d,EAEZ4d,EAAO5d,EACPA,EAAO,MACV,EACD,MAAO,UAAiB,CACpB,IAAIx4B,EAAIm2C,EAGR,IAFAA,EAAQC,EAAOgF,GAAQ,OAEhBp7C,GACHA,EAAE,GAAG,KAAKA,EAAE,IAAI,EAChBA,EAAIA,EAAE,IAEb,CACT,CACA,IAEA,SAASskM,GAASxsI,EAAGyvD,EAAM,CACvB68E,GAAgB,IAAItsI,EAAGyvD,CAAI,EACtBnsE,KACDA,GAAQkpC,IAAM8/G,GAAgB,KAAK,EAE3C,CAGA,SAASG,GAAWroK,EAAG,CACnB,IAAIsoK,EAAOC,EAAQ,OAAOvoK,EAE1B,OAAIA,IAAM,OAASuoK,IAAU,UAAYA,IAAU,cAC/CD,EAAQtoK,EAAE,MAEP,OAAOsoK,GAAU,WAAaA,EAAQ,EACjD,CAEA,SAASE,IAAS,CACd,QAASl9K,EAAE,EAAGA,EAAE,KAAK,MAAM,OAAQA,IAC/Bm9K,IACI,KACC,KAAK,QAAU,EAAK,KAAK,MAAMn9K,CAAC,EAAE,QAAU,KAAK,MAAMA,CAAC,EAAE,QAC3D,KAAK,MAAMA,CAAC,CACxB,EAEI,KAAK,MAAM,OAAS,CACxB,CAKA,SAASm9K,IAAep9E,EAAKjjH,EAAGmuG,EAAO,CACnC,IAAI0gE,EAAKqxB,EACT,GAAI,CACIlgM,IAAO,GACPmuG,EAAM,OAAO8U,EAAK,GAAG,GAGjBjjH,IAAO,GACP6uK,EAAM5rD,EAAK,IAGX4rD,EAAM7uK,EAAG,KAAK,OAAOijH,EAAK,GAAG,EAG7B4rD,IAAQ1gE,EAAM,QACdA,EAAM,OAAO,UAAU,qBAAqB,CAAC,GAGxC+xF,EAAQD,GAAWpxB,CAAG,GAC3BqxB,EAAM,KAAKrxB,EAAI1gE,EAAM,QAAQA,EAAM,MAAM,EAGzCA,EAAM,QAAQ0gE,CAAG,EAG5B,OACMjsJ,EAAK,CACRurF,EAAM,OAAOvrF,CAAG,CACnB,CACL,CAEA,SAASksJ,GAAQwxB,EAAK,CAClB,IAAIJ,EAAOj9E,EAAO,KAGlB,GAAI,CAAAA,EAAK,UAET,CAAAA,EAAK,UAAY,GAGbA,EAAK,MACLA,EAAOA,EAAK,KAGhB,GAAI,EAEIi9E,EAAQD,GAAWK,CAAG,GACtBN,GAAS,UAAU,CACf,IAAIO,EAAa,IAAIC,GAAev9E,CAAI,EACxC,GAAI,CACAi9E,EAAM,KAAKI,EACP,UAAoB,CAAExxB,GAAQ,MAAMyxB,EAAW,SAAS,CAAI,EAC5D,UAAmB,CAAEpH,GAAO,MAAMoH,EAAW,SAAS,CAAI,CAClF,CACiB,OACM39K,EAAK,CACRu2K,GAAO,KAAKoH,EAAW39K,CAAG,CAC7B,CACjB,CAAa,GAGDqgG,EAAK,IAAMq9E,EACXr9E,EAAK,MAAQ,EACTA,EAAK,MAAM,OAAS,GACpB+8E,GAASI,GAAOn9E,CAAI,EAG/B,OACMrgG,EAAK,CACRu2K,GAAO,KAAK,IAAIqH,GAAev9E,CAAI,EAAErgG,CAAG,CAC3C,EACL,CAEA,SAASu2K,GAAOmH,EAAK,CACjB,IAAIr9E,EAAO,KAGPA,EAAK,YAETA,EAAK,UAAY,GAGbA,EAAK,MACLA,EAAOA,EAAK,KAGhBA,EAAK,IAAMq9E,EACXr9E,EAAK,MAAQ,EACTA,EAAK,MAAM,OAAS,GACpB+8E,GAASI,GAAOn9E,CAAI,EAE5B,CAEA,SAASw9E,GAAgBx+E,EAAY1F,EAAI/7B,EAASkgH,EAAU,CACxD,QAASzrB,EAAI,EAAGA,EAAI14D,EAAI,OAAQ04D,KAC3B,SAAcA,EAAI,CACfhzD,EAAY,QAAQ1F,EAAI04D,CAAG,CAAC,EACvB,KACG,SAAoBqrB,EAAI,CACpB9/G,EAASy0F,EAAIqrB,CAAG,CACnB,EACDI,CACpB,CACS,GAAEzrB,CAAG,CAEd,CAEA,SAASurB,GAAev9E,EAAM,CAC1B,KAAK,IAAMA,EACX,KAAK,UAAY,EACrB,CAEA,SAAS09E,IAAQ19E,EAAM,CACnB,KAAK,QAAUA,EACf,KAAK,MAAQ,EACb,KAAK,UAAY,GACjB,KAAK,MAAQ,GACb,KAAK,IAAM,MACf,CAEA,SAAS29E,GAAWC,EAAU,CAC1B,GAAI,OAAOA,GAAa,WACpB,MAAM,UAAU,gBAAgB,EAGpC,GAAI,KAAK,UAAe,EACpB,MAAM,UAAU,eAAe,EAKnC,KAAK,QAAa,EAElB,IAAIC,EAAM,IAAIH,IAAQ,IAAI,EAE1B,KAAK,KAAU,SAAc32F,EAAQ+2F,EAAS,CAC1C,IAAInpK,EAAI,CACJ,QAAS,OAAOoyE,GAAY,WAAaA,EAAU,GACnD,QAAS,OAAO+2F,GAAY,WAAaA,EAAU,EAC/D,EAIQ,OAAAnpK,EAAE,QAAU,IAAI,KAAK,YAAY,SAAsBk3I,EAAQqqB,EAAQ,CACnE,GAAI,OAAOrqB,GAAY,YAAc,OAAOqqB,GAAW,WACnD,MAAM,UAAU,gBAAgB,EAGpCvhK,EAAE,QAAUk3I,EACZl3I,EAAE,OAASuhK,CACvB,CAAS,EACD2H,EAAI,MAAM,KAAKlpK,CAAC,EAEZkpK,EAAI,QAAU,GACdd,GAASI,GAAOU,CAAG,EAGhBlpK,EAAE,OACjB,EACI,KAAK,MAAW,SAAiBmpK,EAAS,CACtC,OAAO,KAAK,KAAK,OAAOA,CAAO,CACvC,EAEI,GAAI,CACAF,EAAS,KACL,OACA,SAAuBP,EAAI,CACvBxxB,GAAQ,KAAKgyB,EAAIR,CAAG,CACvB,EACD,SAAsBA,EAAK,CACvBnH,GAAO,KAAK2H,EAAIR,CAAG,CACtB,CACb,CACK,OACM19K,EAAK,CACRu2K,GAAO,KAAK2H,EAAIl+K,CAAG,CACtB,CACL,CAEA,IAAIo+K,GAAmBnB,GAAY,GAAG,cAAce,GAC/B,EACrB,EAGAA,GAAW,UAAYI,GAGvBnB,GAAYmB,GAAiB,UAAU,EAClB,EACrB,EAEAnB,GAAYe,GAAW,UAAU,SAAyBN,EAAK,CAC3D,IAAIr+E,EAAc,KAIlB,OAAIq+E,GAAO,OAAOA,GAAQ,UAAYA,EAAI,UAAe,EAC9CA,EAGJ,IAAIr+E,EAAY,SAAkB6sD,EAAQqqB,EAAO,CACpD,GAAI,OAAOrqB,GAAY,YAAc,OAAOqqB,GAAW,WACnD,MAAM,UAAU,gBAAgB,EAGpCrqB,EAAQwxB,CAAG,CACnB,CAAK,CACL,CAAC,EAEDT,GAAYe,GAAW,SAAS,SAAwBN,EAAK,CACzD,OAAO,IAAI,KAAK,SAAkBxxB,EAAQqqB,EAAO,CAC7C,GAAI,OAAOrqB,GAAY,YAAc,OAAOqqB,GAAW,WACnD,MAAM,UAAU,gBAAgB,EAGpCA,EAAOmH,CAAG,CAClB,CAAK,CACL,CAAC,EAEDT,GAAYe,GAAW,MAAM,SAAqBrkF,EAAK,CACnD,IAAI0F,EAAc,KAGlB,OAAI89E,GAAS,KAAKxjF,CAAG,IAAM,iBAChB0F,EAAY,OAAO,UAAU,cAAc,CAAC,EAEnD1F,EAAI,SAAW,EACR0F,EAAY,QAAQ,EAAE,EAG1B,IAAIA,EAAY,SAAkB6sD,EAAQqqB,EAAO,CACpD,GAAI,OAAOrqB,GAAY,YAAc,OAAOqqB,GAAW,WACnD,MAAM,UAAU,gBAAgB,EAGpC,IAAI9gI,EAAMkkD,EAAI,OAAQ0kF,EAAO,MAAM5oI,CAAG,EAAG9wC,EAAQ,EAEjDk5K,GAAgBx+E,EAAY1F,EAAI,SAAkB04D,EAAIqrB,EAAK,CACvDW,EAAKhsB,CAAG,EAAIqrB,EACR,EAAE/4K,IAAU8wC,GACZy2G,EAAQmyB,CAAI,CAEnB,EAAC9H,CAAM,CAChB,CAAK,CACL,CAAC,EAED0G,GAAYe,GAAW,OAAO,SAAsBrkF,EAAK,CACrD,IAAI0F,EAAc,KAGlB,OAAI89E,GAAS,KAAKxjF,CAAG,IAAM,iBAChB0F,EAAY,OAAO,UAAU,cAAc,CAAC,EAGhD,IAAIA,EAAY,SAAkB6sD,EAAQqqB,EAAO,CACpD,GAAI,OAAOrqB,GAAY,YAAc,OAAOqqB,GAAW,WACnD,MAAM,UAAU,gBAAgB,EAGpCsH,GAAgBx+E,EAAY1F,EAAI,SAAkB04D,EAAIqrB,EAAI,CACtDxxB,EAAQwxB,CAAG,CACd,EAACnH,CAAM,CAChB,CAAK,CACL,CAAC,EAED,IAAI+H,GACA,OAAO,QAAY,KAAe,QAAQ,SAAU,EAAC,QAAQ,eAAe,IAAM,GAClFA,GAAkB,QAElBA,GAAkBN,GAMtB,IAAIO,GAAmB,GAAK,GAAK,GAAK,IAElCC,GAAiC,EAAI,IAOrCC,GAAa,MAAM,UACnBC,IAAY,SAAS,UACrBC,GAAW,OAAO,UAClBlpH,GAAQgpH,GAAW,MACnBtlJ,GAAWwlJ,GAAS,SACpBlyH,GAAiBkyH,GAAS,eAC1BC,GAAgB7lI,GAAI,QACpBk7G,GAAYl7G,GAAI,UAChB8lI,GAAa9lI,GAAI,SACjB+lI,GAAc/lI,GAAI,MAClBgmI,GAAShmI,GAAI,OACbimI,GAAY/qB,GAAU,UAEtBgrB,GAAaP,IAAU,KACvBQ,GAAgBT,GAAW,QAC3BU,GAAgBV,GAAW,QAC3BW,GAAYX,GAAW,IACvBY,IAAgB,MAAM,QACtBC,GAAU,GAEV/5J,EAAI,CACJ,KAAM,SAAS67I,EAAK,CAEhB,OAAOA,EAAI,QAAQ,qCAAsC,EAAE,CAC9D,CACL,EAGIme,GAAY,CAEZ,IAAK,UAAW,CACZ,GAAIzC,GAAO,OAAS,CAACv3J,EAAE,YAAYq5J,EAAa,GAAKA,GACjD,GAAI,CACAA,GAAc,IAAI,MAAMA,GAAe,SAAS,CACnD,MAAa,CACVr5J,EAAE,KAAK,UAAW,SAASizE,EAAK,CAC5BomF,GAAc,IAAIpmF,CAAG,CACzC,CAAiB,CACJ,CAER,EAED,KAAM,UAAW,CACb,GAAIskF,GAAO,OAAS,CAACv3J,EAAE,YAAYq5J,EAAa,GAAKA,GAAe,CAChE,IAAIh5K,EAAO,CAAC,mBAAmB,EAAE,OAAO2f,EAAE,QAAQ,SAAS,CAAC,EAC5D,GAAI,CACAq5J,GAAc,KAAK,MAAMA,GAAeh5K,CAAI,CAC/C,MAAa,CACV2f,EAAE,KAAK3f,EAAM,SAAS4yF,EAAK,CACvBomF,GAAc,KAAKpmF,CAAG,CAC1C,CAAiB,CACJ,CACJ,CACJ,EAED,MAAO,UAAW,CACd,GAAIskF,GAAO,OAAS,CAACv3J,EAAE,YAAYq5J,EAAa,GAAKA,GAAe,CAChE,IAAIh5K,EAAO,CAAC,iBAAiB,EAAE,OAAO2f,EAAE,QAAQ,SAAS,CAAC,EAC1D,GAAI,CACAq5J,GAAc,MAAM,MAAMA,GAAeh5K,CAAI,CAChD,MAAa,CACV2f,EAAE,KAAK3f,EAAM,SAAS4yF,EAAK,CACvBomF,GAAc,MAAMpmF,CAAG,CAC3C,CAAiB,CACJ,CACJ,CACJ,EAED,SAAU,UAAW,CACjB,GAAI,CAACjzE,EAAE,YAAYq5J,EAAa,GAAKA,GAAe,CAChD,IAAIh5K,EAAO,CAAC,iBAAiB,EAAE,OAAO2f,EAAE,QAAQ,SAAS,CAAC,EAC1D,GAAI,CACAq5J,GAAc,MAAM,MAAMA,GAAeh5K,CAAI,CAChD,MAAa,CACV2f,EAAE,KAAK3f,EAAM,SAAS4yF,EAAK,CACvBomF,GAAc,MAAMpmF,CAAG,CAC3C,CAAiB,CACJ,CACJ,CACJ,CACL,EAEIgnF,GAAuB,SAASnoK,EAAMZ,EAAQ,CAC9C,OAAO,UAAW,CACd,iBAAU,CAAC,EAAI,IAAMA,EAAS,KAAO,UAAU,CAAC,EACzCY,EAAK,MAAMkoK,GAAW,SAAS,CAC9C,CACA,EACIE,GAAsB,SAAShpK,EAAQ,CACvC,MAAO,CACH,IAAK+oK,GAAqBD,GAAU,IAAK9oK,CAAM,EAC/C,MAAO+oK,GAAqBD,GAAU,MAAO9oK,CAAM,EACnD,SAAU+oK,GAAqBD,GAAU,SAAU9oK,CAAM,CACjE,CACA,EAGIipK,GAAW,SAAS5mM,EAAG,CACvB,OAAO,UAAW,CACd,GAAI,CACA,OAAOA,EAAE,MAAM,KAAM,SAAS,CACjC,OAAQd,EAAG,CACRunM,GAAU,SAAS,8EAA8E,EAC7FzC,GAAO,OACPyC,GAAU,SAASvnM,CAAC,CAE3B,CACT,CACA,EAEI2nM,IAAgB,SAASC,EAAO,CAChC,IAAIC,EAAQD,EAAM,UAClB,QAASvoK,KAAQwoK,EACT,OAAOA,EAAMxoK,CAAI,GAAO,aACxBwoK,EAAMxoK,CAAI,EAAIqoK,GAASG,EAAMxoK,CAAI,CAAC,EAG9C,EAKAkO,EAAE,KAAO,SAASlO,EAAM9V,EAAS,CAC7B,IAAIqE,EAAMk6K,EACV,GAAIb,IAAc5nK,EAAK,OAAS4nK,GAC5B,OAAOA,GAAW,MAAM5nK,EAAMo+C,GAAM,KAAK,UAAW,CAAC,CAAC,EAE1D,GAAI,CAAClwC,EAAE,WAAWlO,CAAI,EAClB,MAAM,IAAI,UAEd,OAAAzR,EAAO6vD,GAAM,KAAK,UAAW,CAAC,EAC9BqqH,EAAQ,UAAW,CACf,GAAI,EAAE,gBAAgBA,GAClB,OAAOzoK,EAAK,MAAM9V,EAASqE,EAAK,OAAO6vD,GAAM,KAAK,SAAS,CAAC,CAAC,EAEjE,IAAIyhH,EAAO,GACXA,EAAK,UAAY7/J,EAAK,UACtB,IAAIgpF,EAAO,IAAI62E,EACfA,EAAK,UAAY,KACjB,IAAIt9J,EAASvC,EAAK,MAAMgpF,EAAMz6F,EAAK,OAAO6vD,GAAM,KAAK,SAAS,CAAC,CAAC,EAChE,OAAI,OAAO77C,CAAM,IAAMA,EACZA,EAEJymF,CACf,EACWy/E,CACX,EAOAv6J,EAAE,KAAO,SAASo0C,EAAKw/C,EAAU53G,EAAS,CACtC,GAAIo4D,GAAQ,MAGZ,GAAIulH,IAAiBvlH,EAAI,UAAYulH,GACjCvlH,EAAI,QAAQw/C,EAAU53G,CAAO,UACtBo4D,EAAI,SAAW,CAACA,EAAI,QAC3B,QAASr5D,EAAI,EAAGzpB,EAAI8iF,EAAI,OAAQr5D,EAAIzpB,EAAGypB,IACnC,GAAIA,KAAKq5D,GAAOw/C,EAAS,KAAK53G,EAASo4D,EAAIr5D,CAAC,EAAGA,EAAGq5D,CAAG,IAAM2lH,GACvD,WAIR,SAASroK,KAAO0iD,EACZ,GAAIlN,GAAe,KAAKkN,EAAK1iD,CAAG,GACxBkiG,EAAS,KAAK53G,EAASo4D,EAAI1iD,CAAG,EAAGA,EAAK0iD,CAAG,IAAM2lH,GAC/C,OAKpB,EAEA/5J,EAAE,OAAS,SAASo0C,EAAK,CACrBp0C,SAAE,KAAKkwC,GAAM,KAAK,UAAW,CAAC,EAAG,SAASsG,EAAQ,CAC9C,QAAS1zD,KAAQ0zD,EACTA,EAAO1zD,CAAI,IAAM,SACjBsxD,EAAItxD,CAAI,EAAI0zD,EAAO1zD,CAAI,EAGvC,CAAK,EACMsxD,CACX,EAEAp0C,EAAE,QAAU85J,KAAiB,SAAS1lH,EAAK,CACvC,OAAOxgC,GAAS,KAAKwgC,CAAG,IAAM,gBAClC,EAKAp0C,EAAE,WAAa,SAASzsC,EAAG,CACvB,GAAI,CACA,MAAO,mBAAmB,KAAKA,CAAC,CACnC,MAAW,CACR,MAAO,EACV,CACL,EAEAysC,EAAE,YAAc,SAASo0C,EAAK,CAC1B,MAAO,CAAC,EAAEA,GAAOlN,GAAe,KAAKkN,EAAK,QAAQ,EACtD,EAEAp0C,EAAE,QAAU,SAASw6J,EAAU,CAC3B,OAAKA,EAGDA,EAAS,QACFA,EAAS,UAEhBx6J,EAAE,QAAQw6J,CAAQ,GAGlBx6J,EAAE,YAAYw6J,CAAQ,EACftqH,GAAM,KAAKsqH,CAAQ,EAEvBx6J,EAAE,OAAOw6J,CAAQ,EAXb,EAYf,EAEAx6J,EAAE,IAAM,SAASo0E,EAAK3xF,EAAUzG,EAAS,CACrC,GAAI69K,IAAazlF,EAAI,MAAQylF,GACzB,OAAOzlF,EAAI,IAAI3xF,EAAUzG,CAAO,EAEhC,IAAIy+K,EAAU,GACdz6J,SAAE,KAAKo0E,EAAK,SAASroF,EAAM,CACvB0uK,EAAQ,KAAKh4K,EAAS,KAAKzG,EAAS+P,CAAI,CAAC,CACrD,CAAS,EACM0uK,CAEf,EAEAz6J,EAAE,KAAO,SAASo0C,EAAK,CACnB,IAAIqmH,EAAU,GACd,OAAIrmH,IAAQ,MAGZp0C,EAAE,KAAKo0C,EAAK,SAASn4D,EAAOyV,EAAK,CAC7B+oK,EAAQA,EAAQ,MAAM,EAAI/oK,CAClC,CAAK,EACM+oK,CACX,EAEAz6J,EAAE,OAAS,SAASo0C,EAAK,CACrB,IAAIqmH,EAAU,GACd,OAAIrmH,IAAQ,MAGZp0C,EAAE,KAAKo0C,EAAK,SAASn4D,EAAO,CACxBw+K,EAAQA,EAAQ,MAAM,EAAIx+K,CAClC,CAAK,EACMw+K,CACX,EAEAz6J,EAAE,QAAU,SAASo0C,EAAK/vD,EAAQ,CAC9B,IAAIqxF,EAAQ,GACZ,OAAIthC,IAAQ,KACDshC,EAEPkkF,IAAiBxlH,EAAI,UAAYwlH,GAC1BxlH,EAAI,QAAQ/vD,CAAM,GAAK,IAElC2b,EAAE,KAAKo0C,EAAK,SAASn4D,EAAO,CACxB,GAAIy5F,IAAUA,EAASz5F,IAAUoI,GAC7B,OAAO01K,EAEnB,CAAK,EACMrkF,EACX,EAEA11E,EAAE,SAAW,SAAS67I,EAAK6e,EAAQ,CAC/B,OAAO7e,EAAI,QAAQ6e,CAAM,IAAM,EACnC,EAGA16J,EAAE,QAAU,SAAS26J,EAAUC,EAAY,CACvC,OAAAD,EAAS,UAAY,IAAIC,EACzBD,EAAS,UAAU,YAAcA,EACjCA,EAAS,WAAaC,EAAW,UAC1BD,CACX,EAEA36J,EAAE,SAAW,SAASo0C,EAAK,CACvB,OAAQA,IAAQ,OAAOA,CAAG,GAAK,CAACp0C,EAAE,QAAQo0C,CAAG,CACjD,EAEAp0C,EAAE,cAAgB,SAASo0C,EAAK,CAC5B,GAAIp0C,EAAE,SAASo0C,CAAG,EAAG,CACjB,QAAS1iD,KAAO0iD,EACZ,GAAIlN,GAAe,KAAKkN,EAAK1iD,CAAG,EAC5B,MAAO,GAGf,MAAO,EACV,CACD,MAAO,EACX,EAEAsO,EAAE,YAAc,SAASo0C,EAAK,CAC1B,OAAOA,IAAQ,MACnB,EAEAp0C,EAAE,SAAW,SAASo0C,EAAK,CACvB,OAAOxgC,GAAS,KAAKwgC,CAAG,GAAK,iBACjC,EAEAp0C,EAAE,OAAS,SAASo0C,EAAK,CACrB,OAAOxgC,GAAS,KAAKwgC,CAAG,GAAK,eACjC,EAEAp0C,EAAE,SAAW,SAASo0C,EAAK,CACvB,OAAOxgC,GAAS,KAAKwgC,CAAG,GAAK,iBACjC,EAEAp0C,EAAE,UAAY,SAASo0C,EAAK,CACxB,MAAO,CAAC,EAAEA,GAAOA,EAAI,WAAa,EACtC,EAEAp0C,EAAE,YAAc,SAASo0C,EAAK,CAC1Bp0C,SAAE,KAAKo0C,EAAK,SAASviF,EAAGuB,EAAG,CACnB4sC,EAAE,OAAOnuC,CAAC,EACVuiF,EAAIhhF,CAAC,EAAI4sC,EAAE,WAAWnuC,CAAC,EAChBmuC,EAAE,SAASnuC,CAAC,IACnBuiF,EAAIhhF,CAAC,EAAI4sC,EAAE,YAAYnuC,CAAC,EAEpC,CAAK,EACMuiF,CACX,EAEAp0C,EAAE,UAAY,UAAW,CACrB,YAAK,IAAM,KAAK,KAAO,UAAW,CAC9B,MAAO,CAAC,IAAI,IACpB,EACW,KAAK,KAChB,EAEAA,EAAE,WAAa,SAAS9sC,EAAG,CAEvB,SAAS2nM,EAAItpM,EAAG,CACZ,OAAOA,EAAI,GAAK,IAAMA,EAAIA,CAC7B,CACD,OAAO2B,EAAE,eAAc,EAAK,IACxB2nM,EAAI3nM,EAAE,cAAgB,CAAC,EAAI,IAC3B2nM,EAAI3nM,EAAE,WAAY,GAAI,IACtB2nM,EAAI3nM,EAAE,YAAa,GAAI,IACvB2nM,EAAI3nM,EAAE,cAAe,GAAI,IACzB2nM,EAAI3nM,EAAE,cAAa,CAAE,CAC7B,EAEA8sC,EAAE,uBAAyB,SAASxuC,EAAG,CACnC,IAAIk1K,EAAM,GACV1mI,SAAE,KAAKxuC,EAAG,SAASK,EAAGuB,EAAG,CACjB4sC,EAAE,SAASnuC,CAAC,GAAKA,EAAE,OAAS,IAC5B60K,EAAItzK,CAAC,EAAIvB,EAErB,CAAK,EACM60K,CACX,EAOA1mI,EAAE,SAAW,SAASo0C,EAAKv8B,EAAQ,CAC/B,IAAI6uH,EAEJ,OAAI,OAAOtyF,GAAS,SAChBsyF,EAAMtyF,EAAI,MAAM,EAAGv8B,CAAM,EAClB7X,EAAE,QAAQo0C,CAAG,GACpBsyF,EAAM,GACN1mI,EAAE,KAAKo0C,EAAK,SAAStM,EAAK,CACtB4+F,EAAI,KAAK1mI,EAAE,SAAS8nC,EAAKjwB,CAAM,CAAC,CAC5C,CAAS,GACM7X,EAAE,SAASo0C,CAAG,GACrBsyF,EAAM,GACN1mI,EAAE,KAAKo0C,EAAK,SAAStM,EAAKp2C,EAAK,CAC3Bg1I,EAAIh1I,CAAG,EAAIsO,EAAE,SAAS8nC,EAAKjwB,CAAM,CAC7C,CAAS,GAED6uH,EAAMtyF,EAGHsyF,CACX,EAEA1mI,EAAE,WAAc,UAAW,CACvB,OAAO,SAAS86J,EAAW,CACvB,IAAI7+K,EAAQ6+K,EACRC,EAAQ,SAAS7sK,EAAQ,CACzB,IAAI8sK,EAAY,0HACZpxB,EAAO,CACP,KAAM,MACN,IAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,IAAK,MACL,KAAM,MACtB,EAEY,OAAAoxB,EAAU,UAAY,EACfA,EAAU,KAAK9sK,CAAM,EACxB,IAAMA,EAAO,QAAQ8sK,EAAW,SAAS7oM,EAAG,CACxC,IAAI,EAAIy3K,EAAKz3K,CAAC,EACd,OAAO,OAAO,GAAM,SAAW,EAC3B,OAAS,OAASA,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAC/D,GAAI,IACL,IAAM+7B,EAAS,GAC/B,EAEY2tJ,EAAM,SAASnqJ,EAAKupK,EAAQ,CAC5B,IAAIxiK,EAAM,GACNyiK,EAAS,OACTngL,EAAI,EACJ3nB,EAAI,GACJvB,EAAI,GACJgmD,EAAS,EACTsjJ,EAAO1iK,EACP2iK,EAAU,GACVn/K,EAAQg/K,EAAOvpK,CAAG,EAStB,OANIzV,GAAS,OAAOA,GAAU,UAC1B,OAAOA,EAAM,QAAW,aACxBA,EAAQA,EAAM,OAAOyV,CAAG,GAIpB,OAAOzV,EAAK,CAChB,IAAK,SACD,OAAO8+K,EAAM9+K,CAAK,EAEtB,IAAK,SAED,OAAO,SAASA,CAAK,EAAI,OAAOA,CAAK,EAAI,OAE7C,IAAK,UACL,IAAK,OAKD,OAAO,OAAOA,CAAK,EAEvB,IAAK,SAKD,GAAI,CAACA,EACD,MAAO,OAQX,GAJAwc,GAAOyiK,EACPE,EAAU,GAGNxnJ,GAAS,MAAM33B,CAAK,IAAM,iBAAkB,CAK5C,IADA47B,EAAS57B,EAAM,OACVlB,EAAI,EAAGA,EAAI88B,EAAQ98B,GAAK,EACzBqgL,EAAQrgL,CAAC,EAAI8gK,EAAI9gK,EAAGkB,CAAK,GAAK,OAKlC,OAAApqB,EAAIupM,EAAQ,SAAW,EAAI,KACvB3iK,EAAM;AAAA,EAAQA,EACd2iK,EAAQ,KAAK;AAAA,EAAQ3iK,CAAG,EAAI;AAAA,EAC5B0iK,EAAO,IACH,IAAMC,EAAQ,KAAK,GAAG,EAAI,IAClC3iK,EAAM0iK,EACCtpM,CACV,CAGD,IAAKuB,KAAK6oB,EACFirD,GAAe,KAAKjrD,EAAO7oB,CAAC,IAC5BvB,EAAIgqL,EAAIzoL,EAAG6oB,CAAK,EACZpqB,GACAupM,EAAQ,KAAKL,EAAM3nM,CAAC,GAAKqlC,EAAM,KAAO,KAAO5mC,CAAC,GAO1D,OAAAA,EAAIupM,EAAQ,SAAW,EAAI,KACvB3iK,EAAM,IAAM2iK,EAAQ,KAAK,GAAG,EAC5BD,EAAO,IAAM,IAAMC,EAAQ,KAAK,GAAG,EAAI,IAC3C3iK,EAAM0iK,EACCtpM,CACd,CACb,EAIQ,OAAOgqL,EAAI,GAAI,CACX,GAAI5/J,CAChB,CAAS,CACT,CACA,IAMA+jB,EAAE,WAAc,UAAW,CACvB,IAAIq7J,EACAvvL,EACAwvL,EAAU,CACN,IAAK,IACL,KAAM,KACN,IAAK,IACL,EAAK,KACL,EAAK,KACL,EAAK;AAAA,EACL,EAAK,KACL,EAAK,GACR,EACD7nF,EACAtlC,EAAQ,SAAS,EAAG,CAChB,IAAI17E,EAAI,IAAI,YAAY,CAAC,EACzB,MAAAA,EAAE,GAAK4oM,EACP5oM,EAAE,KAAOghH,EACHhhH,CACT,EACD64E,EAAO,SAASn4E,EAAG,CAEf,OAAIA,GAAKA,IAAM2Y,GACXqiE,EAAM,aAAgBh7E,EAAI,iBAAqB2Y,EAAK,GAAI,EAI5DA,EAAK2nG,EAAK,OAAO4nF,CAAE,EACnBA,GAAM,EACCvvL,CACV,EACDg0G,EAAS,UAAW,CAEhB,IAAIA,EACA5xF,EAAS,GAMb,IAJIpiB,IAAO,MACPoiB,EAAS,IACTo9C,EAAK,GAAG,GAELx/D,GAAM,KAAOA,GAAM,KACtBoiB,GAAUpiB,EACVw/D,IAEJ,GAAIx/D,IAAO,IAEP,IADAoiB,GAAU,IACHo9C,EAAI,GAAMx/D,GAAM,KAAOA,GAAM,KAChCoiB,GAAUpiB,EAGlB,GAAIA,IAAO,KAAOA,IAAO,IAOrB,IANAoiB,GAAUpiB,EACVw/D,KACIx/D,IAAO,KAAOA,IAAO,OACrBoiB,GAAUpiB,EACVw/D,KAEGx/D,GAAM,KAAOA,GAAM,KACtBoiB,GAAUpiB,EACVw/D,IAIR,GADAw0C,EAAS,CAAC5xF,EACN,CAAC,SAAS4xF,CAAM,EAChB3xC,EAAM,YAAY,MAElB,QAAO2xC,CAEd,EAED5xF,EAAS,UAAW,CAEhB,IAAIqtK,EACAxgL,EACAmT,EAAS,GACTstK,EAEJ,GAAI1vL,IAAO,IACP,KAAOw/D,EAAI,GAAI,CACX,GAAIx/D,IAAO,IACP,OAAAw/D,IACOp9C,EAEX,GAAIpiB,IAAO,KAEP,GADAw/D,IACIx/D,IAAO,IAAK,CAEZ,IADA0vL,EAAQ,EACHzgL,EAAI,EAAGA,EAAI,IACZwgL,EAAM,SAASjwH,EAAM,EAAE,EAAE,EACrB,EAAC,SAASiwH,CAAG,GAFFxgL,GAAK,EAKpBygL,EAAQA,EAAQ,GAAKD,EAEzBrtK,GAAU,OAAO,aAAastK,CAAK,CACtC,SAAU,OAAOF,EAAQxvL,CAAE,GAAM,SAC9BoiB,GAAUotK,EAAQxvL,CAAE,MAEpB,YAGJoiB,GAAUpiB,CAEjB,CAELqiE,EAAM,YAAY,CACrB,EACDstH,EAAQ,UAAW,CAEf,KAAO3vL,GAAMA,GAAM,KACfw/D,GAEP,EACDowH,EAAO,UAAW,CAEd,OAAQ5vL,EAAE,CACN,IAAK,IACD,OAAAw/D,EAAK,GAAG,EACRA,EAAK,GAAG,EACRA,EAAK,GAAG,EACRA,EAAK,GAAG,EACD,GACX,IAAK,IACD,OAAAA,EAAK,GAAG,EACRA,EAAK,GAAG,EACRA,EAAK,GAAG,EACRA,EAAK,GAAG,EACRA,EAAK,GAAG,EACD,GACX,IAAK,IACD,OAAAA,EAAK,GAAG,EACRA,EAAK,GAAG,EACRA,EAAK,GAAG,EACRA,EAAK,GAAG,EACD,IACd,CACD6C,EAAM,eAAiBriE,EAAK,GAAG,CAClC,EACDmQ,EACA+uB,EAAQ,UAAW,CAEf,IAAIA,EAAQ,GAEZ,GAAIl/B,IAAO,IAAK,CAGZ,GAFAw/D,EAAK,GAAG,EACRmwH,IACI3vL,IAAO,IACP,OAAAw/D,EAAK,GAAG,EACDtgC,EAEX,KAAOl/B,GAAI,CAGP,GAFAk/B,EAAM,KAAK/uB,EAAK,CAAE,EAClBw/K,IACI3vL,IAAO,IACP,OAAAw/D,EAAK,GAAG,EACDtgC,EAEXsgC,EAAK,GAAG,EACRmwH,GACH,CACJ,CACDttH,EAAM,WAAW,CACpB,EACDpG,EAAS,UAAW,CAEhB,IAAIr2C,EACAq2C,EAAS,GAEb,GAAIj8D,IAAO,IAAK,CAGZ,GAFAw/D,EAAK,GAAG,EACRmwH,IACI3vL,IAAO,IACP,OAAAw/D,EAAK,GAAG,EACDvD,EAEX,KAAOj8D,GAAI,CASP,GARA4lB,EAAMxD,EAAM,EACZutK,IACAnwH,EAAK,GAAG,EACJ,OAAO,eAAe,KAAKvD,EAAQr2C,CAAG,GACtCy8C,EAAM,kBAAoBz8C,EAAM,GAAG,EAEvCq2C,EAAOr2C,CAAG,EAAIzV,IACdw/K,IACI3vL,IAAO,IACP,OAAAw/D,EAAK,GAAG,EACDvD,EAEXuD,EAAK,GAAG,EACRmwH,GACH,CACJ,CACDttH,EAAM,YAAY,CAC9B,EAEI,OAAAlyD,EAAQ,UAAW,CAIf,OADAw/K,IACQ3vL,EAAE,CACN,IAAK,IACD,OAAOi8D,EAAM,EACjB,IAAK,IACD,OAAO/8B,EAAK,EAChB,IAAK,IACD,OAAO9c,EAAM,EACjB,IAAK,IACD,OAAO4xF,EAAM,EACjB,QACI,OAAOh0G,GAAM,KAAOA,GAAM,IAAMg0G,EAAM,EAAK47E,GAClD,CACT,EAIW,SAASllH,EAAQ,CACpB,IAAIniD,EAEJ,OAAAo/E,EAAOj9B,EACP6kH,EAAK,EACLvvL,EAAK,IACLuoB,EAASpY,EAAK,EACdw/K,IACI3vL,GACAqiE,EAAM,cAAc,EAGjB95C,CACf,CACA,IAEA2L,EAAE,aAAe,SAASuO,EAAM,CAC5B,IAAIotJ,EAAM,oEACNC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAMphL,EAAI,EACtC/f,EAAK,EACLohM,EAAM,GACNC,EAAU,GAEd,GAAI,CAAC9tJ,EACD,OAAOA,EAGXA,EAAOvO,EAAE,WAAWuO,CAAI,EAExB,GACIqtJ,EAAKrtJ,EAAK,WAAWxzB,GAAG,EACxB8gL,EAAKttJ,EAAK,WAAWxzB,GAAG,EACxB+gL,EAAKvtJ,EAAK,WAAWxzB,GAAG,EAExBohL,EAAOP,GAAM,GAAKC,GAAM,EAAIC,EAE5BC,EAAKI,GAAQ,GAAK,GAClBH,EAAKG,GAAQ,GAAK,GAClBF,EAAKE,GAAQ,EAAI,GACjBD,EAAKC,EAAO,GAGZE,EAAQrhM,GAAI,EAAI2gM,EAAI,OAAOI,CAAE,EAAIJ,EAAI,OAAOK,CAAE,EAAIL,EAAI,OAAOM,CAAE,EAAIN,EAAI,OAAOO,CAAE,QAC3EnhL,EAAIwzB,EAAK,QAIlB,OAFA6tJ,EAAMC,EAAQ,KAAK,EAAE,EAEb9tJ,EAAK,OAAS,EAAC,CACnB,IAAK,GACD6tJ,EAAMA,EAAI,MAAM,EAAG,EAAE,EAAI,KACzB,MACJ,IAAK,GACDA,EAAMA,EAAI,MAAM,EAAG,EAAE,EAAI,IACzB,KACP,CAED,OAAOA,CACX,EAEAp8J,EAAE,WAAa,SAAS9R,EAAQ,CAC5BA,GAAUA,EAAS,IAAI,QAAQ,QAAS;AAAA,CAAI,EAAE,QAAQ,MAAO;AAAA,CAAI,EAEjE,IAAIouK,EAAU,GACVl0I,EACAC,EACAk0I,EAAU,EACVhrM,EAKJ,IAHA62D,EAAQC,EAAM,EACdk0I,EAAUruK,EAAO,OAEZ38B,EAAI,EAAGA,EAAIgrM,EAAShrM,IAAK,CAC1B,IAAIirM,EAAKtuK,EAAO,WAAW38B,CAAC,EACxB6qM,EAAM,KAENI,EAAK,IACLn0I,IACQm0I,EAAK,KAASA,EAAK,KAC3BJ,EAAM,OAAO,aAAcI,GAAM,EAAK,IAAMA,EAAK,GAAM,GAAG,EAE1DJ,EAAM,OAAO,aAAcI,GAAM,GAAM,IAAOA,GAAM,EAAK,GAAM,IAAMA,EAAK,GAAM,GAAG,EAEnFJ,IAAQ,OACJ/zI,EAAMD,IACNk0I,GAAWpuK,EAAO,UAAUk6B,EAAOC,CAAG,GAE1Ci0I,GAAWF,EACXh0I,EAAQC,EAAM92D,EAAI,EAEzB,CAED,OAAI82D,EAAMD,IACNk0I,GAAWpuK,EAAO,UAAUk6B,EAAOl6B,EAAO,MAAM,GAG7CouK,CACX,EAEAt8J,EAAE,KAAQ,UAAW,CAGjB,IAAIhsC,EAAI,UAAW,CACf,IAAIu/E,EAAO,EAAI,IAAI,KACfkpH,EACJ,GAAIjpI,GAAI,aAAeA,GAAI,YAAY,IACnCipI,EAAQjpI,GAAI,YAAY,UAQxB,KALAipI,EAAQ,EAKDlpH,GAAQ,EAAI,IAAI,MACnBkpH,IAGR,OAAOlpH,EAAK,SAAS,EAAE,EAAI,KAAK,MAAMkpH,CAAK,EAAE,SAAS,EAAE,CAChE,EAGQ3oM,EAAI,UAAW,CACf,OAAO,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,QAAQ,IAAK,EAAE,CACzD,EAMQi5J,EAAK,UAAW,CAChB,IAAIn3J,EAAK6jM,GACL,EAAG3tL,EAAIsiC,EAAS,CAAE,EAClBs4H,EAAM,EAEV,SAASg2B,EAAIroK,EAAQsoK,EAAY,CAC7B,IAAIh9I,EAAGi9I,EAAM,EACb,IAAKj9I,EAAI,EAAGA,EAAIg9I,EAAW,OAAQh9I,IAC/Bi9I,GAAQxuJ,EAAOuR,CAAC,GAAKA,EAAI,EAE7B,OAAOtrB,EAASuoK,CACnB,CAED,IAAK,EAAI,EAAG,EAAIhnM,EAAG,OAAQ,IACvBkW,EAAKlW,EAAG,WAAW,CAAC,EACpBw4C,EAAO,QAAQtiC,EAAK,GAAI,EACpBsiC,EAAO,QAAU,IACjBs4H,EAAMg2B,EAAIh2B,EAAKt4H,CAAM,EACrBA,EAAS,IAIjB,OAAIA,EAAO,OAAS,IAChBs4H,EAAMg2B,EAAIh2B,EAAKt4H,CAAM,GAGlBs4H,EAAI,SAAS,EAAE,CAC9B,EAEI,OAAO,UAAW,CACd,IAAI9jK,GAAM42L,GAAO,OAASA,GAAO,OAAO,SAAS,EAAE,EACnD,OAAQxlM,EAAG,EAAG,IAAMF,EAAG,EAAG,IAAMi5J,EAAI,EAAG,IAAMnqJ,EAAK,IAAM5O,EAAC,CACjE,CACA,IAKA,IAAI6oM,GAAkB,CAClB,YACA,kBACA,YACA,cACA,UACA,cACA,oBACA,mBACA,WACA,YACA,iBACA,eACA,SAIA,gBACA,cACA,mBACA,qBACA,iBACA,qBACA,oBACA,YACA,iBACA,uBACA,iBACJ,EACA78J,EAAE,YAAc,SAASpqC,EAAI,CACzB,IAAImlB,EAEJ,IADAnlB,EAAKA,EAAG,cACHmlB,EAAI,EAAGA,EAAI8hL,GAAgB,OAAQ9hL,IACpC,GAAInlB,EAAG,QAAQinM,GAAgB9hL,CAAC,CAAC,IAAM,GACnC,MAAO,GAGf,MAAO,EACX,EAMAilB,EAAE,eAAiB,SAAS88J,EAAUC,EAAe,CACjD,IAAIC,EAASC,EAASZ,EAAU,GAEhC,OAAIr8J,EAAE,YAAY+8J,CAAa,IAC3BA,EAAgB,KAGpB/8J,EAAE,KAAK88J,EAAU,SAASh1H,EAAKp2C,EAAK,CAChCsrK,EAAU,mBAAmBl1H,EAAI,SAAU,GAC3Cm1H,EAAU,mBAAmBvrK,CAAG,EAChC2qK,EAAQA,EAAQ,MAAM,EAAIY,EAAU,IAAMD,CAClD,CAAK,EAEMX,EAAQ,KAAKU,CAAa,CACrC,EAEA/8J,EAAE,cAAgB,SAASuoI,EAAK/sI,EAAO,CAGnCA,EAAQA,EAAM,QAAQ,OAAQ,KAAK,EAAE,QAAQ,QAAS,KAAK,EAC3D,IAAI0hK,EAAS,SAAW1hK,EAAQ,YAC5B2/I,EAAQ,IAAI,OAAO+hB,CAAM,EACzBzC,EAAUtf,EAAM,KAAK5S,CAAG,EAC5B,GAAIkyB,IAAY,MAASA,GAAW,OAAOA,EAAQ,CAAC,GAAO,UAAYA,EAAQ,CAAC,EAAE,OAC9E,MAAO,GAEP,IAAIpmK,EAASomK,EAAQ,CAAC,EACtB,GAAI,CACApmK,EAAS,mBAAmBA,CAAM,CACrC,MAAY,CACT2lK,GAAU,MAAM,gDAAkD3lK,CAAM,CAC3E,CACD,OAAOA,EAAO,QAAQ,MAAO,GAAG,CAExC,EAKA2L,EAAE,OAAS,CACP,IAAK,SAAS/e,EAAM,CAGhB,QAFIk8K,EAASl8K,EAAO,IAChBtsB,EAAK2kM,GAAW,OAAO,MAAM,GAAG,EAC3Bv+K,EAAI,EAAGA,EAAIpmB,EAAG,OAAQomB,IAAK,CAEhC,QADI5nB,EAAIwB,EAAGomB,CAAC,EACL5nB,EAAE,OAAO,CAAC,GAAK,KAClBA,EAAIA,EAAE,UAAU,EAAGA,EAAE,MAAM,EAE/B,GAAIA,EAAE,QAAQgqM,CAAM,IAAM,EACtB,OAAO,mBAAmBhqM,EAAE,UAAUgqM,EAAO,OAAQhqM,EAAE,MAAM,CAAC,CAErE,CACD,OAAO,IACV,EAED,MAAO,SAAS8tB,EAAM,CAClB,IAAIm8K,EACJ,GAAI,CACAA,EAASp9J,EAAE,WAAWA,EAAE,OAAO,IAAI/e,CAAI,CAAC,GAAK,EAChD,MAAa,CAEb,CACD,OAAOm8K,CACV,EAED,YAAa,SAASn8K,EAAMhF,EAAOohL,EAASC,EAAoBC,EAAWC,EAAeC,EAAiB,CACvG,IAAIC,EAAU,GACVC,EAAU,GACVC,EAAS,GAEb,GAAIH,EACAC,EAAU,YAAcD,UACjBH,EAAoB,CAC3B,IAAIO,EAASC,GAAexE,GAAW,SAAS,QAAQ,EACxDoE,EAAUG,EAAS,aAAeA,EAAS,EAC9C,CAED,GAAIR,EAAS,CACT,IAAI3vF,EAAO,IAAI,KACfA,EAAK,QAAQA,EAAK,QAAS,EAAI2vF,EAAU,GAAK,EAC9CM,EAAU,aAAejwF,EAAK,aACjC,CAEG8vF,IACAD,EAAY,GACZK,EAAS,mBAETL,IACAK,GAAU,YAGdtE,GAAW,OAASr4K,EAAO,IAAM,mBAAmBhF,CAAK,EAAI0hL,EAAU,WAAaD,EAAUE,CACjG,EAED,IAAK,SAAS38K,EAAMhF,EAAO8hL,EAAMT,EAAoBC,EAAWC,EAAeC,EAAiB,CAC5F,IAAIC,EAAU,GAAIC,EAAU,GAAIC,EAAS,GAEzC,GAAIH,EACAC,EAAU,YAAcD,UACjBH,EAAoB,CAC3B,IAAIO,EAASC,GAAexE,GAAW,SAAS,QAAQ,EACxDoE,EAAUG,EAAS,aAAeA,EAAS,EAC9C,CAED,GAAIE,EAAM,CACN,IAAIrwF,EAAO,IAAI,KACfA,EAAK,QAAQA,EAAK,UAAaqwF,EAAO,GAAK,GAAK,GAAK,GAAK,EAC1DJ,EAAU,aAAejwF,EAAK,aACjC,CAEG8vF,IACAD,EAAY,GACZK,EAAS,mBAETL,IACAK,GAAU,YAGd,IAAII,EAAiB/8K,EAAO,IAAM,mBAAmBhF,CAAK,EAAI0hL,EAAU,WAAaD,EAAUE,EAC/F,OAAAtE,GAAW,OAAS0E,EACbA,CACV,EAED,OAAQ,SAAS/8K,EAAMq8K,EAAoBG,EAAiB,CACxDz9J,EAAE,OAAO,IAAI/e,EAAM,GAAI,GAAIq8K,EAAoB,GAAO,GAAOG,CAAe,CAC/E,CACL,EAEA,IAAIQ,GAAyB,KACzBC,GAAwB,SAASC,EAASC,EAAY,CACtD,GAAIH,KAA2B,MAAQ,CAACG,EACpC,OAAOH,GAGX,IAAII,EAAY,GAChB,GAAI,CACAF,EAAUA,GAAW3qI,GAAI,aACzB,IAAI9hC,EAAM,WAAa4sK,GAAW,CAAC,EAC/Bx2H,EAAM,MACVq2H,EAAQ,QAAQzsK,EAAKo2C,CAAG,EACpBq2H,EAAQ,QAAQzsK,CAAG,IAAMo2C,IACzBu2H,EAAY,IAEhBF,EAAQ,WAAWzsK,CAAG,CACzB,MAAa,CACV2sK,EAAY,EACf,CAED,OAAAJ,GAAyBI,EAClBA,CACX,EAGAr+J,EAAE,aAAe,CACb,aAAc,SAASu+J,EAAa,CAChC,IAAIF,EAAYH,GAAsB,KAAMK,CAAW,EACvD,OAAKF,GACDrE,GAAU,MAAM,wDAAwD,EAErEqE,CACV,EAED,MAAO,SAASlG,EAAK,CACjB6B,GAAU,MAAM,uBAAyB7B,CAAG,CAC/C,EAED,IAAK,SAASl3K,EAAM,CAChB,GAAI,CACA,OAAOuyC,GAAI,aAAa,QAAQvyC,CAAI,CACvC,OAAQxG,EAAK,CACVulB,EAAE,aAAa,MAAMvlB,CAAG,CAC3B,CACD,OAAO,IACV,EAED,MAAO,SAASwG,EAAM,CAClB,GAAI,CACA,OAAO+e,EAAE,WAAWA,EAAE,aAAa,IAAI/e,CAAI,CAAC,GAAK,EACpD,MAAa,CAEb,CACD,OAAO,IACV,EAED,IAAK,SAASA,EAAMhF,EAAO,CACvB,GAAI,CACAu3C,GAAI,aAAa,QAAQvyC,EAAMhF,CAAK,CACvC,OAAQxB,EAAK,CACVulB,EAAE,aAAa,MAAMvlB,CAAG,CAC3B,CACJ,EAED,OAAQ,SAASwG,EAAM,CACnB,GAAI,CACAuyC,GAAI,aAAa,WAAWvyC,CAAI,CACnC,OAAQxG,EAAK,CACVulB,EAAE,aAAa,MAAMvlB,CAAG,CAC3B,CACJ,CACL,EAEAulB,EAAE,eAAkB,UAAW,CAe3B,IAAIw+J,EAAiB,SAAS/9K,EAASb,EAAMunB,EAASs3J,EAAWC,EAAY,CACzE,GAAI,CAACj+K,EAAS,CACVu5K,GAAU,MAAM,6CAA6C,EAC7D,MACH,CAED,GAAIv5K,EAAQ,kBAAoB,CAACg+K,EAC7Bh+K,EAAQ,iBAAiBb,EAAMunB,EAAS,CAAC,CAACu3J,CAAU,MACjD,CACH,IAAIC,EAAS,KAAO/+K,EAChBg/K,EAAcn+K,EAAQk+K,CAAM,EAChCl+K,EAAQk+K,CAAM,EAAIE,EAAYp+K,EAAS0mB,EAASy3J,CAAW,CAC9D,CACT,EAEI,SAASC,EAAYp+K,EAASq+K,EAAaC,EAAc,CACrD,IAAI53J,EAAU,SAAS5kB,EAAO,CAQ1B,GAPAA,EAAQA,GAASy8K,EAASxrI,GAAI,KAAK,EAO/B,EAACjxC,EAIL,KAAImkJ,EAAM,GACNu4B,EAAYC,EAEhB,OAAIl/J,EAAE,WAAW++J,CAAY,IACzBE,EAAaF,EAAax8K,CAAK,GAEnC28K,EAAaJ,EAAY,KAAKr+K,EAAS8B,CAAK,GAE7B08K,IAAV,IAAoCC,IAAV,MAC3Bx4B,EAAM,IAGHA,EACnB,EAEQ,OAAOv/H,CACV,CAED,SAAS63J,EAASz8K,EAAO,CACrB,OAAIA,IACAA,EAAM,eAAiBy8K,EAAS,eAChCz8K,EAAM,gBAAkBy8K,EAAS,iBAE9Bz8K,CACV,CACD,OAAAy8K,EAAS,eAAiB,UAAW,CACjC,KAAK,YAAc,EAC3B,EACIA,EAAS,gBAAkB,UAAW,CAClC,KAAK,aAAe,EAC5B,EAEWR,CACX,IAGA,IAAIW,IAAoB,IAAI,OAAO,yDAAyD,EAE5Fn/J,EAAE,UAAa,UAAW,CAyBtB,SAASo/J,EAAe3sM,EAAG,CAEvB,OAAOA,EAAE,IAAMA,EAAE,IAAMA,EAAE,qBAAqB,GAAG,CACpD,CAED,IAAI4sM,EAAiB,YAErB,SAASC,EAASC,EAAM/sI,EAAU,CAC9B,IAAI5jC,EAAY,IAAM4jC,EAAW,IACjC,OAAS,IAAM+sI,EAAK,UAAY,KAAK,QAAQF,EAAgB,GAAG,EAAE,QAAQzwK,CAAS,GAAK,CAC3F,CAED,SAAS4wK,EAAsBhtI,EAAU,CAErC,GAAI,CAAC8mI,GAAW,qBACZ,MAAO,GAGX,IAAImG,EAASjtI,EAAS,MAAM,GAAG,EAC3BktI,EAAOvD,EAAMzgB,EAAShmE,EAAOiqF,EAAY5kL,EAAG4kC,EAAGvsD,EAAGm3C,EAAUq1J,EAC5DC,EAAiB,CAACvG,EAAU,EAChC,IAAKv+K,EAAI,EAAGA,EAAI0kL,EAAO,OAAQ1kL,IAAK,CAEhC,GADA2kL,EAAQD,EAAO1kL,CAAC,EAAE,QAAQ,OAAQ,EAAE,EAAE,QAAQ,OAAQ,EAAE,EACpD2kL,EAAM,QAAQ,GAAG,EAAI,GAAI,CAEzBvD,EAAOuD,EAAM,MAAM,GAAG,EACtBhkB,EAAUygB,EAAK,CAAC,EAChB,IAAIt9L,EAAKs9L,EAAK,CAAC,EACX17K,EAAU64K,GAAW,eAAez6L,CAAE,EAC1C,GAAI,CAAC4hB,GAAYi7J,GAAWj7J,EAAQ,SAAS,YAAW,GAAMi7J,EAE1D,MAAO,GAGXmkB,EAAiB,CAACp/K,CAAO,EACzB,QACH,CACD,GAAIi/K,EAAM,QAAQ,GAAG,EAAI,GAAI,CAEzBvD,EAAOuD,EAAM,MAAM,GAAG,EACtBhkB,EAAUygB,EAAK,CAAC,EAChB,IAAIvtK,EAAYutK,EAAK,CAAC,EAOtB,IANKzgB,IACDA,EAAU,KAGdhmE,EAAQ,GACRiqF,EAAa,EACRhgJ,EAAI,EAAGA,EAAIkgJ,EAAe,OAAQlgJ,IAMnC,IALI+7H,GAAW,IACXnxI,EAAW60J,EAAeS,EAAelgJ,CAAC,CAAC,EAE3CpV,EAAWs1J,EAAelgJ,CAAC,EAAE,qBAAqB+7H,CAAO,EAExDtoL,EAAI,EAAGA,EAAIm3C,EAAS,OAAQn3C,IAC7BsiH,EAAMiqF,GAAY,EAAIp1J,EAASn3C,CAAC,EAKxC,IAFAysM,EAAiB,GACjBD,EAAsB,EACjBjgJ,EAAI,EAAGA,EAAI+1D,EAAM,OAAQ/1D,IACtB+1D,EAAM/1D,CAAC,EAAE,WACT3f,EAAE,SAAS01E,EAAM/1D,CAAC,EAAE,SAAS,GAC7B2/I,EAAS5pF,EAAM/1D,CAAC,EAAG/wB,CAAS,IAE5BixK,EAAeD,GAAqB,EAAIlqF,EAAM/1D,CAAC,GAGvD,QACH,CAED,IAAImgJ,EAAcJ,EAAM,MAAMP,GAAiB,EAC/C,GAAIW,EAAa,CACbpkB,EAAUokB,EAAY,CAAC,EACvB,IAAIC,EAAWD,EAAY,CAAC,EACxBE,EAAeF,EAAY,CAAC,EAC5BG,EAAYH,EAAY,CAAC,EAO7B,IANKpkB,IACDA,EAAU,KAGdhmE,EAAQ,GACRiqF,EAAa,EACRhgJ,EAAI,EAAGA,EAAIkgJ,EAAe,OAAQlgJ,IAMnC,IALI+7H,GAAW,IACXnxI,EAAW60J,EAAeS,EAAelgJ,CAAC,CAAC,EAE3CpV,EAAWs1J,EAAelgJ,CAAC,EAAE,qBAAqB+7H,CAAO,EAExDtoL,EAAI,EAAGA,EAAIm3C,EAAS,OAAQn3C,IAC7BsiH,EAAMiqF,GAAY,EAAIp1J,EAASn3C,CAAC,EAGxCysM,EAAiB,GACjBD,EAAsB,EACtB,IAAIM,EACJ,OAAQF,EAAY,CAChB,IAAK,IACDE,EAAgB,SAASztM,EAAG,CACxB,OAAQA,EAAE,aAAastM,CAAQ,GAAKE,CAChE,EACwB,MACJ,IAAK,IACDC,EAAgB,SAASztM,EAAG,CACxB,OAAQA,EAAE,aAAastM,CAAQ,EAAE,MAAM,IAAI,OAAO,MAAQE,EAAY,KAAK,CAAC,CACxG,EACwB,MACJ,IAAK,IACDC,EAAgB,SAASztM,EAAG,CACxB,OAAQA,EAAE,aAAastM,CAAQ,EAAE,MAAM,IAAI,OAAO,IAAME,EAAY,IAAI,CAAC,CACrG,EACwB,MACJ,IAAK,IACDC,EAAgB,SAASztM,EAAG,CACxB,OAAQA,EAAE,aAAastM,CAAQ,EAAE,QAAQE,CAAS,IAAM,CACpF,EACwB,MACJ,IAAK,IACDC,EAAgB,SAASztM,EAAG,CACxB,OAAQA,EAAE,aAAastM,CAAQ,EAAE,YAAYE,CAAS,GAAKxtM,EAAE,aAAastM,CAAQ,EAAE,OAASE,EAAU,MACnI,EACwB,MACJ,IAAK,IACDC,EAAgB,SAASztM,EAAG,CACxB,OAAQA,EAAE,aAAastM,CAAQ,EAAE,QAAQE,CAAS,EAAI,EAClF,EACwB,MACJ,QAEIC,EAAgB,SAASztM,EAAG,CACxB,OAAOA,EAAE,aAAastM,CAAQ,CAC1D,CACiB,CAGD,IAFAF,EAAiB,GACjBD,EAAsB,EACjBjgJ,EAAI,EAAGA,EAAI+1D,EAAM,OAAQ/1D,IACtBugJ,EAAcxqF,EAAM/1D,CAAC,CAAC,IACtBkgJ,EAAeD,GAAqB,EAAIlqF,EAAM/1D,CAAC,GAIvD,QACH,CAKD,IAHA+7H,EAAUgkB,EACVhqF,EAAQ,GACRiqF,EAAa,EACRhgJ,EAAI,EAAGA,EAAIkgJ,EAAe,OAAQlgJ,IAEnC,IADApV,EAAWs1J,EAAelgJ,CAAC,EAAE,qBAAqB+7H,CAAO,EACpDtoL,EAAI,EAAGA,EAAIm3C,EAAS,OAAQn3C,IAC7BsiH,EAAMiqF,GAAY,EAAIp1J,EAASn3C,CAAC,EAGxCysM,EAAiBnqF,CACpB,CACD,OAAOmqF,CACV,CAED,OAAO,SAASM,EAAO,CACnB,OAAIngK,EAAE,UAAUmgK,CAAK,EACV,CAACA,CAAK,EACNngK,EAAE,SAASmgK,CAAK,GAAK,CAACngK,EAAE,YAAYmgK,EAAM,MAAM,EAChDA,EAEAX,EAAsB,KAAK,KAAMW,CAAK,CAEzD,CACA,IAEA,IAAIC,IAAoB,CAAC,aAAc,aAAc,eAAgB,cAAe,WAAY,SAAU,sBAAsB,kBAAmB,sBAAuB,sBAAsB,EAC5LC,IAAY,CAAC,QAAS,SAAU,QAAS,cAAe,YAAa,UAAW,QAAS,SAAU,SAAU,QAAQ,EAEzHrgK,EAAE,KAAO,CACL,eAAgB,SAASsgK,EAAe,CACpC,IAAIC,EAAK,GACLx0B,EAAS,GACb/rI,SAAE,KAAKogK,IAAmB,SAASI,EAAO,CACtCD,EAAKvgK,EAAE,cAAcs5J,GAAW,IAAKkH,CAAK,EACtCD,EAAG,OACHx0B,EAAOy0B,CAAK,EAAID,EACTD,IAAkB,SACzBv0B,EAAOy0B,CAAK,EAAIF,EAEhC,CAAS,EAEMv0B,CACV,EAED,YAAa,UAAW,CACpB,IAAIltK,EAAK,GACLktK,EAAS,GACb/rI,SAAE,KAAKqgK,IAAW,SAASI,EAAO,CAC9B5hM,EAAKmhC,EAAE,cAAcs5J,GAAW,IAAKmH,CAAK,EACtC5hM,EAAG,SACHktK,EAAO00B,CAAK,EAAI5hM,EAEhC,CAAS,EAEMktK,CACV,EAED,gBAAiB,UAAW,CACxB,OAAO/rI,EAAE,OAAOA,EAAE,KAAK,eAAgB,EAAEA,EAAE,KAAK,YAAW,CAAE,CAChE,EAED,aAAc,SAAS0gK,EAAU,CAC7B,OAAIA,EAAS,OAAO,8BAA8B,IAAM,EAC7C,SACAA,EAAS,OAAO,uBAAuB,IAAM,EAC7C,OACAA,EAAS,OAAO,wBAAwB,IAAM,EAC9C,QACAA,EAAS,OAAO,6BAA6B,IAAM,EACnD,aAEA,IAEd,EAED,WAAY,SAASA,EAAU,CAC3B,IAAIj6H,EAASzmC,EAAE,KAAK,aAAa0gK,CAAQ,EACrCllK,EAASirC,GAAU,QAAW,IAAM,IACpCigG,EAAM,GAEV,GAAIjgG,IAAW,KAAM,CACjBigG,EAAI,eAAoBjgG,EAExB,IAAIk6H,EAAU3gK,EAAE,cAAc0gK,EAAUllK,CAAK,EACzCmlK,EAAQ,SACRj6B,EAAI,WAAgBi6B,EAE3B,CAED,OAAOj6B,CACV,EAOD,QAAS,SAASk6B,EAAYC,EAAQC,EAAO,CAEzC,OADAD,EAASA,GAAU,GACfC,GAAS9gK,EAAE,SAAS4gK,EAAY,OAAO,EACnC5gK,EAAE,SAAS4gK,EAAY,MAAM,EACtB,aAEJ,QACA,8BAA8B,KAAKA,CAAU,EAC7C,aACA5gK,EAAE,SAAS4gK,EAAY,UAAU,GAAK5gK,EAAE,SAAS4gK,EAAY,WAAW,EACxE,2BACA5gK,EAAE,SAAS4gK,EAAY,iBAAiB,EAExC,mBACA5gK,EAAE,SAAS4gK,EAAY,MAAM,GAAK5gK,EAAE,SAAS4gK,EAAY,MAAM,EAC/D,iBACA5gK,EAAE,SAAS4gK,EAAY,OAAO,EAC9B,kBACA5gK,EAAE,SAAS4gK,EAAY,QAAQ,EAC/B,SACA5gK,EAAE,SAAS4gK,EAAY,OAAO,EAC9B,aACA5gK,EAAE,SAAS4gK,EAAY,OAAO,GAAK5gK,EAAE,SAAS4gK,EAAY,WAAW,EACrE,aACA5gK,EAAE,SAAS4gK,EAAY,OAAO,EAC9B,cACA5gK,EAAE,SAAS6gK,EAAQ,OAAO,EAC7B7gK,EAAE,SAAS4gK,EAAY,QAAQ,EACxB,gBAEJ,SACA5gK,EAAE,SAAS4gK,EAAY,SAAS,EAChC,iBACA5gK,EAAE,SAAS4gK,EAAY,WAAW,EAClC,YACA5gK,EAAE,SAAS4gK,EAAY,SAAS,EAChC,UACA5gK,EAAE,SAAS4gK,EAAY,MAAM,GAAK5gK,EAAE,SAAS4gK,EAAY,UAAU,EACnE,oBACA5gK,EAAE,SAAS4gK,EAAY,OAAO,EAC9B,UAEA,EAEd,EAOD,eAAgB,SAASnH,EAAWoH,EAAQC,EAAO,CAC/C,IAAIC,EAAU/gK,EAAE,KAAK,QAAQy5J,EAAWoH,EAAQC,CAAK,EACjDE,EAAgB,CAChB,2BAA4B,mBAC5B,iBAAkB,uBAClB,OAAU,wBACV,aAAc,uBACd,aAAe,mCACf,OAAU,yBACV,gBAAiB,yBACjB,MAAS,6BACT,QAAW,yBACX,cAAe,uBACf,UAAa,0BACb,WAAc,2BACd,iBAAkB,yBAClB,mBAAoB,gCACpB,oBAAqB,2BACrB,QAAW,kBACvB,EACY7lB,EAAQ6lB,EAAcD,CAAO,EACjC,GAAI5lB,IAAU,OACV,OAAO,KAEX,IAAIh7D,EAAUs5E,EAAU,MAAMte,CAAK,EACnC,OAAKh7D,EAGE,WAAWA,EAAQA,EAAQ,OAAS,CAAC,CAAC,EAFlC,IAGd,EAED,GAAI,UAAW,CACX,IAAIhuH,EAAIsnM,GACR,MAAI,WAAW,KAAKtnM,CAAC,EACb,QAAQ,KAAKA,CAAC,GAAK,YAAY,KAAKA,CAAC,EAC9B,gBAEJ,UACA,qBAAqB,KAAKA,CAAC,EAC3B,MACA,UAAU,KAAKA,CAAC,EAChB,UACA,8BAA8B,KAAKA,CAAC,EACpC,aACA,OAAO,KAAKA,CAAC,EACb,WACA,QAAQ,KAAKA,CAAC,EACd,QACA,OAAO,KAAKA,CAAC,EACb,YAEA,EAEd,EAED,OAAQ,SAASyuM,EAAY,CACzB,MAAI,iBAAiB,KAAKA,CAAU,GAAK,YAAY,KAAKA,CAAU,EACzD,gBACA,OAAO,KAAKA,CAAU,EACtB,OACA,OAAO,KAAKA,CAAU,EACtB,aACA,SAAS,KAAKA,CAAU,EACxB,SACA,8BAA8B,KAAKA,CAAU,EAC7C,aACA,UAAU,KAAKA,CAAU,EACzB,UAEA,EAEd,EAED,gBAAiB,SAASF,EAAU,CAChC,IAAI14H,EAAQ04H,EAAS,MAAM,GAAG,EAC9B,OAAI14H,EAAM,QAAU,EACTA,EAAM,CAAC,EAEX,EACV,EAED,WAAY,UAAW,CACnB,OAAOxU,GAAI,SAAS,IACvB,EAED,WAAY,SAASytI,EAAa,CAC9B,OAAI,OAAOA,GAAgB,WACvBA,EAAc,IAEXjhK,EAAE,OAAOA,EAAE,uBAAuB,CACrC,IAAOA,EAAE,KAAK,GAAI,EAClB,SAAYA,EAAE,KAAK,QAAQy5J,GAAW/qB,GAAU,OAAQ6qB,EAAW,EACnE,UAAaD,GAAW,SACxB,kBAAqBt5J,EAAE,KAAK,gBAAgBs5J,GAAW,QAAQ,EAC/D,QAAWt5J,EAAE,KAAK,OAAOy5J,EAAS,CAC9C,CAAS,EAAG,CACA,aAAgBz5J,EAAE,KAAK,WAAY,EACnC,iBAAoBA,EAAE,KAAK,eAAey5J,GAAW/qB,GAAU,OAAQ6qB,EAAW,EAClF,eAAkBC,GAAO,OACzB,cAAiBA,GAAO,MACxB,OAAU,MACV,aAAgBjC,GAAO,YACvB,WAAc+G,GAAY,EAC1B,KAAQt+J,EAAE,UAAS,EAAK,GAC3B,EAAEA,EAAE,uBAAuBihK,CAAW,CAAC,CAC3C,EAED,kBAAmB,UAAW,CAC1B,OAAOjhK,EAAE,OAAOA,EAAE,uBAAuB,CACrC,IAAOA,EAAE,KAAK,GAAI,EAClB,SAAYA,EAAE,KAAK,QAAQy5J,GAAW/qB,GAAU,OAAQ6qB,EAAW,CAC/E,CAAS,EAAG,CACA,iBAAoBv5J,EAAE,KAAK,eAAey5J,GAAW/qB,GAAU,OAAQ6qB,EAAW,CAC9F,CAAS,CACJ,EAED,qBAAsB,UAAW,CAC7B,OAAOv5J,EAAE,uBAAuB,CAC5B,mBAAsBs5J,GAAW,MACjC,eAAkB9lI,GAAI,SAAS,SAC/B,iBAAoBA,GAAI,SAAS,SACjC,qBAAwBA,GAAI,SAAS,SACrC,mBAAsBA,GAAI,SAAS,MAC/C,CAAS,CACJ,CACL,EAEA,IAAI8qI,GAAa,SAAS4C,EAAQ,CAC9B,IAAIC,EAAO,KAAK,OAAQ,EAAC,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,EAAI,KAAK,OAAQ,EAAC,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,EACnG,OAAOD,EAASC,EAAK,UAAU,EAAGD,CAAM,EAAIC,CAChD,EAGIC,IAA4B,+BAE5BC,IAAqB,oCAcrBvD,GAAiB,SAASwD,EAAU,CACpC,IAAIC,EAAeF,IACfzjB,EAAQ0jB,EAAS,MAAM,GAAG,EAC1BE,EAAM5jB,EAAMA,EAAM,OAAS,CAAC,GAC5B4jB,EAAI,OAAS,GAAKA,IAAQ,OAASA,IAAQ,SAC3CD,EAAeH,KAEnB,IAAIjhF,EAAUmhF,EAAS,MAAMC,CAAY,EACzC,OAAOphF,EAAUA,EAAQ,CAAC,EAAI,EAClC,EAMIshF,IAAW,UAAW,CACtB,IAAIC,EAASluI,GAAI,UAAU,OAC3B,OAAOxzB,EAAE,YAAY0hK,CAAM,GAAKA,CACpC,EAEIC,GAAgB,KAAMC,GAAY,KAClC,OAAO,KAAS,MAChBD,GAAgB,KAAK,UACrBC,GAAY,KAAK,OAErBD,GAAgBA,IAAiB3hK,EAAE,WACnC4hK,GAAYA,IAAa5hK,EAAE,WAG3BA,EAAE,QAA4BA,EAAE,QAChCA,EAAE,SAA4BA,EAAE,SAChCA,EAAE,WAA4BA,EAAE,WAChCA,EAAE,WAA4BA,EAAE,WAChCA,EAAE,YAA4BA,EAAE,YAChCA,EAAE,cAA4BA,EAAE,cAChCA,EAAE,KAA4BA,EAAE,KAChCA,EAAE,KAAQ,OAAoBA,EAAE,KAAK,OACrCA,EAAE,KAAQ,QAAoBA,EAAE,KAAK,QACrCA,EAAE,KAAQ,eAAoBA,EAAE,KAAK,eACrCA,EAAE,KAAQ,WAAoBA,EAAE,KAAK,WACrCA,EAAE,IAA4By4J,GAyB9B,IAAIoJ,IAAkC,mBAiBtC,SAASC,IAAMpC,EAAO7wJ,EAAS,CAC3BkzJ,GAAU,GAAMrC,EAAO7wJ,CAAO,CAClC,CAcA,SAASmzJ,IAAOtC,EAAO7wJ,EAAS,CAC5BkzJ,GAAU,GAAOrC,EAAO7wJ,CAAO,CACnC,CAUA,SAASozJ,IAAWvC,EAAO7wJ,EAAS,CAChC,OAAOqzJ,GAAiBxC,EAAO7wJ,CAAO,IAAM,GAChD,CAWA,SAASszJ,GAAYzC,EAAO7wJ,EAAS,CACjC,GAAIuzJ,IAAqBvzJ,CAAO,EAC5B,OAAAmrJ,GAAU,KAAK,sNAAsN,EAC9N,GAEX,IAAIqI,EAAWH,GAAiBxC,EAAO7wJ,CAAO,IAAM,IACpD,OAAIwzJ,GACArI,GAAU,KAAK,mGAAmG,EAE/GqI,CACX,CASA,SAASC,GAA0B5pH,EAAQ,CACvC,OAAO6pH,GAAgB7pH,EAAQ,SAASz3D,EAAM,CAC1C,OAAO,KAAK,WAAWA,CAAI,CACnC,CAAK,CACL,CASA,SAASuhL,GAA6B9pH,EAAQ,CAC1C,OAAO6pH,GAAgB7pH,EAAQ,SAASz3D,EAAM,CAC1C,OAAO,KAAK,YAAYA,CAAI,CACpC,CAAK,CACL,CASA,SAASwhL,GAA4B/pH,EAAQ,CACzC,OAAO6pH,GAAgB7pH,EAAQ,SAASz3D,EAAM,CAC1C,OAAO,KAAK,YAAYA,CAAI,CACpC,CAAK,CACL,CAcA,SAASyhL,IAAchD,EAAO7wJ,EAAS,CACnCA,EAAUA,GAAW,GACrB8zJ,GAAY9zJ,CAAO,EAAE,OACjB+zJ,GAAelD,EAAO7wJ,CAAO,EAAG,CAAC,CAACA,EAAQ,qBAAsBA,EAAQ,YAChF,CACA,CAUA,SAAS8zJ,GAAY9zJ,EAAS,CAC1B,OAAAA,EAAUA,GAAW,GACdA,EAAQ,kBAAoB,eAAiB7O,EAAE,aAAeA,EAAE,MAC3E,CASA,SAAS4iK,GAAelD,EAAO7wJ,EAAS,CACpC,OAAAA,EAAUA,GAAW,IACbA,EAAQ,mBAAqBgzJ,KAAmCnC,CAC5E,CASA,SAASwC,GAAiBxC,EAAO7wJ,EAAS,CACtC,OAAO8zJ,GAAY9zJ,CAAO,EAAE,IAAI+zJ,GAAelD,EAAO7wJ,CAAO,CAAC,CAClE,CASA,SAASuzJ,IAAqBvzJ,EAAS,CACnC,GAAIA,GAAWA,EAAQ,UACnB,MAAO,GAEX,IAAIg0J,EAASh0J,GAAWA,EAAQ,QAAW2kB,GACvCsvI,EAAMD,EAAM,WAAgB,GAC5BE,EAAW,GAEf/iK,SAAE,KAAK,CACH8iK,EAAI,WACJA,EAAI,aACJD,EAAM,UACT,EAAE,SAASG,EAAU,CACdhjK,EAAE,SAAS,CAAC,GAAM,EAAG,IAAK,KAAK,EAAGgjK,CAAQ,IAC1CD,EAAW,GAEvB,CAAK,EAEMA,CACX,CAiBA,SAAShB,GAAUkB,EAAUvD,EAAO7wJ,EAAS,CACzC,GAAI,CAAC7O,EAAE,SAAS0/J,CAAK,GAAK,CAACA,EAAM,OAAQ,CACrC1F,GAAU,MAAM,SAAWiJ,EAAW,QAAU,UAAY,+BAA+B,EAC3F,MACH,CAEDp0J,EAAUA,GAAW,GAErB8zJ,GAAY9zJ,CAAO,EAAE,IACjB+zJ,GAAelD,EAAO7wJ,CAAO,EAC7Bo0J,EAAW,EAAI,EACfjjK,EAAE,SAAS6O,EAAQ,gBAAgB,EAAIA,EAAQ,iBAAmB,KAClE,CAAC,CAACA,EAAQ,qBACV,CAAC,CAACA,EAAQ,aACV,CAAC,CAACA,EAAQ,gBACVA,EAAQ,YAChB,EAEQA,EAAQ,OAASo0J,GACjBp0J,EAAQ,MAAMA,EAAQ,gBAAkB,UAAWA,EAAQ,gBAAiB,CACxE,iBAAoB,EAChC,CAAS,CAET,CAUA,SAAS0zJ,GAAgB7pH,EAAQwqH,EAAgB,CAC7C,OAAO,UAAW,CACd,IAAIb,EAAW,GAEf,GAAI,CACA,IAAI3C,EAAQwD,EAAe,KAAK,KAAM,OAAO,EACzCC,EAAYD,EAAe,KAAK,KAAM,YAAY,EAClDE,EAAkBF,EAAe,KAAK,KAAM,mCAAmC,EAC/EG,EAAoBH,EAAe,KAAK,KAAM,gCAAgC,EAC9E1vI,EAAM0vI,EAAe,KAAK,KAAM,QAAQ,EAExCxD,IACA2C,EAAWF,GAAYzC,EAAO,CAC1B,UAAWyD,EACX,gBAAiBC,EACjB,kBAAmBC,EACnB,OAAQ7vI,CAC5B,CAAiB,EAER,OAAO/4C,EAAK,CACTu/K,GAAU,MAAM,2DAA6Dv/K,CAAG,CACnF,CAED,GAAI,CAAC4nL,EACD,OAAO3pH,EAAO,MAAM,KAAM,SAAS,EAGvC,IAAIj2D,EAAW,UAAU,UAAU,OAAS,CAAC,EACzC,OAAOA,GAAc,YACrBA,EAAS,CAAC,CAItB,CACA,CAEA,IAAI6gL,IAAWpJ,GAAoB,MAAM,EAsBrCqJ,GAAa,SAAS7xK,EAAKmd,EAAS,CACpCA,EAAUA,GAAW,GAErB,KAAK,WAAand,EAClB,KAAK,QAAUmd,EAAQ,SAAW,OAAO,aACzC,KAAK,eAAiBA,EAAQ,gBAAkB,IAChD,KAAK,UAAYA,EAAQ,WAAa,IAGtC,KAAK,YAAcA,EAAQ,aAAekqJ,EAC9C,EAIAwK,GAAW,UAAU,SAAW,SAASC,EAAUC,EAAK,CACpD,IAAI1nH,EAAU,KAAK,YACnB,OAAO,IAAIA,EAAQ/7C,EAAE,KAAK,SAAU2mI,EAASqqB,EAAQ,CACjD,IAAIj2K,EAAI0oL,GAAQ,IAAI,KAAM,EAAC,QAAS,EAAG,IAAM,KAAK,OAAM,EACpDC,EAAY,IAAI,KAAM,EAAC,QAAO,EAE9BhyK,EAAM,KAAK,WACXiyK,EAAiB,KAAK,eACtBC,EAAY,KAAK,UACjBzF,EAAU,KAAK,QAEf0F,EAAOnyK,EAAM,KACboyK,EAAOpyK,EAAM,KACbqyK,EAAOryK,EAAM,KAEb4lI,EAAQ,SAASz/J,EAAI,CACrB,GAAI,IAAI,KAAM,EAAC,QAAO,EAAK6rM,EAAYE,EAAW,CAC9CN,IAAS,MAAM,gCAAkC5xK,EAAM,qBAAuB3W,EAAI,GAAG,EACrFojL,EAAQ,WAAW4F,CAAI,EACvB5F,EAAQ,WAAW2F,CAAI,EACvBl8J,IACA,MACH,CACD,WAAW,UAAW,CAClB,GAAI,CACA/vC,GACH,OAAO4iB,EAAK,CACTu2K,EAAOv2K,CAAG,CACb,CACJ,EAAEkpL,GAAkB,KAAK,OAAM,EAAK,GAAI,CACrD,EAEYK,EAAU,SAASC,EAAWpsM,EAAI,CAC9BosM,EAAS,EACTpsM,IAEAy/J,EAAM,UAAW,CACb0sC,EAAQC,EAAWpsM,CAAE,CACzC,CAAiB,CAEjB,EAEYqsM,EAAU,UAAW,CACrB,IAAIC,EAAOhG,EAAQ,QAAQ2F,CAAI,EAC/B,OAAIK,GAAQA,IAASppL,EACV,IAEPojL,EAAQ,QAAQ2F,EAAM/oL,CAAC,EACnBojL,EAAQ,QAAQ2F,CAAI,IAAM/oL,EACnB,IAEFmjL,GAAsBC,EAAS,EAAI,GACpCnN,EAAO,IAAI,MAAM,mDAAmD,CAAC,EAElE,IAG3B,EAEYppJ,EAAO,UAAW,CAClBu2J,EAAQ,QAAQ0F,EAAM9oL,CAAC,EAEvBipL,EAAQE,EAAS,UAAW,CACxB,GAAI/F,EAAQ,QAAQ0F,CAAI,IAAM9oL,EAAG,CAC7BqpL,IACA,MACH,CAED9sC,EAAM,UAAW,CACb,GAAI6mC,EAAQ,QAAQ2F,CAAI,IAAM/oL,EAAG,CAC7B6sB,IACA,MACH,CACDo8J,EAAQ,UAAW,CACf,MAAO,CAAC7F,EAAQ,QAAQ4F,CAAI,CAC/B,EAAEK,CAAe,CACtC,CAAiB,CACjB,CAAa,CACb,EAEYA,EAAkB,UAAW,CAC7BjG,EAAQ,QAAQ4F,EAAM,GAAG,EACzB,IAAIM,EAAa,UAAY,CACzBlG,EAAQ,WAAW4F,CAAI,EACnB5F,EAAQ,QAAQ2F,CAAI,IAAM/oL,GAC1BojL,EAAQ,WAAW2F,CAAI,EAEvB3F,EAAQ,QAAQ0F,CAAI,IAAM9oL,GAC1BojL,EAAQ,WAAW0F,CAAI,CAE3C,EAEYL,EAAU,EACL,KAAK,SAAU98B,EAAK,CACjB29B,IACA19B,EAAQD,CAAG,CAC/B,CAAiB,EACA,MAAM,SAAUjsJ,EAAK,CAClB4pL,IACArT,EAAOv2K,CAAG,CAC9B,CAAiB,CACjB,EAEQ,GAAI,CACA,GAAIyjL,GAAsBC,EAAS,EAAI,EACnCv2J,QAEA,OAAM,IAAI,MAAM,mCAAmC,CAE1D,OAAOntB,EAAK,CACTu2K,EAAOv2K,CAAG,CACb,CACT,EAAO,IAAI,CAAC,CACZ,EASA,IAAI6pL,GAAsB,SAAUC,EAAiB,CACjD,KAAK,QAAUA,GAAmB,YACtC,EAEAD,GAAoB,UAAU,KAAO,UAAY,CAC7C,OAAOvL,GAAgB,SAC3B,EAEAuL,GAAoB,UAAU,QAAU,SAAU5yK,EAAKzV,EAAO,CAC1D,OAAO,IAAI88K,GAAgB/4J,EAAE,KAAK,SAAU2mI,EAASqqB,EAAQ,CACzD,GAAI,CACA,KAAK,QAAQ,QAAQt/J,EAAKzV,CAAK,CAClC,OAAQxpB,EAAG,CACRu+L,EAAOv+L,CAAC,CACX,CACDk0K,GACR,EAAO,IAAI,CAAC,CACZ,EAEA29B,GAAoB,UAAU,QAAU,SAAU5yK,EAAK,CACnD,OAAO,IAAIqnK,GAAgB/4J,EAAE,KAAK,SAAU2mI,EAASqqB,EAAQ,CACzD,IAAIjlK,EACJ,GAAI,CACAA,EAAO,KAAK,QAAQ,QAAQ2F,CAAG,CAClC,OAAQj/B,EAAG,CACRu+L,EAAOv+L,CAAC,CACX,CACDk0K,EAAQ56I,CAAI,CACpB,EAAO,IAAI,CAAC,CACZ,EAEAu4K,GAAoB,UAAU,WAAa,SAAU5yK,EAAK,CACtD,OAAO,IAAIqnK,GAAgB/4J,EAAE,KAAK,SAAU2mI,EAASqqB,EAAQ,CACzD,GAAI,CACA,KAAK,QAAQ,WAAWt/J,CAAG,CAC9B,OAAQj/B,EAAG,CACRu+L,EAAOv+L,CAAC,CACX,CACDk0K,GACR,EAAO,IAAI,CAAC,CACZ,EAEA,IAAI69B,GAAWtK,GAAoB,OAAO,EAkBtCuK,GAAe,SAAUC,EAAY71J,EAAS,CAC9CA,EAAUA,GAAW,GACrB,KAAK,WAAa61J,EAClB,KAAK,eAAiB71J,EAAQ,eAC1B,KAAK,iBACL,KAAK,aAAeA,EAAQ,cAAgB,IAAIy1J,GAChD,KAAK,KAAO,IAAIf,GAAWmB,EAAY,CAAE,QAAS71J,EAAQ,mBAAqB,OAAO,YAAc,GACpG,KAAK,aAAa,QAEtB,KAAK,YAAcA,EAAQ,eAAiB7O,EAAE,KAAKwkK,GAAS,MAAOA,EAAQ,EAE3E,KAAK,IAAM31J,EAAQ,KAAO,KAE1B,KAAK,SAAW,GAChB,KAAK,YAAc,EACvB,EAEA41J,GAAa,UAAU,WAAa,UAAY,CAC5C,OAAI,KAAK,YACE1L,GAAgB,UAGpB,KAAK,aACP,KAAM,EACN,KAAK/4J,EAAE,KAAK,UAAY,CACrB,KAAK,YAAc,EACtB,EAAE,IAAI,CAAC,EACP,MAAMA,EAAE,KAAK,SAAUvlB,EAAK,CACzB,KAAK,YAAY,8DAA+DA,CAAG,EACnF,KAAK,YAAc,GACnB,KAAK,eAAiB,EAClC,EAAW,IAAI,CAAC,CAChB,EAcAgqL,GAAa,UAAU,QAAU,SAAU14K,EAAM44K,EAAe,CAC5D,IAAIC,EAAa,CACb,GAAMtG,GAAY,EAClB,WAAc,IAAI,KAAI,EAAG,QAAS,EAAGqG,EAAgB,EACrD,QAAW54K,CACnB,EAEI,GAAK,KAAK,eAGH,CAEH,IAAI84K,EAAc7kK,EAAE,KAAK,UAAY,CACjC,OAAO,KAAK,WAAY,EACnB,KAAKA,EAAE,KAAK,UAAY,CACrB,OAAO,KAAK,iBACf,EAAE,IAAI,CAAC,EACP,KAAKA,EAAE,KAAK,SAAU8kK,EAAa,CAChC,OAAAA,EAAY,KAAKF,CAAU,EACpB,KAAK,cAAcE,CAAW,CACxC,EAAE,IAAI,CAAC,EACP,KAAK9kK,EAAE,KAAK,SAAU+kK,EAAW,CAE9B,OAAIA,GACA,KAAK,SAAS,KAAKH,CAAU,EAE1BG,CACV,EAAE,IAAI,CAAC,EACP,MAAM/kK,EAAE,KAAK,SAAUvlB,EAAK,CACzB,YAAK,YAAY,wBAAyBA,EAAKsR,CAAI,EAC5C,EAC3B,EAAmB,IAAI,CAAC,CACf,EAAE,IAAI,EAEP,OAAO,KAAK,KACP,SAAS84K,EAAa,KAAK,GAAG,EAC9B,MAAM7kK,EAAE,KAAK,SAAUvlB,EAAK,CACzB,YAAK,YAAY,+BAAgCA,CAAG,EAC7C,EACvB,EAAe,IAAI,CAAC,CACf,KAhCG,aAAK,SAAS,KAAKmqL,CAAU,EACtB7L,GAAgB,QAAQ,EAAI,CAgC3C,EAQA0L,GAAa,UAAU,UAAY,SAAUO,EAAW,CACpD,IAAIC,EAAQ,KAAK,SAAS,MAAM,EAAGD,CAAS,EAC5C,OAAI,KAAK,gBAAkBC,EAAM,OAASD,EAI/B,KAAK,WAAY,EACnB,KAAKhlK,EAAE,KAAK,UAAY,CACrB,OAAO,KAAK,iBACf,EAAE,IAAI,CAAC,EACP,KAAKA,EAAE,KAAK,SAAU8kK,EAAa,CAChC,GAAIA,EAAY,OAAQ,CAEpB,IAAII,EAAa,GACjBllK,EAAE,KAAKilK,EAAO,SAAUl5K,EAAM,CAC1Bm5K,EAAWn5K,EAAK,EAAK,EAAI,EACjD,CAAqB,EAED,QAAS,EAAI,EAAG,EAAI+4K,EAAY,OAAQ,IAAK,CACzC,IAAI/4K,EAAO+4K,EAAY,CAAC,EACxB,GAAI,IAAI,KAAI,EAAG,QAAO,EAAK/4K,EAAK,YAAiB,CAACm5K,EAAWn5K,EAAK,EAAK,IACnEA,EAAK,SAAW,GAChBk5K,EAAM,KAAKl5K,CAAI,EACXk5K,EAAM,QAAUD,GAChB,KAGX,CACJ,CAED,OAAOC,CACvB,EAAe,IAAI,CAAC,EAELlM,GAAgB,QAAQkM,CAAK,CAE5C,EAOA,IAAIE,GAAyB,SAAUj6J,EAAOk6J,EAAO,CACjD,IAAIC,EAAgB,GACpBrlK,SAAE,KAAKkL,EAAO,SAAUnf,EAAM,CACtBA,EAAK,IAAS,CAACq5K,EAAMr5K,EAAK,EAAK,GAC/Bs5K,EAAc,KAAKt5K,CAAI,CAEnC,CAAK,EACMs5K,CACX,EAMAZ,GAAa,UAAU,gBAAkB,SAAUnU,EAAK,CACpD,IAAI8U,EAAQ,GAMZ,GALAplK,EAAE,KAAKswJ,EAAK,SAAUzxL,EAAI,CACtBumM,EAAMvmM,CAAE,EAAI,EACpB,CAAK,EAED,KAAK,SAAWsmM,GAAuB,KAAK,SAAUC,CAAK,EACtD,KAAK,eAEH,CACH,IAAIE,EAAoBtlK,EAAE,KAAK,UAAY,CACvC,OAAO,KAAK,WAAY,EACnB,KAAKA,EAAE,KAAK,UAAY,CACrB,OAAO,KAAK,iBACf,EAAE,IAAI,CAAC,EACP,KAAKA,EAAE,KAAK,SAAU8kK,EAAa,CAChC,OAAAA,EAAcK,GAAuBL,EAAaM,CAAK,EAChD,KAAK,cAAcN,CAAW,CACxC,EAAE,IAAI,CAAC,EACP,KAAK9kK,EAAE,KAAK,UAAY,CACrB,OAAO,KAAK,iBACf,EAAE,IAAI,CAAC,EACP,KAAKA,EAAE,KAAK,SAAU8kK,EAAa,CAGhC,QAAS,EAAI,EAAG,EAAIA,EAAY,OAAQ,IAAK,CACzC,IAAI/4K,EAAO+4K,EAAY,CAAC,EACxB,GAAI/4K,EAAK,IAAWq5K,EAAMr5K,EAAK,EAAK,EAChC,MAAM,IAAI,MAAM,+BAA+B,CAEtD,CACD,MAAO,EACV,EAAE,IAAI,CAAC,EACP,MAAMiU,EAAE,KAAK,SAAUvlB,EAAK,CACzB,YAAK,YAAY,uBAAwBA,EAAK61K,CAAG,EAC1C,EAC3B,EAAmB,IAAI,CAAC,CACf,EAAE,IAAI,EAEP,OAAO,KAAK,KACP,SAASgV,EAAmB,KAAK,GAAG,EACpC,MAAMtlK,EAAE,KAAK,SAAUvlB,EAAK,CAEzB,OADA,KAAK,YAAY,+BAAgCA,CAAG,EAC/CyjL,GAAsB,KAAK,aAAa,QAAS,EAAI,EAqB/C,GAhBAoH,EAAmB,EACrB,KAAKtlK,EAAE,KAAK,SAAU6hE,EAAS,CAC5B,OAAKA,GAGM,KAAK,aAAa,WAAW,KAAK,UAAU,EAAE,KAAK,UAAY,CAClE,OAAOA,CAC3C,CAAiC,CAGR,EAAE,IAAI,CAAC,EACP,MAAM7hE,EAAE,KAAK,SAAUvlB,EAAK,CACzB,YAAK,YAAY,uBAAwBA,CAAG,EACrC,EACnC,EAA2B,IAAI,CAAC,CAIhC,EAAe,IAAI,CAAC,CACf,KA3DG,QAAOs+K,GAAgB,QAAQ,EAAI,CA4D3C,EAGA,IAAIwM,GAAiB,SAAUC,EAAeC,EAAe,CACzD,IAAIC,EAAW,GACf1lK,SAAE,KAAKwlK,EAAe,SAAUz5K,EAAM,CAClC,IAAIltB,EAAKktB,EAAK,GACd,GAAIltB,KAAM4mM,EAAe,CACrB,IAAIE,EAAaF,EAAc5mM,CAAE,EAC7B8mM,IAAe,OACf55K,EAAK,QAAa45K,EAClBD,EAAS,KAAK35K,CAAI,EAElC,MAEY25K,EAAS,KAAK35K,CAAI,CAE9B,CAAK,EACM25K,CACX,EAMAjB,GAAa,UAAU,eAAiB,SAAUgB,EAAe,CAE7D,OADA,KAAK,SAAWF,GAAe,KAAK,SAAUE,CAAa,EACtD,KAAK,eAGC,KAAK,KACP,SAASzlK,EAAE,KAAK,UAAwB,CACrC,OAAO,KAAK,WAAY,EACnB,KAAKA,EAAE,KAAK,UAAY,CACrB,OAAO,KAAK,iBACf,EAAE,IAAI,CAAC,EACP,KAAKA,EAAE,KAAK,SAAU8kK,EAAa,CAChC,OAAAA,EAAcS,GAAeT,EAAaW,CAAa,EAChD,KAAK,cAAcX,CAAW,CACxC,EAAE,IAAI,CAAC,EACP,MAAM9kK,EAAE,KAAK,SAAUvlB,EAAK,CACzB,YAAK,YAAY,uBAAwBgrL,EAAehrL,CAAG,EACpD,EAC/B,EAAuB,IAAI,CAAC,CAC5B,EAAe,IAAI,EAAG,KAAK,GAAG,EACjB,MAAMulB,EAAE,KAAK,SAAUvlB,EAAK,CACzB,YAAK,YAAY,+BAAgCA,CAAG,EAC7C,EACvB,EAAe,IAAI,CAAC,EApBLs+K,GAAgB,QAAQ,EAAI,CAsB3C,EAMA0L,GAAa,UAAU,gBAAkB,UAAY,CACjD,OAAO,KAAK,WAAY,EACnB,KAAKzkK,EAAE,KAAK,UAAY,CACrB,OAAO,KAAK,aAAa,QAAQ,KAAK,UAAU,CACnD,EAAE,IAAI,CAAC,EACP,KAAKA,EAAE,KAAK,SAAU4lK,EAAc,CACjC,OAAIA,IACAA,EAAehE,GAAUgE,CAAY,EAChC5lK,EAAE,QAAQ4lK,CAAY,IACvB,KAAK,YAAY,yBAA0BA,CAAY,EACvDA,EAAe,OAGhBA,GAAgB,EAC1B,EAAE,IAAI,CAAC,EACP,MAAM5lK,EAAE,KAAK,SAAUvlB,EAAK,CACzB,YAAK,YAAY,yBAA0BA,CAAG,EACvC,EACnB,EAAW,IAAI,CAAC,CAChB,EAKAgqL,GAAa,UAAU,cAAgB,SAAUoB,EAAO,CACpD,GAAI,CACA,IAAIC,EAAanE,GAAckE,CAAK,CACvC,OAAQprL,EAAK,CACV,YAAK,YAAY,0BAA2BA,CAAG,EACxCs+K,GAAgB,QAAQ,EAAK,CACvC,CAED,OAAO,KAAK,WAAY,EACnB,KAAK/4J,EAAE,KAAK,UAAY,CACrB,OAAO,KAAK,aAAa,QAAQ,KAAK,WAAY8lK,CAAU,CAC/D,EAAE,IAAI,CAAC,EACP,KAAK,UAAY,CACd,MAAO,EACnB,CAAS,EACA,MAAM9lK,EAAE,KAAK,SAAUvlB,EAAK,CACzB,YAAK,YAAY,qBAAsBA,CAAG,EACnC,EACnB,EAAW,IAAI,CAAC,CAChB,EAKAgqL,GAAa,UAAU,MAAQ,UAAY,CAGvC,OAFA,KAAK,SAAW,GAEZ,KAAK,eACE,KAAK,WAAY,EACnB,KAAKzkK,EAAE,KAAK,UAAY,CACrB,OAAO,KAAK,aAAa,WAAW,KAAK,UAAU,CACnE,EAAe,IAAI,CAAC,EAEL+4J,GAAgB,SAE/B,EAGA,IAAIgN,IAAwB,GAAK,GAAK,IAElCC,GAAW9L,GAAoB,OAAO,EAQtC+L,GAAiB,SAASvB,EAAY71J,EAAS,CAC/C,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,MAAQ,IAAI41J,GAAaC,EAAY,CACtC,cAAe1kK,EAAE,KAAK,KAAK,YAAa,IAAI,EAC5C,aAAc6O,EAAQ,aACtB,kBAAmBA,EAAQ,kBAC3B,eAAgBA,EAAQ,cAChC,CAAK,EAED,KAAK,UAAYA,EAAQ,UACzB,KAAK,YAAcA,EAAQ,gBAC3B,KAAK,eAAiBA,EAAQ,eAC9B,KAAK,gBAAkBA,EAAQ,oBAG/B,KAAK,UAAY,KAAK,UAAU,WAChC,KAAK,cAAgB,KAAK,UAAU,wBAEpC,KAAK,QAAU,CAAC,KAAK,UAAU,gBAC/B,KAAK,2BAA6B,EAGlC,KAAK,wBAA0B,GAK/B,KAAK,oBAAsBA,EAAQ,qBAAuB,EAC9D,EAKAo3J,GAAe,UAAU,QAAU,SAASl6K,EAAM,CAC9C,OAAO,KAAK,MAAM,QAAQA,EAAM,KAAK,aAAa,CACtD,EAMAk6K,GAAe,UAAU,MAAQ,UAAW,CACxC,YAAK,QAAU,GACf,KAAK,2BAA6B,EAC3B,KAAK,OAChB,EAKAA,GAAe,UAAU,KAAO,UAAW,CACvC,KAAK,QAAU,GACX,KAAK,YACL,aAAa,KAAK,SAAS,EAC3B,KAAK,UAAY,KAEzB,EAKAA,GAAe,UAAU,MAAQ,UAAW,CACxC,OAAO,KAAK,MAAM,OACtB,EAKAA,GAAe,UAAU,eAAiB,UAAW,CACjD,KAAK,UAAY,KAAK,UAAU,UACpC,EAKAA,GAAe,UAAU,WAAa,UAAW,CAC7C,KAAK,cAAc,KAAK,UAAU,uBAA0B,CAChE,EAKAA,GAAe,UAAU,cAAgB,SAASC,EAAS,CACvD,KAAK,cAAgBA,EAChB,KAAK,UACN,KAAK,UAAY,WAAWlmK,EAAE,KAAK,UAAW,CACrC,KAAK,SACN,KAAK,MAAK,CAEjB,EAAE,IAAI,EAAG,KAAK,aAAa,EAEpC,EAMAimK,GAAe,UAAU,mBAAqB,SAAS13J,EAAMM,EAAS,CAClE,OAAO,IAAIkqJ,GAAgB/4J,EAAE,KAAK,SAAS2mI,EAAS,CAChD,KAAK,YAAYp4H,EAAMM,EAAS83H,CAAO,CAC/C,EAAO,IAAI,CAAC,CACZ,EAaAs/B,GAAe,UAAU,MAAQ,SAASp3J,EAAS,CAC/C,GAAI,KAAK,kBACL,OAAAm3J,GAAS,IAAI,oCAAoC,EAC1CjN,GAAgB,UAG3B,KAAK,kBAAoB,GAEzBlqJ,EAAUA,GAAW,GACrB,IAAI+0J,EAAY,KAAK,UAAU,yBAC3BF,EAAY,IAAI,KAAM,EAAC,QAAO,EAC9ByC,EAAmB,KAAK,UAE5B,OAAO,KAAK,MAAM,UAAUA,CAAgB,EACvC,KAAKnmK,EAAE,KAAK,SAASilK,EAAO,CAIzB,IAAImB,EAAwBnB,EAAM,SAAWkB,EACzCE,EAAiB,GACjBC,EAAmB,GAuCvB,GAtCAtmK,EAAE,KAAKilK,EAAO,SAASl5K,EAAM,CACzB,IAAIywD,EAAUzwD,EAAK,QAInB,GAHI,KAAK,gBAAkB,CAACA,EAAK,WAC7BywD,EAAU,KAAK,eAAeA,CAAO,GAErCA,EAAS,CAILA,EAAQ,OAAYA,EAAQ,aAC5BA,EAAQ,WAAgBx8C,EAAE,OACtB,CAAE,EACFw8C,EAAQ,WACR,CAAC,uBAA0B+6G,GAAO,WAAW,CACzE,GAEoB,IAAIgP,EAAa,GACbC,EAASz6K,EAAK,GACdy6K,GACK,KAAK,wBAAwBA,CAAM,GAAK,GAAK,IAC9C,KAAK,YAAY,kDAAmD,CAChE,KAAMz6K,EACN,UAAWk5K,EAAM,OACjB,UAAW,KAAK,wBAAwBuB,CAAM,CAC9E,CAA6B,EACDD,EAAa,IAGjB,KAAK,YAAY,+BAAgC,CAAC,KAAMx6K,CAAI,CAAC,EAG7Dw6K,GACAF,EAAe,KAAK7pH,CAAO,CAElC,CACD8pH,EAAiBv6K,EAAK,EAAK,EAAIywD,CAClC,EAAE,IAAI,EAEH6pH,EAAe,OAAS,EACxB,YAAK,kBAAoB,GACzB,KAAK,WAAU,EACRtN,GAAgB,UAG3B,IAAI0N,EAAuBzmK,EAAE,KAAK,UAAY,CAC1C,OAAO,KAAK,MACP,gBACGA,EAAE,IAAIilK,EAAO,SAAUl5K,EAAM,CACzB,OAAOA,EAAK,EACxC,CAAyB,CACJ,EACA,KAAKiU,EAAE,KAAK,SAAU+kK,EAAW,CAmB9B,OAjBA/kK,EAAE,KAAKilK,EAAOjlK,EAAE,KAAK,SAASjU,EAAM,CAChC,IAAIy6K,EAASz6K,EAAK,GACdy6K,GACA,KAAK,wBAAwBA,CAAM,EAAI,KAAK,wBAAwBA,CAAM,GAAK,EAC/E,KAAK,wBAAwBA,CAAM,IAC/B,KAAK,wBAAwBA,CAAM,EAAI,GACvC,KAAK,YAAY,qCAAsC,CACnD,KAAMz6K,EACN,UAAWk5K,EAAM,OACjB,UAAW,KAAK,wBAAwBuB,CAAM,CACtF,CAAqC,GAGL,KAAK,YAAY,8CAA+C,CAAC,KAAMz6K,CAAI,CAAC,CAE5G,EAA2B,IAAI,CAAC,EAEJg5K,GACA,KAAK,2BAA6B,EAC9B,KAAK,qBAAuB,CAACqB,GAC7B,KAAK,WAAU,EACRrN,GAAgB,WAEhB,KAAK,UAGZ,EAAE,KAAK,2BAA6B,GACpC,KAAK,YAAY,qDAAqD,EACtE,KAAK,gBAAe,GAEpB,KAAK,WAAU,EAEZA,GAAgB,UAEnD,EAAuB,IAAI,CAAC,CACf,EAAE,IAAI,EAEH2N,EAAoB1mK,EAAE,KAAK,SAAS2mK,EAAK,CACzC,KAAK,kBAAoB,GAEzB,GAAI,CAKA,GAAI93J,EAAQ,UAER,OAAO,KAAK,MAAM,eAAey3J,CAAgB,EAC9C,GACHtmK,EAAE,SAAS2mK,CAAG,GACVA,EAAI,QAAU,WACd,IAAI,KAAM,EAAC,QAAS,EAAGjD,GAAaE,EAExC,YAAK,YAAY,2BAA2B,EACrC,KAAK,QACT,GACH5jK,EAAE,SAAS2mK,CAAG,IAENA,EAAI,gBAAkB,KACnBA,EAAI,iBAAmB,KACtBA,EAAI,gBAAkB,GAAK,CAAClF,IAAQ,GACrCkF,EAAI,QAAU,WAE3B,CAEE,IAAIC,EAAU,KAAK,cAAgB,EACnC,OAAID,EAAI,aACJC,EAAW,SAASD,EAAI,WAAY,EAAE,EAAI,KAASC,GAEvDA,EAAU,KAAK,IAAIb,IAAuBa,CAAO,EACjD,KAAK,YAAY,mBAAqBA,EAAU,KAAK,EACrD,KAAK,cAAcA,CAAO,EACnB7N,GAAgB,SAC/C,SAA+B/4J,EAAE,SAAS2mK,CAAG,GAAKA,EAAI,iBAAmB,IAEjD,GAAI1B,EAAM,OAAS,EAAG,CAClB,IAAI4B,EAAkB,KAAK,IAAI,EAAG,KAAK,MAAMV,EAAmB,CAAC,CAAC,EAClE,YAAK,UAAY,KAAK,IAAI,KAAK,UAAWU,EAAiB5B,EAAM,OAAS,CAAC,EAC3E,KAAK,YAAY,wCAA0C,KAAK,SAAS,EACzE,KAAK,WAAU,EACRlM,GAAgB,SACnD,KAC4B,aAAK,YAAY,2CAA4CkM,CAAK,EAClE,KAAK,eAAc,EACZwB,EAAoB,MAK/B,QAAOA,EAAoB,CAElC,OAAOhsL,EAAK,CACT,KAAK,YAAY,8BAA+BA,CAAG,EACnD,KAAK,WAAU,CAClB,CACJ,EAAE,IAAI,EACHqsL,EAAiB,CACjB,OAAQ,OACR,QAAS,GACT,mBAAoB,GACpB,WAAYlD,CAC5B,EACY,OAAI/0J,EAAQ,YACRi4J,EAAe,UAAY,cAE/Bd,GAAS,IAAI,oBAAqBK,CAAc,EACzC,KAAK,mBAAmBA,EAAgBS,CAAc,EAAE,KAAKJ,CAAiB,CACxF,EAAE,IAAI,CAAC,EACP,MAAM1mK,EAAE,KAAK,SAASvlB,EAAK,CACxB,KAAK,YAAY,+BAAgCA,CAAG,EACpD,KAAK,WAAU,CAC3B,EAAW,IAAI,CAAC,CAChB,EAKAwrL,GAAe,UAAU,YAAc,SAAS9N,EAAK19K,EAAK,CAEtD,GADAurL,GAAS,MAAM,MAAMA,GAAS,MAAO,SAAS,EAC1C,KAAK,cACL,GAAI,CACMvrL,aAAe,QACjBA,EAAM,IAAI,MAAM09K,CAAG,GAEvB,KAAK,cAAcA,EAAK19K,CAAG,CAC9B,OAAOA,EAAK,CACTurL,GAAS,MAAMvrL,CAAG,CACrB,CAET,EAEA,IAAIssL,GAAW7M,GAAoB,UAAU,EACzC8M,GAAoBxzI,GAAI,kBAExByzI,IAA8B,CAC9B,WAAc,IACd,wBAA2B,GAAK,IAChC,yBAA4B,GAAK,IACjC,gBAAmB,EACvB,EAEIC,IAAiB,IAAI,IAAI,CACzB5P,GAAkB,UAClBA,GAAkB,iBAClBA,GAAkB,OAClBA,GAAkB,eAClBA,GAAkB,MAClBA,GAAkB,UAClBA,GAAkB,iBAClBA,GAAkB,KAClBA,GAAkB,SACtB,CAAC,EAED,SAAS6P,IAAYC,EAAI,CACrB,OAAOA,EAAG,OAAS/P,GAAU,qBAAuB6P,IAAe,IAAIE,EAAG,KAAK,MAAM,CACzF,CAUA,IAAIC,GAAmB,SAASx4J,EAAS,CACrC,KAAK,UAAYA,EAAQ,iBACzB,KAAK,eAAiBA,EAAQ,cAC9B,KAAK,oBAAsBA,EAAQ,mBACnC,KAAK,aAAeA,EAAQ,YAE5B,KAAK,SAAWA,EAAQ,SAGxB,KAAK,eAAiB,KAEtB,KAAK,MAAQ,EACb,KAAK,gBAAkB,KACvB,KAAK,eAAiB,KACtB,KAAK,cAAgB,KAErB,KAAK,cAAgB,KACrB,KAAK,aAAe,KAEpB,KAAK,YAAcmqJ,GACnB,KAAK,YAAc,EAInB,IAAIsO,EAAa,WAAa,KAAK,UAAU,OAAO,EAAI,IAAM,KAAK,SACnE,KAAK,QAAU,IAAIrB,GAAeqB,EAAY,CAC1C,cAAetnK,EAAE,KAAK,KAAK,YAAa,IAAI,EAC5C,oBAAqB,GACrB,UAAWinK,IACX,gBAAiBjnK,EAAE,KAAK,KAAK,sBAAuB,IAAI,EACxD,eAAgB,EACxB,CAAK,CACL,EAEAqnK,GAAiB,UAAU,UAAY,SAASE,EAAW,CACvD,OAAO,KAAK,UAAU,WAAWA,CAAS,CAC9C,EAKAF,GAAiB,UAAU,WAAa,SAASE,EAAW,CACxD,OAAO,KAAK,UAAUA,CAAS,CACnC,EAEAF,GAAiB,UAAU,eAAiB,SAAUG,EAAmB,CACrE,GAAI,KAAK,iBAAmB,KAAM,CAC9BT,GAAS,IAAI,yDAAyD,EACtE,MACH,CAED,KAAK,YAAc,KAAK,UAAU,eAAe,EAC7C,KAAK,YAAc/N,KACnB,KAAK,YAAcA,GACnB+N,GAAS,SAAS,wCAA0C/N,GAAmB,oBAAoB,GAGvG,KAAK,YAAc,KAAK,UAAU,eAAe,EAC7C,KAAK,YAAcC,KACnB,KAAK,YAAcA,GACnB8N,GAAS,SAAS,wCAA0C9N,GAAiC,oBAAoB,GAGrH,KAAK,gBAAkB,IAAI,KAAM,EAAC,QAAO,EACzC,KAAK,cAAgBj5J,EAAE,KAAK,WAAU,EACtC,KAAK,eAAiBA,EAAE,KAAK,WAAU,EAEnCwnK,GAAqB,KAAK,YAAc,EAMxC,KAAK,QAAQ,OAEb,KAAK,QAAQ,QAGjB,IAAIC,EAAmBznK,EAAE,KAAK,UAAY,CACtC,aAAa,KAAK,aAAa,EAC/B,KAAK,cAAgB,WAAW,KAAK,eAAgB,KAAK,UAAU,wBAAwB,CAAC,CAChG,EAAE,IAAI,EAEHg/I,EAAgB,KAAK,UAAU,uBAAuB,EAgC1D,IA/BIA,IAAkB,IAAMA,IAAkB,QAC1CA,EAAgB,QAGpB,KAAK,eAAiB,KAAK,aAAa,CACpC,KAAQh/I,EAAE,KAAK,SAAUonK,EAAI,CACzB,KAAK,QAAQ,QAAQA,CAAE,EACnBD,IAAYC,CAAE,IACV,KAAK,QAAQ,SAAW,IAAI,KAAI,EAAG,QAAO,EAAK,KAAK,iBAAmB,KAAK,aAE5E,KAAK,QAAQ,QAEjBK,IAEP,EAAE,IAAI,EACP,WAAc,KAAK,UAAU,oBAAoB,EACjD,cAAiBzoB,EACjB,aAAgB,KAAK,UAAU,sBAAsB,EACrD,eAAkB,CACd,KAAQ,aACR,QAAW,EACd,EACD,cAAiB,GACjB,cAAiB,KAAK,UAAU,wBAAwB,EACxD,iBAAoB,KAAK,UAAU,2BAA2B,EAC9D,aAAgB,KAAK,UAAU,eAAe,EAC9C,SAAY,CACR,OAAU,EACb,CACT,CAAK,EAEG,OAAO,KAAK,gBAAmB,WAAY,CAC3C,KAAK,YAAY,iDAAiD,EAClE,KAAK,eAAiB,KACtB,KAAK,cAAa,EAClB,MACH,CAEDyoB,IAEA,KAAK,aAAe,WAAWznK,EAAE,KAAK,KAAK,oBAAqB,IAAI,EAAG,KAAK,WAAW,CAC3F,EAEAqnK,GAAiB,UAAU,cAAgB,UAAY,CACnD,GAAI,CAAC,KAAK,iBAAkB,CACxB,GAAI,CACA,KAAK,eAAc,CACtB,OAAQ5sL,EAAK,CACV,KAAK,YAAY,iCAAkCA,CAAG,CACzD,CACD,KAAK,eAAiB,IACzB,CAEG,KAAK,QAAQ,QAEb,KAAK,QAAQ,SAGb,KAAK,QAAQ,QACb,KAAK,QAAQ,QAGjB,aAAa,KAAK,aAAa,EAC/B,aAAa,KAAK,YAAY,CAClC,EAEA4sL,GAAiB,UAAU,eAAiB,UAAY,CACpD,OAAO,KAAK,iBAAmB,IACnC,EAMAA,GAAiB,UAAU,sBAAwB,SAAU94J,EAAMM,EAASh3C,EAAI,CAC5E,KAAK,aAAa02C,EAAMM,EAASh3C,EAAImoC,EAAE,KAAK,KAAK,UAAW,IAAI,CAAC,CACrE,EAEAqnK,GAAiB,UAAU,UAAY,SAAUlkG,EAAM,CAE/CA,IAAS,GACT,KAAK,cAAa,CAE1B,EAEAkkG,GAAiB,UAAU,aAAe,SAASK,EAAiBC,EAAWC,EAASnlL,EAAU,CAC9F,IAAIolL,EAAY7nK,EAAE,KAAK,SAAU8nK,EAAUC,EAAc,CAIjDD,EAAS,SAAW,KAAO,KAAK,WAAaJ,IAC7C,KAAK,QACL,KAAK,cAAgB1nK,EAAE,KAAK,WAAU,GAE1Cvd,EAAS,CACL,OAAQ,EACR,eAAgBqlL,EAAS,OACzB,aAAcC,EACd,WAAYD,EAAS,QAAQ,IAAI,aAAa,CAC1D,CAAS,CACJ,EAAE,IAAI,EAEPt0I,GAAI,MAAS,KAAK,UAAU,UAAU,EAAI,IAAM,KAAK,UAAU,YAAY,EAAE,OAAY,IAAM,IAAI,gBAAgBm0I,CAAS,EAAG,CAC3H,OAAU,OACV,QAAW,CACP,cAAiB,SAAW,KAAK,KAAK,UAAU,OAAO,EAAI,GAAG,EAC9D,eAAgB,0BACnB,EACD,KAAQC,CAChB,CAAK,EAAE,KAAK,SAAUE,EAAU,CACxBA,EAAS,KAAI,EAAG,KAAK,SAAUC,EAAc,CACzCF,EAAUC,EAAUC,CAAY,CAC5C,CAAS,EAAE,MAAM,SAAU55H,EAAO,CACtB1rD,EAAS,CAAC,MAAO0rD,CAAK,CAAC,CACnC,CAAS,CACT,CAAK,EAAE,MAAM,SAAUA,EAAO,CACtB1rD,EAAS,CAAC,MAAO0rD,EAAO,eAAgB,CAAC,CAAC,CAClD,CAAK,CACL,EAEAk5H,GAAiB,UAAU,aAAe/E,GAA0B,SAAU/zJ,EAAMM,EAASpsB,EAAU,CACnG,MAAMulL,EAAYz5J,EAAK,OAEvB,GAAIy5J,EAAY,EAAG,CACf,IAAIC,EAAW,KAAK,SAEhBC,EAAiB35J,EAAK,CAAC,EAAE,WACzB,KAAK,QAAU,GAAK,CAAC,KAAK,mBAEtB,KAAK,QAAU,GACf,KAAK,YAAY,6FAA6F,EAGlH,KAAK,gBAAkB25J,GAE3B,IAAIC,EAAiB55J,EAAKy5J,EAAY,CAAC,EAAE,UAAY,KAAK,gBAEtDL,EAAY,CACZ,aAAgB,KAAK,cACrB,aAAgBpQ,GAAO,YACvB,iBAAoB2Q,EAAiB,IACrC,YAAe,OAAO,KAAK,UAAU,gBAAe,CAAE,EACtD,OAAU,MACV,UAAaD,EACb,iBAAoBE,EACpB,kBAAqB,KAAK,gBAAkB,IAC5C,iBAAoB,KAAK,eACzB,IAAO,KAAK,KACxB,EACYC,EAAapoK,EAAE,WAAWuO,CAAI,EAG9B85J,EAAW,KAAK,UAAU,aAAa,YAAY,EACnDA,IACAV,EAAU,WAAgBU,GAE9B,IAAIC,EAAS,KAAK,UAAU,aAAa,UAAU,EAKnD,GAJIA,IACAX,EAAU,SAAcW,GAGxBtB,GAAmB,CACnB,IAAIuB,EAAa,IAAI,KAAK,CAACH,CAAU,EAAG,CAAC,KAAM,kBAAkB,CAAC,EAAE,SAChEI,EAAaD,EAAW,YAAY,IAAIvB,GAAkB,MAAM,CAAC,EACrE,IAAI,SAASwB,CAAU,EAClB,KAAM,EACN,KAAKxoK,EAAE,KAAK,SAASyoK,EAAgB,CAClCd,EAAU,OAAY,OACtB,KAAK,aAAaM,EAAUN,EAAWc,EAAgBhmL,CAAQ,CACnF,EAAmB,IAAI,CAAC,CACxB,MACYklL,EAAU,OAAY,OACtB,KAAK,aAAaM,EAAUN,EAAWS,EAAY3lL,CAAQ,CAElE,CACL,CAAC,EAGD4kL,GAAiB,UAAU,YAAc,SAASlP,EAAK19K,EAAK,CACxDssL,GAAS,MAAM,MAAMA,GAAS,MAAO,SAAS,EAC9C,GAAI,CACI,CAACtsL,GAAO,EAAE09K,aAAe,SACzBA,EAAM,IAAI,MAAMA,CAAG,GAEvB,KAAK,UAAU,gBAAgB,EAAEA,EAAK19K,CAAG,CAC5C,OAAOA,EAAK,CACTssL,GAAS,MAAMtsL,CAAG,CACrB,CACL,EAEA,IAAIiuL,GAAWxO,GAAoB,UAAU,EAMzCyO,GAAmB,SAASC,EAAkB,CAC9C,KAAK,UAAYA,EACjB,KAAK,gBAAkB,IAC3B,EAEAD,GAAiB,UAAU,eAAiB,SAASnB,EAAmB,CACpE,GAAI,KAAK,iBAAmB,CAAC,KAAK,gBAAgB,eAAc,EAAI,CAChEkB,GAAS,IAAI,yDAAyD,EACtE,MACH,CAED,IAAIG,EAAgB7oK,EAAE,KAAK,UAAY,CACnC0oK,GAAS,IAAI,6CAA6C,EAC1D,KAAK,eAAc,CACtB,EAAE,IAAI,EAEHI,EAAqB9oK,EAAE,KAAK,UAAY,CACxC0oK,GAAS,IAAI,mDAAmD,EAChE,KAAK,eAAc,CACtB,EAAE,IAAI,EAEP,KAAK,gBAAkB,IAAIrB,GAAiB,CACxC,iBAAkB,KAAK,UACvB,cAAewB,EACf,mBAAoBC,EACpB,SAAU9oK,EAAE,KAAM,EAClB,YAAau1J,EACrB,CAAK,EAED,KAAK,gBAAgB,eAAeiS,CAAiB,CACzD,EAEAmB,GAAiB,UAAU,cAAgB,UAAW,CAC9C,KAAK,kBACL,KAAK,gBAAgB,gBACrB,KAAK,gBAAkB,KAE/B,EAEAA,GAAiB,UAAU,eAAiB,UAAY,CACpD,KAAK,cAAa,EAClB,KAAK,eAAe,EAAI,CAC5B,EAEAA,GAAiB,UAAU,kBAAoB,UAAY,CACvD,OAAI,KAAK,iBAAmB,CAAC,KAAK,gBAAgB,eAAc,EACrD,KAAK,gBAAgB,SAErB,IAEf,EAIA,OAAO,eAAeA,GAAiB,UAAW,WAAY,CAC1D,IAAK,UAAY,CACb,OAAO,KAAK,mBACf,CACL,CAAC,EAEDn1I,GAAI,cAAmBm1I,GAIvB,IAAII,GAAY,SACZC,GAAW,QACXC,GAAgB,aAChBC,GAAwB,oBACxBC,GAAc,WAEdC,GAAe,YACfC,GAAY,SAEZC,IAAoB,CACpB,UAAW,UACX,UAAW,UACX,QAAS,QACT,UAAW,UACX,IAAK,GACT,EACIC,GAAiB,CAAC,YAAY,EAC9BC,GAAkB,CAAC,aAAa,EAChCC,GAAyBD,GAAgB,OAAO,CAAC,cAAc,CAAC,EAChEE,IAAgB,CAChB,aAAc,kBAAmB,mBACjC,OAAQ,OAAQ,OAAQ,QAAS,MACrC,EAEIC,GAASzP,GAAoB,aAAa,EAG9C,SAAS0P,GAAWvwL,EAAI,CAGpB,QAFI25F,EAAU,GACVj/E,EAAY81K,GAAaxwL,CAAE,EAAE,MAAM,GAAG,EACjC0B,EAAI,EAAGA,EAAIgZ,EAAU,OAAQhZ,IAAK,CACvC,IAAI+uL,EAAM/1K,EAAUhZ,CAAC,EACjB+uL,IACA92F,EAAQ82F,CAAG,EAAI,GAEtB,CACD,OAAO92F,CACX,CAOA,SAAS62F,GAAaxwL,EAAI,CACtB,OAAO,OAAOA,EAAG,UAAS,CACtB,IAAK,SACD,OAAOA,EAAG,UACd,IAAK,SACD,OAAOA,EAAG,UAAU,SAAWA,EAAG,aAAa,OAAO,GAAK,GAC/D,QACI,MAAO,EACd,CACL,CAEA,SAAS0wL,IAA0B1wL,EAAI,CACnC,GAAIA,EAAG,uBACH,OAAOA,EAAG,uBAEV,GACIA,EAAKA,EAAG,sBACHA,GAAM,CAAC2wL,GAAc3wL,CAAE,GAChC,OAAOA,CAEf,CAEA,SAAS4wL,GAAyB5wL,EAAI+tL,EAAI8C,EAAeC,EAAYC,EAAsBC,EAAgB,CACvG,IAAIvuL,EAAQ,CACR,SAAY+tL,GAAaxwL,CAAE,EAAE,MAAM,GAAG,EACtC,UAAaA,EAAG,QAAQ,YAAa,CAC7C,EACQixL,EAAOjxL,EAAG,GACVixL,IACAxuL,EAAM,IAASwuL,GAGfC,GAA0BlxL,EAAI+tL,EAAIgD,EAAsBC,CAAc,GACtErqK,EAAE,KAAK0pK,IAAc,OAAOS,CAAU,EAAG,SAASnvJ,EAAM,CACpD,GAAI3hC,EAAG,aAAa2hC,CAAI,GAAK,CAACkvJ,EAAclvJ,CAAI,EAAG,CAC/C,IAAIwvJ,EAAUnxL,EAAG,aAAa2hC,CAAI,EAC9ByvJ,GAAiBD,CAAO,IACxB1uL,EAAM,SAAWk/B,CAAI,EAAIwvJ,EAEhC,CACb,CAAS,EAML,QAHIE,EAAW,EACXC,EAAY,EACZC,EAAcvxL,EACXuxL,EAAcb,IAA0Ba,CAAW,GACtDF,IACIE,EAAY,UAAYvxL,EAAG,SAC3BsxL,IAGR,OAAA7uL,EAAM,WAAgB4uL,EACtB5uL,EAAM,aAAkB6uL,EAEjB7uL,CACX,CAEA,SAAS+uL,IAAoBzD,EAAIv3K,EAAQ,CACrC,IAAIu6K,EAAuBv6K,EAAO,qBAC9Bw6K,EAAiBx6K,EAAO,gBAAkB,GAC1Ci7K,EAAaj7K,EAAO,YAAc,GAClCk7K,EAAuBl7K,EAAO,qBAC9Bm7K,EAAiBn7K,EAAO,gBAAkB,GAC1Co7K,EAAqBp7K,EAAO,oBAAsB,GAClDq7K,EAAoBr7K,EAAO,mBAAqB,GAGhDq6K,EAAgB,GACpBlqK,EAAE,KAAK8qK,EAAY,SAAS9vJ,EAAM,CAC9BkvJ,EAAclvJ,CAAI,EAAI,EAC9B,CAAK,EAED,IAAIl/B,EAAQ,KAERuI,EAAS,OAAO+iL,EAAG,OAAW,IAAcA,EAAG,WAAaA,EAAG,OAKnE,GAJI+D,GAAW9mL,CAAM,IACjBA,EAASA,EAAO,YAIhB+mL,IAAoB/mL,EAAQ+iL,CAAE,GAC9BiE,GAAiBhnL,EAAQ+iL,EAAIgD,EAAsBC,CAAc,GACjE,CAACiB,GAAiBjnL,EAAQ+iL,EAAI2D,EAAsBC,CAAc,EACpE,CAGE,QAFIO,EAAoB,CAAClnL,CAAM,EAC3BmnL,EAAQnnL,EACLmnL,EAAM,YAAc,CAACC,GAAMD,EAAO,MAAM,GAC3CD,EAAkB,KAAKC,EAAM,UAAU,EACvCA,EAAQA,EAAM,WAGlB,IAAIE,EAAe,GACfjjC,EAAMkjC,EAAkB,GAkB5B,GAjBA3rK,EAAE,KAAKurK,EAAmB,SAASlyL,EAAI,CACnC,IAAIuyL,EAAqBrB,GAA0BlxL,EAAI+tL,EAAIgD,EAAsBC,CAAc,EAI3F,CAACH,EAAc,MAAW7wL,EAAG,QAAQ,YAAa,IAAK,MACvDovJ,EAAOpvJ,EAAG,aAAa,MAAM,EAC7BovJ,EAAOmjC,GAAsBnB,GAAiBhiC,CAAI,GAAKA,GAGvD6iC,GAAiBjyL,EAAI+tL,EAAI2D,EAAsBC,CAAc,IAC7DW,EAAkB,IAGtBD,EAAa,KAAKzB,GAAyB5wL,EAAI+tL,EAAI8C,EAAegB,EAAmBd,EAAsBC,CAAc,CAAC,CAC7H,EAAE,IAAI,EAEH,CAACsB,EAAiB,CAClB,IAAIE,EAAavS,GAAW,gBAmC5B,GAlCAx9K,EAAQ,CACJ,YAAesrL,EAAG,KAClB,MAAS5zI,GAAI,SAAS,KACtB,UAAaA,GAAI,SAAS,SAC1B,UAAck4I,EACd,eAAkBjjC,EAClB,gBAAmB,KAAK,IAAIojC,EAAW,aAAiBr4I,GAAI,aAAkB,CAAC,EAC/E,eAAkB,KAAK,IAAIq4I,EAAW,YAAgBr4I,GAAI,YAAiB,CAAC,CAC5F,EACYxzB,EAAE,KAAKkrK,EAAmB,SAASlwJ,EAAM,CACrC,GAAI,CAACkvJ,EAAclvJ,CAAI,GAAK32B,EAAO,aAAa22B,CAAI,EAAG,CACnD,IAAIwvJ,EAAUnmL,EAAO,aAAa22B,CAAI,EAClCyvJ,GAAiBD,CAAO,IACxB1uL,EAAM,aAAek/B,CAAI,EAAIwvJ,EAEpC,CACjB,CAAa,EAEGS,IACAa,EAAcC,GAAY1nL,EAAQ+iL,EAAIgD,EAAsBC,CAAc,EACtEyB,GAAeA,EAAY,SAC3BhwL,EAAM,SAAcgwL,IAIxB1E,EAAG,OAAS4B,KACZhpK,EAAE,KAAKspK,IAAmB,SAASxmL,EAAM,CACjCA,KAAQskL,IACRtrL,EAAM,IAAMgH,CAAI,EAAIskL,EAAGtkL,CAAI,EAEnD,CAAiB,EACDuB,EAAS2nL,IAAqB5E,CAAE,GAGhC6D,EAAoB,CACpB,IAAIa,EAAcC,GAAY1nL,EAAQ+iL,EAAIgD,EAAsBC,CAAc,EAC1EyB,GAAeA,EAAY,SAC3BhwL,EAAM,SAAcgwL,EAE3B,CAED,GAAIznL,EAAQ,CAER,GACI,CAACgnL,GAAiBhnL,EAAQ+iL,EAAIgD,EAAsBC,CAAc,GAClEiB,GAAiBjnL,EAAQ+iL,EAAI2D,EAAsBC,CAAc,EAEjE,OAAO,KAGX,IAAIiB,EAAchC,GAAyB5lL,EAAQ+iL,EAAI8C,EAAegB,EAAmBd,EAAsBC,CAAc,EAC7HvuL,EAAM,QAAamwL,EAEnBnwL,EAAM,YAAiBmwL,EAAY,SACnCjsK,EAAE,OAAOlkB,EAAOkkB,EAAE,uBAAuB,CACrC,OAAUisK,EAAY,IACtB,aAAgBA,EAAY,SAC/B,EAAC,CACL,CACJ,CACJ,CAED,OAAOnwL,CACX,CAaA,SAASiwL,GAAY1yL,EAAI+tL,EAAIgD,EAAsBC,EAAgB,CAC/D,IAAI6B,EAAS,GAEb,OAAI3B,GAA0BlxL,EAAI+tL,EAAIgD,EAAsBC,CAAc,GAAKhxL,EAAG,YAAcA,EAAG,WAAW,QAC1G2mB,EAAE,KAAK3mB,EAAG,WAAY,SAAS8F,EAAO,CAC9BgsL,GAAWhsL,CAAK,GAAKA,EAAM,cAC3B+sL,GAAUlsK,EAAE,KAAK7gB,EAAM,WAAW,EAE7B,MAAM,OAAO,EAAE,OAAOsrL,EAAgB,EAAE,KAAK,EAAE,EAE/C,QAAQ,UAAW,GAAG,EAAE,QAAQ,QAAS,GAAG,EAE5C,UAAU,EAAG,GAAG,EAErC,CAAS,EAGEzqK,EAAE,KAAKksK,CAAM,CACxB,CAEA,SAASF,IAAqB5E,EAAI,CAG9B,QAFI/iL,EAAS+iL,EAAG,OACZ+E,EAAe/E,EAAG,eACbrsL,EAAI,EAAGA,EAAIoxL,EAAa,OAAQpxL,IAAK,CAC1C,IAAIkD,EAAOkuL,EAAapxL,CAAC,EACzB,GACI0wL,GAAMxtL,EAAM,GAAG,GACfwtL,GAAMxtL,EAAM,QAAQ,GACpBwtL,GAAMxtL,EAAM,OAAO,GACnBwtL,GAAMxtL,EAAM,QAAQ,GACnBA,EAAK,cAAgBA,EAAK,aAAa,MAAM,IAAM,SACtD,CACEoG,EAASpG,EACT,KACH,CACD,GAAIA,IAASoG,EACT,KAEP,CACD,OAAOA,CACX,CAEA,SAASgnL,GAAiBhyL,EAAI+tL,EAAIgD,EAAsBC,EAAgB,CACpE,GAAID,EACA,GAAI,CACA,GAAI,CAACA,EAAqB/wL,EAAI+tL,CAAE,EAC5B,MAAO,EAEd,OAAQ3sL,EAAK,CACV,OAAAkvL,GAAO,SAAS,uDAAwDlvL,CAAG,EACpE,EACV,CAGL,GAAI,CAAC4vL,EAAe,OAEhB,MAAO,GAGX,QAAS,EAAI,EAAG,EAAIA,EAAe,OAAQ,IAAK,CAC5C,IAAI+B,EAAM/B,EAAe,CAAC,EAC1B,GAAI,CACA,GAAIhxL,EAAG,QAAW+yL,CAAG,EACjB,MAAO,EAEd,OAAQ3xL,EAAK,CACVkvL,GAAO,SAAS,kCAAoCyC,EAAK3xL,CAAG,CAC/D,CACJ,CACD,MAAO,EACX,CAEA,SAAS6wL,GAAiBjyL,EAAI+tL,EAAI2D,EAAsBC,EAAgB,CACpE,IAAI,EAEJ,GAAID,EACA,GAAI,CACA,GAAIA,EAAqB1xL,EAAI+tL,CAAE,EAC3B,MAAO,EAEd,OAAQ3sL,EAAK,CACV,OAAAkvL,GAAO,SAAS,uDAAwDlvL,CAAG,EACpE,EACV,CAGL,GAAIuwL,GAAkBA,EAAe,OAEjC,IAAK,EAAI,EAAG,EAAIA,EAAe,OAAQ,IAAK,CACxC,IAAIoB,EAAMpB,EAAe,CAAC,EAC1B,GAAI,CACA,GAAI3xL,EAAG,QAAW+yL,CAAG,EACjB,MAAO,EAEd,OAAQ3xL,EAAK,CACVkvL,GAAO,SAAS,kCAAoCyC,EAAK3xL,CAAG,CAC/D,CACJ,CAIL,IAAIu4F,EAAU42F,GAAWvwL,CAAE,EAC3B,IAAK,EAAI,EAAG,EAAImwL,GAAgB,OAAQ,IACpC,GAAIx2F,EAAQw2F,GAAgB,CAAC,CAAC,EAC1B,MAAO,GAIf,MAAO,EACX,CAOA,SAASQ,GAAc/rL,EAAM,CACzB,OAAOA,GAAQA,EAAK,WAAa,CACrC,CAYA,SAASwtL,GAAMpyL,EAAI0V,EAAK,CACpB,OAAO1V,GAAMA,EAAG,SAAWA,EAAG,QAAQ,YAAa,IAAK0V,EAAI,aAChE,CAOA,SAASo8K,GAAWltL,EAAM,CACtB,OAAOA,GAAQA,EAAK,WAAa,CACrC,CAEA,SAASouL,KAAsB,CAC3B,GAAI,CACA,IAAIC,EAAShT,GAAW,cAAc,KAAK,EAC3C,MAAO,CAAC,CAACgT,EAAO,OACnB,MAAa,CACV,MAAO,EACV,CACL,CASA,SAASlB,IAAoB/xL,EAAI+tL,EAAI,CACjC,GAAI,CAAC/tL,GAAMoyL,GAAMpyL,EAAI,MAAM,GAAK,CAAC2wL,GAAc3wL,CAAE,EAC7C,MAAO,GAEX,IAAI0V,EAAM1V,EAAG,QAAQ,YAAW,EAChC,OAAQ0V,EAAG,CACP,IAAK,OACD,OAAOq4K,EAAG,OAASiC,GACvB,IAAK,QACD,MAAI,CAAC,SAAU,QAAQ,EAAE,QAAQhwL,EAAG,aAAa,MAAM,CAAC,IAAM,GACnD+tL,EAAG,OAAS2B,GAEZ3B,EAAG,OAAS4B,GAE3B,IAAK,SACL,IAAK,WACD,OAAO5B,EAAG,OAAS2B,GACvB,QACI,OAAO3B,EAAG,OAAS4B,EAC1B,CACL,CASA,SAASuB,GAA0BlxL,EAAI+tL,EAAIgD,EAAsBC,EAAgB,CAC7E,IAAI,EAEJ,GAAI,CAACgB,GAAiBhyL,EAAI+tL,EAAIgD,EAAsBC,CAAc,EAC9D,MAAO,GAGX,QAASmB,EAAQnyL,EAAImyL,EAAM,YAAc,CAACC,GAAMD,EAAO,MAAM,EAAGA,EAAQA,EAAM,WAAY,CACtF,IAAIx4F,EAAU42F,GAAW4B,CAAK,EAC9B,IAAK,EAAI,EAAG,EAAI/B,GAAuB,OAAQ,IAC3C,GAAIz2F,EAAQy2F,GAAuB,CAAC,CAAC,EACjC,MAAO,EAGlB,CAED,IAAI8C,EAAY3C,GAAWvwL,CAAE,EAC7B,IAAK,EAAI,EAAG,EAAIkwL,GAAe,OAAQ,IACnC,GAAIgD,EAAUhD,GAAe,CAAC,CAAC,EAC3B,MAAO,GAMf,GACIkC,GAAMpyL,EAAI,OAAO,GACjBoyL,GAAMpyL,EAAI,QAAQ,GAClBoyL,GAAMpyL,EAAI,UAAU,GACpBA,EAAG,aAAa,iBAAiB,IAAM,OAEvC,MAAO,GAIX,IAAIuG,EAAOvG,EAAG,MAAQ,GACtB,GAAI,OAAOuG,GAAS,SAChB,OAAOA,EAAK,YAAa,GACrB,IAAK,SACD,MAAO,GACX,IAAK,WACD,MAAO,EACd,CAIL,IAAIqB,EAAO5H,EAAG,MAAQA,EAAG,IAAM,GAC/B,GAAI,OAAO4H,GAAS,SAAU,CAC1B,IAAIurL,EAAqB,uHACzB,GAAIA,EAAmB,KAAKvrL,EAAK,QAAQ,gBAAiB,EAAE,CAAC,EACzD,MAAO,EAEd,CAED,MAAO,EACX,CASA,SAASwpL,GAAiBxuL,EAAO,CAC7B,GAAIA,IAAU,MAAQ+jB,EAAE,YAAY/jB,CAAK,EACrC,MAAO,GAGX,GAAI,OAAOA,GAAU,SAAU,CAC3BA,EAAQ+jB,EAAE,KAAK/jB,CAAK,EAIpB,IAAIwwL,EAAU,wKACd,GAAIA,EAAQ,MAAMxwL,GAAS,IAAI,QAAQ,QAAS,EAAE,CAAC,EAC/C,MAAO,GAIX,IAAIywL,EAAW,0BACf,GAAIA,EAAS,KAAKzwL,CAAK,EACnB,MAAO,EAEd,CAED,MAAO,EACX,CAEA,IAAI0wL,GAAyB,cACzBC,IAA6B,iBAE7BC,GAA2B,WAC3BC,IAAiD,iCACjDC,IAAgC,gBAEhCC,IAAgC,yBAChCC,GAAyB,kBACzBC,GAA2B,oBAC3BC,GAAqB,cACrBC,GAAgC,yBAChCC,GAAyB,kBACzBC,GAA2B,oBAC3BC,GAA6B,sBAC7BC,GAA8B,uBAC9BC,GAA4B,qBAC5BC,GAA4B,mCAC5BC,GAAqB,QACrBC,GAAqB,QACrBC,GAAwB,WACxBC,GAAsB,SACtBC,GAAsB,SAEtBC,GAAkB,GACtBA,GAAgBf,EAAsB,EAAI,GAC1Ce,GAAgBd,EAAwB,EAAI,GAC5Cc,GAAgBb,EAAkB,EAAI,GACtCa,GAAgBZ,EAA6B,EAAI,KACjDY,GAAgBX,EAAsB,EAAI,GAC1CW,GAAgBV,EAAwB,EAAI,GAC5CU,GAAgBT,EAA0B,EAAI,GAC9CS,GAAgBR,EAA2B,EAAI,GAC/CQ,GAAgBP,EAAyB,EAAI,GAC7CO,GAAgBN,EAAyB,EAAI,CAAC,GAAI,GAAI,GAAI,GAAG,EAC7DM,GAAgBL,EAAkB,EAAI,GACtCK,GAAgBJ,EAAkB,EAAI,GACtCI,GAAgBH,EAAqB,EAAIhB,GACzCmB,GAAgBF,EAAmB,EAAI,GACvCE,GAAgBD,EAAmB,EAAI,GAEvC,IAAIE,GAAgB,CAChB,gBAAmB,EACvB,EAEIC,IAAc,YACdC,IAAc,mBACdC,IAAe,aACfC,IAAe,aAMfC,GAAc,SAASC,EAAI,CAC3B,KAAK,GAAKA,CACd,EAEAD,GAAY,UAAU,KAAO,UAAW,CACpC,GAAI,CAACjC,IAAmB,EAAI,CACxB1C,GAAO,SAAS,oDAAoD,EACpE,MACH,CAED,KAAK,qBAAoB,EACzB,KAAK,kBAAiB,EACtB,KAAK,kBAAiB,EACtB,KAAK,mBAAkB,EACvB,KAAK,mBAAkB,CAC3B,EAEA2E,GAAY,UAAU,cAAgB,UAAW,CAC7C,IAAIE,EAAoB,KAAK,GAAG,WAAW7B,EAAsB,EACjE,OAAK6B,EAGMxuK,EAAE,SAASwuK,CAAiB,EAC5BxuK,EAAE,OAAO,CAAE,EAAEguK,GAAiBQ,CAAiB,EAG/CR,GALA,EAOf,EAEAM,GAAY,UAAU,UAAY,SAAS58K,EAAK,CAC5C,OAAO,KAAK,gBAAgBA,CAAG,CACnC,EAEA48K,GAAY,UAAU,kBAAoB,UAAW,CACjD,IAAIvzL,EACA88J,EAAa73I,EAAE,KAAK,WAAU,EAE9ByuK,EAAkB,KAAK,UAAUvB,EAAwB,GAAK,GAClE,GAAIuB,EAAgB,OAAQ,CAExB,IAAIC,EAAU,GACd,IAAK3zL,EAAI,EAAGA,EAAI0zL,EAAgB,OAAQ1zL,IAAK,CACzC,IAAI4zL,EAAaF,EAAgB1zL,CAAC,EAClC,GAAI,CACA,GAAI88J,EAAW,MAAM82B,CAAU,EAAG,CAC9BD,EAAU,GACV,KACH,CACJ,OAAQj0L,EAAK,CACV,OAAAkvL,GAAO,SAAS,yCAA2CgF,EAAYl0L,CAAG,EACnE,EACV,CACJ,CACD,GAAI,CAACi0L,EAED,MAAO,EAEd,CAED,IAAIE,EAAkB,KAAK,UAAUtB,EAAwB,GAAK,GAClE,GAAI,CAACsB,GAAmB,CAACA,EAAgB,OACrC,MAAO,GAGX,IAAK7zL,EAAI,EAAGA,EAAI6zL,EAAgB,OAAQ7zL,IACpC,GAAI,CACA,GAAI88J,EAAW,MAAM+2B,EAAgB7zL,CAAC,CAAC,EACnC,MAAO,EAEd,OAAQN,EAAK,CACV,OAAAkvL,GAAO,SAAS,yCAA2CiF,EAAgB7zL,CAAC,EAAGN,CAAG,EAC3E,EACV,CAEL,MAAO,EACX,EAEA6zL,GAAY,UAAU,uBAAyB,UAAW,CAEtD,OAAI,KAAK,GAAG,WAAW3B,EAAsB,EAClC,KAAK,UAAUkB,EAAqB,EAEpC,KAAK,GAAG,WAAWjB,GAA0B,CAE5D,EAGA0B,GAAY,UAAU,cAAgB,SAASlH,EAAIyH,EAAa,CAC5D,GAAI,MAAK,oBAIT,KAAI/yL,EAAQ+uL,IAAoBzD,EAAI,CAChC,qBAAsB,KAAK,UAAU4F,GAA6B,EAClE,eAAgB,KAAK,UAAUC,EAAsB,EACrD,WAAY,KAAK,UAAUE,EAAkB,EAC7C,qBAAsB,KAAK,UAAUC,EAA6B,EAClE,eAAgB,KAAK,UAAUC,EAAsB,EACrD,kBAAmB,KAAK,UAAUE,EAA0B,EAC5D,mBAAoB,KAAK,UAAUC,EAA2B,CACtE,CAAK,EACG1xL,IACAkkB,EAAE,OAAOlkB,EAAOmyL,EAAa,EAC7B,KAAK,GAAG,MAAMY,EAAa/yL,CAAK,GAExC,EAEAwyL,GAAY,UAAU,kBAAoB,UAAW,CACjD96I,GAAI,oBAAoBw1I,GAAU,KAAK,aAAa,EAE/C,KAAK,UAAU2E,EAAkB,IAGtChE,GAAO,IAAI,6BAA6B,EAExC,KAAK,cAAgBn2I,GAAI,iBAAiBw1I,IAAU,SAAS5B,EAAI,CACxD,KAAK,UAAUuG,EAAkB,GAGtC,KAAK,cAAcvG,EAAI8G,GAAW,CAC1C,GAAM,KAAK,IAAI,CAAC,EAChB,EAEAI,GAAY,UAAU,kBAAoB,UAAW,CACjD96I,GAAI,oBAAoBu1I,GAAW,KAAK,cAAc,EAEjD,KAAK,UAAU6E,EAAkB,IAGtCjE,GAAO,IAAI,6BAA6B,EAExC,KAAK,eAAiBn2I,GAAI,iBAAiBu1I,IAAW,SAAS3B,EAAI,CAC1D,KAAK,UAAUwG,EAAkB,GAGtC,KAAK,cAAcxG,EAAI+G,GAAW,CAC1C,GAAM,KAAK,IAAI,CAAC,EAChB,EAEAG,GAAY,UAAU,qBAAuB,UAAW,CAKpD,GAJA96I,GAAI,oBAAoB21I,GAAa,KAAK,gBAAgB,EAC1D31I,GAAI,oBAAoBy1I,GAAe,KAAK,kBAAkB,EAC9Dz1I,GAAI,oBAAoB01I,GAAuB,KAAK,sBAAsB,EAEtE,EAAC,KAAK,yBAGV,CAAAS,GAAO,IAAI,gCAAgC,EAE3C,IAAImF,EAAqB,GACrBC,EAAU,GACT,KAAK,sBACNA,EAAU,KAAK,GAAG,eAAed,EAAa,GAE9Cc,IACAD,EAAqB9uK,EAAE,KAAK,cAGhC,KAAK,iBAAmBwzB,GAAI,iBAAiB21I,GAAa,UAAW,CACjE31I,GAAI,cAAc,IAAI,MAAM01I,EAAqB,CAAC,CAC1D,CAAK,EACD,KAAK,mBAAqB11I,GAAI,iBAAiBy1I,GAAe,UAAW,CACrEz1I,GAAI,cAAc,IAAI,MAAM01I,EAAqB,CAAC,CAC1D,CAAK,EACD,IAAI8F,EAAkBx7I,GAAI,QAAQ,UAC9B,OAAOw7I,GAAoB,aAC3Bx7I,GAAI,QAAQ,UAAY,SAAS3uC,EAAOoqL,EAAQ1mC,EAAK,CACjDymC,EAAgB,KAAKx7I,GAAI,QAAS3uC,EAAOoqL,EAAQ1mC,CAAG,EACpD/0G,GAAI,cAAc,IAAI,MAAM01I,EAAqB,CAAC,CAC9D,GAEI,IAAIgG,EAAqB17I,GAAI,QAAQ,aACjC,OAAO07I,GAAuB,aAC9B17I,GAAI,QAAQ,aAAe,SAAS3uC,EAAOoqL,EAAQ1mC,EAAK,CACpD2mC,EAAmB,KAAK17I,GAAI,QAAS3uC,EAAOoqL,EAAQ1mC,CAAG,EACvD/0G,GAAI,cAAc,IAAI,MAAM01I,EAAqB,CAAC,CAC9D,GAEI,KAAK,uBAAyB11I,GAAI,iBAAiB01I,GAAuB/O,IAAS,UAAW,CAC1F,GAAI,MAAK,oBAIT,KAAItiB,EAAa73I,EAAE,KAAK,WAAU,EAC9BmvK,EAAc,GACdC,EAAgBv3B,EAAW,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,IAAMi3B,EAAmB,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EACxGO,EAAsB,KAAK,yBAS/B,GARIA,IAAwBxC,GACxBsC,EAAct3B,IAAei3B,EACtBO,IAAwBvC,IAC/BqC,EAAct3B,EAAW,MAAM,GAAG,EAAE,CAAC,IAAMi3B,EAAmB,MAAM,GAAG,EAAE,CAAC,EACnEO,IAAwBtC,MAC/BoC,EAAcC,GAGdD,EAAa,CACb,IAAIJ,EAAU,KAAK,GAAG,eAAed,EAAa,EAC9Cc,IACAD,EAAqBj3B,GAErBu3B,IACA,KAAK,qBAAuB,EAC5BzF,GAAO,IAAI,uDAAuD,EAEzE,EACT,GAAM,KAAK,IAAI,CAAC,CAAC,EACjB,EAEA2E,GAAY,UAAU,mBAAqB,UAAW,CAClD96I,GAAI,oBAAoB41I,GAAc,KAAK,cAAc,EAEpD,KAAK,UAAU0E,EAAmB,IAGvCnE,GAAO,IAAI,8BAA8B,EACzC,KAAK,qBAAuB,EAE5B,KAAK,eAAiBn2I,GAAI,iBAAiB41I,GAAcjP,IAAS,UAAW,CACzE,GAAK,KAAK,UAAU2T,EAAmB,GAGnC,MAAK,oBAIT,KAAIqB,EAAc,KAAK,UAAU1B,EAAyB,EACtD6B,GAAqB,KAAK,UAAU5B,EAAyB,GAAK,CAAE,GACnE,MAAO,EACP,KAAK,SAASv7M,EAAGK,EAAG,CAAE,OAAOL,EAAIK,CAAE,CAAE,EAEtCqiD,EAAY2e,GAAI,QAChB13C,EAAQkkB,EAAE,OAAO,CAAC,YAAe6U,CAAS,EAAGo5J,EAAa,EAC9D,GAAI,CACA,IAAIn5J,EAAewkJ,GAAW,KAAK,aAC/BiW,EAAmB,KAAK,MAAO16J,GAAaC,EAAe0e,GAAI,aAAgB,GAAG,EAGtF,GAFA13C,EAAM,eAAoBg5B,EAC1Bh5B,EAAM,mBAAwByzL,EAC1BA,EAAmB,KAAK,qBACxB,QAASx0L,EAAI,EAAGA,EAAIu0L,EAAkB,OAAQv0L,IAAK,CAC/C,IAAIy0L,EAAaF,EAAkBv0L,CAAC,EAEhCw0L,GAAoBC,GACpB,KAAK,qBAAuBA,IAE5B1zL,EAAM,mBAAwB0zL,EAC9B,KAAK,qBAAuBA,EAC5BL,EAAc,GAErB,CAER,OAAQ10L,EAAK,CACVkvL,GAAO,SAAS,4CAA6ClvL,CAAG,CACnE,CACG00L,GACA,KAAK,GAAG,MAAMf,IAActyL,CAAK,EAE7C,GAAM,KAAK,IAAI,CAAC,CAAC,EACjB,EAEAwyL,GAAY,UAAU,mBAAqB,UAAW,CAClD96I,GAAI,oBAAoB61I,GAAW,KAAK,cAAc,EAEjD,KAAK,UAAU0E,EAAmB,IAGvCpE,GAAO,IAAI,8BAA8B,EAEzC,KAAK,eAAiBn2I,GAAI,iBAAiB61I,IAAW,SAASjC,EAAI,CAC1D,KAAK,UAAU2G,EAAmB,GAGvC,KAAK,cAAc3G,EAAIiH,GAAY,CAC3C,GAAM,KAAK,IAAI,CAAC,EAChB,EAGAjU,IAAckU,EAAW,EAQzB,IAAImB,GAAa,UAAW,GAI5BA,GAAW,UAAU,kBAAoB,UAAW,GACpDA,GAAW,UAAU,cAAgB,UAAW,GAChDA,GAAW,UAAU,oBAAsB,UAAW,GAEtDA,GAAW,UAAU,KAAO,SAASC,EAAmB,CACpD,YAAK,GAAKA,EACH,IACX,EAQAD,GAAW,UAAU,MAAQ,SAAStP,EAAOwP,EAAYjlF,EAAYklF,EAAe,CAChF,IAAIC,EAAO,KACPtlK,EAAWvK,EAAE,UAAUmgK,CAAK,EAEhC,GAAI51J,EAAS,SAAW,EAAG,CACvByvJ,GAAU,MAAM,kBAAoBmG,EAAQ,uBAAuB,EACnE,MACH,CAEDngK,SAAE,KAAKuK,EAAU,SAAS9pB,EAAS,CAC/Buf,EAAE,eAAevf,EAAS,KAAK,eAAgB,SAAShuB,EAAG,CACvD,IAAIo8C,EAAU,GACV/yB,EAAQ+zL,EAAK,kBAAkBnlF,EAAY,IAAI,EAC/CtoB,EAAUytG,EAAK,GAAG,WAAW,qBAAqB,EAEtDA,EAAK,cAAcp9M,EAAG,KAAMo8C,CAAO,EAGnC,OAAO,WAAWghK,EAAK,eAAeD,EAAe9zL,EAAO+yB,EAAS,EAAI,EAAGuzD,CAAO,EAGnFytG,EAAK,GAAG,MAAMF,EAAY7zL,EAAO+zL,EAAK,eAAeD,EAAe9zL,EAAO+yB,CAAO,CAAC,CAC/F,CAAS,CACJ,EAAE,IAAI,EAEA,EACX,EAOA4gK,GAAW,UAAU,eAAiB,SAASG,EAAe9zL,EAAO+yB,EAASihK,EAAiB,CAC3FA,EAAkBA,GAAmB,GACrC,IAAID,EAAO,KAEX,OAAO,UAAW,CAGVhhK,EAAQ,iBACZA,EAAQ,eAAiB,GAErB,EAAA+gK,GAAiBA,EAAcE,EAAiBh0L,CAAK,IAAM,KAM/D+zL,EAAK,oBAAoB/zL,EAAO+yB,EAASihK,CAAe,EAChE,CACA,EAEAL,GAAW,UAAU,kBAAoB,SAAS/kF,EAAYjqG,EAAS,CACnE,IAAI3E,EAEJ,OAAI,OAAO4uG,GAAgB,WACvB5uG,EAAQ4uG,EAAWjqG,CAAO,EAE1B3E,EAAQkkB,EAAE,OAAO,CAAE,EAAE0qF,CAAU,EAG5B5uG,CACX,EAOA,IAAIi0L,GAAc,UAAW,CACzB,KAAK,eAAiB,OAC1B,EACA/vK,EAAE,QAAQ+vK,GAAaN,EAAU,EAEjCM,GAAY,UAAU,kBAAoB,SAASrlF,EAAYjqG,EAAS,CACpE,IAAI3E,EAAQi0L,GAAY,WAAW,kBAAkB,MAAM,KAAM,SAAS,EAE1E,OAAItvL,EAAQ,OAAQ3E,EAAM,IAAS2E,EAAQ,MAEpC3E,CACX,EAEAi0L,GAAY,UAAU,cAAgB,SAAS3mB,EAAK3oK,EAASouB,EAAS,CAClEA,EAAQ,QACJu6I,EAAI,QAAU,GACdA,EAAI,SACJA,EAAI,SACJ3oK,EAAQ,SAAW,SAEvBouB,EAAQ,KAAOpuB,EAAQ,KAElBouB,EAAQ,SACTu6I,EAAI,eAAc,CAE1B,EAEA2mB,GAAY,UAAU,oBAAsB,SAASj0L,EAAO+yB,EAAS,CAC7DA,EAAQ,SAEZ,WAAW,UAAW,CAClB,OAAO,SAAWA,EAAQ,IAC7B,EAAE,CAAC,CACR,EAOA,IAAImhK,GAAc,UAAW,CACzB,KAAK,eAAiB,QAC1B,EACAhwK,EAAE,QAAQgwK,GAAaP,EAAU,EAEjCO,GAAY,UAAU,cAAgB,SAAS5mB,EAAK3oK,EAASouB,EAAS,CAClEA,EAAQ,QAAUpuB,EAClB2oK,EAAI,eAAc,CACtB,EAEA4mB,GAAY,UAAU,oBAAsB,SAASl0L,EAAO+yB,EAAS,CACjE,WAAW,UAAW,CAClBA,EAAQ,QAAQ,QACnB,EAAE,CAAC,CACR,EAIc,IAAIohK,GAAkB,OAClBC,GAAkB,YAClBC,GAAkB,SAClBC,GAAkB,OAClBC,GAAkB,UAClBC,GAAkB,SAClBC,GAAkB,UAClBC,IAAkB,UAIhCC,GAAa,CACb,WAAY,SAAS3tL,EAAM5H,EAAI,CAC3B,IAAIqzB,EAAO,GACPmiK,EAAO,GACX,OAAI1wK,EAAE,SAASld,CAAI,EACfkd,EAAE,KAAKld,EAAM,SAASjxB,EAAGuB,EAAG,CACnB,KAAK,sBAAsBA,CAAC,IAC7Bs9M,EAAKt9M,CAAC,EAAIvB,EAEjB,EAAE,IAAI,EAEP6+M,EAAK5tL,CAAI,EAAI5H,EAGjBqzB,EAAK0hK,EAAU,EAAIS,EACZniK,CACV,EAED,aAAc,SAASzrB,EAAM,CACzB,IAAIyrB,EAAO,GACPoiK,EAAS,GACb,OAAK3wK,EAAE,QAAQld,CAAI,IACfA,EAAO,CAACA,CAAI,GAGhBkd,EAAE,KAAKld,EAAM,SAAS1vB,EAAG,CAChB,KAAK,sBAAsBA,CAAC,GAC7Bu9M,EAAO,KAAKv9M,CAAC,CAEpB,EAAE,IAAI,EAEPm7C,EAAK4hK,EAAY,EAAIQ,EACdpiK,CACV,EAED,gBAAiB,SAASzrB,EAAM5H,EAAI,CAChC,IAAIqzB,EAAO,GACPqiK,EAAY,GAChB,OAAI5wK,EAAE,SAASld,CAAI,EACfkd,EAAE,KAAKld,EAAM,SAASjxB,EAAGuB,EAAG,CACnB,KAAK,sBAAsBA,CAAC,IAC7Bw9M,EAAUx9M,CAAC,EAAIvB,EAEtB,EAAE,IAAI,EAEP++M,EAAU9tL,CAAI,EAAI5H,EAEtBqzB,EAAK2hK,EAAe,EAAIU,EACjBriK,CACV,EAED,aAAc,SAASsiK,EAAW1jI,EAAQ,CACtC,IAAI5+B,EAAO,GACPuiK,EAAS,GACb,OAAI9wK,EAAE,SAAS6wK,CAAS,EACpB7wK,EAAE,KAAK6wK,EAAW,SAASh/M,EAAGuB,EAAG,CACxB,KAAK,sBAAsBA,CAAC,IAC7B09M,EAAO19M,CAAC,EAAI4sC,EAAE,QAAQnuC,CAAC,EAAIA,EAAI,CAACA,CAAC,EAExC,EAAE,IAAI,EAEPi/M,EAAOD,CAAS,EAAI7wK,EAAE,QAAQmtC,CAAM,EAAIA,EAAS,CAACA,CAAM,EAE5D5+B,EAAK+hK,EAAY,EAAIQ,EACdviK,CACV,EAED,cAAe,SAASsiK,EAAW50L,EAAO,CACtC,IAAIsyB,EAAO,GACPwiK,EAAU,GACd,OAAI/wK,EAAE,SAAS6wK,CAAS,EACpB7wK,EAAE,KAAK6wK,EAAW,SAASh/M,EAAGuB,EAAG,CACxB,KAAK,sBAAsBA,CAAC,IAC7B29M,EAAQ39M,CAAC,EAAIvB,EAEpB,EAAE,IAAI,EAEPk/M,EAAQF,CAAS,EAAI50L,EAEzBsyB,EAAK8hK,EAAa,EAAIU,EACfxiK,CACV,EAED,cAAe,SAASsiK,EAAW50L,EAAO,CACtC,IAAIsyB,EAAO,GACPyiK,EAAU,GACd,OAAIhxK,EAAE,SAAS6wK,CAAS,EACpB7wK,EAAE,KAAK6wK,EAAW,SAASh/M,EAAGuB,EAAG,CACxB,KAAK,sBAAsBA,CAAC,IAC7B49M,EAAQ59M,CAAC,EAAIvB,EAEpB,EAAE,IAAI,EAEPm/M,EAAQH,CAAS,EAAI50L,EAEzBsyB,EAAKgiK,EAAa,EAAIS,EACfziK,CACV,EAED,cAAe,UAAW,CACtB,IAAIA,EAAO,GACX,OAAAA,EAAKiiK,GAAa,EAAI,GACfjiK,CACV,CACL,EAQI0iK,GAAgB,UAAW,GAE/BjxK,EAAE,OAAOixK,GAAc,UAAWR,EAAU,EAE5CQ,GAAc,UAAU,MAAQ,SAASvB,EAAmBwB,EAAWC,EAAU,CAC7E,KAAK,UAAYzB,EACjB,KAAK,WAAawB,EAClB,KAAK,UAAYC,CACrB,EAoBAF,GAAc,UAAU,IAAMxO,GAA4B,SAAS3/K,EAAM5H,EAAIuH,EAAU,CACnF,IAAI8rB,EAAO,KAAK,WAAWzrB,EAAM5H,CAAE,EACnC,OAAI8kB,EAAE,SAASld,CAAI,IACfL,EAAWvH,GAER,KAAK,cAAcqzB,EAAM9rB,CAAQ,CAC5C,CAAC,EAsBDwuL,GAAc,UAAU,SAAWxO,GAA4B,SAAS3/K,EAAM5H,EAAIuH,EAAU,CACxF,IAAI8rB,EAAO,KAAK,gBAAgBzrB,EAAM5H,CAAE,EACxC,OAAI8kB,EAAE,SAASld,CAAI,IACfL,EAAWvH,GAER,KAAK,cAAcqzB,EAAM9rB,CAAQ,CAC5C,CAAC,EAYDwuL,GAAc,UAAU,MAAQxO,GAA4B,SAAS3/K,EAAML,EAAU,CACjF,IAAI8rB,EAAO,KAAK,aAAazrB,CAAI,EACjC,OAAO,KAAK,cAAcyrB,EAAM9rB,CAAQ,CAC5C,CAAC,EAcDwuL,GAAc,UAAU,MAAQxO,GAA4B,SAASoO,EAAW1jI,EAAQ1qD,EAAU,CAC1Fud,EAAE,SAAS6wK,CAAS,IACpBpuL,EAAW0qD,GAEf,IAAI5+B,EAAO,KAAK,aAAasiK,EAAW1jI,CAAM,EAC9C,OAAO,KAAK,cAAc5+B,EAAM9rB,CAAQ,CAC5C,CAAC,EAWDwuL,GAAc,UAAU,OAAYxO,GAA4B,SAAShgL,EAAU,CAE/E,IAAI8rB,EAAO,KAAK,gBAChB,OAAO,KAAK,cAAcA,EAAM9rB,CAAQ,CAC5C,CAAC,EAaDwuL,GAAc,UAAU,OAASxO,GAA4B,SAASoO,EAAW50L,EAAOwG,EAAU,CAC9F,IAAI8rB,EAAO,KAAK,cAAcsiK,EAAW50L,CAAK,EAC9C,OAAO,KAAK,cAAcsyB,EAAM9rB,CAAQ,CAC5C,CAAC,EAEDwuL,GAAc,UAAU,cAAgB,SAAS1iK,EAAM9rB,EAAU,CAC7D8rB,EAAK,WAAgB,KAAK,WAC1BA,EAAK,UAAe,KAAK,UACzBA,EAAK,OAAY,KAAK,YAAY,OAAO,EAEzC,IAAI6iK,EAAoBpxK,EAAE,YAAYuO,CAAI,EAC1C,OAAO,KAAK,UAAU,gBAAgB,CAClC,KAAM,SACN,KAAM6iK,EACN,SAAU,KAAK,YAAY,UAAU,EAAI,IAAO,KAAK,YAAY,YAAY,EAAE,OAC/E,QAAS,KAAK,UAAU,iBAAiB,MAC5C,EAAE3uL,CAAQ,CACf,EAEAwuL,GAAc,UAAU,sBAAwB,SAASnuL,EAAM,CAC3D,OAAOA,IAAS,cAAgBA,IAAS,WAC7C,EAEAmuL,GAAc,UAAU,YAAc,SAASI,EAAM,CACjD,OAAO,KAAK,UAAU,WAAWA,CAAI,CACzC,EAEAJ,GAAc,UAAU,SAAW,UAAW,CAC1C,OAAO,KAAK,UAAU,WAAa,UAAY,KAAK,WAAa,IAAM,KAAK,SAChF,EAGAA,GAAc,UAAU,OAAcA,GAAc,UAAU,OAC9DA,GAAc,UAAU,IAAcA,GAAc,UAAU,IAC9DA,GAAc,UAAU,SAAcA,GAAc,UAAU,SAC9DA,GAAc,UAAU,MAAcA,GAAc,UAAU,MAC9DA,GAAc,UAAU,MAAcA,GAAc,UAAU,MAC9DA,GAAc,UAAU,SAAcA,GAAc,UAAU,SAQ9D,IAAIK,GAAiB,UAAW,GAEhCtxK,EAAE,OAAOsxK,GAAe,UAAWb,EAAU,EAE7Ca,GAAe,UAAU,MAAQ,SAAS5B,EAAmB,CACzD,KAAK,UAAYA,CACrB,EAqBA4B,GAAe,UAAU,IAAM9O,GAA6B,SAAS1/K,EAAM5H,EAAIuH,EAAU,CACrF,IAAI8rB,EAAO,KAAK,WAAWzrB,EAAM5H,CAAE,EACnC,OAAI8kB,EAAE,SAASld,CAAI,IACfL,EAAWvH,GAGX,KAAK,YAAY,eAAe,GAChC,KAAK,UAAU,YAAe,qBAAqB,SAAS,QAAQ,EAIxEqzB,EAAK0hK,EAAU,EAAIjwK,EAAE,OACjB,CAAE,EACFA,EAAE,KAAK,kBAAmB,EAC1BuO,EAAK0hK,EAAU,CACvB,EACW,KAAK,cAAc1hK,EAAM9rB,CAAQ,CAC5C,CAAC,EAuBD6uL,GAAe,UAAU,SAAW9O,GAA6B,SAAS1/K,EAAM5H,EAAIuH,EAAU,CAC1F,IAAI8rB,EAAO,KAAK,gBAAgBzrB,EAAM5H,CAAE,EACxC,OAAI8kB,EAAE,SAASld,CAAI,IACfL,EAAWvH,GAER,KAAK,cAAcqzB,EAAM9rB,CAAQ,CAC5C,CAAC,EAeD6uL,GAAe,UAAU,MAAQ9O,GAA6B,SAAS1/K,EAAML,EAAU,CACnF,IAAI8rB,EAAO,KAAK,aAAazrB,CAAI,EACjC,OAAO,KAAK,cAAcyrB,EAAM9rB,CAAQ,CAC5C,CAAC,EA2BD6uL,GAAe,UAAU,UAAY9O,GAA6B,SAAS1/K,EAAMyuL,EAAI9uL,EAAU,CAC3F,IAAI8rB,EAAO,GACPijK,EAAO,GACX,OAAIxxK,EAAE,SAASld,CAAI,GACfkd,EAAE,KAAKld,EAAM,SAASjxB,EAAGuB,EAAG,CACxB,GAAI,CAAC,KAAK,sBAAsBA,CAAC,EAC7B,GAAI,MAAM,WAAWvB,CAAC,CAAC,EAAG,CACtBmoM,GAAU,MAAM,gFAAgF,EAChG,MACpB,MACoBwX,EAAKp+M,CAAC,EAAIvB,CAGrB,EAAE,IAAI,EACP4wB,EAAW8uL,IAIPvxK,EAAE,YAAYuxK,CAAE,IAChBA,EAAK,GAETC,EAAK1uL,CAAI,EAAIyuL,GAEjBhjK,EAAK6hK,EAAU,EAAIoB,EAEZ,KAAK,cAAcjjK,EAAM9rB,CAAQ,CAC5C,CAAC,EAqBD6uL,GAAe,UAAU,OAAS9O,GAA6B,SAASqO,EAAW50L,EAAOwG,EAAU,CAC5Fud,EAAE,SAAS6wK,CAAS,IACpBpuL,EAAWxG,GAEf,IAAIsyB,EAAO,KAAK,cAAcsiK,EAAW50L,CAAK,EAC9C,OAAO,KAAK,cAAcsyB,EAAM9rB,CAAQ,CAC5C,CAAC,EAaD6uL,GAAe,UAAU,OAAS9O,GAA6B,SAASqO,EAAW50L,EAAOwG,EAAU,CAC5Fud,EAAE,SAAS6wK,CAAS,IACpBpuL,EAAWxG,GAEf,IAAIsyB,EAAO,KAAK,cAAcsiK,EAAW50L,CAAK,EAC9C,OAAO,KAAK,cAAcsyB,EAAM9rB,CAAQ,CAC5C,CAAC,EA4BD6uL,GAAe,UAAU,MAAQ9O,GAA6B,SAASqO,EAAW1jI,EAAQ1qD,EAAU,CAC5Fud,EAAE,SAAS6wK,CAAS,IACpBpuL,EAAW0qD,GAEf,IAAI5+B,EAAO,KAAK,aAAasiK,EAAW1jI,CAAM,EAC9C,OAAO,KAAK,cAAc5+B,EAAM9rB,CAAQ,CAC5C,CAAC,EAsBD6uL,GAAe,UAAU,aAAe9O,GAA6B,SAASiP,EAAQ/mF,EAAYjoG,EAAU,CACxG,GAAI,CAACud,EAAE,SAASyxK,CAAM,IAClBA,EAAS,WAAWA,CAAM,EACtB,MAAMA,CAAM,GAAG,CACfzX,GAAU,MAAM,yEAAyE,EACzF,MACH,CAGL,OAAO,KAAK,OAAO,gBAAiBh6J,EAAE,OAAO,CACzC,QAAWyxK,CACnB,EAAO/mF,CAAU,EAAGjoG,CAAQ,CAC5B,CAAC,EAaD6uL,GAAe,UAAU,cAAgB,SAAS7uL,EAAU,CACxD,OAAO,KAAK,IAAI,gBAAiB,CAAE,EAAEA,CAAQ,CACjD,EAYA6uL,GAAe,UAAU,YAAc,UAAW,CAC9C,GAAI,CAAC,KAAK,mBAAoB,CAC1BtX,GAAU,MAAM,qEAAqE,EACrF,MACH,CACD,IAAIzrJ,EAAO,CAAC,QAAW,KAAK,UAAU,gBAAe,CAAE,EACvD,OAAO,KAAK,cAAcA,CAAI,CAClC,EAEA+iK,GAAe,UAAU,SAAW,UAAW,CAC3C,OAAO,KAAK,UAAU,SAAQ,EAAK,SACvC,EAEAA,GAAe,UAAU,cAAgB,SAAS/iK,EAAM9rB,EAAU,CAC9D8rB,EAAK,OAAY,KAAK,YAAY,OAAO,EACzCA,EAAK,aAAkB,KAAK,UAAU,gBAAe,EACrD,IAAImjK,EAAY,KAAK,UAAU,aAAa,YAAY,EACpDC,EAAU,KAAK,UAAU,aAAa,UAAU,EAChDC,EAA4B,KAAK,UAAU,aAAa,4BAA4B,EACpFF,IACAnjK,EAAK,WAAgBmjK,GAErBC,IACApjK,EAAK,SAAcojK,GAEnBC,IACArjK,EAAK,2BAAgCqjK,GAGzC,IAAIR,EAAoBpxK,EAAE,YAAYuO,CAAI,EAE1C,OAAK,KAAK,mBAYH,KAAK,UAAU,gBAAgB,CAClC,KAAM,SACN,KAAM6iK,EACN,SAAU,KAAK,YAAY,UAAU,EAAI,IAAO,KAAK,YAAY,YAAY,EAAE,OAC/E,QAAS,KAAK,UAAU,iBAAiB,MAC5C,EAAE3uL,CAAQ,GAhBP,KAAK,SAAS8rB,CAAI,EACbvO,EAAE,YAAYvd,CAAQ,IACnB,KAAK,YAAY,SAAS,EAC1BA,EAAS,CAAC,OAAQ,GAAI,MAAO,IAAI,CAAC,EAElCA,EAAS,EAAE,GAGZud,EAAE,SAASoxK,EAAmB,GAAG,EAShD,EAEAE,GAAe,UAAU,YAAc,SAASO,EAAU,CACtD,OAAO,KAAK,UAAU,WAAWA,CAAQ,CAC7C,EAEAP,GAAe,UAAU,iBAAmB,UAAW,CACnD,OAAO,KAAK,UAAU,OAAO,kBAAoB,EACrD,EAGAA,GAAe,UAAU,SAAW,SAAS/iK,EAAM,CAC3C0hK,MAAc1hK,EACd,KAAK,UAAU,YAAe,qBAAqB0hK,GAAY1hK,CAAI,EAC5D2hK,MAAmB3hK,EAC1B,KAAK,UAAU,YAAe,qBAAqB2hK,GAAiB3hK,CAAI,EACjE4hK,MAAgB5hK,EACvB,KAAK,UAAU,YAAe,qBAAqB4hK,GAAc5hK,CAAI,EAC9D6hK,MAAc7hK,EACrB,KAAK,UAAU,YAAe,qBAAqB6hK,GAAY7hK,CAAI,EAC5D8hK,MAAiB9hK,EACxB,KAAK,UAAU,YAAe,qBAAqB8hK,GAAe9hK,CAAI,EAC/DgiK,MAAiBhiK,EACxB,KAAK,UAAU,YAAe,qBAAqBgiK,GAAehiK,CAAI,EAC/D+hK,MAAgB/hK,EACvB,KAAK,UAAU,YAAe,qBAAqB+hK,GAAc/hK,CAAI,EAErEyrJ,GAAU,MAAM,8BAA+BzrJ,CAAI,CAE3D,EAEA+iK,GAAe,UAAU,iBAAmB,SAASviI,EAAQ+iI,EAAervL,EAAUsvL,EAAoB,CACtG,IAAIr2F,EAAQ,KACRs2F,EAAchyK,EAAE,OAAO,GAAI,KAAK,UAAU,YAAe,WAAW+uC,CAAM,CAAC,EAC3EkjI,EAAgBD,EAEhB,CAAChyK,EAAE,YAAYgyK,CAAW,GAAKhyK,EAAE,SAASgyK,CAAW,GAAK,CAAChyK,EAAE,cAAcgyK,CAAW,IACtFt2F,EAAM,UAAU,YAAe,uBAAuB3sC,EAAQijI,CAAW,EACzEt2F,EAAM,UAAU,YAAe,KAAI,EAC/Bq2F,IACAE,EAAgBF,EAAmBC,CAAW,GAElDF,EAAc,KAAKp2F,EAAOu2F,EAAe,SAASnK,EAAUv5J,EAAM,CAE1Du5J,IAAa,GACbpsF,EAAM,UAAU,YAAe,qBAAqB3sC,EAAQijI,CAAW,EAEtEhyK,EAAE,YAAYvd,CAAQ,GACvBA,EAASqlL,EAAUv5J,CAAI,CAEvC,CAAS,EAET,EAIA+iK,GAAe,UAAU,OAAS,SAC9BY,EAAeC,EAAeC,EAAkBC,EAAoBC,EAAiBC,EAAiBC,EACxG,CACE,IAAI92F,EAAQ,KAEZ,KAAK,iBAAiBu0F,GAAY,KAAK,IAAKiC,CAAa,EACzD,KAAK,iBAAiBhC,GAAiB,KAAK,SAAUmC,CAAkB,EACxE,KAAK,iBAAiBlC,GAAc,KAAK,MAAOoC,EAAiB,SAAS1M,EAAO,CAAE,OAAO7lK,EAAE,KAAK6lK,CAAK,CAAI,GAC1G,KAAK,iBAAiBuK,GAAY,KAAK,UAAW+B,CAAa,EAC/D,KAAK,iBAAiB7B,GAAc,KAAK,MAAOgC,CAAe,EAI/D,IAAIG,EAAgB,KAAK,UAAU,YAAe,WAAWpC,EAAa,EAC1E,GAAI,CAACrwK,EAAE,YAAYyyK,CAAa,GAAKzyK,EAAE,QAAQyyK,CAAa,GAAKA,EAAc,OAU3E,QATIC,EACAC,EAAkB,SAAS7K,EAAUv5J,EAAM,CACvCu5J,IAAa,GACbpsF,EAAM,UAAU,YAAe,qBAAqB20F,GAAeqC,CAAY,EAE9E1yK,EAAE,YAAYoyK,CAAgB,GAC/BA,EAAiBtK,EAAUv5J,CAAI,CAE/C,EACiBxzB,EAAI03L,EAAc,OAAS,EAAG13L,GAAK,EAAGA,IAC3C03L,EAAgB,KAAK,UAAU,YAAe,WAAWpC,EAAa,EACtEqC,EAAeD,EAAc,MAC7B/2F,EAAM,UAAU,YAAe,KAAI,EAC9B17E,EAAE,cAAc0yK,CAAY,GAC7Bh3F,EAAM,OAAOg3F,EAAcC,CAAe,EAMtD,IAAIC,EAAgB,KAAK,UAAU,YAAe,WAAWrC,EAAa,EAC1E,GAAI,CAACvwK,EAAE,YAAY4yK,CAAa,GAAK5yK,EAAE,QAAQ4yK,CAAa,GAAKA,EAAc,OAU3E,QATIC,EACAC,EAAkB,SAAShL,EAAUv5J,EAAM,CACvCu5J,IAAa,GACbpsF,EAAM,UAAU,YAAe,qBAAqB60F,GAAesC,CAAY,EAE9E7yK,EAAE,YAAYwyK,CAAgB,GAC/BA,EAAiB1K,EAAUv5J,CAAI,CAE/C,EACiBoR,EAAIizJ,EAAc,OAAS,EAAGjzJ,GAAK,EAAGA,IAC3CizJ,EAAgB,KAAK,UAAU,YAAe,WAAWrC,EAAa,EACtEsC,EAAeD,EAAc,MAC7Bl3F,EAAM,UAAU,YAAe,KAAI,EAC9B17E,EAAE,cAAc6yK,CAAY,GAC7Bn3F,EAAM,OAAOm3F,EAAcC,CAAe,CAI1D,EAEAxB,GAAe,UAAU,sBAAwB,SAASxuL,EAAM,CAC5D,OAAOA,IAAS,gBAAkBA,IAAS,UAAYA,IAAS,cAAgBA,IAAS,YAAcA,IAAS,4BACpH,EAGAwuL,GAAe,UAAU,IAAmBA,GAAe,UAAU,IACrEA,GAAe,UAAU,SAAmBA,GAAe,UAAU,SACrEA,GAAe,UAAU,MAAmBA,GAAe,UAAU,MACrEA,GAAe,UAAU,UAAmBA,GAAe,UAAU,UACrEA,GAAe,UAAU,OAAmBA,GAAe,UAAU,OACrEA,GAAe,UAAU,OAAmBA,GAAe,UAAU,OACrEA,GAAe,UAAU,MAAmBA,GAAe,UAAU,MACrEA,GAAe,UAAU,aAAmBA,GAAe,UAAU,aACrEA,GAAe,UAAU,cAAmBA,GAAe,UAAU,cACrEA,GAAe,UAAU,YAAmBA,GAAe,UAAU,YACrEA,GAAe,UAAU,SAAmBA,GAAe,UAAU,SAOvD,IAAIyB,GAAyB,QACzBC,GAAyB,SACzBC,GAAyB,SACzBC,GAAyB,QACzBC,GAAyB,SACzBC,GAAyB,QACzBC,GAAyB,QAEzBC,GAAyB,sBACzBC,GAAyB,UACzBC,GAAyB,WACzBC,IAAsB,CACpCV,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACJ,EAMIE,GAAsB,SAAS7jL,EAAQ,CACvC,KAAK,MAAW,GAChB,KAAK,sBAAwB,GAEzBA,EAAO,iBACP,KAAK,KAAO,MAAQA,EAAO,iBAE3B,KAAK,KAAO,MAAQA,EAAO,MAAW,YAG1C,IAAI8jL,EAAe9jL,EAAO,YACtB8jL,IAAiB,UAAYA,IAAiB,iBAC9C3Z,GAAU,SAAS,4BAA8B2Z,EAAe,0BAA0B,EAC1FA,EAAe9jL,EAAO,YAAiB,UAGvC8jL,IAAiB,gBAAkB3zK,EAAE,aAAa,aAAY,EAC9D,KAAK,QAAUA,EAAE,aAEjB,KAAK,QAAUA,EAAE,OAGrB,KAAK,KAAI,EACT,KAAK,cAAcnQ,CAAM,EACzB,KAAK,QAAO,EACZ,KAAK,KAAI,CACb,EAEA6jL,GAAoB,UAAU,WAAa,UAAW,CAClD,IAAIliN,EAAI,GAER,YAAK,KAAI,EAGTwuC,EAAE,KAAK,KAAK,MAAU,SAASnuC,EAAGuB,EAAG,CAC5B4sC,EAAE,QAAQyzK,IAAqBrgN,CAAC,IACjC5B,EAAE4B,CAAC,EAAIvB,EAEnB,CAAK,EACML,CACX,EAEAkiN,GAAoB,UAAU,KAAO,UAAW,CAC5C,GAAI,MAAK,SAET,KAAIx2K,EAAQ,KAAK,QAAQ,MAAM,KAAK,IAAI,EAEpCA,IACA,KAAK,MAAW8C,EAAE,OAAO,GAAI9C,CAAK,GAE1C,EAEAw2K,GAAoB,UAAU,QAAU,UAAW,CAC/C,IAAIE,EACAC,EAIA,KAAK,UAAY7zK,EAAE,cACnB4zK,EAAa5zK,EAAE,OAAO,MAAM,KAAK,IAAI,EAErCA,EAAE,OAAO,OAAO,KAAK,IAAI,EACzBA,EAAE,OAAO,OAAO,KAAK,KAAM,EAAI,EAE3B4zK,GACA,KAAK,cAAcA,CAAU,GAE1B,KAAK,UAAY5zK,EAAE,SAC1B6zK,EAAmB7zK,EAAE,aAAa,MAAM,KAAK,IAAI,EAEjDA,EAAE,aAAa,OAAO,KAAK,IAAI,EAE3B6zK,GACA,KAAK,cAAcA,CAAgB,EAG/C,EAEAH,GAAoB,UAAU,KAAO,UAAW,CACxC,KAAK,UAET,KAAK,QAAQ,IACT,KAAK,KACL1zK,EAAE,WAAW,KAAK,KAAQ,EAC1B,KAAK,YACL,KAAK,gBACL,KAAK,OACL,KAAK,WACL,KAAK,aACb,CACA,EAEA0zK,GAAoB,UAAU,UAAY,SAAShiL,EAAK,CACpD,YAAK,KAAI,EACF,KAAK,MAASA,CAAG,CAC5B,EAEAgiL,GAAoB,UAAU,OAAS,UAAW,CAE9C,KAAK,QAAQ,OAAO,KAAK,KAAM,GAAO,KAAK,aAAa,EACxD,KAAK,QAAQ,OAAO,KAAK,KAAM,GAAM,KAAK,aAAa,CAC3D,EAIAA,GAAoB,UAAU,MAAQ,UAAW,CAC7C,KAAK,OAAM,EACX,KAAK,MAAW,EACpB,EAOAA,GAAoB,UAAU,cAAgB,SAAS53L,EAAOwkL,EAAevC,EAAM,CAC/E,OAAI/9J,EAAE,SAASlkB,CAAK,GACZ,OAAOwkL,EAAmB,MAAeA,EAAgB,QAC7D,KAAK,YAAe,OAAOvC,EAAU,IAAe,KAAK,eAAiBA,EAE1E,KAAK,KAAI,EAET/9J,EAAE,KAAKlkB,EAAO,SAASgsD,EAAKhlD,EAAM,EAC1B,CAAC,KAAK,MAAS,eAAeA,CAAI,GAAK,KAAK,MAASA,CAAI,IAAMw9K,KAC/D,KAAK,MAASx9K,CAAI,EAAIglD,EAE7B,EAAE,IAAI,EAEP,KAAK,KAAI,EAEF,IAEJ,EACX,EAMA4rI,GAAoB,UAAU,SAAW,SAAS53L,EAAOiiL,EAAM,CAC3D,OAAI/9J,EAAE,SAASlkB,CAAK,GAChB,KAAK,YAAe,OAAOiiL,EAAU,IAAe,KAAK,eAAiBA,EAE1E,KAAK,KAAI,EACT/9J,EAAE,OAAO,KAAK,MAAUlkB,CAAK,EAC7B,KAAK,KAAI,EAEF,IAEJ,EACX,EAEA43L,GAAoB,UAAU,WAAa,SAAS5wL,EAAM,CACtD,KAAK,KAAI,EACLA,KAAQ,KAAK,QACb,OAAO,KAAK,MAASA,CAAI,EACzB,KAAK,KAAI,EAEjB,EAEA4wL,GAAoB,UAAU,sBAAwB,SAAShT,EAAU,CACrE,KAAK,SAAS1gK,EAAE,KAAK,WAAW0gK,CAAQ,CAAC,CAC7C,EAGAgT,GAAoB,UAAU,qBAAuB,SAAShT,EAAU,CAEpE,KAAK,cAAc,CACf,kBAAqBA,GAAY,UACjC,0BAA6B1gK,EAAE,KAAK,gBAAgB0gK,CAAQ,GAAK,SACpE,EAAE,EAAE,CACT,EAEAgT,GAAoB,UAAU,kBAAoB,UAAW,CACzD,OAAO1zK,EAAE,uBAAuB,CAC5B,kBAAqB,KAAK,MAAS,kBACnC,0BAA6B,KAAK,MAAS,yBACnD,CAAK,CACL,EAEA0zK,GAAoB,UAAU,cAAgB,SAAS7jL,EAAQ,CAC3D,KAAK,eAAiB,KAAK,YAAcA,EAAO,kBAChD,KAAK,aAAaA,EAAO,mBAAsB,EAC/C,KAAK,kBAAkBA,EAAO,aAAgB,EAC9C,KAAK,eAAeA,EAAO,iBAAoB,EAC/C,KAAK,oBAAoBA,EAAO,sBAAyB,EACzD,KAAK,WAAWA,EAAO,aAAgB,CAC3C,EAEA6jL,GAAoB,UAAU,aAAe,SAASjsL,EAAU,CAC5D,KAAK,SAAWA,EACZ,KAAK,SACL,KAAK,OAAM,EAEX,KAAK,KAAI,CAEjB,EAEAisL,GAAoB,UAAU,kBAAoB,SAASI,EAAe,CAClEA,IAAkB,KAAK,gBACvB,KAAK,OAAM,EACX,KAAK,cAAgBA,EACrB,KAAK,KAAI,EAEjB,EAEAJ,GAAoB,UAAU,eAAiB,SAASK,EAAY,CAC5DA,IAAe,KAAK,aACpB,KAAK,WAAaA,EAClB,KAAK,OAAM,EACX,KAAK,KAAI,EAEjB,EAEAL,GAAoB,UAAU,oBAAsB,SAASM,EAAiB,CACtEA,IAAoB,KAAK,kBACzB,KAAK,gBAAkBA,EACvB,KAAK,OAAM,EACX,KAAK,KAAI,EAEjB,EAEAN,GAAoB,UAAU,oBAAsB,UAAW,CAC3D,OAAO,KAAK,eAChB,EAEAA,GAAoB,UAAU,WAAa,SAAS9V,EAAQ,CACpDA,IAAW,KAAK,SAChB,KAAK,OAAS,EAAAA,EACd,KAAK,OAAM,EACX,KAAK,KAAI,EAEjB,EAEA8V,GAAoB,UAAU,qBAAuB,SAAS7N,EAAOt3J,EAAM,CACvE,IAAI0lK,EAAQ,KAAK,eAAepO,CAAK,EACjCqO,EAAS3lK,EAAKs3J,CAAK,EACnBsO,EAAQ,KAAK,qBAAqBlE,EAAU,EAC5CmE,EAAa,KAAK,qBAAqBlE,EAAe,EACtDmE,EAAU,KAAK,qBAAqBlE,EAAY,EAChDmE,EAAQ,KAAK,qBAAqBlE,EAAU,EAC5CmE,EAAU,KAAK,qBAAqBjE,EAAY,EAChDkE,EAAW,KAAK,qBAAqBjE,GAAe,EAAE,EACtDkE,EAAW,KAAK,qBAAqBpE,GAAe,CAAE,GAEtD4D,IAAUlB,IAEV/yK,EAAE,OAAOm0K,EAAOD,CAAM,EAGtB,KAAK,uBAAuB9D,GAAY8D,CAAM,EAG9C,KAAK,uBAAuB5D,GAAc4D,CAAM,EAChD,KAAK,uBAAuB/D,GAAc+D,CAAM,GACzCD,IAAUjB,IAEjBhzK,EAAE,KAAKk0K,EAAQ,SAASriN,EAAGuB,EAAG,CACpBA,KAAKghN,IACPA,EAAWhhN,CAAC,EAAIvB,EAEhC,CAAS,EACD,KAAK,uBAAuBs+M,GAAc+D,CAAM,GACzCD,IAAUhB,GACjBjzK,EAAE,KAAKk0K,EAAQ,SAASpxL,EAAM,CAG1Bkd,EAAE,KAAK,CAACm0K,EAAOC,EAAYE,EAAOC,CAAO,EAAG,SAASG,EAAc,CAC3D5xL,KAAQ4xL,GACR,OAAOA,EAAa5xL,CAAI,CAE5C,CAAa,EACDkd,EAAE,KAAKy0K,EAAU,SAASE,EAAY,CAC9B7xL,KAAQ6xL,GACR,OAAOA,EAAW7xL,CAAI,CAE1C,CAAa,EAEDuxL,EAAQvxL,CAAI,EAAI,EAE5B,CAAS,EACMmxL,IAAUf,IACjBlzK,EAAE,KAAKk0K,EAAQ,SAASriN,EAAGuB,EAAG,CAGtBA,KAAK+gN,EACLA,EAAM/gN,CAAC,GAAKvB,GAINuB,KAAKkhN,IACPA,EAAMlhN,CAAC,EAAI,GAEfkhN,EAAMlhN,CAAC,GAAKvB,EAEnB,EAAE,IAAI,EACP,KAAK,uBAAuBs+M,GAAc+D,CAAM,GACzCD,IAAUZ,IACjBrzK,EAAE,KAAKk0K,EAAQ,SAASriN,EAAGuB,EAAG,CACtB4sC,EAAE,QAAQnuC,CAAC,IACLuB,KAAKmhN,IACPA,EAAQnhN,CAAC,EAAI,IAGjB4sC,EAAE,KAAKnuC,EAAG,SAASk6B,EAAM,CAChBiU,EAAE,QAAQu0K,EAAQnhN,CAAC,EAAG24B,CAAI,GAC3BwoL,EAAQnhN,CAAC,EAAE,KAAK24B,CAAI,CAE5C,CAAiB,EAEjB,CAAS,EACD,KAAK,uBAAuBokL,GAAc+D,CAAM,GACzCD,IAAUb,IACjBoB,EAAS,KAAKN,CAAM,EACpB,KAAK,uBAAuB7D,GAAe6D,CAAM,GAC1CD,IAAUd,KACjBsB,EAAS,KAAKP,CAAM,EACpB,KAAK,uBAAuB/D,GAAc+D,CAAM,GAGpDla,GAAU,IAAI,qDAAqD,EACnEA,GAAU,IAAIzrJ,CAAI,EAElB,KAAK,KAAI,CACb,EAEAmlK,GAAoB,UAAU,uBAAyB,SAAS7N,EAAOt3J,EAAM,CACzE,IAAI98C,EAAI,KAAK,MAAS,KAAK,eAAeo0M,CAAK,CAAC,EAC3C7lK,EAAE,YAAYvuC,CAAC,GAChBuuC,EAAE,KAAKuO,EAAM,SAAS18C,EAAGuB,EAAG,CACpByyM,IAAUwK,IAAiBxK,IAAU0K,GAIrCvwK,EAAE,KAAKvuC,EAAG,SAASmjN,EAAe,CAC1BA,EAAcxhN,CAAC,IAAMvB,GACrB,OAAO+iN,EAAcxhN,CAAC,CAE9C,CAAiB,EAED,OAAO3B,EAAE2B,CAAC,CAEjB,EAAE,IAAI,CAEf,EAEAsgN,GAAoB,UAAU,WAAa,SAAS7N,EAAO,CACvD,OAAO,KAAK,UAAU,KAAK,eAAeA,CAAK,CAAC,CACpD,EAEA6N,GAAoB,UAAU,eAAiB,SAAS7N,EAAO,CAC3D,GAAIA,IAAUoK,GACV,OAAO8C,GACJ,GAAIlN,IAAUqK,GACjB,OAAO8C,GACJ,GAAInN,IAAUsK,GACjB,OAAO8C,GACJ,GAAIpN,IAAUuK,GACjB,OAAO8C,GACJ,GAAIrN,IAAUwK,GACjB,OAAO8C,GACJ,GAAItN,IAAU0K,GACjB,OAAO6C,GACJ,GAAIvN,IAAUyK,GACjB,OAAO+C,GAEPrZ,GAAU,MAAM,iBAAkB6L,CAAK,CAE/C,EAEA6N,GAAoB,UAAU,qBAAuB,SAAS7N,EAAOgP,EAAa,CAC9E,IAAInjL,EAAM,KAAK,eAAem0K,CAAK,EACnC,OAAAgP,EAAc70K,EAAE,YAAY60K,CAAW,EAAI,GAAKA,EACzC,KAAK,MAASnjL,CAAG,IAAM,KAAK,MAASA,CAAG,EAAImjL,EACvD,EAEAnB,GAAoB,UAAU,gBAAkB,SAAS/D,EAAYpb,EAAW,CAC5E,IAAIugB,EAAS,KAAK,UAAUtB,EAAgB,GAAK,GACjDsB,EAAOnF,CAAU,EAAIpb,EACrB,KAAK,MAASif,EAAgB,EAAIsB,EAClC,KAAK,KAAI,CACb,EAEApB,GAAoB,UAAU,mBAAqB,SAAS/D,EAAY,CACpE,IAAImF,EAAS,KAAK,UAAUtB,EAAgB,GAAK,GAC7Cjf,EAAYugB,EAAOnF,CAAU,EACjC,OAAK3vK,EAAE,YAAYu0J,CAAS,IACxB,OAAO,KAAK,MAASif,EAAgB,EAAE7D,CAAU,EACjD,KAAK,KAAI,GAENpb,CACX,EA+BA,IAAIwgB,GAGAC,GAAoB,SAASv/E,EAAKw/E,EAAS,CAC3C,MAAM,IAAI,MAAMx/E,EAAM,+BAA+B,CACzD,EAEIy/E,GACAC,GAAe,EACfC,IAAe,EAEfC,IAAgB,SAAStjN,EAAG,CAAC,OAAOA,CAAE,EACtCujN,GAAY,UAAW,GAETC,GAAwB,WACxBC,GAAwB,SACxBC,IAAwB,OACxBC,GAAwB,WAQtCC,GAAWniJ,GAAI,gBAAkB,oBAAqB,IAAI,eAK1DoiJ,GAAmB,CAACD,IAAYlc,GAAU,QAAQ,MAAM,IAAM,IAAQA,GAAU,QAAQ,SAAS,IAAM,GAGvGoc,GAAa,KACbnnC,GAAU,aACVmnC,GAAa,UAAW,CAEpB,OAAOnnC,GAAU,WAAc,MAAMA,GAAW,SAAS,CACjE,GAGA,IAAIonC,GAAqB,CACrB,MAAS,SACT,OAAU,UACV,OAAU,UACV,OAAU,SACd,EAKIC,GAAiB,CACjB,SAAqC,8BACrC,WAAqCD,GACrC,WAAqC,OACrC,cAAqC,MACrC,mBAAqCN,GACrC,SAAqC,uBACrC,YAAqC,GACrC,IAAqC,wBACrC,kBAAqC,GACrC,uBAAqC,GACrC,eAAqCF,GACrC,YAAqC,SACrC,iBAAqC,GACrC,cAAqC,GACrC,YAAqC,GACrC,OAAqCA,GACrC,UAAqC,KACrC,gBAAqC,GACrC,eAAqC,GACrC,2BAAqC,GACrC,aAAqC,GACrC,qBAAqC,GACrC,cAAqC,GACrC,KAAqC,GACrC,QAAqC,GACrC,IAAqC,GACrC,MAAqC,GACrC,oBAAqC,IACrC,kBAAqC,IACrC,QAAqC,GACrC,oBAAqC,GACrC,eAAqC,GACrC,cAAqC,GACrC,GAAqC,GACrC,4BAAqC,GACrC,+BAAqC,GACrC,kCAAqC,eACrC,+BAAqC,KACrC,mBAAqC,CAAE,EACvC,YAAqC,CAAE,EACvC,WAAqC,GACrC,eAAqC,GACrC,WAAqC,GACrC,wBAAqC,IACrC,yBAAqC,IACrC,gBAAqC,GACrC,MAAqC,CAAE,EACvC,mBAAqC,IAAI,OAAO,0DAA0D,EAC1G,sBAAqC,aACrC,cAAqC,GACrC,qBAAqC,GACrC,uBAAqC,GAAK,GAAK,IAC/C,uBAAqC,IAAI,OAAO,8CAA8C,EAC9F,0BAAqC,IACrC,cAAqCtc,GACrC,cAAqC,EACrC,wBAAqC,EACrC,aAAqC,qDACzC,EAEIgd,GAAa,GAMbC,GAAc,UAAW,GAWzBC,GAAe,SAASxW,EAAO7vK,EAAQ5O,EAAM,CAC7C,IAAI82F,EACA1zF,EAAUpD,IAASs0L,GAAyBL,GAAkBA,GAAgBj0L,CAAI,EAEtF,GAAIoD,GAAU0wL,KAAcI,GACxBp9F,EAAW1zF,MACR,CACH,GAAIA,GAAU,CAAC2b,EAAE,QAAQ3b,CAAM,EAAG,CAC9B21K,GAAU,MAAM,gCAAkC/4K,CAAI,EACtD,MACH,CACD82F,EAAW,IAAIk+F,EAClB,CASD,GAPAl+F,EAAS,eAAiB,GAE1BA,EAAS,MAAM2nF,EAAO7vK,EAAQ5O,CAAI,EAElC82F,EAAS,OAAY,IAAIu5F,GACzBv5F,EAAS,OAAU,MAAMA,CAAQ,EAE7B,CAACA,EAAS,WAAW,4BAA4B,EAAG,CAKpD,IAAIo+F,EAAan2K,EAAE,KAAK,eAAe,IAAI,EACvCo2K,EAAqB,GACrBC,EAAU,GACdr2K,EAAE,KAAKm2K,EAAY,SAASG,EAAWC,EAAS,CAC5CH,EAAmB,WAAaG,CAAO,EAAID,EACvCA,IACAD,EAAU,GAE1B,CAAS,EACGA,GACAt+F,EAAS,OAAU,SAASq+F,CAAkB,CAErD,CAID,OAAA7e,GAAO,MAAQA,GAAO,OAASx/E,EAAS,WAAW,OAAO,EAItD,CAAC/3E,EAAE,YAAY3b,CAAM,GAAK2b,EAAE,QAAQ3b,CAAM,IAG1C0zF,EAAS,eAAe,KAAKA,EAAS,OAAW1zF,EAAO,MAAS,EACjE0zF,EAAS,eAAe1zF,CAAM,GAG3B0zF,CACX,EAoBAk+F,GAAY,UAAU,KAAO,SAAUvW,EAAO7vK,EAAQ5O,EAAM,CACxD,GAAI+e,EAAE,YAAY/e,CAAI,EAAG,CACrB,KAAK,aAAa,2DAA2D,EAC7E,MACH,CACD,GAAIA,IAASs0L,GAAuB,CAChC,KAAK,aAAa,8FAA8F,EAChH,MACH,CAED,IAAIx9F,EAAWm+F,GAAaxW,EAAO7vK,EAAQ5O,CAAI,EAC/C,OAAAi0L,GAAgBj0L,CAAI,EAAI82F,EACxBA,EAAS,QAAO,EAETA,CACX,EASAk+F,GAAY,UAAU,MAAQ,SAASvW,EAAO7vK,EAAQ5O,EAAM,CACxD4O,EAASA,GAAU,GAEnB,KAAK,SAAc,GACnB,KAAK,OAAY,GAEjB,IAAI2mL,EAAoB,GAGxB,GAAI,EAAE,uBAAwB3mL,GAAS,CACnC,IAAI4mL,EAAW5mL,EAAO,UAAekmL,GAAe,SAChDU,EAAS,MAAM,iBAAiB,IAChCD,EAAkB,mBAAwBf,IAEjD,CAqBD,GAnBA,KAAK,WAAWz1K,EAAE,OAAO,GAAI+1K,GAAgBS,EAAmB3mL,EAAQ,CACpE,KAAQ5O,EACR,MAASy+K,EACT,aAAiBz+K,IAASs0L,GAAyBt0L,EAAOs0L,GAAwB,IAAMt0L,GAAQ,OACnG,EAAC,EAEF,KAAK,KAAUq0L,GAEf,KAAK,mBAAqB,GAC1B,KAAK,gBAAkB,GACvB,KAAK,kBAAoB,GACzB,KAAK,OAAS,CACV,mBAAsB,GACtB,gBAAmB,EAC3B,EAGI,KAAK,iBAAmB,GACxB,KAAK,gBAAkB,KAAK,WAAW,gBAAgB,EACnD,KAAK,iBACL,GAAI,CAACt1K,EAAE,aAAa,aAAa,EAAI,GAAK,CAAC21K,GACvC,KAAK,gBAAkB,GACvB3b,GAAU,IAAI,2EAA2E,EACzFh6J,EAAE,KAAK,KAAK,oBAAqB,EAAE,SAAS02K,EAAgB,CACxD1c,GAAU,IAAI,wBAA0B0c,EAAe,SAAS,EAChE12K,EAAE,aAAa,OAAO02K,EAAe,SAAS,CAC9D,CAAa,UAED,KAAK,cAAa,EACdb,IAAcriJ,GAAI,iBAAkB,CAYpC,IAAImjJ,EAAkB32K,EAAE,KAAK,UAAW,CAC/B,KAAK,iBAAiB,OAAO,SAC9B,KAAK,iBAAiB,OAAO,MAAM,CAAC,UAAW,EAAI,CAAC,CAE3D,EAAE,IAAI,EACPwzB,GAAI,iBAAiB,WAAY,SAAS4zI,EAAI,CACtCA,EAAG,WACHuP,GAExB,CAAiB,EACDnjJ,GAAI,iBAAiB,mBAAoB,UAAW,CAC5C8lI,GAAW,kBAAuB,UAClCqd,GAExB,CAAiB,CACJ,EAIT,KAAK,YAAiB,KAAK,OAAY,IAAIjD,GAAoB,KAAK,MAAS,EAC7E,KAAK,uBAAyB,GAC9B,KAAK,WAAU,EAEf,IAAIkD,EAAO52K,EAAE,OACR,KAAK,mBAIN,KAAK,cAAc,CACf,YAAe01K,GAAmBkB,EAClC,WAAcA,CACjB,EAAE,EAAE,EAGT,KAAK,YAAc,IAAItI,GAAY,IAAI,EACvC,KAAK,YAAY,OAEb,KAAK,WAAW,yBAAyB,EAAI,GAAK,KAAK,OAAM,EAAK,KAAO,KAAK,WAAW,yBAAyB,GAClH,KAAK,wBAAuB,CAEpC,EAEA2H,GAAY,UAAU,wBAA0B3T,GAA0B,UAAY,CAClF,GAAI,CAAC9uI,GAAI,iBAAqB,CAC1BwmI,GAAU,SAAS,uEAAuE,EAC1F,MACH,CAED,IAAI6c,EAAuB72K,EAAE,KAAK,UAAW,CACzC,KAAK,UAAY,KAAK,WAAa,IAAIwzB,GAAI,cAAiB,IAAI,EAChE,KAAK,UAAU,gBAClB,EAAE,IAAI,EAEHxzB,EAAE,YAAYwzB,GAAI,aAAgB,EAClCwhJ,GAAkB,KAAK,WAAW,cAAc,EAAG6B,CAAoB,EAEvEA,GAER,CAAC,EAEDZ,GAAY,UAAU,uBAAyB,UAAY,CACnD,KAAK,UACL,KAAK,UAAU,gBAEfjc,GAAU,SAAS,oCAAoC,CAE/D,EAEAic,GAAY,UAAU,iCAAmC,UAAY,CACjE,IAAIn6L,EAAQ,GACRg7L,EAAY,KAAK,yBACrB,OAAIA,IACAh7L,EAAM,cAAmBg7L,GAEtBh7L,CACX,EAEAm6L,GAAY,UAAU,uBAAyB,UAAY,CACvD,IAAIc,EAAa,KACbD,EAAY,KAAK,yBACrB,GAAIA,EAAW,CACX,IAAIE,EAAeh3K,EAAE,eAAe,CAChC,UAAa82K,EACb,YAAe,KAAK,gBAAiB,EACrC,MAAS,KAAK,WAAW,OAAO,CAC5C,CAAS,EACDC,EAAa,iDAAmDC,CACnE,CACD,OAAOD,CACX,EAEAd,GAAY,UAAU,uBAAyB,UAAY,CACvD,IAAIa,EAAY,KAChB,OAAI,KAAK,YACLA,EAAY,KAAK,UAAU,UAExBA,GAAa,IACxB,EAIAb,GAAY,UAAU,QAAU,UAAW,CAOvC,GANA,KAAK,WAAW,QAAQ,EAAE,IAAI,EAC9B,KAAK,wBAAuB,EAC5B,KAAK,OAAU,SAAS,KAAK,YAAe,kBAAiB,CAAE,EAI3D,KAAK,WAAW,cAAc,GAAK,KAAK,WAAW,sBAAsB,EAAG,CAC5E,IAAIE,EAAan2K,EAAE,KAAK,eAAe,IAAI,EAC3CA,EAAE,KAAKm2K,GAAY,SAASc,EAAYV,EAAS,CAG7C,KAAK,WAAWA,CAAO,CACnC,GAAU,KAAK,IAAI,CAAC,CACf,CACL,EAGAN,GAAY,UAAU,wBAA0B,UAAW,CACvD,KAAK,YAAe,sBAAsB3c,GAAW,QAAQ,EAEzD,KAAK,WAAW,cAAc,GAAK,CAAC,KAAK,WAAW,sBAAsB,GAC1E,KAAK,SAASt5J,EAAE,KAAK,eAAgB,GAErC,KAAK,WAAW,eAAe,GAC/B,KAAK,YAAe,qBAAqBs5J,GAAW,QAAQ,CAEpE,EAEA2c,GAAY,UAAU,YAAc,UAAW,CAC3Cj2K,EAAE,KAAK,KAAK,mBAAoB,SAASjU,EAAM,CAC3C,KAAK,WAAW,MAAM,KAAMA,CAAI,CACnC,EAAE,IAAI,EAEF,KAAK,0BACNiU,EAAE,KAAK,KAAK,gBAAiB,SAASjU,EAAM,CACxC,KAAK,cAAc,MAAM,KAAMA,CAAI,CACtC,EAAE,IAAI,EAGX,OAAO,KAAK,mBACZ,OAAO,KAAK,eAChB,EAEAkqL,GAAY,UAAU,WAAa,SAASiB,EAAU72L,EAAM,CACxD,GAAI,KAAK,WAAW,KAAK,EACrB,YAAK,aAAa,uDAAwD,EACnE,GAGX,GAAI,CAAC21L,GACD,YAAK,mBAAmB,KAAK,CAACkB,EAAU72L,CAAI,CAAC,EACtC,GAGX,IAAI82L,EAAK,IAAID,EAAU,EAAC,KAAK,IAAI,EACjC,OAAOC,EAAG,MAAM,MAAMA,EAAI92L,CAAI,CAClC,EAWA41L,GAAY,UAAU,kBAAoB,SAASxzL,EAAU8rB,EAAM,CAC/D,GAAIvO,EAAE,YAAYvd,CAAQ,EACtB,OAAO,KAGX,GAAIkzL,GAAS,CACT,IAAIyB,EAAoB,SAAStP,EAAU,CACvCrlL,EAASqlL,EAAUv5J,CAAI,CACnC,EACQ,OAAO6oK,CACf,KAAW,CAIH,IAAIC,EAAM,KAAK,KACXC,EAAgB,GAAK,KAAK,MAAM,KAAK,OAAM,EAAK,GAAS,EACzDC,EAAkB,KAAK,WAAW,aAAa,EAAI,IAAMD,EAAgB,IAC7E,OAAAD,EAAIC,CAAa,EAAI,SAASxP,EAAU,CACpC,OAAOuP,EAAIC,CAAa,EACxB70L,EAASqlL,EAAUv5J,CAAI,CACnC,EACegpK,CACV,CACL,EAEAtB,GAAY,UAAU,cAAgB,SAAS1tC,EAAKh6H,EAAMM,EAASpsB,EAAU,CACzE,IAAIsiL,EAAY,GAEhB,GAAI6Q,GACA,YAAK,gBAAgB,KAAK,SAAS,EAC5B7Q,EAGX,IAAIliF,EAAkB,CAClB,OAAQ,KAAK,WAAW,YAAY,EACpC,UAAW,KAAK,WAAW,eAAe,EAC1C,QAAS,KAAK,WAAW,SAAS,CAC1C,EACQ20F,EAAY,KAEZ,CAAC/0L,IAAaud,EAAE,WAAW6O,CAAO,GAAK,OAAOA,GAAY,YAC1DpsB,EAAWosB,EACXA,EAAU,MAEdA,EAAU7O,EAAE,OAAO6iF,EAAiBh0E,GAAW,CAAE,GAC5C8mK,KACD9mK,EAAQ,OAAS,OAErB,IAAI4oK,EAAW5oK,EAAQ,SAAW,OAC9B6oK,EAAiB7B,IAAc4B,GAAY5oK,EAAQ,UAAU,YAAa,IAAK,aAG/E8oK,EAAe9oK,EAAQ,QACvBN,EAAK,UAAcopK,EAAe,IAElC,KAAK,WAAW,MAAM,IAAKppK,EAAK,KAAU,GAC1CopK,IAAgBppK,EAAK,QAAa,GAClC,KAAK,WAAW,KAAK,IAAKA,EAAK,IAAS,GACvConK,KACGlzL,EACA8rB,EAAK,SAAc9rB,GACZk1L,GAAgB,KAAK,WAAW,MAAM,KAK7CppK,EAAK,SAAc,mBAI3BA,EAAK,GAAQ,KAAK,WAAW,IAAI,EAAE,EAAE,EACrCA,EAAK,EAAO,IAAI,KAAM,EAAC,QAAO,EAAG,WAE7BkpK,IACAD,EAAY,QAAU,mBAAmBjpK,EAAK,IAAO,EACrD,OAAOA,EAAK,MAGhBg6H,GAAO,IAAMvoI,EAAE,eAAeuO,CAAI,EAElC,IAAIqpK,EAAM,KACV,GAAI,QAASrpK,EAAM,CACf,IAAIspK,EAAMve,GAAW,cAAc,KAAK,EACxCue,EAAI,IAAMtvC,EACV+wB,GAAW,KAAK,YAAYue,CAAG,CAClC,SAAUH,EAAgB,CACvB,GAAI,CACA3S,EAAY8Q,GAAWttC,EAAKivC,CAAS,CACxC,OAAQ/kN,EAAG,CACRmlN,EAAI,aAAanlN,CAAC,EAClBsyM,EAAY,EACf,CACD,GAAI,CACItiL,GACAA,EAASsiL,EAAY,EAAI,CAAC,CAEjC,OAAQtyM,EAAG,CACRmlN,EAAI,aAAanlN,CAAC,CACrB,CACJ,SAAUkjN,GACP,GAAI,CACA,IAAImC,EAAM,IAAI,eACdA,EAAI,KAAKjpK,EAAQ,OAAQ05H,EAAK,EAAI,EAElC,IAAIwvC,EAAU,KAAK,WAAW,aAAa,EAQ3C,GAPIN,IACAM,EAAQ,cAAc,EAAI,qCAE9B/3K,EAAE,KAAK+3K,EAAS,SAASC,EAAaC,EAAY,CAC9CH,EAAI,iBAAiBG,EAAYD,CAAW,CAC5D,CAAa,EAEGnpK,EAAQ,YAAc,OAAOipK,EAAI,QAAY,IAAa,CAC1DA,EAAI,QAAUjpK,EAAQ,WACtB,IAAIqpK,EAAa,IAAI,KAAM,EAAC,QAAO,CACtC,CAIDJ,EAAI,gBAAkB,GACtBA,EAAI,mBAAqB,UAAY,CACjC,GAAIA,EAAI,aAAe,EACnB,GAAIA,EAAI,SAAW,KACf,GAAIr1L,EACA,GAAIk1L,EAAc,CACd,IAAI7P,EACJ,GAAI,CACAA,EAAW9nK,EAAE,WAAW83K,EAAI,YAAY,CAC3C,OAAQrlN,EAAG,CAER,GADAmlN,EAAI,aAAanlN,CAAC,EACdo8C,EAAQ,mBACRi5J,EAAWgQ,EAAI,iBAEf,OAEP,CACDr1L,EAASqlL,CAAQ,CACjD,MACgCrlL,EAAS,OAAOq1L,EAAI,YAAY,CAAC,MAGtC,CACH,IAAI3pI,EAWJ,GATI2pI,EAAI,SACJ,CAACA,EAAI,QACL,IAAI,KAAI,EAAG,QAAS,EAAGI,GAAcJ,EAAI,QAEzC3pI,EAAQ,UAERA,EAAQ,oBAAsB2pI,EAAI,OAAS,IAAMA,EAAI,WAEzDF,EAAI,aAAazpI,CAAK,EAClB1rD,EACA,GAAIk1L,EAAc,CACd,IAAIQ,EAAmBL,EAAI,iBAAsB,GACjDr1L,EAAS,CAAC,OAAQ,EAAG,eAAgBq1L,EAAI,OAAW,MAAO3pI,EAAO,WAAYgqI,EAAiB,aAAa,CAAC,CAAC,CAC9I,MACgC11L,EAAS,CAAC,CAGrB,CAErB,EACYq1L,EAAI,KAAKN,CAAS,CACrB,OAAQ/kN,EAAG,CACRmlN,EAAI,aAAanlN,CAAC,EAClBsyM,EAAY,EACf,KACE,CACH,IAAIqT,EAAS9e,GAAW,cAAc,QAAQ,EAC9C8e,EAAO,KAAO,kBACdA,EAAO,MAAQ,GACfA,EAAO,MAAQ,GACfA,EAAO,IAAM7vC,EACb,IAAIztJ,EAAIw+K,GAAW,qBAAqB,QAAQ,EAAE,CAAC,EACnDx+K,EAAE,WAAW,aAAas9L,EAAQt9L,CAAC,CACtC,CAED,OAAOiqL,CACX,EAcAkR,GAAY,UAAU,eAAiB,SAASjrK,EAAO,CACnD,IAAIqtK,EAASC,EAAc,CAAE,EAAEC,EAAc,CAAE,EAAEC,EAAiB,GAClEx4K,EAAE,KAAKgL,EAAO,SAASjf,EAAM,CACrBA,IACAssL,EAAUtsL,EAAK,CAAC,EACZiU,EAAE,QAAQq4K,CAAO,EACjBG,EAAe,KAAKzsL,CAAI,EACjB,OAAOA,GAAU,WACxBA,EAAK,KAAK,IAAI,EACPiU,EAAE,QAAQjU,CAAI,GAAKssL,IAAY,QACtCC,EAAY,KAAKvsL,CAAI,EACdiU,EAAE,QAAQjU,CAAI,GAAKssL,EAAQ,QAAQ,OAAO,IAAM,IAAM,OAAO,KAAKA,CAAO,GAAO,WACvFG,EAAe,KAAKzsL,CAAI,EAExBwsL,EAAY,KAAKxsL,CAAI,EAGhC,EAAE,IAAI,EAEP,IAAI0sL,EAAU,SAASC,EAAO18L,EAAS,CACnCgkB,EAAE,KAAK04K,EAAO,SAAS3sL,EAAM,CACzB,GAAIiU,EAAE,QAAQjU,EAAK,CAAC,CAAC,EAAG,CAEpB,IAAI4sL,EAAS38L,EACbgkB,EAAE,KAAKjU,EAAM,SAAS8sF,EAAM,CACxB8/F,EAASA,EAAO9/F,EAAK,CAAC,CAAC,EAAE,MAAM8/F,EAAQ9/F,EAAK,MAAM,CAAC,CAAC,CACxE,CAAiB,CACjB,MACgB,KAAK9sF,EAAK,CAAC,CAAC,EAAE,MAAM,KAAMA,EAAK,MAAM,CAAC,CAAC,CAE9C,EAAE/P,CAAO,CAClB,EAEIy8L,EAAQH,EAAa,IAAI,EACzBG,EAAQF,EAAa,IAAI,EACzBE,EAAQD,EAAgB,IAAI,CAChC,EAIAvC,GAAY,UAAU,yBAA2B,UAAW,CACxD,MAAO,CAAC,CAAC,KAAK,iBAAiB,MACnC,EAEAA,GAAY,UAAU,oBAAsB,UAAW,CACnD,IAAI2C,EAAe,SAAW,KAAK,WAAW,OAAO,EACjDC,EAAa,KAAK,WAAW,YAAY,EAC7C,YAAK,iBAAmB,KAAK,kBAAoB,CAC7C,OAAQ,CAAC,KAAM,SAAU,SAAU,IAAMA,EAAW,MAAU,UAAWD,EAAe,KAAK,EAC7F,OAAQ,CAAC,KAAM,SAAU,SAAU,IAAMC,EAAW,OAAW,UAAWD,EAAe,KAAK,EAC9F,OAAQ,CAAC,KAAM,SAAU,SAAU,IAAMC,EAAW,OAAW,UAAWD,EAAe,KAAK,CACtG,EACW,KAAK,gBAChB,EAEA3C,GAAY,UAAU,cAAgB,UAAW,CAC7C,GAAI,CAAC,KAAK,2BAA4B,CAClC,IAAI6C,EAAc94K,EAAE,KAAK,SAAShR,EAAO,CACrC,OAAO,IAAIi3K,GACPj3K,EAAM,UACN,CACI,UAAW,KAAK,OAChB,cAAe,KAAK,WAAW,gBAAgB,EAC/C,gBAAiBgR,EAAE,KAAK,SAASuO,EAAMM,EAASh3C,EAAI,CAChD,KAAK,cACD,KAAK,WAAW,UAAU,EAAIm3B,EAAM,SACpC,KAAK,yBAAyBuf,CAAI,EAClCM,EACA,KAAK,kBAAkBh3C,EAAI02C,CAAI,CAC3D,CACqB,EAAE,IAAI,EACP,eAAgBvO,EAAE,KAAK,SAASjU,EAAM,CAClC,OAAO,KAAK,UAAU,eAAiBiD,EAAM,KAAMjD,CAAI,CAC1D,EAAE,IAAI,EACP,oBAAqBiU,EAAE,KAAK,KAAK,mBAAoB,IAAI,EACzD,eAAgB,EACnB,CACjB,CACS,EAAE,IAAI,EACH+4K,EAAkB,KAAK,sBAC3B,KAAK,iBAAmB,CACpB,OAAQD,EAAYC,EAAgB,MAAM,EAC1C,OAAQD,EAAYC,EAAgB,MAAM,EAC1C,OAAQD,EAAYC,EAAgB,MAAM,CACtD,CACK,CACG,KAAK,WAAW,iBAAiB,GACjC,KAAK,oBAAmB,CAEhC,EAEA9C,GAAY,UAAU,oBAAsB,UAAW,CACnD,KAAK,uBAAyB,GAC1B,KAAK,6BACL,KAAK,gBAAkB,GACvBj2K,EAAE,KAAK,KAAK,iBAAkB,SAASg5K,EAAS,CAC5CA,EAAQ,MAAK,CACzB,CAAS,EAET,EAEA/C,GAAY,UAAU,mBAAqB,UAAW,CAClD,KAAK,gBAAkB,GACvBj2K,EAAE,KAAK,KAAK,iBAAkB,SAASg5K,EAAS,CAC5CA,EAAQ,KAAI,EACZA,EAAQ,MAAK,CACrB,CAAK,CACL,EAcA/C,GAAY,UAAU,KAAO,SAASlqL,EAAM,CACxC,KAAK,eAAe,CAACA,CAAI,CAAC,CAC9B,EAaAkqL,GAAY,UAAU,QAAU,SAASgD,EAAQ,CACzC,OAAOA,EAAY,IACnB,KAAK,OAAO,mBAAqB,GAEjC,KAAK,kBAAoB,KAAK,kBAAkB,OAAOA,CAAM,CAErE,EAEAhD,GAAY,UAAU,yBAA2B,SAAS1nK,EAAM,CAC5D,IAAI2qK,EAAel5K,EAAE,WAAWuO,CAAI,EACpC,OAAI,KAAK,WAAW,oBAAoB,IAAMinK,KAC1C0D,EAAel5K,EAAE,aAAak5K,CAAY,GAEvC,CAAC,KAAQA,CAAY,CAChC,EAGAjD,GAAY,UAAU,gBAAkB,SAASpnK,EAASpsB,EAAU,CAChE,IAAI02L,EAAiBn5K,EAAE,SAAS6O,EAAQ,KAAM,GAAG,EAC7CuqK,EAAWvqK,EAAQ,SACnBmqK,EAAUnqK,EAAQ,QAClBwqK,EAA0BxqK,EAAQ,wBAClCyqK,EAAuBzqK,EAAQ,sBAAwB,GAC3DpsB,EAAWA,GAAY6yL,GAEvB,IAAIiE,EAAgC,GAChCC,EAA2Bx5K,EAAE,KAAK,UAAW,CAI7C,OAHKs5K,EAAqB,aACtBH,EAAiB,KAAK,UAAU,eAAiBtqK,EAAQ,KAAMsqK,CAAc,GAE7EA,GACAnf,GAAU,IAAI,mBAAmB,EACjCA,GAAU,IAAImf,CAAc,EACrB,KAAK,cACRC,EACA,KAAK,yBAAyBD,CAAc,EAC5CG,EACA,KAAK,kBAAkB72L,EAAU02L,CAAc,CAC/D,GAEmB,IAEd,EAAE,IAAI,EAEP,OAAI,KAAK,iBAAmB,CAACE,EACzBL,EAAQ,QAAQG,CAAc,EAAE,KAAK,SAASpU,EAAW,CACjDA,EACAtiL,EAAS,EAAG02L,CAAc,EAE1BK,GAEhB,CAAS,EAEDD,EAAgCC,EAAwB,EAGrDD,GAAiCJ,CAC5C,EAyBAlD,GAAY,UAAU,MAAQ3T,GAA0B,SAASqN,EAAYjlF,EAAY77E,EAASpsB,EAAU,CACpG,CAACA,GAAY,OAAOosB,GAAY,aAChCpsB,EAAWosB,EACXA,EAAU,MAEdA,EAAUA,GAAW,GACrB,IAAI4qK,EAAY5qK,EAAQ,UACpB4qK,IACA5qK,EAAQ,UAAY4qK,GAExB,IAAIJ,EAA0BxqK,EAAQ,iBAKtC,GAJI,OAAOpsB,GAAa,aACpBA,EAAW6yL,IAGXt1K,EAAE,YAAY2vK,CAAU,EAAG,CAC3B,KAAK,aAAa,0CAA0C,EAC5D,MACH,CAED,GAAI,KAAK,mBAAmBA,CAAU,EAAG,CACrCltL,EAAS,CAAC,EACV,MACH,CAGDioG,EAAa1qF,EAAE,OAAO,CAAE,EAAE0qF,CAAU,EACpCA,EAAW,MAAW,KAAK,WAAW,OAAO,EAG7C,IAAIgvF,EAAkB,KAAK,YAAe,mBAAmB/J,CAAU,EACvE,GAAI,CAAC3vK,EAAE,YAAY05K,CAAe,EAAG,CACjC,IAAIC,EAAiB,IAAI,KAAM,EAAC,QAAO,EAAKD,EAC5ChvF,EAAW,UAAe,YAAYivF,EAAiB,KAAM,QAAQ,CAAC,CAAC,CAC1E,CAED,KAAK,wBAAuB,EAE5B,IAAIC,EAAuB,KAAK,WAAW,iBAAiB,EACtD55K,EAAE,KAAK,gBAAiB,EACxB,GAON0qF,EAAa1qF,EAAE,OACX,CAAE,EACFA,EAAE,KAAK,WAAW,CAAC,UAAa,KAAK,WAAW,WAAW,CAAC,CAAC,EAC7D45K,EACA,KAAK,YAAe,WAAY,EAChC,KAAK,uBACL,KAAK,iCAAkC,EACvClvF,CACR,EAEI,IAAImvF,EAAqB,KAAK,WAAW,oBAAoB,EACzD75K,EAAE,QAAQ65K,CAAkB,EAC5B75K,EAAE,KAAK65K,EAAoB,SAASC,EAAkB,CAClD,OAAOpvF,EAAWovF,CAAgB,CAC9C,CAAS,EAED,KAAK,aAAa,gDAAkDD,CAAkB,EAG1F,IAAItrK,EAAO,CACP,MAASohK,EACT,WAAcjlF,CACtB,EACQg8C,EAAM,KAAK,gBAAgB,CAC3B,KAAM,SACN,KAAMn4H,EACN,SAAU,KAAK,WAAW,UAAU,EAAI,IAAM,KAAK,WAAW,YAAY,EAAE,MAC5E,QAAS,KAAK,iBAAiB,OAC/B,wBAAyB8qK,EACzB,qBAAsBxqK,CACzB,EAAEpsB,CAAQ,EAEX,OAAOikJ,CACX,CAAC,EAgBDuvC,GAAY,UAAU,UAAY3T,GAA0B,SAAS4O,EAAW6I,EAAWt3L,EAAU,CAC5Fud,EAAE,QAAQ+5K,CAAS,IACpBA,EAAY,CAACA,CAAS,GAE1B,IAAIj3L,EAAO,GACX,OAAAA,EAAKouL,CAAS,EAAI6I,EAClB,KAAK,SAASj3L,CAAI,EACX,KAAK,OAAU,IAAIouL,EAAW6I,EAAWt3L,CAAQ,CAC5D,CAAC,EAaDwzL,GAAY,UAAU,UAAY3T,GAA0B,SAAS4O,EAAWC,EAAU1uL,EAAU,CAChG,IAAIu3L,EAAa,KAAK,aAAa9I,CAAS,EACxCpuL,EAAO,GACX,OAAIk3L,IAAe,QACfl3L,EAAKouL,CAAS,EAAI,CAACC,CAAQ,EAC3B,KAAK,SAASruL,CAAI,GAEdk3L,EAAW,QAAQ7I,CAAQ,IAAM,KACjC6I,EAAW,KAAK7I,CAAQ,EACxBruL,EAAKouL,CAAS,EAAI8I,EAClB,KAAK,SAASl3L,CAAI,GAGnB,KAAK,OAAU,MAAMouL,EAAWC,EAAU1uL,CAAQ,CAC7D,CAAC,EAaDwzL,GAAY,UAAU,aAAe3T,GAA0B,SAAS4O,EAAWC,EAAU1uL,EAAU,CACnG,IAAIw3L,EAAY,KAAK,aAAa/I,CAAS,EAE3C,GAAI+I,IAAc,OAAW,CACzB,IAAIntC,EAAMmtC,EAAU,QAAQ9I,CAAQ,EAChCrkC,EAAM,KACNmtC,EAAU,OAAOntC,EAAK,CAAC,EACvB,KAAK,SAAS,CAAC,UAAWmtC,CAAS,CAAC,GAEpCA,EAAU,SAAW,GACrB,KAAK,WAAW/I,CAAS,CAEhC,CACD,OAAO,KAAK,OAAU,OAAOA,EAAWC,EAAU1uL,CAAQ,CAC9D,CAAC,EAcDwzL,GAAY,UAAU,kBAAoB3T,GAA0B,SAASqN,EAAYjlF,EAAYwvF,EAAQz3L,EAAU,CACnH,IAAI03L,EAAiBn6K,EAAE,OAAO,GAAI0qF,GAAc,EAAE,EAClD1qF,SAAE,KAAKk6K,EAAQ,SAASroN,EAAGuB,EAAG,CACtBvB,GAAM,OACNsoN,EAAe/mN,CAAC,EAAIvB,EAEhC,CAAK,EACM,KAAK,MAAM89M,EAAYwK,EAAgB13L,CAAQ,CAC1D,CAAC,EAEDwzL,GAAY,UAAU,gBAAkB,SAAU/E,EAAWC,EAAU,CACnE,OAAOD,EAAY,IAAM,KAAK,UAAUC,CAAQ,CACpD,EAEA8E,GAAY,UAAU,yBAA2B,SAAU/E,EAAWC,EAAU,CAC5E,OAAO,KAAK,eAAe,KAAK,gBAAgBD,EAAWC,CAAQ,CAAC,CACxE,EAaA8E,GAAY,UAAU,UAAY,SAAU/E,EAAWC,EAAU,CAC7D,IAAIiJ,EAAU,KAAK,gBAAgBlJ,EAAWC,CAAQ,EAClDx8K,EAAQ,KAAK,eAAeylL,CAAO,EACvC,OAAIzlL,IAAU,QAAaA,EAAM,aAAeu8K,GAAav8K,EAAM,YAAcw8K,KAC7Ex8K,EAAQ,IAAIs8K,GACZt8K,EAAM,MAAM,KAAMu8K,EAAWC,CAAQ,EACrC,KAAK,eAAeiJ,CAAO,EAAIzlL,GAE5BA,CACX,EA8CAshL,GAAY,UAAU,eAAiB3T,GAA0B,SAAS53E,EAAY77E,EAAS,CACvF,OAAO67E,GAAe,WACtBA,EAAa,IAEjB77E,EAAUA,GAAW,GACrB,IAAI8gK,EAAa9gK,EAAQ,YAAiB,oBAEtCwrK,EAA0Br6K,EAAE,OAC5BA,EAAE,KAAK,qBAAsB,EAC7BA,EAAE,KAAK,eAAgB,EACvBA,EAAE,KAAK,YAAa,CAC5B,EAEQs6K,EAAmBt6K,EAAE,OACrB,CAAE,EACFq6K,EACA3vF,CACR,EAEI,OAAO,KAAK,MAAMilF,EAAY2K,CAAgB,CAClD,CAAC,EA8BDrE,GAAY,UAAU,YAAc,UAAW,CAC3C,OAAO,KAAK,WAAW,KAAK,KAAMlG,GAAa,SAAS,CAC5D,EA6BAkG,GAAY,UAAU,YAAc,UAAW,CAC3C,OAAO,KAAK,WAAW,KAAK,KAAMjG,GAAa,SAAS,CAC5D,EAmBAiG,GAAY,UAAU,WAAa,SAAStG,EAAY,CACpD,GAAI3vK,EAAE,YAAY2vK,CAAU,EAAG,CAC3B,KAAK,aAAa,+CAA+C,EACjE,MACH,CAEG,KAAK,mBAAmBA,CAAU,GAItC,KAAK,YAAe,gBAAgBA,EAAa,IAAI,KAAM,EAAC,QAAO,CAAE,CACzE,EAEA,IAAI4K,IAAoB,CACpB,WAAc,EAClB,EAOIC,GAAuB,SAASC,EAAiB,CACjD,IAAI5rK,EACJ,OAAI7O,EAAE,SAASy6K,CAAe,EAC1B5rK,EAAU4rK,EACFz6K,EAAE,YAAYy6K,CAAe,EAGrC5rK,EAAU,GAFVA,EAAU,CAAC,KAAQ4rK,CAAe,EAI/Bz6K,EAAE,OAAO,CAAE,EAAEu6K,IAAmB1rK,CAAO,CAClD,EAyBAonK,GAAY,UAAU,SAAW,SAASn6L,EAAO2+L,EAAiB,CAC9D,IAAI5rK,EAAU2rK,GAAqBC,CAAe,EAC9C5rK,EAAQ,WACR,KAAK,YAAe,SAAS/yB,EAAO+yB,EAAQ,IAAO,EAEnD7O,EAAE,OAAO,KAAK,uBAAwBlkB,CAAK,CAEnD,EA6BAm6L,GAAY,UAAU,cAAgB,SAASn6L,EAAOwkL,EAAema,EAAiB,CAClF,IAAI5rK,EAAU2rK,GAAqBC,CAAe,EAC9C5rK,EAAQ,WACR,KAAK,YAAe,cAAc/yB,EAAOwkL,EAAezxJ,EAAQ,IAAO,GAEnE,OAAOyxJ,EAAmB,MAC1BA,EAAgB,QAEpBtgK,EAAE,KAAKlkB,EAAO,SAASgsD,EAAKhlD,EAAM,EAC1B,CAAC,KAAK,uBAAuB,eAAeA,CAAI,GAAK,KAAK,uBAAuBA,CAAI,IAAMw9K,KAC3F,KAAK,uBAAuBx9K,CAAI,EAAIglD,EAE3C,EAAE,IAAI,EAEf,EASAmuI,GAAY,UAAU,WAAa,SAASjlL,EAAU6d,EAAS,CAC3DA,EAAU2rK,GAAqB3rK,CAAO,EAClCA,EAAQ,WACR,KAAK,YAAe,WAAW7d,CAAQ,EAEvC,OAAO,KAAK,uBAAuBA,CAAQ,CAEnD,EAEAilL,GAAY,UAAU,iBAAmB,SAASnzL,EAAM7G,EAAO,CAC3D,IAAIH,EAAQ,GACZA,EAAMgH,CAAI,EAAI7G,EACd,KAAK,SAASH,CAAK,CACvB,EA0BAm6L,GAAY,UAAU,SAAW,SAC7ByE,EAAiBxI,EAAeC,EAAeC,EAAkBC,EAAoBC,EAAiBC,EAAiBC,EACzH,CASE,IAAImI,EAAuB,KAAK,kBAChC,GAAID,GAAmBC,IAAyBD,EAAiB,CAG7D,GAAI,OAAOA,GAAoB,UAAYA,EAAgB,QAAQhF,EAAgB,IAAM,EACrF,YAAK,aAAa,yCAAyC,EACpD,GAEX,KAAK,SAAS,CAAC,SAAYgF,CAAe,CAAC,CAC9C,CAED,GAAI,CAAC,KAAK,aAAa,YAAY,EAAG,CAGlC,IAAIhJ,EAAYiJ,EAChB,KAAK,cAAc,CACf,2BAA8B,GAC9B,WAAcjJ,CACjB,EAAE,EAAE,CACR,CAIGgJ,IAAoBC,GAAwBD,IAAoB,KAAK,aAAanH,EAAY,IAC9F,KAAK,WAAWA,EAAY,EAC5B,KAAK,SAAS,CAAC,YAAemH,CAAe,CAAC,GAElD,KAAK,OAAO,gBAAkB,GAE9B,KAAK,OAAU,OAAOxI,EAAeC,EAAeC,EAAkBC,EAAoBC,EAAiBC,EAAiBC,CAAgB,EAIxIkI,IAAoBC,GACpB,KAAK,MAAM,YAAa,CACpB,YAAeD,EACf,kBAAqBC,CACjC,EAAW,CAAC,WAAY,EAAI,CAAC,CAE7B,EAMA1E,GAAY,UAAU,MAAQ,UAAW,CACrC,KAAK,YAAe,QACpB,KAAK,OAAO,gBAAkB,GAC9B,IAAIW,EAAO52K,EAAE,OACb,KAAK,cAAc,CACf,YAAe01K,GAAmBkB,EAClC,WAAcA,CACjB,EAAE,EAAE,CACT,EAkBAX,GAAY,UAAU,gBAAkB,UAAW,CAC/C,OAAO,KAAK,aAAa,aAAa,CAC1C,EAsCAA,GAAY,UAAU,MAAQ,SAAS2E,EAAOj3B,EAAU,CAIpD,GAAIi3B,IAAU,KAAK,aAAatH,EAAsB,EAClD,YAAK,aAAa,iEAAiE,EAC5E,GAGX,IAAI53F,EAAQ,KAIZ,OAHI17E,EAAE,YAAY2jJ,CAAQ,IACtBA,EAAW,KAAK,mBAEhBi3B,IAAUj3B,GACV,KAAK,iBAAiB4vB,GAAcqH,CAAK,EAClC,KAAK,MAAM,gBAAiB,CAC/B,MAASA,EACT,YAAej3B,CAC3B,EAAW,CACC,WAAY,EACxB,EAAW,UAAW,CAEVjoE,EAAM,SAASk/F,CAAK,CAChC,CAAS,IAED,KAAK,aAAa,wDAAwD,EAC1E,KAAK,SAASA,CAAK,EACZ,GAEf,EAaA3E,GAAY,UAAU,SAAW,SAAS4E,EAAU,CAChD,KAAK,iBAAiB,cAAeA,CAAQ,CACjD,EAuIA5E,GAAY,UAAU,WAAa,SAASpmL,EAAQ,CAChD,GAAImQ,EAAE,SAASnQ,CAAM,EAAG,CACpBmQ,EAAE,OAAO,KAAK,OAAWnQ,CAAM,EAE/B,IAAIirL,EAAiBjrL,EAAO,WACxBirL,GACA96K,EAAE,KAAK,KAAK,iBAAkB,SAASg5K,EAAS,CAC5CA,EAAQ,eAAc,CACtC,CAAa,EAGA,KAAK,WAAW,kBAAkB,IACnC,KAAK,OAAU,iBAAsB,KAAK,OAAU,aAEnD,KAAK,WAAW,qBAAqB,IACtC,KAAK,OAAU,oBAAyB,KAAK,OAAU,gBAGvD,KAAK,aACL,KAAK,YAAe,cAAc,KAAK,MAAS,EAEpDzhB,GAAO,MAAQA,GAAO,OAAS,KAAK,WAAW,OAAO,EAElD,gBAAiB1nK,GAAU,KAAK,aAChC,KAAK,YAAY,MAExB,CACL,EAKAomL,GAAY,UAAU,WAAa,SAAS8E,EAAW,CACnD,OAAO,KAAK,OAAUA,CAAS,CACnC,EAQA9E,GAAY,UAAU,UAAY,SAAS+E,EAAW,CAClD,IAAIt0C,GAAO,KAAK,OAAU,MAASs0C,CAAS,GAAK3F,KAAe,MAAM,KAAMnlI,GAAM,KAAK,UAAW,CAAC,CAAC,EACpG,OAAI,OAAOw2F,EAAQ,MACf,KAAK,aAAas0C,EAAY,8BAA8B,EAC5Dt0C,EAAM,MAEHA,CACX,EAoBAuvC,GAAY,UAAU,aAAe,SAASgF,EAAe,CACzD,OAAO,KAAK,YAAe,UAAU,CAACA,CAAa,CAAC,CACxD,EAEAhF,GAAY,UAAU,SAAW,UAAW,CACxC,IAAIh1L,EAAO,KAAK,WAAW,MAAM,EACjC,OAAIA,IAASs0L,KACTt0L,EAAOs0L,GAAwB,IAAMt0L,GAElCA,CACX,EAEAg1L,GAAY,UAAU,mBAAqB,SAAStG,EAAY,CAC5D,OAAO3vK,EAAE,YAAYy5J,EAAS,GAC1B,KAAK,OAAO,oBACZz5J,EAAE,QAAQ,KAAK,kBAAmB2vK,CAAU,CACpD,EAGAsG,GAAY,UAAU,WAAa,UAAW,CAC1C,IAAIiF,EAA4B,KAAK,WAAW,mCAAmC,IAAM,eAGrFA,GAA6Bl7K,EAAE,aAAa,aAAY,IACpD,CAAC,KAAK,yBAA2B,KAAK,sBAAsB,CAAC,iBAAoB,QAAQ,CAAC,GAC1F,KAAK,gBAAgB,CAAC,mBAAsB,EAAK,CAAC,EAElD,CAAC,KAAK,0BAA4B,KAAK,uBAAuB,CAAC,iBAAoB,QAAQ,CAAC,GAC5F,KAAK,iBAAiB,CAAC,kBAAqB,EAAK,CAAC,EAEtD,KAAK,0BAA0B,CAC3B,iBAAoB,SACpB,mBAAsB,EAClC,CAAS,GAID,KAAK,yBACL,KAAK,yBAAyB,CAAC,kBAAqB,EAAI,CAAC,EAKlD,CAAC,KAAK,sBAAuB,IACpC,KAAK,WAAW,6BAA6B,GAAKA,EAAE,OAAO,IAAI,WAAW,KAE1EA,EAAE,OAAO,OAAO,WAAW,EAC3B,KAAK,iBAAiB,CAClB,kBAAqB,KAAK,WAAW,gCAAgC,CACjF,CAAS,EAET,EAQAi2K,GAAY,UAAU,yBAA2B,SAASpnK,EAAS,CAC/D,IAAIpnB,EACJ,GAAIonB,GAAWA,EAAQ,kBACnBpnB,EAAW,WACJonB,GAAWA,EAAQ,mBAC1BpnB,EAAW,OAEX,QAGA,CAAC,KAAK,WAAW,qBAAqB,GAAK,KAAK,YAAe,WAAaA,GAC5E,KAAK,YAAe,aAAaA,CAAQ,EAGzCA,EACA,KAAK,mBAAkB,EAInB,KAAK,wBACL,KAAK,oBAAmB,CAGpC,EAGAwuL,GAAY,UAAU,gBAAkB,SAASnkL,EAAM+c,EAAS,CAC5D,OAAAA,EAAU7O,EAAE,OAAO,CACf,MAASA,EAAE,KAAK,KAAK,MAAO,IAAI,EAChC,iBAAoB,KAAK,WAAW,mCAAmC,EACvE,cAAiB,KAAK,WAAW,gCAAgC,EACjE,kBAAqB,KAAK,WAAW,mBAAmB,EACxD,kBAAqB,KAAK,WAAW,mBAAmB,EACxD,uBAA0B,KAAK,WAAW,wBAAwB,EAClE,cAAiB,KAAK,WAAW,eAAe,EAChD,cAAiB,KAAK,WAAW,eAAe,EAChD,WAAc,KAAK,WAAW,YAAY,CAC7C,EAAE6O,CAAO,EAGL7O,EAAE,aAAa,iBAChB6O,EAAQ,iBAAsB,UAG3B/c,EAAK,KAAK,WAAW,OAAO,EAAG,CAClC,MAAO+c,EAAQ,MACf,eAAgBA,EAAQ,iBACxB,gBAAiBA,EAAQ,iBACzB,gBAAiBA,EAAQ,iBACzB,kBAAmBA,EAAQ,cAC3B,aAAcA,EAAQ,cACtB,iBAAkBA,EAAQ,kBAC1B,gBAAiBA,EAAQ,kBACzB,qBAAsBA,EAAQ,uBAC9B,aAAcA,EAAQ,cACtB,UAAWA,EAAQ,UAC3B,CAAK,CACL,EAiCAonK,GAAY,UAAU,gBAAkB,SAASpnK,EAAS,CACtDA,EAAU7O,EAAE,OAAO,CACf,mBAAsB,EACzB,EAAE6O,CAAO,EAEV,KAAK,gBAAgBizJ,IAAOjzJ,CAAO,EACnC,KAAK,yBAAyBA,CAAO,CACzC,EA2BAonK,GAAY,UAAU,iBAAmB,SAASpnK,EAAS,CACvDA,EAAU7O,EAAE,OAAO,CACf,kBAAqB,GACrB,YAAe,EAClB,EAAE6O,CAAO,EAGNA,EAAQ,aAAkB,KAAK,QAAa,KAAK,OAAU,qBAC3D,KAAK,OAAU,cACf,KAAK,OAAU,iBAGnB,KAAK,gBAAgBmzJ,IAAQnzJ,CAAO,EACpC,KAAK,yBAAyBA,CAAO,CACzC,EAeAonK,GAAY,UAAU,sBAAwB,SAASpnK,EAAS,CAC5D,OAAO,KAAK,gBAAgBozJ,IAAYpzJ,CAAO,CACnD,EAeAonK,GAAY,UAAU,uBAAyB,SAASpnK,EAAS,CAC7D,OAAO,KAAK,gBAAgBszJ,GAAatzJ,CAAO,CACpD,EA2BAonK,GAAY,UAAU,0BAA4B,SAASpnK,EAAS,CAChEA,EAAU7O,EAAE,OAAO,CACf,mBAAsB,EACzB,EAAE6O,CAAO,EAEV,KAAK,gBAAgB6zJ,IAAe7zJ,CAAO,EAC3C,KAAK,yBAAyBA,CAAO,CACzC,EAEAonK,GAAY,UAAU,aAAe,SAAS9d,EAAK19K,EAAK,CACpDu/K,GAAU,MAAM,MAAMA,GAAU,MAAO,SAAS,EAChD,GAAI,CACI,CAACv/K,GAAO,EAAE09K,aAAe,SACzBA,EAAM,IAAI,MAAMA,CAAG,GAEvB,KAAK,WAAW,gBAAgB,EAAEA,EAAK19K,CAAG,CAC7C,OAAOA,EAAK,CACTu/K,GAAU,MAAMv/K,CAAG,CACtB,CACL,EAKAw7L,GAAY,UAAU,KAAwCA,GAAY,UAAU,KACpFA,GAAY,UAAU,MAAwCA,GAAY,UAAU,MACpFA,GAAY,UAAU,QAAwCA,GAAY,UAAU,QACpFA,GAAY,UAAU,WAAwCA,GAAY,UAAU,WACpFA,GAAY,UAAU,MAAwCA,GAAY,UAAU,MACpFA,GAAY,UAAU,YAAwCA,GAAY,UAAU,YACpFA,GAAY,UAAU,YAAwCA,GAAY,UAAU,YACpFA,GAAY,UAAU,eAAwCA,GAAY,UAAU,eACpFA,GAAY,UAAU,SAAwCA,GAAY,UAAU,SACpFA,GAAY,UAAU,cAAwCA,GAAY,UAAU,cACpFA,GAAY,UAAU,WAAwCA,GAAY,UAAU,WACpFA,GAAY,UAAU,SAAwCA,GAAY,UAAU,SACpFA,GAAY,UAAU,MAAwCA,GAAY,UAAU,MACpFA,GAAY,UAAU,SAAwCA,GAAY,UAAU,SACpFA,GAAY,UAAU,WAAwCA,GAAY,UAAU,WACpFA,GAAY,UAAU,WAAwCA,GAAY,UAAU,WACpFA,GAAY,UAAU,aAAwCA,GAAY,UAAU,aACpFA,GAAY,UAAU,gBAAwCA,GAAY,UAAU,gBACpFA,GAAY,UAAU,SAAwCA,GAAY,UAAU,SACpFA,GAAY,UAAU,iBAAwCA,GAAY,UAAU,iBACpFA,GAAY,UAAU,gBAAwCA,GAAY,UAAU,gBACpFA,GAAY,UAAU,uBAAwCA,GAAY,UAAU,uBACpFA,GAAY,UAAU,sBAAwCA,GAAY,UAAU,sBACpFA,GAAY,UAAU,0BAAwCA,GAAY,UAAU,0BACpFA,GAAY,UAAU,UAAwCA,GAAY,UAAU,UACpFA,GAAY,UAAU,UAAwCA,GAAY,UAAU,UACpFA,GAAY,UAAU,UAAwCA,GAAY,UAAU,UACpFA,GAAY,UAAU,aAAwCA,GAAY,UAAU,aACpFA,GAAY,UAAU,kBAAwCA,GAAY,UAAU,kBACpFA,GAAY,UAAU,oBAAwCA,GAAY,UAAU,oBACpFA,GAAY,UAAU,mBAAwCA,GAAY,UAAU,mBACpFA,GAAY,UAAU,wBAAwCA,GAAY,UAAU,wBACpFA,GAAY,UAAU,uBAAwCA,GAAY,UAAU,uBACpFA,GAAY,UAAU,iCAAwCA,GAAY,UAAU,iCACpFA,GAAY,UAAU,uBAAwCA,GAAY,UAAU,uBACpFA,GAAY,UAAU,mBAAwCH,GAG9DpC,GAAoB,UAAU,WAA2BA,GAAoB,UAAU,WACvFA,GAAoB,UAAU,sBAA2BA,GAAoB,UAAU,sBACvFA,GAAoB,UAAU,qBAA2BA,GAAoB,UAAU,qBACvFA,GAAoB,UAAU,oBAA2BA,GAAoB,UAAU,oBACvFA,GAAoB,UAAU,MAA2BA,GAAoB,UAAU,MAGvF,IAAIyH,GAAY,GACZC,IAAY,UAAW,CAEvBp7K,EAAE,KAAKm7K,GAAW,SAASpjG,EAAU92F,EAAM,CACnCA,IAASs0L,KAAyBL,GAAgBj0L,CAAI,EAAI82F,EACtE,CAAK,EAGDm9F,GAAgB,EAAOl1K,CAC3B,EAEIq7K,IAAwB,UAAW,CAGnCnG,GAAgB,KAAU,SAASxV,EAAO7vK,EAAQ5O,EAAM,CACpD,GAAIA,EAEA,OAAKi0L,GAAgBj0L,CAAI,IACrBi0L,GAAgBj0L,CAAI,EAAIk6L,GAAUl6L,CAAI,EAAIi1L,GAAaxW,EAAO7vK,EAAQ5O,CAAI,EAC1Ei0L,GAAgBj0L,CAAI,EAAE,WAEnBi0L,GAAgBj0L,CAAI,EAE3B,IAAI82F,EAAWm9F,GAEXiG,GAAU5F,EAAqB,EAE/Bx9F,EAAWojG,GAAU5F,EAAqB,EACnC7V,IAEP3nF,EAAWm+F,GAAaxW,EAAO7vK,EAAQ0lL,EAAqB,EAC5Dx9F,EAAS,QAAO,EAChBojG,GAAU5F,EAAqB,EAAIx9F,GAGvCm9F,GAAkBn9F,EACdg9F,KAAcK,MACd5hJ,GAAI+hJ,EAAqB,EAAIL,IAEjCkG,KAEZ,CACA,EAEIE,IAAyB,UAAW,CAEpC,SAASC,GAAqB,CAEtBA,EAAmB,OACvBA,EAAmB,KAAO,GAE1BvF,GAAa,GACbJ,GAAmB,GAEnB51K,EAAE,KAAKm7K,GAAW,SAAS7hK,EAAM,CAC7BA,EAAK,YAAW,CAC5B,CAAS,EACJ,CAED,SAASkiK,GAAkB,CACvB,GAAI,CACAliB,GAAW,gBAAgB,SAAS,MAAM,CAC7C,MAAU,CACP,WAAWkiB,EAAiB,CAAC,EAC7B,MACH,CAEDD,GACH,CAED,GAAIjiB,GAAW,iBACPA,GAAW,aAAe,WAK1BiiB,IAEAjiB,GAAW,iBAAiB,mBAAoBiiB,EAAoB,EAAK,UAEtEjiB,GAAW,YAAa,CAE/BA,GAAW,YAAY,qBAAsBiiB,CAAkB,EAG/D,IAAIE,EAAW,GACf,GAAI,CACAA,EAAWjoJ,GAAI,eAAiB,IACnC,MAAU,CAEV,CAEG8lI,GAAW,gBAAgB,UAAYmiB,GACvCD,GAEP,CAGDx7K,EAAE,eAAewzB,GAAK,OAAQ+nJ,EAAoB,EAAI,CAC1D,EAEA,SAASG,IAAeC,EAAe,CACnC,OAAA3G,GAAoB2G,EACpB5G,GAAYI,GACZD,GAAkB,IAAIe,GAEtBoF,MACAnG,GAAgB,OAChBoG,MAEOpG,EACX,CAKA,SAAS0G,IAAUC,EAAMC,EAAQ,CAC7BA,GACJ,CAIA,IAAIC,GAAWL,IAAeE,GAAQ,uSCrzYpC,SAAUI,EAAQC,EAAS,CACsC5oG,EAAiB,QAAA4oG,GAGpF,GAAEC,GAAO,UAAY,CAEjB,IAAIC,EAEJ,SAASttB,GAAQ,CACb,OAAOstB,EAAa,MAAM,KAAM,SAAS,CAC5C,CAID,SAASC,EAAgB35L,EAAU,CAC/B05L,EAAe15L,CAClB,CAED,SAAS4jD,EAAQ/mC,EAAO,CACpB,OACIA,aAAiB,OACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,gBAEjD,CAED,SAAS6mC,EAAS7mC,EAAO,CAGrB,OACIA,GAAS,MACT,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,iBAEjD,CAED,SAAS+8K,EAAWlqN,EAAGK,EAAG,CACtB,OAAO,OAAO,UAAU,eAAe,KAAKL,EAAGK,CAAC,CACnD,CAED,SAAS8pN,EAAcloI,EAAK,CACxB,GAAI,OAAO,oBACP,OAAO,OAAO,oBAAoBA,CAAG,EAAE,SAAW,EAElD,IAAIhhF,EACJ,IAAKA,KAAKghF,EACN,GAAIioI,EAAWjoI,EAAKhhF,CAAC,EACjB,MAAO,GAGf,MAAO,EAEd,CAED,SAASy0E,EAAYvoC,EAAO,CACxB,OAAOA,IAAU,MACpB,CAED,SAAS/I,EAAS+I,EAAO,CACrB,OACI,OAAOA,GAAU,UACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,iBAEjD,CAED,SAASi9K,EAAOj9K,EAAO,CACnB,OACIA,aAAiB,MACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAEjD,CAED,SAASpgB,EAAIk1F,EAAK/oD,EAAI,CAClB,IAAIs7I,EAAM,CAAE,EACR5rL,EACAyhM,EAASpoG,EAAI,OACjB,IAAKr5F,EAAI,EAAGA,EAAIyhM,EAAQ,EAAEzhM,EACtB4rL,EAAI,KAAKt7I,EAAG+oD,EAAIr5F,CAAC,EAAGA,CAAC,CAAC,EAE1B,OAAO4rL,CACV,CAED,SAAS8V,EAAOtqN,EAAGK,EAAG,CAClB,QAASuoB,KAAKvoB,EACN6pN,EAAW7pN,EAAGuoB,CAAC,IACf5oB,EAAE4oB,CAAC,EAAIvoB,EAAEuoB,CAAC,GAIlB,OAAIshM,EAAW7pN,EAAG,UAAU,IACxBL,EAAE,SAAWK,EAAE,UAGf6pN,EAAW7pN,EAAG,SAAS,IACvBL,EAAE,QAAUK,EAAE,SAGXL,CACV,CAED,SAASuqN,EAAUp9K,EAAOk2E,EAAQmnG,EAAQC,EAAQ,CAC9C,OAAOC,GAAiBv9K,EAAOk2E,EAAQmnG,EAAQC,EAAQ,EAAI,EAAE,KAChE,CAED,SAASE,GAAsB,CAE3B,MAAO,CACH,MAAO,GACP,aAAc,CAAE,EAChB,YAAa,CAAE,EACf,SAAU,GACV,cAAe,EACf,UAAW,GACX,WAAY,KACZ,aAAc,KACd,cAAe,GACf,gBAAiB,GACjB,IAAK,GACL,gBAAiB,CAAE,EACnB,IAAK,KACL,SAAU,KACV,QAAS,GACT,gBAAiB,EAC7B,CACK,CAED,SAASC,EAAgBvpN,EAAG,CACxB,OAAIA,EAAE,KAAO,OACTA,EAAE,IAAMspN,KAELtpN,EAAE,GACZ,CAED,IAAIq3E,EACA,MAAM,UAAU,KAChBA,EAAO,MAAM,UAAU,KAEvBA,EAAO,SAAUmyI,EAAK,CAClB,IAAIrrN,EAAI,OAAO,IAAI,EACfu+D,EAAMv+D,EAAE,SAAW,EACnBopB,EAEJ,IAAKA,EAAI,EAAGA,EAAIm1C,EAAKn1C,IACjB,GAAIA,KAAKppB,GAAKqrN,EAAI,KAAK,KAAMrrN,EAAEopB,CAAC,EAAGA,EAAGppB,CAAC,EACnC,MAAO,GAIf,MAAO,EACnB,EAGI,SAASw6E,EAAQ34E,EAAG,CAChB,IAAI8hI,EAAQ,KACR2nF,EAAc,GACdC,EAAa1pN,EAAE,IAAM,CAAC,MAAMA,EAAE,GAAG,QAAO,CAAE,EAyB9C,GAxBI0pN,IACA5nF,EAAQynF,EAAgBvpN,CAAC,EACzBypN,EAAcpyI,EAAK,KAAKyqD,EAAM,gBAAiB,SAAUv6G,EAAG,CACxD,OAAOA,GAAK,IAC5B,CAAa,EACDmiM,EACI5nF,EAAM,SAAW,GACjB,CAACA,EAAM,OACP,CAACA,EAAM,YACP,CAACA,EAAM,cACP,CAACA,EAAM,gBACP,CAACA,EAAM,iBACP,CAACA,EAAM,WACP,CAACA,EAAM,eACP,CAACA,EAAM,kBACN,CAACA,EAAM,UAAaA,EAAM,UAAY2nF,GACvCzpN,EAAE,UACF0pN,EACIA,GACA5nF,EAAM,gBAAkB,GACxBA,EAAM,aAAa,SAAW,GAC9BA,EAAM,UAAY,SAG1B,OAAO,UAAY,MAAQ,CAAC,OAAO,SAAS9hI,CAAC,EAC7CA,EAAE,SAAW0pN,MAEb,QAAOA,EAEX,OAAO1pN,EAAE,QACZ,CAED,SAAS2pN,EAAc7nF,EAAO,CAC1B,IAAI9hI,EAAIkpN,EAAU,GAAG,EACrB,OAAIpnF,GAAS,KACTmnF,EAAOM,EAAgBvpN,CAAC,EAAG8hI,CAAK,EAEhCynF,EAAgBvpN,CAAC,EAAE,gBAAkB,GAGlCA,CACV,CAID,IAAI4pN,EAAoBvuB,EAAM,iBAAmB,GAC7CwuB,EAAmB,GAEvB,SAASC,EAAWpiM,EAAIC,EAAM,CAC1B,IAAIJ,EACA+H,EACAglD,EACAy1I,GAAsBH,EAAiB,OAiC3C,GA/BKv1I,EAAY1sD,EAAK,gBAAgB,IAClCD,EAAG,iBAAmBC,EAAK,kBAE1B0sD,EAAY1sD,EAAK,EAAE,IACpBD,EAAG,GAAKC,EAAK,IAEZ0sD,EAAY1sD,EAAK,EAAE,IACpBD,EAAG,GAAKC,EAAK,IAEZ0sD,EAAY1sD,EAAK,EAAE,IACpBD,EAAG,GAAKC,EAAK,IAEZ0sD,EAAY1sD,EAAK,OAAO,IACzBD,EAAG,QAAUC,EAAK,SAEjB0sD,EAAY1sD,EAAK,IAAI,IACtBD,EAAG,KAAOC,EAAK,MAEd0sD,EAAY1sD,EAAK,MAAM,IACxBD,EAAG,OAASC,EAAK,QAEhB0sD,EAAY1sD,EAAK,OAAO,IACzBD,EAAG,QAAUC,EAAK,SAEjB0sD,EAAY1sD,EAAK,GAAG,IACrBD,EAAG,IAAM6hM,EAAgB5hM,CAAI,GAE5B0sD,EAAY1sD,EAAK,OAAO,IACzBD,EAAG,QAAUC,EAAK,SAGlBoiM,GAAsB,EACtB,IAAKxiM,EAAI,EAAGA,EAAIwiM,GAAqBxiM,IACjC+H,EAAOs6L,EAAiBriM,CAAC,EACzB+sD,EAAM3sD,EAAK2H,CAAI,EACV+kD,EAAYC,CAAG,IAChB5sD,EAAG4H,CAAI,EAAIglD,GAKvB,OAAO5sD,CACV,CAGD,SAASsiM,EAAO3tL,EAAQ,CACpBytL,EAAW,KAAMztL,CAAM,EACvB,KAAK,GAAK,IAAI,KAAKA,EAAO,IAAM,KAAOA,EAAO,GAAG,QAAS,EAAG,GAAG,EAC3D,KAAK,YACN,KAAK,GAAK,IAAI,KAAK,GAAG,GAItBwtL,IAAqB,KACrBA,EAAmB,GACnBxuB,EAAM,aAAa,IAAI,EACvBwuB,EAAmB,GAE1B,CAED,SAASI,EAASrpI,EAAK,CACnB,OACIA,aAAeopI,GAAWppI,GAAO,MAAQA,EAAI,kBAAoB,IAExE,CAED,SAASwuF,EAAKu1B,EAAK,CAEXtJ,EAAM,8BAAgC,IACtC,OAAO,QAAY,KACnB,QAAQ,MAER,QAAQ,KAAK,wBAA0BsJ,CAAG,CAEjD,CAED,SAASulB,EAAUvlB,EAAK9sI,EAAI,CACxB,IAAIsyJ,EAAY,GAEhB,OAAOlB,EAAO,UAAY,CAItB,GAHI5tB,EAAM,oBAAsB,MAC5BA,EAAM,mBAAmB,KAAMsJ,CAAG,EAElCwlB,EAAW,CACX,IAAIt9L,EAAO,CAAE,EACT4yF,EACAl4F,GACA2W,GACAksL,GAAS,UAAU,OACvB,IAAK7iM,GAAI,EAAGA,GAAI6iM,GAAQ7iM,KAAK,CAEzB,GADAk4F,EAAM,GACF,OAAO,UAAUl4F,EAAC,GAAM,SAAU,CAClCk4F,GAAO;AAAA,GAAQl4F,GAAI,KACnB,IAAK2W,MAAO,UAAU,CAAC,EACf2qL,EAAW,UAAU,CAAC,EAAG3qL,EAAG,IAC5BuhF,GAAOvhF,GAAM,KAAO,UAAU,CAAC,EAAEA,EAAG,EAAI,MAGhDuhF,EAAMA,EAAI,MAAM,EAAG,EAAE,CAC7C,MACwBA,EAAM,UAAUl4F,EAAC,EAErBsF,EAAK,KAAK4yF,CAAG,CAChB,CACD2vD,EACIu1B,EACI;AAAA,aACA,MAAM,UAAU,MAAM,KAAK93K,CAAI,EAAE,KAAK,EAAE,EACxC;AAAA,EACA,IAAI,MAAO,EAAC,KACpC,EACgBs9L,EAAY,EACf,CACD,OAAOtyJ,EAAG,MAAM,KAAM,SAAS,CAClC,EAAEA,CAAE,CACR,CAED,IAAIwyJ,EAAe,GAEnB,SAASC,EAAgB78L,EAAMk3K,EAAK,CAC5BtJ,EAAM,oBAAsB,MAC5BA,EAAM,mBAAmB5tK,EAAMk3K,CAAG,EAEjC0lB,EAAa58L,CAAI,IAClB2hJ,EAAKu1B,CAAG,EACR0lB,EAAa58L,CAAI,EAAI,GAE5B,CAED4tK,EAAM,4BAA8B,GACpCA,EAAM,mBAAqB,KAE3B,SAASn+G,EAAWpxC,EAAO,CACvB,OACK,OAAO,SAAa,KAAeA,aAAiB,UACrD,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,mBAEjD,CAED,SAASgpC,EAAIz4C,EAAQ,CACjB,IAAI/M,EAAM/H,EACV,IAAKA,KAAK8U,EACFwsL,EAAWxsL,EAAQ9U,CAAC,IACpB+H,EAAO+M,EAAO9U,CAAC,EACX21D,EAAW5tD,CAAI,EACf,KAAK/H,CAAC,EAAI+H,EAEV,KAAK,IAAM/H,CAAC,EAAI+H,GAI5B,KAAK,QAAU+M,EAIf,KAAK,+BAAiC,IAAI,QACrC,KAAK,wBAAwB,QAAU,KAAK,cAAc,QACvD,IACA,UAAU,MAC1B,CACK,CAED,SAASkuL,EAAaC,EAAcC,EAAa,CAC7C,IAAItX,EAAM8V,EAAO,CAAE,EAAEuB,CAAY,EAC7Bl7L,EACJ,IAAKA,KAAQm7L,EACL5B,EAAW4B,EAAan7L,CAAI,IACxBqjD,EAAS63I,EAAal7L,CAAI,CAAC,GAAKqjD,EAAS83I,EAAYn7L,CAAI,CAAC,GAC1D6jL,EAAI7jL,CAAI,EAAI,GACZ25L,EAAO9V,EAAI7jL,CAAI,EAAGk7L,EAAal7L,CAAI,CAAC,EACpC25L,EAAO9V,EAAI7jL,CAAI,EAAGm7L,EAAYn7L,CAAI,CAAC,GAC5Bm7L,EAAYn7L,CAAI,GAAK,KAC5B6jL,EAAI7jL,CAAI,EAAIm7L,EAAYn7L,CAAI,EAE5B,OAAO6jL,EAAI7jL,CAAI,GAI3B,IAAKA,KAAQk7L,EAEL3B,EAAW2B,EAAcl7L,CAAI,GAC7B,CAACu5L,EAAW4B,EAAan7L,CAAI,GAC7BqjD,EAAS63I,EAAal7L,CAAI,CAAC,IAG3B6jL,EAAI7jL,CAAI,EAAI25L,EAAO,CAAE,EAAE9V,EAAI7jL,CAAI,CAAC,GAGxC,OAAO6jL,CACV,CAED,SAASuX,EAAOruL,EAAQ,CAChBA,GAAU,MACV,KAAK,IAAIA,CAAM,CAEtB,CAED,IAAIkrC,EAEA,OAAO,KACPA,EAAO,OAAO,KAEdA,EAAO,SAAUqZ,EAAK,CAClB,IAAIr5D,EACA4rL,EAAM,GACV,IAAK5rL,KAAKq5D,EACFioI,EAAWjoI,EAAKr5D,CAAC,GACjB4rL,EAAI,KAAK5rL,CAAC,EAGlB,OAAO4rL,CACnB,EAGI,IAAIwX,EAAkB,CAClB,QAAS,gBACT,QAAS,mBACT,SAAU,eACV,QAAS,oBACT,SAAU,sBACV,SAAU,GAClB,EAEI,SAASC,EAAS1sL,EAAK2sL,EAAK96B,EAAK,CAC7B,IAAI3pG,EAAS,KAAK,UAAUloD,CAAG,GAAK,KAAK,UAAU,SACnD,OAAOg/C,EAAWkJ,CAAM,EAAIA,EAAO,KAAKykI,EAAK96B,CAAG,EAAI3pG,CACvD,CAED,SAAS0kI,EAASx+F,EAAQy+F,EAAcC,EAAW,CAC/C,IAAIC,EAAY,GAAK,KAAK,IAAI3+F,CAAM,EAChC4+F,EAAcH,EAAeE,EAAU,OACvCE,GAAO7+F,GAAU,EACrB,OACK6+F,GAAQH,EAAY,IAAM,GAAM,KACjC,KAAK,IAAI,GAAI,KAAK,IAAI,EAAGE,CAAW,CAAC,EAAE,WAAW,OAAO,CAAC,EAC1DD,CAEP,CAED,IAAIG,EACI,yMACJC,EAAwB,6CACxBC,EAAkB,CAAE,EACpBC,GAAuB,GAM3B,SAASC,GAAetf,EAAOuf,EAAQC,EAASz8L,EAAU,CACtD,IAAIqP,EAAOrP,EACP,OAAOA,GAAa,WACpBqP,EAAO,UAAY,CACf,OAAO,KAAKrP,CAAQ,GACpC,GAEYi9K,IACAqf,GAAqBrf,CAAK,EAAI5tK,GAE9BmtL,IACAF,GAAqBE,EAAO,CAAC,CAAC,EAAI,UAAY,CAC1C,OAAOX,EAASxsL,EAAK,MAAM,KAAM,SAAS,EAAGmtL,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,CACjF,GAEYC,IACAH,GAAqBG,CAAO,EAAI,UAAY,CACxC,OAAO,KAAK,WAAU,EAAG,QACrBptL,EAAK,MAAM,KAAM,SAAS,EAC1B4tK,CACpB,CACA,EAEK,CAED,SAASyf,GAAuB7/K,EAAO,CACnC,OAAIA,EAAM,MAAM,UAAU,EACfA,EAAM,QAAQ,WAAY,EAAE,EAEhCA,EAAM,QAAQ,MAAO,EAAE,CACjC,CAED,SAAS8/K,GAAmB5pG,EAAQ,CAChC,IAAIxqE,EAAQwqE,EAAO,MAAMopG,CAAgB,EACrC7jM,EACA88B,EAEJ,IAAK98B,EAAI,EAAG88B,EAAS7M,EAAM,OAAQjwB,EAAI88B,EAAQ98B,IACvCgkM,GAAqB/zK,EAAMjwB,CAAC,CAAC,EAC7BiwB,EAAMjwB,CAAC,EAAIgkM,GAAqB/zK,EAAMjwB,CAAC,CAAC,EAExCiwB,EAAMjwB,CAAC,EAAIokM,GAAuBn0K,EAAMjwB,CAAC,CAAC,EAIlD,OAAO,SAAUsjM,EAAK,CAClB,IAAIzkI,GAAS,GACT7+D,GACJ,IAAKA,GAAI,EAAGA,GAAI88B,EAAQ98B,KACpB6+D,IAAUlJ,EAAW1lC,EAAMjwB,EAAC,CAAC,EACvBiwB,EAAMjwB,EAAC,EAAE,KAAKsjM,EAAK7oG,CAAM,EACzBxqE,EAAMjwB,EAAC,EAEjB,OAAO6+D,EACnB,CACK,CAGD,SAASylI,GAAa7rN,EAAGgiH,EAAQ,CAC7B,OAAKhiH,EAAE,WAIPgiH,EAAS8pG,GAAa9pG,EAAQhiH,EAAE,WAAY,GAC5CsrN,EAAgBtpG,CAAM,EAClBspG,EAAgBtpG,CAAM,GAAK4pG,GAAmB5pG,CAAM,EAEjDspG,EAAgBtpG,CAAM,EAAEhiH,CAAC,GAPrBA,EAAE,aAAa,aAQ7B,CAED,SAAS8rN,GAAa9pG,EAAQmnG,EAAQ,CAClC,IAAI5hM,EAAI,EAER,SAASwkM,EAA4BjgL,EAAO,CACxC,OAAOq9K,EAAO,eAAer9K,CAAK,GAAKA,CAC1C,CAGD,IADAu/K,EAAsB,UAAY,EAC3B9jM,GAAK,GAAK8jM,EAAsB,KAAKrpG,CAAM,GAC9CA,EAASA,EAAO,QACZqpG,EACAU,CAChB,EACYV,EAAsB,UAAY,EAClC9jM,GAAK,EAGT,OAAOy6F,CACV,CAED,IAAIgqG,GAAwB,CACxB,IAAK,YACL,GAAI,SACJ,EAAG,aACH,GAAI,eACJ,IAAK,sBACL,KAAM,2BACd,EAEI,SAASC,GAAe/tL,EAAK,CACzB,IAAI8jF,EAAS,KAAK,gBAAgB9jF,CAAG,EACjCguL,EAAc,KAAK,gBAAgBhuL,EAAI,YAAa,GAExD,OAAI8jF,GAAU,CAACkqG,EACJlqG,GAGX,KAAK,gBAAgB9jF,CAAG,EAAIguL,EACvB,MAAMd,CAAgB,EACtB,IAAI,SAAUe,EAAK,CAChB,OACIA,IAAQ,QACRA,IAAQ,MACRA,IAAQ,MACRA,IAAQ,OAEDA,EAAI,MAAM,CAAC,EAEfA,CACvB,CAAa,EACA,KAAK,EAAE,EAEL,KAAK,gBAAgBjuL,CAAG,EAClC,CAED,IAAIkuL,GAAqB,eAEzB,SAASC,IAAc,CACnB,OAAO,KAAK,YACf,CAED,IAAIC,GAAiB,KACjBC,GAAgC,UAEpC,SAASb,GAAQp/F,EAAQ,CACrB,OAAO,KAAK,SAAS,QAAQ,KAAMA,CAAM,CAC5C,CAED,IAAIkgG,GAAsB,CACtB,OAAQ,QACR,KAAM,SACN,EAAG,gBACH,GAAI,aACJ,EAAG,WACH,GAAI,aACJ,EAAG,UACH,GAAI,WACJ,EAAG,QACH,GAAI,UACJ,EAAG,SACH,GAAI,WACJ,EAAG,UACH,GAAI,YACJ,EAAG,SACH,GAAI,UACZ,EAEI,SAASC,GAAangG,EAAQogG,EAAehyL,EAAQiyL,EAAU,CAC3D,IAAIvmI,EAAS,KAAK,cAAc1rD,CAAM,EACtC,OAAOwiD,EAAWkJ,CAAM,EAClBA,EAAOkmC,EAAQogG,EAAehyL,EAAQiyL,CAAQ,EAC9CvmI,EAAO,QAAQ,MAAOkmC,CAAM,CACrC,CAED,SAASsgG,GAAWC,EAAMzmI,EAAQ,CAC9B,IAAI47B,EAAS,KAAK,cAAc6qG,EAAO,EAAI,SAAW,MAAM,EAC5D,OAAO3vI,EAAW8kC,CAAM,EAAIA,EAAO57B,CAAM,EAAI47B,EAAO,QAAQ,MAAO57B,CAAM,CAC5E,CAED,IAAI0mI,GAAU,CACV,EAAG,OACH,MAAO,OACP,KAAM,OACN,EAAG,MACH,KAAM,MACN,IAAK,MACL,EAAG,UACH,SAAU,UACV,QAAS,UACT,EAAG,aACH,YAAa,aACb,WAAY,aACZ,IAAK,YACL,WAAY,YACZ,UAAW,YACX,EAAG,OACH,MAAO,OACP,KAAM,OACN,GAAI,cACJ,aAAc,cACd,YAAa,cACb,EAAG,SACH,QAAS,SACT,OAAQ,SACR,EAAG,QACH,OAAQ,QACR,MAAO,QACP,EAAG,UACH,SAAU,UACV,QAAS,UACT,EAAG,SACH,QAAS,SACT,OAAQ,SACR,GAAI,WACJ,UAAW,WACX,SAAU,WACV,GAAI,cACJ,aAAc,cACd,YAAa,cACb,EAAG,OACH,MAAO,OACP,KAAM,OACN,EAAG,UACH,SAAU,UACV,QAAS,UACT,EAAG,OACH,MAAO,OACP,KAAM,MACd,EAEI,SAASC,GAAeC,EAAO,CAC3B,OAAO,OAAOA,GAAU,SAClBF,GAAQE,CAAK,GAAKF,GAAQE,EAAM,YAAW,CAAE,EAC7C,MACT,CAED,SAASC,EAAqBC,EAAa,CACvC,IAAIC,EAAkB,CAAE,EACpBC,EACA99L,EAEJ,IAAKA,KAAQ49L,EACLrE,EAAWqE,EAAa59L,CAAI,IAC5B89L,EAAiBL,GAAez9L,CAAI,EAChC89L,IACAD,EAAgBC,CAAc,EAAIF,EAAY59L,CAAI,IAK9D,OAAO69L,CACV,CAED,IAAIE,GAAa,CACb,KAAM,EACN,IAAK,GACL,QAAS,GACT,WAAY,GACZ,UAAW,EACX,KAAM,GACN,YAAa,GACb,OAAQ,GACR,MAAO,EACP,QAAS,EACT,OAAQ,GACR,SAAU,EACV,YAAa,EACb,KAAM,EACN,QAAS,EACT,KAAM,CACd,EAEI,SAASC,GAAoBC,EAAU,CACnC,IAAIP,EAAQ,CAAE,EACV5uN,EACJ,IAAKA,KAAKmvN,EACF1E,EAAW0E,EAAUnvN,CAAC,GACtB4uN,EAAM,KAAK,CAAE,KAAM5uN,EAAG,SAAUivN,GAAWjvN,CAAC,CAAC,CAAE,EAGvD,OAAA4uN,EAAM,KAAK,SAAUruN,EAAGK,EAAG,CACvB,OAAOL,EAAE,SAAWK,EAAE,QAClC,CAAS,EACMguN,CACV,CAED,IAAIQ,GAAS,KACTC,GAAS,OACTC,GAAS,QACTC,GAAS,QACTC,GAAS,aACTC,GAAY,QACZC,GAAY,YACZC,GAAY,gBACZC,GAAY,UACZC,GAAY,UACZC,GAAY,eACZC,GAAgB,MAChBC,GAAc,WACdC,GAAc,qBACdC,GAAmB,0BACnBC,GAAiB,uBAGjBC,GACI,wJACJC,GAAyB,YACzBC,GAAmB,gBACnBC,GAEJA,GAAU,GAEV,SAASC,GAAc1iB,EAAOvkB,EAAOknC,EAAa,CAC9CF,GAAQziB,CAAK,EAAIhvH,EAAWyqG,CAAK,EAC3BA,EACA,SAAUmnC,EAAUC,EAAY,CAC5B,OAAOD,GAAYD,EAAcA,EAAclnC,CACjE,CACK,CAED,SAASqnC,GAAsB9iB,EAAO7vK,EAAQ,CAC1C,OAAKwsL,EAAW8F,GAASziB,CAAK,EAIvByiB,GAAQziB,CAAK,EAAE7vK,EAAO,QAASA,EAAO,OAAO,EAHzC,IAAI,OAAO4yL,GAAe/iB,CAAK,CAAC,CAI9C,CAGD,SAAS+iB,GAAe3nM,EAAG,CACvB,OAAO4nM,GACH5nM,EACK,QAAQ,KAAM,EAAE,EAChB,QACG,sCACA,SAAU6nM,EAASC,EAAIC,EAAIC,EAAIC,GAAI,CAC/B,OAAOH,GAAMC,GAAMC,GAAMC,EAC5B,CACJ,CACjB,CACK,CAED,SAASL,GAAY5nM,EAAG,CACpB,OAAOA,EAAE,QAAQ,yBAA0B,MAAM,CACpD,CAED,SAASkoM,GAASljG,EAAQ,CACtB,OAAIA,EAAS,EAEF,KAAK,KAAKA,CAAM,GAAK,EAErB,KAAK,MAAMA,CAAM,CAE/B,CAED,SAASm0C,GAAMgvD,EAAqB,CAChC,IAAIC,EAAgB,CAACD,EACjBhnM,EAAQ,EAEZ,OAAIinM,IAAkB,GAAK,SAASA,CAAa,IAC7CjnM,EAAQ+mM,GAASE,CAAa,GAG3BjnM,CACV,CAED,IAAIwjL,GAAS,GAEb,SAAS0jB,GAAczjB,EAAOj9K,EAAU,CACpC,IAAI1H,EACA+W,EAAOrP,EACP2gM,EAUJ,IATI,OAAO1jB,GAAU,WACjBA,EAAQ,CAACA,CAAK,GAEdnpK,EAAS9T,CAAQ,IACjBqP,EAAO,SAAUwN,GAAO0L,GAAO,CAC3BA,GAAMvoB,CAAQ,EAAIwxI,GAAM30H,EAAK,CAC7C,GAEQ8jL,EAAW1jB,EAAM,OACZ3kL,EAAI,EAAGA,EAAIqoM,EAAUroM,IACtB0kL,GAAOC,EAAM3kL,CAAC,CAAC,EAAI+W,CAE1B,CAED,SAASuxL,GAAkB3jB,EAAOj9K,EAAU,CACxC0gM,GAAczjB,EAAO,SAAUpgK,EAAO0L,EAAOnb,EAAQ6vK,GAAO,CACxD7vK,EAAO,GAAKA,EAAO,IAAM,GACzBpN,EAAS6c,EAAOzP,EAAO,GAAIA,EAAQ6vK,EAAK,CACpD,CAAS,CACJ,CAED,SAAS4jB,GAAwB5jB,EAAOpgK,EAAOzP,EAAQ,CAC/CyP,GAAS,MAAQ+8K,EAAW5c,GAAQC,CAAK,GACzCD,GAAOC,CAAK,EAAEpgK,EAAOzP,EAAO,GAAIA,EAAQ6vK,CAAK,CAEpD,CAED,SAAS6jB,GAAWC,EAAM,CACtB,OAAQA,EAAO,IAAM,GAAKA,EAAO,MAAQ,GAAMA,EAAO,MAAQ,CACjE,CAED,IAAIC,GAAO,EACPC,GAAQ,EACRC,GAAO,EACPC,GAAO,EACPC,GAAS,EACTC,GAAS,EACTC,GAAc,EACdC,GAAO,EACPC,GAAU,EAIdjF,GAAe,IAAK,EAAG,EAAG,UAAY,CAClC,IAAIhtN,EAAI,KAAK,OACb,OAAOA,GAAK,KAAOssN,EAAStsN,EAAG,CAAC,EAAI,IAAMA,CAClD,CAAK,EAEDgtN,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,KAAM,EAAG,GAC7B,CAAK,EAEDA,GAAe,EAAG,CAAC,OAAQ,CAAC,EAAG,EAAG,MAAM,EACxCA,GAAe,EAAG,CAAC,QAAS,CAAC,EAAG,EAAG,MAAM,EACzCA,GAAe,EAAG,CAAC,SAAU,EAAG,EAAI,EAAG,EAAG,MAAM,EAIhDoD,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,OAAQX,GAAWN,EAAM,EACvCiB,GAAc,QAASV,GAAWN,EAAM,EACxCgB,GAAc,SAAUV,GAAWN,EAAM,EAEzC+B,GAAc,CAAC,QAAS,QAAQ,EAAGM,EAAI,EACvCN,GAAc,OAAQ,SAAU7jL,EAAO0L,EAAO,CAC1CA,EAAMy4K,EAAI,EACNnkL,EAAM,SAAW,EAAIuvJ,EAAM,kBAAkBvvJ,CAAK,EAAI20H,GAAM30H,CAAK,CAC7E,CAAK,EACD6jL,GAAc,KAAM,SAAU7jL,EAAO0L,EAAO,CACxCA,EAAMy4K,EAAI,EAAI50B,EAAM,kBAAkBvvJ,CAAK,CACnD,CAAK,EACD6jL,GAAc,IAAK,SAAU7jL,EAAO0L,EAAO,CACvCA,EAAMy4K,EAAI,EAAI,SAASnkL,EAAO,EAAE,CACxC,CAAK,EAID,SAAS4kL,GAAWV,EAAM,CACtB,OAAOD,GAAWC,CAAI,EAAI,IAAM,GACnC,CAID30B,EAAM,kBAAoB,SAAUvvJ,EAAO,CACvC,OAAO20H,GAAM30H,CAAK,GAAK20H,GAAM30H,CAAK,EAAI,GAAK,KAAO,IAC1D,EAII,IAAI6kL,GAAaC,GAAW,WAAY,EAAI,EAE5C,SAASC,IAAgB,CACrB,OAAOd,GAAW,KAAK,KAAI,CAAE,CAChC,CAED,SAASa,GAAWE,EAAMC,EAAU,CAChC,OAAO,SAAUtoM,EAAO,CACpB,OAAIA,GAAS,MACTuoM,GAAM,KAAMF,EAAMroM,CAAK,EACvB4yK,EAAM,aAAa,KAAM01B,CAAQ,EAC1B,MAEA1jM,GAAI,KAAMyjM,CAAI,CAErC,CACK,CAED,SAASzjM,GAAIw9L,EAAKiG,EAAM,CACpB,GAAI,CAACjG,EAAI,UACL,MAAO,KAGX,IAAInrN,EAAImrN,EAAI,GACRoG,EAAQpG,EAAI,OAEhB,OAAQiG,EAAI,CACR,IAAK,eACD,OAAOG,EAAQvxN,EAAE,mBAAoB,EAAGA,EAAE,gBAAe,EAC7D,IAAK,UACD,OAAOuxN,EAAQvxN,EAAE,cAAe,EAAGA,EAAE,WAAU,EACnD,IAAK,UACD,OAAOuxN,EAAQvxN,EAAE,cAAe,EAAGA,EAAE,WAAU,EACnD,IAAK,QACD,OAAOuxN,EAAQvxN,EAAE,YAAa,EAAGA,EAAE,SAAQ,EAC/C,IAAK,OACD,OAAOuxN,EAAQvxN,EAAE,WAAY,EAAGA,EAAE,QAAO,EAC7C,IAAK,MACD,OAAOuxN,EAAQvxN,EAAE,UAAW,EAAGA,EAAE,OAAM,EAC3C,IAAK,QACD,OAAOuxN,EAAQvxN,EAAE,YAAa,EAAGA,EAAE,SAAQ,EAC/C,IAAK,WACD,OAAOuxN,EAAQvxN,EAAE,eAAgB,EAAGA,EAAE,YAAW,EACrD,QACI,MAAO,IACd,CACJ,CAED,SAASsxN,GAAMnG,EAAKiG,EAAMroM,EAAO,CAC7B,IAAI/oB,EAAGuxN,EAAOjB,GAAMkB,GAAOh3G,GAE3B,GAAI,GAAC2wG,EAAI,QAAS,GAAI,MAAMpiM,CAAK,GAOjC,QAHA/oB,EAAImrN,EAAI,GACRoG,EAAQpG,EAAI,OAEJiG,EAAI,CACR,IAAK,eACD,OAAO,KAAMG,EACPvxN,EAAE,mBAAmB+oB,CAAK,EAC1B/oB,EAAE,gBAAgB+oB,CAAK,GACjC,IAAK,UACD,OAAO,KAAMwoM,EAAQvxN,EAAE,cAAc+oB,CAAK,EAAI/oB,EAAE,WAAW+oB,CAAK,GACpE,IAAK,UACD,OAAO,KAAMwoM,EAAQvxN,EAAE,cAAc+oB,CAAK,EAAI/oB,EAAE,WAAW+oB,CAAK,GACpE,IAAK,QACD,OAAO,KAAMwoM,EAAQvxN,EAAE,YAAY+oB,CAAK,EAAI/oB,EAAE,SAAS+oB,CAAK,GAChE,IAAK,OACD,OAAO,KAAMwoM,EAAQvxN,EAAE,WAAW+oB,CAAK,EAAI/oB,EAAE,QAAQ+oB,CAAK,GAK9D,IAAK,WACD,MACJ,QACI,MACP,CAEDunM,GAAOvnM,EACPyoM,GAAQrG,EAAI,QACZ3wG,GAAO2wG,EAAI,OACX3wG,GAAOA,KAAS,IAAMg3G,KAAU,GAAK,CAACnB,GAAWC,EAAI,EAAI,GAAK91G,GACxD+2G,EACAvxN,EAAE,eAAeswN,GAAMkB,GAAOh3G,EAAI,EAClCx6G,EAAE,YAAYswN,GAAMkB,GAAOh3G,EAAI,EACxC,CAID,SAASi3G,GAAUnE,EAAO,CAEtB,OADAA,EAAQD,GAAeC,CAAK,EACxB9vI,EAAW,KAAK8vI,CAAK,CAAC,EACf,KAAKA,CAAK,IAEd,IACV,CAED,SAASoE,GAAUpE,EAAOvkM,EAAO,CAC7B,GAAI,OAAOukM,GAAU,SAAU,CAC3BA,EAAQC,EAAqBD,CAAK,EAClC,IAAIqE,EAAc/D,GAAoBN,CAAK,EACvCzlM,EACA+pM,EAAiBD,EAAY,OACjC,IAAK9pM,EAAI,EAAGA,EAAI+pM,EAAgB/pM,IAC5B,KAAK8pM,EAAY9pM,CAAC,EAAE,IAAI,EAAEylM,EAAMqE,EAAY9pM,CAAC,EAAE,IAAI,CAAC,CAEpE,SACYylM,EAAQD,GAAeC,CAAK,EACxB9vI,EAAW,KAAK8vI,CAAK,CAAC,EACtB,OAAO,KAAKA,CAAK,EAAEvkM,CAAK,EAGhC,OAAO,IACV,CAED,SAAS8oM,GAAIxzN,EAAGQ,EAAG,CACf,OAASR,EAAIQ,EAAKA,GAAKA,CAC1B,CAED,IAAI4mH,GAEA,MAAM,UAAU,QAChBA,GAAU,MAAM,UAAU,QAE1BA,GAAU,SAAUlpF,EAAG,CAEnB,IAAI1U,EACJ,IAAKA,EAAI,EAAGA,EAAI,KAAK,OAAQ,EAAEA,EAC3B,GAAI,KAAKA,CAAC,IAAM0U,EACZ,OAAO1U,EAGf,MAAO,EACnB,EAGI,SAASiqM,GAAYxB,EAAMkB,EAAO,CAC9B,GAAI,MAAMlB,CAAI,GAAK,MAAMkB,CAAK,EAC1B,MAAO,KAEX,IAAIO,EAAWF,GAAIL,EAAO,EAAE,EAC5B,OAAAlB,IAASkB,EAAQO,GAAY,GACtBA,IAAa,EACd1B,GAAWC,CAAI,EACX,GACA,GACJ,GAAOyB,EAAW,EAAK,CAChC,CAIDjG,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,UAAY,CAC7C,OAAO,KAAK,MAAO,EAAG,CAC9B,CAAK,EAEDA,GAAe,MAAO,EAAG,EAAG,SAAUxpG,EAAQ,CAC1C,OAAO,KAAK,WAAY,EAAC,YAAY,KAAMA,CAAM,CACzD,CAAK,EAEDwpG,GAAe,OAAQ,EAAG,EAAG,SAAUxpG,EAAQ,CAC3C,OAAO,KAAK,WAAY,EAAC,OAAO,KAAMA,CAAM,CACpD,CAAK,EAID4sG,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,MAAO,SAAUE,EAAU3F,EAAQ,CAC7C,OAAOA,EAAO,iBAAiB2F,CAAQ,CAC/C,CAAK,EACDF,GAAc,OAAQ,SAAUE,EAAU3F,EAAQ,CAC9C,OAAOA,EAAO,YAAY2F,CAAQ,CAC1C,CAAK,EAEDa,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU7jL,EAAO0L,EAAO,CAC/CA,EAAM04K,EAAK,EAAIzvD,GAAM30H,CAAK,EAAI,CACtC,CAAK,EAED6jL,GAAc,CAAC,MAAO,MAAM,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ6vK,EAAO,CAClE,IAAIglB,EAAQ70L,EAAO,QAAQ,YAAYyP,EAAOogK,EAAO7vK,EAAO,OAAO,EAE/D60L,GAAS,KACT15K,EAAM04K,EAAK,EAAIgB,EAEf3H,EAAgBltL,CAAM,EAAE,aAAeyP,CAEnD,CAAK,EAID,IAAI4lL,GACI,wFAAwF,MACpF,GACH,EACLC,GACI,kDAAkD,MAAM,GAAG,EAC/DC,GAAmB,gCACnBC,GAA0BrD,GAC1BsD,GAAqBtD,GAEzB,SAASuD,GAAa/xN,EAAGgiH,EAAQ,CAC7B,OAAKhiH,EAKE6yE,EAAQ,KAAK,OAAO,EACrB,KAAK,QAAQ7yE,EAAE,OAAO,EACtB,KAAK,SACA,KAAK,QAAQ,UAAY4xN,IAAkB,KAAK5vG,CAAM,EACjD,SACA,YACxB,EAAgBhiH,EAAE,MAAK,CAAE,EAVN6yE,EAAQ,KAAK,OAAO,EACrB,KAAK,QACL,KAAK,QAAQ,UAS1B,CAED,SAASm/I,GAAkBhyN,EAAGgiH,EAAQ,CAClC,OAAKhiH,EAKE6yE,EAAQ,KAAK,YAAY,EAC1B,KAAK,aAAa7yE,EAAE,OAAO,EAC3B,KAAK,aACD4xN,GAAiB,KAAK5vG,CAAM,EAAI,SAAW,YAC7D,EAAgBhiH,EAAE,MAAK,CAAE,EARN6yE,EAAQ,KAAK,YAAY,EAC1B,KAAK,aACL,KAAK,aAAa,UAO/B,CAED,SAASo/I,GAAkBC,EAAWlwG,EAAQonG,EAAQ,CAClD,IAAI7hM,EACAtL,EACA4uM,GACAsH,GAAMD,EAAU,oBACpB,GAAI,CAAC,KAAK,aAKN,IAHA,KAAK,aAAe,GACpB,KAAK,iBAAmB,GACxB,KAAK,kBAAoB,GACpB3qM,EAAI,EAAGA,EAAI,GAAI,EAAEA,EAClBsjM,GAAM3B,EAAU,CAAC,IAAM3hM,CAAC,CAAC,EACzB,KAAK,kBAAkBA,CAAC,EAAI,KAAK,YAC7BsjM,GACA,EACH,EAAC,kBAAiB,EACnB,KAAK,iBAAiBtjM,CAAC,EAAI,KAAK,OAAOsjM,GAAK,EAAE,EAAE,oBAIxD,OAAIzB,EACIpnG,IAAW,OACX/lG,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,EAAG,EACtCl2M,IAAO,GAAKA,EAAK,OAExBA,EAAKkpG,GAAQ,KAAK,KAAK,iBAAkBgtG,EAAG,EACrCl2M,IAAO,GAAKA,EAAK,MAGxB+lG,IAAW,OACX/lG,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,EAAG,EACzCl2M,IAAO,GACAA,GAEXA,EAAKkpG,GAAQ,KAAK,KAAK,iBAAkBgtG,EAAG,EACrCl2M,IAAO,GAAKA,EAAK,QAExBA,EAAKkpG,GAAQ,KAAK,KAAK,iBAAkBgtG,EAAG,EACxCl2M,IAAO,GACAA,GAEXA,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,EAAG,EACtCl2M,IAAO,GAAKA,EAAK,MAGnC,CAED,SAASm2M,GAAkBF,EAAWlwG,EAAQonG,EAAQ,CAClD,IAAI7hM,EAAGsjM,EAAKljC,GAEZ,GAAI,KAAK,kBACL,OAAOsqC,GAAkB,KAAK,KAAMC,EAAWlwG,EAAQonG,CAAM,EAYjE,IATK,KAAK,eACN,KAAK,aAAe,GACpB,KAAK,iBAAmB,GACxB,KAAK,kBAAoB,IAMxB7hM,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAmBrB,GAjBAsjM,EAAM3B,EAAU,CAAC,IAAM3hM,CAAC,CAAC,EACrB6hM,GAAU,CAAC,KAAK,iBAAiB7hM,CAAC,IAClC,KAAK,iBAAiBA,CAAC,EAAI,IAAI,OAC3B,IAAM,KAAK,OAAOsjM,EAAK,EAAE,EAAE,QAAQ,IAAK,EAAE,EAAI,IAC9C,GACpB,EACgB,KAAK,kBAAkBtjM,CAAC,EAAI,IAAI,OAC5B,IAAM,KAAK,YAAYsjM,EAAK,EAAE,EAAE,QAAQ,IAAK,EAAE,EAAI,IACnD,GACpB,GAEgB,CAACzB,GAAU,CAAC,KAAK,aAAa7hM,CAAC,IAC/BogK,GACI,IAAM,KAAK,OAAOkjC,EAAK,EAAE,EAAI,KAAO,KAAK,YAAYA,EAAK,EAAE,EAChE,KAAK,aAAatjM,CAAC,EAAI,IAAI,OAAOogK,GAAM,QAAQ,IAAK,EAAE,EAAG,GAAG,GAI7DyhC,GACApnG,IAAW,QACX,KAAK,iBAAiBz6F,CAAC,EAAE,KAAK2qM,CAAS,EAEvC,OAAO3qM,EACJ,GACH6hM,GACApnG,IAAW,OACX,KAAK,kBAAkBz6F,CAAC,EAAE,KAAK2qM,CAAS,EAExC,OAAO3qM,EACJ,GAAI,CAAC6hM,GAAU,KAAK,aAAa7hM,CAAC,EAAE,KAAK2qM,CAAS,EACrD,OAAO3qM,CAEd,CACJ,CAID,SAAS8qM,GAASxH,EAAKpiM,EAAO,CAC1B,GAAI,CAACoiM,EAAI,UAEL,OAAOA,EAGX,GAAI,OAAOpiM,GAAU,UACjB,GAAI,QAAQ,KAAKA,CAAK,EAClBA,EAAQg4I,GAAMh4I,CAAK,UAEnBA,EAAQoiM,EAAI,WAAY,EAAC,YAAYpiM,CAAK,EAEtC,CAACsa,EAASta,CAAK,EACf,OAAOoiM,EAKnB,IAAIqG,EAAQzoM,EACRyxF,EAAO2wG,EAAI,OAEf,OAAA3wG,EAAOA,EAAO,GAAKA,EAAO,KAAK,IAAIA,EAAMs3G,GAAY3G,EAAI,OAAQqG,CAAK,CAAC,EACjErG,EAAI,OACJA,EAAI,GAAG,YAAYqG,EAAOh3G,CAAI,EAC9B2wG,EAAI,GAAG,SAASqG,EAAOh3G,CAAI,EAC1B2wG,CACV,CAED,SAASyH,GAAY7pM,EAAO,CACxB,OAAIA,GAAS,MACT4pM,GAAS,KAAM5pM,CAAK,EACpB4yK,EAAM,aAAa,KAAM,EAAI,EACtB,MAEAhuK,GAAI,KAAM,OAAO,CAE/B,CAED,SAASklM,IAAiB,CACtB,OAAOf,GAAY,KAAK,KAAM,EAAE,KAAK,MAAK,CAAE,CAC/C,CAED,SAASgB,GAAiB1D,EAAU,CAChC,OAAI,KAAK,mBACAjG,EAAW,KAAM,cAAc,GAChC4J,GAAmB,KAAK,IAAI,EAE5B3D,EACO,KAAK,wBAEL,KAAK,oBAGXjG,EAAW,KAAM,mBAAmB,IACrC,KAAK,kBAAoBgJ,IAEtB,KAAK,yBAA2B/C,EACjC,KAAK,wBACL,KAAK,kBAElB,CAED,SAAS4D,GAAY5D,EAAU,CAC3B,OAAI,KAAK,mBACAjG,EAAW,KAAM,cAAc,GAChC4J,GAAmB,KAAK,IAAI,EAE5B3D,EACO,KAAK,mBAEL,KAAK,eAGXjG,EAAW,KAAM,cAAc,IAChC,KAAK,aAAeiJ,IAEjB,KAAK,oBAAsBhD,EAC5B,KAAK,mBACL,KAAK,aAElB,CAED,SAAS2D,IAAqB,CAC1B,SAASE,EAAUh0N,GAAGK,GAAG,CACrB,OAAOA,GAAE,OAASL,GAAE,MACvB,CAED,IAAIi0N,EAAc,CAAE,EAChBC,EAAa,CAAE,EACfC,EAAc,CAAE,EAChBvrM,EACAsjM,GACAkI,GACAC,GACJ,IAAKzrM,EAAI,EAAGA,EAAI,GAAIA,IAEhBsjM,GAAM3B,EAAU,CAAC,IAAM3hM,CAAC,CAAC,EACzBwrM,GAAS7D,GAAY,KAAK,YAAYrE,GAAK,EAAE,CAAC,EAC9CmI,GAAQ9D,GAAY,KAAK,OAAOrE,GAAK,EAAE,CAAC,EACxC+H,EAAY,KAAKG,EAAM,EACvBF,EAAW,KAAKG,EAAK,EACrBF,EAAY,KAAKE,EAAK,EACtBF,EAAY,KAAKC,EAAM,EAI3BH,EAAY,KAAKD,CAAS,EAC1BE,EAAW,KAAKF,CAAS,EACzBG,EAAY,KAAKH,CAAS,EAE1B,KAAK,aAAe,IAAI,OAAO,KAAOG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACtE,KAAK,kBAAoB,KAAK,aAC9B,KAAK,mBAAqB,IAAI,OAC1B,KAAOD,EAAW,KAAK,GAAG,EAAI,IAC9B,GACZ,EACQ,KAAK,wBAA0B,IAAI,OAC/B,KAAOD,EAAY,KAAK,GAAG,EAAI,IAC/B,GACZ,CACK,CAED,SAASK,GAAWz0N,EAAGwB,EAAGN,EAAGG,EAAGJ,EAAG6nB,GAAG4rM,GAAI,CAGtC,IAAIh5G,GAEJ,OAAI17G,EAAI,KAAOA,GAAK,GAEhB07G,GAAO,IAAI,KAAK17G,EAAI,IAAKwB,EAAGN,EAAGG,EAAGJ,EAAG6nB,GAAG4rM,EAAE,EACtC,SAASh5G,GAAK,YAAW,CAAE,GAC3BA,GAAK,YAAY17G,CAAC,GAGtB07G,GAAO,IAAI,KAAK17G,EAAGwB,EAAGN,EAAGG,EAAGJ,EAAG6nB,GAAG4rM,EAAE,EAGjCh5G,EACV,CAED,SAASi5G,GAAc30N,EAAG,CACtB,IAAI07G,EAAMrtF,EAEV,OAAIruB,EAAI,KAAOA,GAAK,GAChBquB,EAAO,MAAM,UAAU,MAAM,KAAK,SAAS,EAE3CA,EAAK,CAAC,EAAIruB,EAAI,IACd07G,EAAO,IAAI,KAAK,KAAK,IAAI,MAAM,KAAMrtF,CAAI,CAAC,EACtC,SAASqtF,EAAK,eAAc,CAAE,GAC9BA,EAAK,eAAe17G,CAAC,GAGzB07G,EAAO,IAAI,KAAK,KAAK,IAAI,MAAM,KAAM,SAAS,CAAC,EAG5CA,CACV,CAGD,SAASk5G,GAAgBpD,EAAMqD,EAAKC,EAAK,CACrC,IACIC,EAAM,EAAIF,EAAMC,EAEhBE,GAAS,EAAIL,GAAcnD,EAAM,EAAGuD,CAAG,EAAE,UAAS,EAAKF,GAAO,EAElE,MAAO,CAACG,EAAQD,EAAM,CACzB,CAGD,SAASE,GAAmBzD,EAAM0D,EAAMC,EAASN,EAAKC,EAAK,CACvD,IAAIM,IAAgB,EAAID,EAAUN,GAAO,EACrCQ,GAAaT,GAAgBpD,EAAMqD,EAAKC,CAAG,EAC3CQ,GAAY,EAAI,GAAKJ,EAAO,GAAKE,GAAeC,GAChDE,GACAC,GAEJ,OAAIF,IAAa,GACbC,GAAU/D,EAAO,EACjBgE,GAAetD,GAAWqD,EAAO,EAAID,IAC9BA,GAAYpD,GAAWV,CAAI,GAClC+D,GAAU/D,EAAO,EACjBgE,GAAeF,GAAYpD,GAAWV,CAAI,IAE1C+D,GAAU/D,EACVgE,GAAeF,IAGZ,CACH,KAAMC,GACN,UAAWC,EACvB,CACK,CAED,SAASC,GAAWpJ,EAAKwI,EAAKC,EAAK,CAC/B,IAAIO,EAAaT,GAAgBvI,EAAI,KAAM,EAAEwI,EAAKC,CAAG,EACjDI,EAAO,KAAK,OAAO7I,EAAI,UAAW,EAAGgJ,EAAa,GAAK,CAAC,EAAI,EAC5DK,GACAH,GAEJ,OAAIL,EAAO,GACPK,GAAUlJ,EAAI,KAAM,EAAG,EACvBqJ,GAAUR,EAAOS,GAAYJ,GAASV,EAAKC,CAAG,GACvCI,EAAOS,GAAYtJ,EAAI,OAAQwI,EAAKC,CAAG,GAC9CY,GAAUR,EAAOS,GAAYtJ,EAAI,OAAQwI,EAAKC,CAAG,EACjDS,GAAUlJ,EAAI,KAAM,EAAG,IAEvBkJ,GAAUlJ,EAAI,OACdqJ,GAAUR,GAGP,CACH,KAAMQ,GACN,KAAMH,EAClB,CACK,CAED,SAASI,GAAYnE,EAAMqD,EAAKC,EAAK,CACjC,IAAIO,EAAaT,GAAgBpD,EAAMqD,EAAKC,CAAG,EAC3Cc,EAAiBhB,GAAgBpD,EAAO,EAAGqD,EAAKC,CAAG,EACvD,OAAQ5C,GAAWV,CAAI,EAAI6D,EAAaO,GAAkB,CAC7D,CAID5I,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,MAAM,EAC3CA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,SAAS,EAI9CoD,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EAErCoC,GACI,CAAC,IAAK,KAAM,IAAK,IAAI,EACrB,SAAU/jL,EAAO4nL,EAAMr3L,EAAQ6vK,EAAO,CAClCwnB,EAAKxnB,EAAM,OAAO,EAAG,CAAC,CAAC,EAAIzrC,GAAM30H,CAAK,CACzC,CACT,EAMI,SAASuoL,GAAWxJ,EAAK,CACrB,OAAOoJ,GAAWpJ,EAAK,KAAK,MAAM,IAAK,KAAK,MAAM,GAAG,EAAE,IAC1D,CAED,IAAIyJ,GAAoB,CACpB,IAAK,EACL,IAAK,CACb,EAEI,SAASC,IAAuB,CAC5B,OAAO,KAAK,MAAM,GACrB,CAED,SAASC,IAAuB,CAC5B,OAAO,KAAK,MAAM,GACrB,CAID,SAASC,GAAW3oL,EAAO,CACvB,IAAI4nL,EAAO,KAAK,WAAY,EAAC,KAAK,IAAI,EACtC,OAAO5nL,GAAS,KAAO4nL,EAAO,KAAK,KAAK5nL,EAAQ4nL,GAAQ,EAAG,GAAG,CACjE,CAED,SAASgB,GAAc5oL,EAAO,CAC1B,IAAI4nL,EAAOO,GAAW,KAAM,EAAG,CAAC,EAAE,KAClC,OAAOnoL,GAAS,KAAO4nL,EAAO,KAAK,KAAK5nL,EAAQ4nL,GAAQ,EAAG,GAAG,CACjE,CAIDlI,GAAe,IAAK,EAAG,KAAM,KAAK,EAElCA,GAAe,KAAM,EAAG,EAAG,SAAUxpG,EAAQ,CACzC,OAAO,KAAK,WAAY,EAAC,YAAY,KAAMA,CAAM,CACzD,CAAK,EAEDwpG,GAAe,MAAO,EAAG,EAAG,SAAUxpG,EAAQ,CAC1C,OAAO,KAAK,WAAY,EAAC,cAAc,KAAMA,CAAM,CAC3D,CAAK,EAEDwpG,GAAe,OAAQ,EAAG,EAAG,SAAUxpG,EAAQ,CAC3C,OAAO,KAAK,WAAY,EAAC,SAAS,KAAMA,CAAM,CACtD,CAAK,EAEDwpG,GAAe,IAAK,EAAG,EAAG,SAAS,EACnCA,GAAe,IAAK,EAAG,EAAG,YAAY,EAItCoD,GAAc,IAAKf,EAAS,EAC5Be,GAAc,IAAKf,EAAS,EAC5Be,GAAc,IAAKf,EAAS,EAC5Be,GAAc,KAAM,SAAUE,EAAU3F,EAAQ,CAC5C,OAAOA,EAAO,iBAAiB2F,CAAQ,CAC/C,CAAK,EACDF,GAAc,MAAO,SAAUE,EAAU3F,EAAQ,CAC7C,OAAOA,EAAO,mBAAmB2F,CAAQ,CACjD,CAAK,EACDF,GAAc,OAAQ,SAAUE,EAAU3F,EAAQ,CAC9C,OAAOA,EAAO,cAAc2F,CAAQ,CAC5C,CAAK,EAEDe,GAAkB,CAAC,KAAM,MAAO,MAAM,EAAG,SAAU/jL,EAAO4nL,EAAMr3L,EAAQ6vK,EAAO,CAC3E,IAAIynB,EAAUt3L,EAAO,QAAQ,cAAcyP,EAAOogK,EAAO7vK,EAAO,OAAO,EAEnEs3L,GAAW,KACXD,EAAK,EAAIC,EAETpK,EAAgBltL,CAAM,EAAE,eAAiByP,CAErD,CAAK,EAED+jL,GAAkB,CAAC,IAAK,IAAK,GAAG,EAAG,SAAU/jL,EAAO4nL,EAAMr3L,EAAQ6vK,EAAO,CACrEwnB,EAAKxnB,CAAK,EAAIzrC,GAAM30H,CAAK,CACjC,CAAK,EAID,SAAS6oL,GAAa7oL,EAAOq9K,EAAQ,CACjC,OAAI,OAAOr9K,GAAU,SACVA,EAGN,MAAMA,CAAK,GAIhBA,EAAQq9K,EAAO,cAAcr9K,CAAK,EAC9B,OAAOA,GAAU,SACVA,EAGJ,MARI,SAASA,EAAO,EAAE,CAShC,CAED,SAAS8oL,GAAgB9oL,EAAOq9K,EAAQ,CACpC,OAAI,OAAOr9K,GAAU,SACVq9K,EAAO,cAAcr9K,CAAK,EAAI,GAAK,EAEvC,MAAMA,CAAK,EAAI,KAAOA,CAChC,CAGD,SAAS+oL,GAAcC,EAAI/2N,EAAG,CAC1B,OAAO+2N,EAAG,MAAM/2N,EAAG,CAAC,EAAE,OAAO+2N,EAAG,MAAM,EAAG/2N,CAAC,CAAC,CAC9C,CAED,IAAIg3N,GACI,2DAA2D,MAAM,GAAG,EACxEC,GAA6B,8BAA8B,MAAM,GAAG,EACpEC,GAA2B,uBAAuB,MAAM,GAAG,EAC3DC,GAAuB1G,GACvB2G,GAA4B3G,GAC5B4G,GAA0B5G,GAE9B,SAAS6G,GAAer1N,EAAGgiH,EAAQ,CAC/B,IAAIszG,EAAWziJ,EAAQ,KAAK,SAAS,EAC/B,KAAK,UACL,KAAK,UACD7yE,GAAKA,IAAM,IAAQ,KAAK,UAAU,SAAS,KAAKgiH,CAAM,EAChD,SACA,YACxB,EACQ,OAAOhiH,IAAM,GACP60N,GAAcS,EAAU,KAAK,MAAM,GAAG,EACtCt1N,EACEs1N,EAASt1N,EAAE,KAAK,EAChBs1N,CACX,CAED,SAASC,GAAoBv1N,EAAG,CAC5B,OAAOA,IAAM,GACP60N,GAAc,KAAK,eAAgB,KAAK,MAAM,GAAG,EACjD70N,EACE,KAAK,eAAeA,EAAE,KAAK,EAC3B,KAAK,cAChB,CAED,SAASw1N,GAAkBx1N,EAAG,CAC1B,OAAOA,IAAM,GACP60N,GAAc,KAAK,aAAc,KAAK,MAAM,GAAG,EAC/C70N,EACE,KAAK,aAAaA,EAAE,KAAK,EACzB,KAAK,YAChB,CAED,SAASy1N,GAAoBC,EAAa1zG,EAAQonG,EAAQ,CACtD,IAAI7hM,EACAtL,EACA4uM,GACAsH,GAAMuD,EAAY,oBACtB,GAAI,CAAC,KAAK,eAKN,IAJA,KAAK,eAAiB,GACtB,KAAK,oBAAsB,GAC3B,KAAK,kBAAoB,GAEpBnuM,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACjBsjM,GAAM3B,EAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAI3hM,CAAC,EAChC,KAAK,kBAAkBA,CAAC,EAAI,KAAK,YAC7BsjM,GACA,EACH,EAAC,kBAAiB,EACnB,KAAK,oBAAoBtjM,CAAC,EAAI,KAAK,cAC/BsjM,GACA,EACH,EAAC,kBAAiB,EACnB,KAAK,eAAetjM,CAAC,EAAI,KAAK,SAASsjM,GAAK,EAAE,EAAE,oBAIxD,OAAIzB,EACIpnG,IAAW,QACX/lG,EAAKkpG,GAAQ,KAAK,KAAK,eAAgBgtG,EAAG,EACnCl2M,IAAO,GAAKA,EAAK,MACjB+lG,IAAW,OAClB/lG,EAAKkpG,GAAQ,KAAK,KAAK,oBAAqBgtG,EAAG,EACxCl2M,IAAO,GAAKA,EAAK,OAExBA,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,EAAG,EACtCl2M,IAAO,GAAKA,EAAK,MAGxB+lG,IAAW,QACX/lG,EAAKkpG,GAAQ,KAAK,KAAK,eAAgBgtG,EAAG,EACtCl2M,IAAO,KAGXA,EAAKkpG,GAAQ,KAAK,KAAK,oBAAqBgtG,EAAG,EAC3Cl2M,IAAO,IACAA,GAEXA,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,EAAG,EACtCl2M,IAAO,GAAKA,EAAK,OACjB+lG,IAAW,OAClB/lG,EAAKkpG,GAAQ,KAAK,KAAK,oBAAqBgtG,EAAG,EAC3Cl2M,IAAO,KAGXA,EAAKkpG,GAAQ,KAAK,KAAK,eAAgBgtG,EAAG,EACtCl2M,IAAO,IACAA,GAEXA,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,EAAG,EACtCl2M,IAAO,GAAKA,EAAK,QAExBA,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,EAAG,EACzCl2M,IAAO,KAGXA,EAAKkpG,GAAQ,KAAK,KAAK,eAAgBgtG,EAAG,EACtCl2M,IAAO,IACAA,GAEXA,EAAKkpG,GAAQ,KAAK,KAAK,oBAAqBgtG,EAAG,EACxCl2M,IAAO,GAAKA,EAAK,MAGnC,CAED,SAAS05M,GAAoBD,EAAa1zG,EAAQonG,EAAQ,CACtD,IAAI7hM,EAAGsjM,EAAKljC,GAEZ,GAAI,KAAK,oBACL,OAAO8tC,GAAoB,KAAK,KAAMC,EAAa1zG,EAAQonG,CAAM,EAUrE,IAPK,KAAK,iBACN,KAAK,eAAiB,GACtB,KAAK,kBAAoB,GACzB,KAAK,oBAAsB,GAC3B,KAAK,mBAAqB,IAGzB7hM,EAAI,EAAGA,EAAI,EAAGA,IAAK,CA6BpB,GA1BAsjM,EAAM3B,EAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAI3hM,CAAC,EAC5B6hM,GAAU,CAAC,KAAK,mBAAmB7hM,CAAC,IACpC,KAAK,mBAAmBA,CAAC,EAAI,IAAI,OAC7B,IAAM,KAAK,SAASsjM,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACpD,GACpB,EACgB,KAAK,oBAAoBtjM,CAAC,EAAI,IAAI,OAC9B,IAAM,KAAK,cAAcsjM,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACzD,GACpB,EACgB,KAAK,kBAAkBtjM,CAAC,EAAI,IAAI,OAC5B,IAAM,KAAK,YAAYsjM,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACvD,GACpB,GAEiB,KAAK,eAAetjM,CAAC,IACtBogK,GACI,IACA,KAAK,SAASkjC,EAAK,EAAE,EACrB,KACA,KAAK,cAAcA,EAAK,EAAE,EAC1B,KACA,KAAK,YAAYA,EAAK,EAAE,EAC5B,KAAK,eAAetjM,CAAC,EAAI,IAAI,OAAOogK,GAAM,QAAQ,IAAK,EAAE,EAAG,GAAG,GAI/DyhC,GACApnG,IAAW,QACX,KAAK,mBAAmBz6F,CAAC,EAAE,KAAKmuM,CAAW,EAE3C,OAAOnuM,EACJ,GACH6hM,GACApnG,IAAW,OACX,KAAK,oBAAoBz6F,CAAC,EAAE,KAAKmuM,CAAW,EAE5C,OAAOnuM,EACJ,GACH6hM,GACApnG,IAAW,MACX,KAAK,kBAAkBz6F,CAAC,EAAE,KAAKmuM,CAAW,EAE1C,OAAOnuM,EACJ,GAAI,CAAC6hM,GAAU,KAAK,eAAe7hM,CAAC,EAAE,KAAKmuM,CAAW,EACzD,OAAOnuM,CAEd,CACJ,CAID,SAASquM,GAAgB9pL,EAAO,CAC5B,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAGlC,IAAI+pL,EAAMxoM,GAAI,KAAM,KAAK,EACzB,OAAIye,GAAS,MACTA,EAAQ6oL,GAAa7oL,EAAO,KAAK,WAAY,GACtC,KAAK,IAAIA,EAAQ+pL,EAAK,GAAG,GAEzBA,CAEd,CAED,SAASC,EAAsBhqL,EAAO,CAClC,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAElC,IAAI6nL,GAAW,KAAK,MAAQ,EAAI,KAAK,WAAY,EAAC,MAAM,KAAO,EAC/D,OAAO7nL,GAAS,KAAO6nL,EAAU,KAAK,IAAI7nL,EAAQ6nL,EAAS,GAAG,CACjE,CAED,SAASoC,EAAmBjqL,EAAO,CAC/B,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAOlC,GAAIA,GAAS,KAAM,CACf,IAAI6nL,EAAUiB,GAAgB9oL,EAAO,KAAK,WAAY,GACtD,OAAO,KAAK,IAAI,KAAK,IAAG,EAAK,EAAI6nL,EAAUA,EAAU,CAAC,CAClE,KACY,QAAO,KAAK,IAAK,GAAI,CAE5B,CAED,SAASqC,EAAclH,EAAU,CAC7B,OAAI,KAAK,qBACAjG,EAAW,KAAM,gBAAgB,GAClCoN,GAAqB,KAAK,IAAI,EAE9BnH,EACO,KAAK,qBAEL,KAAK,iBAGXjG,EAAW,KAAM,gBAAgB,IAClC,KAAK,eAAiBqM,IAEnB,KAAK,sBAAwBpG,EAC9B,KAAK,qBACL,KAAK,eAElB,CAED,SAASoH,EAAmBpH,EAAU,CAClC,OAAI,KAAK,qBACAjG,EAAW,KAAM,gBAAgB,GAClCoN,GAAqB,KAAK,IAAI,EAE9BnH,EACO,KAAK,0BAEL,KAAK,sBAGXjG,EAAW,KAAM,qBAAqB,IACvC,KAAK,oBAAsBsM,IAExB,KAAK,2BAA6BrG,EACnC,KAAK,0BACL,KAAK,oBAElB,CAED,SAASqH,GAAiBrH,EAAU,CAChC,OAAI,KAAK,qBACAjG,EAAW,KAAM,gBAAgB,GAClCoN,GAAqB,KAAK,IAAI,EAE9BnH,EACO,KAAK,wBAEL,KAAK,oBAGXjG,EAAW,KAAM,mBAAmB,IACrC,KAAK,kBAAoBuM,IAEtB,KAAK,yBAA2BtG,EACjC,KAAK,wBACL,KAAK,kBAElB,CAED,SAASmH,IAAuB,CAC5B,SAAStD,EAAUh0N,GAAGK,GAAG,CACrB,OAAOA,GAAE,OAASL,GAAE,MACvB,CAED,IAAIy3N,EAAY,CAAE,EACdxD,EAAc,CAAE,EAChBC,EAAa,CAAE,EACfC,EAAc,CAAE,EAChBvrM,GACAsjM,GACAwL,GACAC,GACAC,GACJ,IAAKhvM,GAAI,EAAGA,GAAI,EAAGA,KAEfsjM,GAAM3B,EAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAI3hM,EAAC,EAChC8uM,GAAOnH,GAAY,KAAK,YAAYrE,GAAK,EAAE,CAAC,EAC5CyL,GAASpH,GAAY,KAAK,cAAcrE,GAAK,EAAE,CAAC,EAChD0L,GAAQrH,GAAY,KAAK,SAASrE,GAAK,EAAE,CAAC,EAC1CuL,EAAU,KAAKC,EAAI,EACnBzD,EAAY,KAAK0D,EAAM,EACvBzD,EAAW,KAAK0D,EAAK,EACrBzD,EAAY,KAAKuD,EAAI,EACrBvD,EAAY,KAAKwD,EAAM,EACvBxD,EAAY,KAAKyD,EAAK,EAI1BH,EAAU,KAAKzD,CAAS,EACxBC,EAAY,KAAKD,CAAS,EAC1BE,EAAW,KAAKF,CAAS,EACzBG,EAAY,KAAKH,CAAS,EAE1B,KAAK,eAAiB,IAAI,OAAO,KAAOG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACxE,KAAK,oBAAsB,KAAK,eAChC,KAAK,kBAAoB,KAAK,eAE9B,KAAK,qBAAuB,IAAI,OAC5B,KAAOD,EAAW,KAAK,GAAG,EAAI,IAC9B,GACZ,EACQ,KAAK,0BAA4B,IAAI,OACjC,KAAOD,EAAY,KAAK,GAAG,EAAI,IAC/B,GACZ,EACQ,KAAK,wBAA0B,IAAI,OAC/B,KAAOwD,EAAU,KAAK,GAAG,EAAI,IAC7B,GACZ,CACK,CAID,SAASI,IAAU,CACf,OAAO,KAAK,QAAU,IAAM,EAC/B,CAED,SAASC,IAAU,CACf,OAAO,KAAK,MAAO,GAAI,EAC1B,CAEDjL,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,MAAM,EACxCA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAGgL,EAAO,EACzChL,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAGiL,EAAO,EAEzCjL,GAAe,MAAO,EAAG,EAAG,UAAY,CACpC,MAAO,GAAKgL,GAAQ,MAAM,IAAI,EAAI1L,EAAS,KAAK,UAAW,CAAC,CACpE,CAAK,EAEDU,GAAe,QAAS,EAAG,EAAG,UAAY,CACtC,MACI,GACAgL,GAAQ,MAAM,IAAI,EAClB1L,EAAS,KAAK,QAAS,EAAE,CAAC,EAC1BA,EAAS,KAAK,QAAS,EAAE,CAAC,CAEtC,CAAK,EAEDU,GAAe,MAAO,EAAG,EAAG,UAAY,CACpC,MAAO,GAAK,KAAK,MAAO,EAAGV,EAAS,KAAK,UAAW,CAAC,CAC7D,CAAK,EAEDU,GAAe,QAAS,EAAG,EAAG,UAAY,CACtC,MACI,GACA,KAAK,MAAO,EACZV,EAAS,KAAK,QAAS,EAAE,CAAC,EAC1BA,EAAS,KAAK,QAAS,EAAE,CAAC,CAEtC,CAAK,EAED,SAAS4L,GAASxqB,EAAOyqB,EAAW,CAChCnL,GAAetf,EAAO,EAAG,EAAG,UAAY,CACpC,OAAO,KAAK,WAAU,EAAG,SACrB,KAAK,MAAO,EACZ,KAAK,QAAS,EACdyqB,CAChB,CACA,CAAS,CACJ,CAEDD,GAAS,IAAK,EAAI,EAClBA,GAAS,IAAK,EAAK,EAInB,SAASE,GAAc9H,EAAU3F,EAAQ,CACrC,OAAOA,EAAO,cACjB,CAEDyF,GAAc,IAAKgI,EAAa,EAChChI,GAAc,IAAKgI,EAAa,EAChChI,GAAc,IAAKf,GAAWa,EAAgB,EAC9CE,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAMf,GAAWJ,EAAM,EAErCmB,GAAc,MAAOd,EAAS,EAC9Bc,GAAc,QAASb,EAAS,EAChCa,GAAc,MAAOd,EAAS,EAC9Bc,GAAc,QAASb,EAAS,EAEhC4B,GAAc,CAAC,IAAK,IAAI,EAAGS,EAAI,EAC/BT,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACvD,IAAIw6L,EAASp2D,GAAM30H,CAAK,EACxB0L,EAAM44K,EAAI,EAAIyG,IAAW,GAAK,EAAIA,CAC1C,CAAK,EACDlH,GAAc,CAAC,IAAK,GAAG,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACtDA,EAAO,MAAQA,EAAO,QAAQ,KAAKyP,CAAK,EACxCzP,EAAO,UAAYyP,CAC3B,CAAK,EACD6jL,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACvDmb,EAAM44K,EAAI,EAAI3vD,GAAM30H,CAAK,EACzBy9K,EAAgBltL,CAAM,EAAE,QAAU,EAC1C,CAAK,EACDszL,GAAc,MAAO,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACjD,IAAIsuJ,EAAM7+I,EAAM,OAAS,EACzB0L,EAAM44K,EAAI,EAAI3vD,GAAM30H,EAAM,OAAO,EAAG6+I,CAAG,CAAC,EACxCnzI,EAAM64K,EAAM,EAAI5vD,GAAM30H,EAAM,OAAO6+I,CAAG,CAAC,EACvC4+B,EAAgBltL,CAAM,EAAE,QAAU,EAC1C,CAAK,EACDszL,GAAc,QAAS,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACnD,IAAIy6L,EAAOhrL,EAAM,OAAS,EACtBirL,EAAOjrL,EAAM,OAAS,EAC1B0L,EAAM44K,EAAI,EAAI3vD,GAAM30H,EAAM,OAAO,EAAGgrL,CAAI,CAAC,EACzCt/K,EAAM64K,EAAM,EAAI5vD,GAAM30H,EAAM,OAAOgrL,EAAM,CAAC,CAAC,EAC3Ct/K,EAAM84K,EAAM,EAAI7vD,GAAM30H,EAAM,OAAOirL,CAAI,CAAC,EACxCxN,EAAgBltL,CAAM,EAAE,QAAU,EAC1C,CAAK,EACDszL,GAAc,MAAO,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACjD,IAAIsuJ,EAAM7+I,EAAM,OAAS,EACzB0L,EAAM44K,EAAI,EAAI3vD,GAAM30H,EAAM,OAAO,EAAG6+I,CAAG,CAAC,EACxCnzI,EAAM64K,EAAM,EAAI5vD,GAAM30H,EAAM,OAAO6+I,CAAG,CAAC,CAC/C,CAAK,EACDglC,GAAc,QAAS,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACnD,IAAIy6L,EAAOhrL,EAAM,OAAS,EACtBirL,EAAOjrL,EAAM,OAAS,EAC1B0L,EAAM44K,EAAI,EAAI3vD,GAAM30H,EAAM,OAAO,EAAGgrL,CAAI,CAAC,EACzCt/K,EAAM64K,EAAM,EAAI5vD,GAAM30H,EAAM,OAAOgrL,EAAM,CAAC,CAAC,EAC3Ct/K,EAAM84K,EAAM,EAAI7vD,GAAM30H,EAAM,OAAOirL,CAAI,CAAC,CAChD,CAAK,EAID,SAASC,GAAWlrL,EAAO,CAGvB,OAAQA,EAAQ,IAAI,YAAa,EAAC,OAAO,CAAC,IAAM,GACnD,CAED,IAAImrL,GAA6B,gBAK7BC,GAAatG,GAAW,QAAS,EAAI,EAEzC,SAASuG,GAAeC,EAAOC,EAASC,EAAS,CAC7C,OAAIF,EAAQ,GACDE,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAE/B,CAED,IAAIC,GAAa,CACb,SAAU5M,EACV,eAAgBqB,GAChB,YAAaI,GACb,QAASE,GACT,uBAAwBC,GACxB,aAAcC,GAEd,OAAQkF,GACR,YAAaC,GAEb,KAAM2C,GAEN,SAAUS,GACV,YAAaE,GACb,cAAeD,GAEf,cAAeiC,EACvB,EAGQvwF,GAAU,CAAE,EACZ8wF,GAAiB,CAAE,EACnBC,GAEJ,SAASC,GAAaC,EAAM92G,EAAM,CAC9B,IAAIt5F,EACAqwM,EAAO,KAAK,IAAID,EAAK,OAAQ92G,EAAK,MAAM,EAC5C,IAAKt5F,EAAI,EAAGA,EAAIqwM,EAAMrwM,GAAK,EACvB,GAAIowM,EAAKpwM,CAAC,IAAMs5F,EAAKt5F,CAAC,EAClB,OAAOA,EAGf,OAAOqwM,CACV,CAED,SAASC,GAAgB35L,EAAK,CAC1B,OAAOA,GAAMA,EAAI,YAAa,EAAC,QAAQ,IAAK,GAAG,CAClD,CAKD,SAAS45L,GAAa3kJ,EAAO,CAOzB,QANI5rD,EAAI,EACJ4kC,EACA2rB,EACAqxI,EACA30I,GAEGjtD,EAAI4rD,EAAM,QAAQ,CAKrB,IAJAqB,GAAQqjJ,GAAgB1kJ,EAAM5rD,CAAC,CAAC,EAAE,MAAM,GAAG,EAC3C4kC,EAAIqoB,GAAM,OACVsD,EAAO+/I,GAAgB1kJ,EAAM5rD,EAAI,CAAC,CAAC,EACnCuwD,EAAOA,EAAOA,EAAK,MAAM,GAAG,EAAI,KACzB3rB,EAAI,GAAG,CAEV,GADAg9J,EAAS4O,GAAWvjJ,GAAM,MAAM,EAAGroB,CAAC,EAAE,KAAK,GAAG,CAAC,EAC3Cg9J,EACA,OAAOA,EAEX,GACIrxI,GACAA,EAAK,QAAU3rB,GACfurK,GAAaljJ,GAAOsD,CAAI,GAAK3rB,EAAI,EAGjC,MAEJA,GACH,CACD5kC,GACH,CACD,OAAOkwM,EACV,CAED,SAASO,GAAiBvqM,EAAM,CAG5B,MAAO,CAAC,EAAEA,GAAQA,EAAK,MAAM,aAAa,EAC7C,CAED,SAASsqM,GAAWtqM,EAAM,CACtB,IAAIwqM,EAAY,KACZC,EAEJ,GACIxxF,GAAQj5G,CAAI,IAAM,QAElBoyF,GACAA,EAAO,SACPm4G,GAAiBvqM,CAAI,EAErB,GAAI,CACAwqM,EAAYR,GAAa,MACzBS,EAAiBC,GACjBD,EAAe,YAAczqM,CAAI,EACjC2qM,GAAmBH,CAAS,CAC/B,MAAW,CAGRvxF,GAAQj5G,CAAI,EAAI,IACnB,CAEL,OAAOi5G,GAAQj5G,CAAI,CACtB,CAKD,SAAS2qM,GAAmBl6L,EAAKy7C,EAAQ,CACrC,IAAI5+B,EACJ,OAAI7c,IACIm2C,EAAYsF,CAAM,EAClB5+B,EAAOs9K,GAAUn6L,CAAG,EAEpB6c,EAAOu9K,GAAap6L,EAAKy7C,CAAM,EAG/B5+B,EAEA08K,GAAe18K,EAEX,OAAO,QAAY,KAAe,QAAQ,MAE1C,QAAQ,KACJ,UAAY7c,EAAM,wCAC1C,GAKeu5L,GAAa,KACvB,CAED,SAASa,GAAa7qM,EAAM4O,EAAQ,CAChC,GAAIA,IAAW,KAAM,CACjB,IAAI8sL,EACAqB,EAAe+M,GAEnB,GADAl7L,EAAO,KAAO5O,EACVi5G,GAAQj5G,CAAI,GAAK,KACjB68L,EACI,uBACA,yOAIpB,EACgBE,EAAe9jF,GAAQj5G,CAAI,EAAE,gBACtB4O,EAAO,cAAgB,KAC9B,GAAIqqG,GAAQrqG,EAAO,YAAY,GAAK,KAChCmuL,EAAe9jF,GAAQrqG,EAAO,YAAY,EAAE,gBAE5C8sL,EAAS4O,GAAW17L,EAAO,YAAY,EACnC8sL,GAAU,KACVqB,EAAerB,EAAO,YAEtB,QAAKqO,GAAen7L,EAAO,YAAY,IACnCm7L,GAAen7L,EAAO,YAAY,EAAI,IAE1Cm7L,GAAen7L,EAAO,YAAY,EAAE,KAAK,CACrC,KAAM5O,EACN,OAAQ4O,CACpC,CAAyB,EACM,KAInB,OAAAqqG,GAAQj5G,CAAI,EAAI,IAAIi9L,EAAOH,EAAaC,EAAcnuL,CAAM,CAAC,EAEzDm7L,GAAe/pM,CAAI,GACnB+pM,GAAe/pM,CAAI,EAAE,QAAQ,SAAUlvB,EAAG,CACtC+5N,GAAa/5N,EAAE,KAAMA,EAAE,MAAM,CACjD,CAAiB,EAML65N,GAAmB3qM,CAAI,EAEhBi5G,GAAQj5G,CAAI,CAC/B,KAEY,eAAOi5G,GAAQj5G,CAAI,EACZ,IAEd,CAED,SAAS8qM,GAAa9qM,EAAM4O,EAAQ,CAChC,GAAIA,GAAU,KAAM,CAChB,IAAI8sL,EACAqP,EACAhO,EAAe+M,GAEf7wF,GAAQj5G,CAAI,GAAK,MAAQi5G,GAAQj5G,CAAI,EAAE,cAAgB,KAEvDi5G,GAAQj5G,CAAI,EAAE,IAAI88L,EAAa7jF,GAAQj5G,CAAI,EAAE,QAAS4O,CAAM,CAAC,GAG7Dm8L,EAAYT,GAAWtqM,CAAI,EACvB+qM,GAAa,OACbhO,EAAegO,EAAU,SAE7Bn8L,EAASkuL,EAAaC,EAAcnuL,CAAM,EACtCm8L,GAAa,OAIbn8L,EAAO,KAAO5O,GAElB07L,EAAS,IAAIuB,EAAOruL,CAAM,EAC1B8sL,EAAO,aAAeziF,GAAQj5G,CAAI,EAClCi5G,GAAQj5G,CAAI,EAAI07L,GAIpBiP,GAAmB3qM,CAAI,CACnC,MAEgBi5G,GAAQj5G,CAAI,GAAK,OACbi5G,GAAQj5G,CAAI,EAAE,cAAgB,MAC9Bi5G,GAAQj5G,CAAI,EAAIi5G,GAAQj5G,CAAI,EAAE,aAC1BA,IAAS2qM,MACTA,GAAmB3qM,CAAI,GAEpBi5G,GAAQj5G,CAAI,GAAK,MACxB,OAAOi5G,GAAQj5G,CAAI,GAI/B,OAAOi5G,GAAQj5G,CAAI,CACtB,CAGD,SAAS4qM,GAAUn6L,EAAK,CACpB,IAAIirL,EAMJ,GAJIjrL,GAAOA,EAAI,SAAWA,EAAI,QAAQ,QAClCA,EAAMA,EAAI,QAAQ,OAGlB,CAACA,EACD,OAAOu5L,GAGX,GAAI,CAAC5kJ,EAAQ30C,CAAG,EAAG,CAGf,GADAirL,EAAS4O,GAAW75L,CAAG,EACnBirL,EACA,OAAOA,EAEXjrL,EAAM,CAACA,CAAG,CACb,CAED,OAAO45L,GAAa55L,CAAG,CAC1B,CAED,SAASu6L,IAAc,CACnB,OAAOlxJ,EAAKm/D,EAAO,CACtB,CAED,SAASgyF,GAAc14N,EAAG,CACtB,IAAIgwD,EACArxD,EAAIqB,EAAE,GAEV,OAAIrB,GAAK4qN,EAAgBvpN,CAAC,EAAE,WAAa,KACrCgwD,EACIrxD,EAAEuxN,EAAK,EAAI,GAAKvxN,EAAEuxN,EAAK,EAAI,GACrBA,GACAvxN,EAAEwxN,EAAI,EAAI,GAAKxxN,EAAEwxN,EAAI,EAAIqB,GAAY7yN,EAAEsxN,EAAI,EAAGtxN,EAAEuxN,EAAK,CAAC,EACpDC,GACAxxN,EAAEyxN,EAAI,EAAI,GACRzxN,EAAEyxN,EAAI,EAAI,IACTzxN,EAAEyxN,EAAI,IAAM,KACRzxN,EAAE0xN,EAAM,IAAM,GACX1xN,EAAE2xN,EAAM,IAAM,GACd3xN,EAAE4xN,EAAW,IAAM,GAC3BH,GACAzxN,EAAE0xN,EAAM,EAAI,GAAK1xN,EAAE0xN,EAAM,EAAI,GAC3BA,GACA1xN,EAAE2xN,EAAM,EAAI,GAAK3xN,EAAE2xN,EAAM,EAAI,GAC3BA,GACA3xN,EAAE4xN,EAAW,EAAI,GAAK5xN,EAAE4xN,EAAW,EAAI,IACrCA,GACA,GAGhBhH,EAAgBvpN,CAAC,EAAE,qBAClBgwD,EAAWigK,IAAQjgK,EAAWmgK,MAE/BngK,EAAWmgK,IAEX5G,EAAgBvpN,CAAC,EAAE,gBAAkBgwD,IAAa,KAClDA,EAAWwgK,IAEXjH,EAAgBvpN,CAAC,EAAE,kBAAoBgwD,IAAa,KACpDA,EAAWygK,IAGflH,EAAgBvpN,CAAC,EAAE,SAAWgwD,GAG3BhwD,CACV,CAID,IAAI24N,GACI,iJACJC,GACI,6IACJC,GAAU,wBACVC,GAAW,CACP,CAAC,eAAgB,qBAAqB,EACtC,CAAC,aAAc,iBAAiB,EAChC,CAAC,eAAgB,gBAAgB,EACjC,CAAC,aAAc,cAAe,EAAK,EACnC,CAAC,WAAY,aAAa,EAC1B,CAAC,UAAW,aAAc,EAAK,EAC/B,CAAC,aAAc,YAAY,EAC3B,CAAC,WAAY,OAAO,EACpB,CAAC,aAAc,aAAa,EAC5B,CAAC,YAAa,cAAe,EAAK,EAClC,CAAC,UAAW,OAAO,EACnB,CAAC,SAAU,QAAS,EAAK,EACzB,CAAC,OAAQ,QAAS,EAAK,CAC1B,EAEDC,GAAW,CACP,CAAC,gBAAiB,qBAAqB,EACvC,CAAC,gBAAiB,oBAAoB,EACtC,CAAC,WAAY,gBAAgB,EAC7B,CAAC,QAAS,WAAW,EACrB,CAAC,cAAe,mBAAmB,EACnC,CAAC,cAAe,kBAAkB,EAClC,CAAC,SAAU,cAAc,EACzB,CAAC,OAAQ,UAAU,EACnB,CAAC,KAAM,MAAM,CAChB,EACDC,GAAkB,qBAElBC,GACI,0LACJC,GAAa,CACT,GAAI,EACJ,IAAK,EACL,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,EACtB,EAGI,SAASC,GAAc98L,EAAQ,CAC3B,IAAI9U,EACAzpB,EACA48B,EAAS2B,EAAO,GAChBikD,EAAQq4I,GAAiB,KAAKj+L,CAAM,GAAKk+L,GAAc,KAAKl+L,CAAM,EAClE0+L,GACAC,GACAC,GACAC,GACAC,GAAcV,GAAS,OACvBW,GAAcV,GAAS,OAE3B,GAAIz4I,EAAO,CAEP,IADAipI,EAAgBltL,CAAM,EAAE,IAAM,GACzB9U,EAAI,EAAGzpB,EAAI07N,GAAajyM,EAAIzpB,EAAGypB,IAChC,GAAIuxM,GAASvxM,CAAC,EAAE,CAAC,EAAE,KAAK+4D,EAAM,CAAC,CAAC,EAAG,CAC/B+4I,GAAaP,GAASvxM,CAAC,EAAE,CAAC,EAC1B6xM,GAAYN,GAASvxM,CAAC,EAAE,CAAC,IAAM,GAC/B,KACH,CAEL,GAAI8xM,IAAc,KAAM,CACpBh9L,EAAO,SAAW,GAClB,MACH,CACD,GAAIikD,EAAM,CAAC,EAAG,CACV,IAAK/4D,EAAI,EAAGzpB,EAAI27N,GAAalyM,EAAIzpB,EAAGypB,IAChC,GAAIwxM,GAASxxM,CAAC,EAAE,CAAC,EAAE,KAAK+4D,EAAM,CAAC,CAAC,EAAG,CAE/Bg5I,IAAch5I,EAAM,CAAC,GAAK,KAAOy4I,GAASxxM,CAAC,EAAE,CAAC,EAC9C,KACH,CAEL,GAAI+xM,IAAc,KAAM,CACpBj9L,EAAO,SAAW,GAClB,MACH,CACJ,CACD,GAAI,CAAC+8L,IAAaE,IAAc,KAAM,CAClCj9L,EAAO,SAAW,GAClB,MACH,CACD,GAAIikD,EAAM,CAAC,EACP,GAAIu4I,GAAQ,KAAKv4I,EAAM,CAAC,CAAC,EACrBi5I,GAAW,QACR,CACHl9L,EAAO,SAAW,GAClB,MACH,CAELA,EAAO,GAAKg9L,IAAcC,IAAc,KAAOC,IAAY,IAC3DG,GAA0Br9L,CAAM,CAC5C,MACYA,EAAO,SAAW,EAEzB,CAED,SAASs9L,GACLC,EACAC,EACAC,EACAC,EACAC,EACAC,GACF,CACE,IAAIp5L,GAAS,CACTq5L,GAAeN,CAAO,EACtBjI,GAAyB,QAAQkI,CAAQ,EACzC,SAASC,EAAQ,EAAE,EACnB,SAASC,EAAS,EAAE,EACpB,SAASC,EAAW,EAAE,CAClC,EAEQ,OAAIC,IACAp5L,GAAO,KAAK,SAASo5L,GAAW,EAAE,CAAC,EAGhCp5L,EACV,CAED,SAASq5L,GAAeN,EAAS,CAC7B,IAAI5J,EAAO,SAAS4J,EAAS,EAAE,EAC/B,OAAI5J,GAAQ,GACD,IAAOA,EACPA,GAAQ,IACR,KAAOA,EAEXA,CACV,CAED,SAASmK,GAAkB7yM,EAAG,CAE1B,OAAOA,EACF,QAAQ,qBAAsB,GAAG,EACjC,QAAQ,WAAY,GAAG,EACvB,QAAQ,SAAU,EAAE,EACpB,QAAQ,SAAU,EAAE,CAC5B,CAED,SAAS8yM,GAAaC,EAAYC,EAAaj+L,EAAQ,CACnD,GAAIg+L,EAAY,CAEZ,IAAIE,EAAkBvF,GAA2B,QAAQqF,CAAU,EAC/DG,EAAgB,IAAI,KAChBF,EAAY,CAAC,EACbA,EAAY,CAAC,EACbA,EAAY,CAAC,CAChB,EAAC,OAAM,EACZ,GAAIC,IAAoBC,EACpB,OAAAjR,EAAgBltL,CAAM,EAAE,gBAAkB,GAC1CA,EAAO,SAAW,GACX,EAEd,CACD,MAAO,EACV,CAED,SAASo+L,GAAgBC,EAAWC,EAAgBC,EAAW,CAC3D,GAAIF,EACA,OAAOxB,GAAWwB,CAAS,EACxB,GAAIC,EAEP,MAAO,GAEP,IAAIE,EAAK,SAASD,EAAW,EAAE,EAC3B56N,EAAI66N,EAAK,IACTh7N,IAAKg7N,EAAK76N,GAAK,IACnB,OAAOH,GAAI,GAAKG,CAEvB,CAGD,SAAS86N,GAAkBz+L,EAAQ,CAC/B,IAAIikD,EAAQ24I,GAAQ,KAAKkB,GAAkB99L,EAAO,EAAE,CAAC,EACjD0+L,EACJ,GAAIz6I,EAAO,CASP,GARAy6I,EAAcpB,GACVr5I,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,CACvB,EACgB,CAAC85I,GAAa95I,EAAM,CAAC,EAAGy6I,EAAa1+L,CAAM,EAC3C,OAGJA,EAAO,GAAK0+L,EACZ1+L,EAAO,KAAOo+L,GAAgBn6I,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAGA,EAAM,EAAE,CAAC,EAE3DjkD,EAAO,GAAK82L,GAAc,MAAM,KAAM92L,EAAO,EAAE,EAC/CA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAe,EAAGA,EAAO,IAAI,EAE/DktL,EAAgBltL,CAAM,EAAE,QAAU,EAC9C,MACYA,EAAO,SAAW,EAEzB,CAGD,SAAS2+L,GAAiB3+L,EAAQ,CAC9B,IAAI8yL,EAAU6J,GAAgB,KAAK38L,EAAO,EAAE,EAC5C,GAAI8yL,IAAY,KAAM,CAClB9yL,EAAO,GAAK,IAAI,KAAK,CAAC8yL,EAAQ,CAAC,CAAC,EAChC,MACH,CAGD,GADAgK,GAAc98L,CAAM,EAChBA,EAAO,WAAa,GACpB,OAAOA,EAAO,aAEd,QAIJ,GADAy+L,GAAkBz+L,CAAM,EACpBA,EAAO,WAAa,GACpB,OAAOA,EAAO,aAEd,QAGAA,EAAO,QACPA,EAAO,SAAW,GAGlBg/J,EAAM,wBAAwBh/J,CAAM,CAE3C,CAEDg/J,EAAM,wBAA0B6uB,EAC5B,gSAGA,SAAU7tL,EAAQ,CACdA,EAAO,GAAK,IAAI,KAAKA,EAAO,IAAMA,EAAO,QAAU,OAAS,GAAG,CAClE,CACT,EAGI,SAASqe,GAAS/7C,EAAGK,EAAGW,EAAG,CACvB,OAAIhB,GAGAK,GAGGW,CACV,CAED,SAASs7N,GAAiB5+L,EAAQ,CAE9B,IAAI6+L,EAAW,IAAI,KAAK7/B,EAAM,IAAK,GACnC,OAAIh/J,EAAO,QACA,CACH6+L,EAAS,eAAgB,EACzBA,EAAS,YAAa,EACtBA,EAAS,WAAY,CACrC,EAEe,CAACA,EAAS,cAAeA,EAAS,WAAYA,EAAS,QAAO,CAAE,CAC1E,CAMD,SAASC,GAAgB9+L,EAAQ,CAC7B,IAAI9U,EACA2yF,EACApuE,EAAQ,CAAE,EACVsvL,EACAC,GACAC,GAEJ,GAAI,CAAAj/L,EAAO,GAgCX,KA5BA++L,EAAcH,GAAiB5+L,CAAM,EAGjCA,EAAO,IAAMA,EAAO,GAAG8zL,EAAI,GAAK,MAAQ9zL,EAAO,GAAG6zL,EAAK,GAAK,MAC5DqL,GAAsBl/L,CAAM,EAI5BA,EAAO,YAAc,OACrBi/L,GAAY5gL,GAASre,EAAO,GAAG4zL,EAAI,EAAGmL,EAAYnL,EAAI,CAAC,GAGnD5zL,EAAO,WAAaq0L,GAAW4K,EAAS,GACxCj/L,EAAO,aAAe,KAEtBktL,EAAgBltL,CAAM,EAAE,mBAAqB,IAGjD69E,EAAOi5G,GAAcmI,GAAW,EAAGj/L,EAAO,UAAU,EACpDA,EAAO,GAAG6zL,EAAK,EAAIh2G,EAAK,YAAW,EACnC79E,EAAO,GAAG8zL,EAAI,EAAIj2G,EAAK,WAAU,GAQhC3yF,EAAI,EAAGA,EAAI,GAAK8U,EAAO,GAAG9U,CAAC,GAAK,KAAM,EAAEA,EACzC8U,EAAO,GAAG9U,CAAC,EAAIukB,EAAMvkB,CAAC,EAAI6zM,EAAY7zM,CAAC,EAI3C,KAAOA,EAAI,EAAGA,IACV8U,EAAO,GAAG9U,CAAC,EAAIukB,EAAMvkB,CAAC,EAClB8U,EAAO,GAAG9U,CAAC,GAAK,KAAQA,IAAM,EAAI,EAAI,EAAK8U,EAAO,GAAG9U,CAAC,EAK1D8U,EAAO,GAAG+zL,EAAI,IAAM,IACpB/zL,EAAO,GAAGg0L,EAAM,IAAM,GACtBh0L,EAAO,GAAGi0L,EAAM,IAAM,GACtBj0L,EAAO,GAAGk0L,EAAW,IAAM,IAE3Bl0L,EAAO,SAAW,GAClBA,EAAO,GAAG+zL,EAAI,EAAI,GAGtB/zL,EAAO,IAAMA,EAAO,QAAU82L,GAAgBF,IAAY,MACtD,KACAnnL,CACZ,EACQuvL,GAAkBh/L,EAAO,QACnBA,EAAO,GAAG,UAAW,EACrBA,EAAO,GAAG,SAIZA,EAAO,MAAQ,MACfA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAe,EAAGA,EAAO,IAAI,EAG/DA,EAAO,WACPA,EAAO,GAAG+zL,EAAI,EAAI,IAKlB/zL,EAAO,IACP,OAAOA,EAAO,GAAG,EAAM,KACvBA,EAAO,GAAG,IAAMg/L,KAEhB9R,EAAgBltL,CAAM,EAAE,gBAAkB,IAEjD,CAED,SAASk/L,GAAsBl/L,EAAQ,CACnC,IAAI/9B,EAAGk9N,EAAU9H,EAAMC,EAASN,GAAKC,GAAKmI,GAAMC,GAAiBC,GAEjEr9N,EAAI+9B,EAAO,GACP/9B,EAAE,IAAM,MAAQA,EAAE,GAAK,MAAQA,EAAE,GAAK,MACtC+0N,GAAM,EACNC,GAAM,EAMNkI,EAAW9gL,GACPp8C,EAAE,GACF+9B,EAAO,GAAG4zL,EAAI,EACdgE,GAAW2H,GAAa,EAAE,EAAG,CAAC,EAAE,IAChD,EACYlI,EAAOh5K,GAASp8C,EAAE,EAAG,CAAC,EACtBq1N,EAAUj5K,GAASp8C,EAAE,EAAG,CAAC,GACrBq1N,EAAU,GAAKA,EAAU,KACzB+H,GAAkB,MAGtBrI,GAAMh3L,EAAO,QAAQ,MAAM,IAC3Bi3L,GAAMj3L,EAAO,QAAQ,MAAM,IAE3Bs/L,GAAU1H,GAAW2H,GAAa,EAAEvI,GAAKC,EAAG,EAE5CkI,EAAW9gL,GAASp8C,EAAE,GAAI+9B,EAAO,GAAG4zL,EAAI,EAAG0L,GAAQ,IAAI,EAGvDjI,EAAOh5K,GAASp8C,EAAE,EAAGq9N,GAAQ,IAAI,EAE7Br9N,EAAE,GAAK,MAEPq1N,EAAUr1N,EAAE,GACRq1N,EAAU,GAAKA,EAAU,KACzB+H,GAAkB,KAEfp9N,EAAE,GAAK,MAEdq1N,EAAUr1N,EAAE,EAAI+0N,IACZ/0N,EAAE,EAAI,GAAKA,EAAE,EAAI,KACjBo9N,GAAkB,KAItB/H,EAAUN,IAGdK,EAAO,GAAKA,EAAOS,GAAYqH,EAAUnI,GAAKC,EAAG,EACjD/J,EAAgBltL,CAAM,EAAE,eAAiB,GAClCq/L,IAAmB,KAC1BnS,EAAgBltL,CAAM,EAAE,iBAAmB,IAE3Co/L,GAAOhI,GAAmB+H,EAAU9H,EAAMC,EAASN,GAAKC,EAAG,EAC3Dj3L,EAAO,GAAG4zL,EAAI,EAAIwL,GAAK,KACvBp/L,EAAO,WAAao/L,GAAK,UAEhC,CAGDpgC,EAAM,SAAW,UAAY,GAG7BA,EAAM,SAAW,UAAY,GAG7B,SAASq+B,GAA0Br9L,EAAQ,CAEvC,GAAIA,EAAO,KAAOg/J,EAAM,SAAU,CAC9B89B,GAAc98L,CAAM,EACpB,MACH,CACD,GAAIA,EAAO,KAAOg/J,EAAM,SAAU,CAC9By/B,GAAkBz+L,CAAM,EACxB,MACH,CACDA,EAAO,GAAK,GACZktL,EAAgBltL,CAAM,EAAE,MAAQ,GAGhC,IAAI3B,EAAS,GAAK2B,EAAO,GACrB9U,EACA+yM,EACAruB,EACAC,GACA2vB,GACAC,GAAephM,EAAO,OACtBqhM,GAAyB,EACzBC,GACApM,GAKJ,IAHA3jB,EACI6f,GAAazvL,EAAO,GAAIA,EAAO,OAAO,EAAE,MAAM+uL,CAAgB,GAAK,GACvEwE,GAAW3jB,EAAO,OACb1kL,EAAI,EAAGA,EAAIqoM,GAAUroM,IACtB2kL,GAAQD,EAAO1kL,CAAC,EAChB+yM,GAAe5/L,EAAO,MAAMs0L,GAAsB9iB,GAAO7vK,CAAM,CAAC,GAC5D,CAAE,GAAE,CAAC,EACLi+L,IACAuB,GAAUnhM,EAAO,OAAO,EAAGA,EAAO,QAAQ4/L,CAAW,CAAC,EAClDuB,GAAQ,OAAS,GACjBtS,EAAgBltL,CAAM,EAAE,YAAY,KAAKw/L,EAAO,EAEpDnhM,EAASA,EAAO,MACZA,EAAO,QAAQ4/L,CAAW,EAAIA,EAAY,MAC9D,EACgByB,IAA0BzB,EAAY,QAGtC/O,GAAqBrf,EAAK,GACtBouB,EACA/Q,EAAgBltL,CAAM,EAAE,MAAQ,GAEhCktL,EAAgBltL,CAAM,EAAE,aAAa,KAAK6vK,EAAK,EAEnD4jB,GAAwB5jB,GAAOouB,EAAaj+L,CAAM,GAC3CA,EAAO,SAAW,CAACi+L,GAC1B/Q,EAAgBltL,CAAM,EAAE,aAAa,KAAK6vK,EAAK,EAKvDqd,EAAgBltL,CAAM,EAAE,cACpBy/L,GAAeC,GACfrhM,EAAO,OAAS,GAChB6uL,EAAgBltL,CAAM,EAAE,YAAY,KAAK3B,CAAM,EAK/C2B,EAAO,GAAG+zL,EAAI,GAAK,IACnB7G,EAAgBltL,CAAM,EAAE,UAAY,IACpCA,EAAO,GAAG+zL,EAAI,EAAI,IAElB7G,EAAgBltL,CAAM,EAAE,QAAU,QAGtCktL,EAAgBltL,CAAM,EAAE,gBAAkBA,EAAO,GAAG,MAAM,CAAC,EAC3DktL,EAAgBltL,CAAM,EAAE,SAAWA,EAAO,UAE1CA,EAAO,GAAG+zL,EAAI,EAAI6L,GACd5/L,EAAO,QACPA,EAAO,GAAG+zL,EAAI,EACd/zL,EAAO,SACnB,EAGQ2/L,GAAMzS,EAAgBltL,CAAM,EAAE,IAC1B2/L,KAAQ,OACR3/L,EAAO,GAAG4zL,EAAI,EAAI5zL,EAAO,QAAQ,gBAAgB2/L,GAAK3/L,EAAO,GAAG4zL,EAAI,CAAC,GAGzEkL,GAAgB9+L,CAAM,EACtBq8L,GAAcr8L,CAAM,CACvB,CAED,SAAS4/L,GAAgB9S,EAAQ+S,EAAMxF,EAAU,CAC7C,IAAIyF,EAEJ,OAAIzF,GAAY,KAELwF,EAEP/S,EAAO,cAAgB,KAChBA,EAAO,aAAa+S,EAAMxF,CAAQ,GAClCvN,EAAO,MAAQ,OAEtBgT,EAAOhT,EAAO,KAAKuN,CAAQ,EACvByF,GAAQD,EAAO,KACfA,GAAQ,IAER,CAACC,GAAQD,IAAS,KAClBA,EAAO,IAEJA,EAKd,CAGD,SAASE,GAAyB//L,EAAQ,CACtC,IAAIggM,EACAC,EACAC,EACAh1M,EACAi1M,GACAC,GACAC,GAAoB,GACpBC,GAAatgM,EAAO,GAAG,OAE3B,GAAIsgM,KAAe,EAAG,CAClBpT,EAAgBltL,CAAM,EAAE,cAAgB,GACxCA,EAAO,GAAK,IAAI,KAAK,GAAG,EACxB,MACH,CAED,IAAK9U,EAAI,EAAGA,EAAIo1M,GAAYp1M,IACxBi1M,GAAe,EACfC,GAAmB,GACnBJ,EAAavS,EAAW,GAAIztL,CAAM,EAC9BA,EAAO,SAAW,OAClBggM,EAAW,QAAUhgM,EAAO,SAEhCggM,EAAW,GAAKhgM,EAAO,GAAG9U,CAAC,EAC3BmyM,GAA0B2C,CAAU,EAEhC1jJ,EAAQ0jJ,CAAU,IAClBI,GAAmB,IAIvBD,IAAgBjT,EAAgB8S,CAAU,EAAE,cAG5CG,IAAgBjT,EAAgB8S,CAAU,EAAE,aAAa,OAAS,GAElE9S,EAAgB8S,CAAU,EAAE,MAAQG,GAE/BE,GAaGF,GAAeD,IACfA,EAAcC,GACdF,EAAaD,IAbbE,GAAe,MACfC,GAAeD,GACfE,MAEAF,EAAcC,GACdF,EAAaD,EACTI,KACAC,GAAoB,KAWpCzT,EAAO5sL,EAAQigM,GAAcD,CAAU,CAC1C,CAED,SAASO,GAAiBvgM,EAAQ,CAC9B,GAAI,CAAAA,EAAO,GAIX,KAAI9U,EAAI0lM,EAAqB5wL,EAAO,EAAE,EAClCwgM,EAAYt1M,EAAE,MAAQ,OAAYA,EAAE,KAAOA,EAAE,IACjD8U,EAAO,GAAK3Q,EACR,CAACnE,EAAE,KAAMA,EAAE,MAAOs1M,EAAWt1M,EAAE,KAAMA,EAAE,OAAQA,EAAE,OAAQA,EAAE,WAAW,EACtE,SAAUq5D,EAAK,CACX,OAAOA,GAAO,SAASA,EAAK,EAAE,CACjC,CACb,EAEQu6I,GAAgB9+L,CAAM,EACzB,CAED,SAASygM,GAAiBzgM,EAAQ,CAC9B,IAAI82K,EAAM,IAAI6W,EAAO0O,GAAcqE,GAAc1gM,CAAM,CAAC,CAAC,EACzD,OAAI82K,EAAI,WAEJA,EAAI,IAAI,EAAG,GAAG,EACdA,EAAI,SAAW,QAGZA,CACV,CAED,SAAS4pB,GAAc1gM,EAAQ,CAC3B,IAAIyP,EAAQzP,EAAO,GACf2lF,EAAS3lF,EAAO,GAIpB,OAFAA,EAAO,QAAUA,EAAO,SAAWg8L,GAAUh8L,EAAO,EAAE,EAElDyP,IAAU,MAASk2E,IAAW,QAAal2E,IAAU,GAC9C69K,EAAc,CAAE,UAAW,EAAM,IAGxC,OAAO79K,GAAU,WACjBzP,EAAO,GAAKyP,EAAQzP,EAAO,QAAQ,SAASyP,CAAK,GAGjDm+K,EAASn+K,CAAK,EACP,IAAIk+K,EAAO0O,GAAc5sL,CAAK,CAAC,GAC/Bi9K,EAAOj9K,CAAK,EACnBzP,EAAO,GAAKyP,EACL+mC,EAAQmvC,CAAM,EACrBo6G,GAAyB//L,CAAM,EACxB2lF,EACP03G,GAA0Br9L,CAAM,EAEhC2gM,GAAgB3gM,CAAM,EAGrBs8C,EAAQt8C,CAAM,IACfA,EAAO,GAAK,MAGTA,GACV,CAED,SAAS2gM,GAAgB3gM,EAAQ,CAC7B,IAAIyP,EAAQzP,EAAO,GACfg4C,EAAYvoC,CAAK,EACjBzP,EAAO,GAAK,IAAI,KAAKg/J,EAAM,IAAK,GACzB0tB,EAAOj9K,CAAK,EACnBzP,EAAO,GAAK,IAAI,KAAKyP,EAAM,QAAS,GAC7B,OAAOA,GAAU,SACxBkvL,GAAiB3+L,CAAM,EAChBw2C,EAAQ/mC,CAAK,GACpBzP,EAAO,GAAK3Q,EAAIogB,EAAM,MAAM,CAAC,EAAG,SAAU80C,EAAK,CAC3C,OAAO,SAASA,EAAK,EAAE,CACvC,CAAa,EACDu6I,GAAgB9+L,CAAM,GACfs2C,EAAS7mC,CAAK,EACrB8wL,GAAiBvgM,CAAM,EAChB0G,EAAS+I,CAAK,EAErBzP,EAAO,GAAK,IAAI,KAAKyP,CAAK,EAE1BuvJ,EAAM,wBAAwBh/J,CAAM,CAE3C,CAED,SAASgtL,GAAiBv9K,EAAOk2E,EAAQmnG,EAAQC,EAAQ6H,EAAO,CAC5D,IAAItxN,GAAI,GAER,OAAIqiH,IAAW,IAAQA,IAAW,MAC9BonG,EAASpnG,EACTA,EAAS,SAGTmnG,IAAW,IAAQA,IAAW,MAC9BC,EAASD,EACTA,EAAS,SAIRx2I,EAAS7mC,CAAK,GAAKg9K,EAAch9K,CAAK,GACtC+mC,EAAQ/mC,CAAK,GAAKA,EAAM,SAAW,KAEpCA,EAAQ,QAIZnsC,GAAE,iBAAmB,GACrBA,GAAE,QAAUA,GAAE,OAASsxN,EACvBtxN,GAAE,GAAKwpN,EACPxpN,GAAE,GAAKmsC,EACPnsC,GAAE,GAAKqiH,EACPriH,GAAE,QAAUypN,EAEL0T,GAAiBn9N,EAAC,CAC5B,CAED,SAASi8N,GAAY9vL,EAAOk2E,EAAQmnG,EAAQC,EAAQ,CAChD,OAAOC,GAAiBv9K,EAAOk2E,EAAQmnG,EAAQC,EAAQ,EAAK,CAC/D,CAED,IAAI6T,GAAe/S,EACX,qGACA,UAAY,CACR,IAAIgT,EAAQtB,GAAY,MAAM,KAAM,SAAS,EAC7C,OAAI,KAAK,QAAO,GAAMsB,EAAM,QAAO,EACxBA,EAAQ,KAAO,KAAOA,EAEtBvT,EAAa,CAE3B,CACJ,EACDwT,GAAejT,EACX,qGACA,UAAY,CACR,IAAIgT,EAAQtB,GAAY,MAAM,KAAM,SAAS,EAC7C,OAAI,KAAK,QAAO,GAAMsB,EAAM,QAAO,EACxBA,EAAQ,KAAO,KAAOA,EAEtBvT,EAAa,CAE3B,CACb,EAOI,SAASyT,GAAOvlK,EAAIwlK,EAAS,CACzB,IAAIlqB,EAAK5rL,EAIT,GAHI81M,EAAQ,SAAW,GAAKxqJ,EAAQwqJ,EAAQ,CAAC,CAAC,IAC1CA,EAAUA,EAAQ,CAAC,GAEnB,CAACA,EAAQ,OACT,OAAOzB,GAAW,EAGtB,IADAzoB,EAAMkqB,EAAQ,CAAC,EACV91M,EAAI,EAAGA,EAAI81M,EAAQ,OAAQ,EAAE91M,GAC1B,CAAC81M,EAAQ91M,CAAC,EAAE,QAAS,GAAI81M,EAAQ91M,CAAC,EAAEswC,CAAE,EAAEs7I,CAAG,KAC3CA,EAAMkqB,EAAQ91M,CAAC,GAGvB,OAAO4rL,CACV,CAGD,SAAS/+I,IAAM,CACX,IAAIvnC,EAAO,GAAG,MAAM,KAAK,UAAW,CAAC,EAErC,OAAOuwM,GAAO,WAAYvwM,CAAI,CACjC,CAED,SAASwnC,IAAM,CACX,IAAIxnC,EAAO,GAAG,MAAM,KAAK,UAAW,CAAC,EAErC,OAAOuwM,GAAO,UAAWvwM,CAAI,CAChC,CAED,IAAIkjK,GAAM,UAAY,CAClB,OAAO,KAAK,IAAM,KAAK,IAAG,EAAK,CAAC,IAAI,IAC5C,EAEQutC,GAAW,CACX,OACA,UACA,QACA,OACA,MACA,OACA,SACA,SACA,aACR,EAEI,SAASC,GAAgBv9N,EAAG,CACxB,IAAIk+B,EACAs/L,EAAiB,GACjBj2M,EACAk2M,EAAWH,GAAS,OACxB,IAAKp/L,KAAOl+B,EACR,GACI6oN,EAAW7oN,EAAGk+B,CAAG,GACjB,EACIinF,GAAQ,KAAKm4G,GAAUp/L,CAAG,IAAM,KAC/Bl+B,EAAEk+B,CAAG,GAAK,MAAQ,CAAC,MAAMl+B,EAAEk+B,CAAG,CAAC,IAGpC,MAAO,GAIf,IAAK3W,EAAI,EAAGA,EAAIk2M,EAAU,EAAEl2M,EACxB,GAAIvnB,EAAEs9N,GAAS/1M,CAAC,CAAC,EAAG,CAChB,GAAIi2M,EACA,MAAO,GAEP,WAAWx9N,EAAEs9N,GAAS/1M,CAAC,CAAC,CAAC,IAAMk5I,GAAMzgK,EAAEs9N,GAAS/1M,CAAC,CAAC,CAAC,IACnDi2M,EAAiB,GAExB,CAGL,MAAO,EACV,CAED,SAASE,IAAY,CACjB,OAAO,KAAK,QACf,CAED,SAASC,IAAkB,CACvB,OAAOC,GAAe,GAAG,CAC5B,CAED,SAASC,GAAS31H,EAAU,CACxB,IAAIilH,EAAkBF,EAAqB/kH,CAAQ,EAC/C41H,EAAQ3Q,EAAgB,MAAQ,EAChC4Q,EAAW5Q,EAAgB,SAAW,EACtC6Q,EAAS7Q,EAAgB,OAAS,EAClC8Q,GAAQ9Q,EAAgB,MAAQA,EAAgB,SAAW,EAC3D5iB,GAAO4iB,EAAgB,KAAO,EAC9BiK,GAAQjK,EAAgB,MAAQ,EAChCkK,GAAUlK,EAAgB,QAAU,EACpCtjB,GAAUsjB,EAAgB,QAAU,EACpC+Q,GAAe/Q,EAAgB,aAAe,EAElD,KAAK,SAAWoQ,GAAgBpQ,CAAe,EAG/C,KAAK,cACD,CAAC+Q,GACDr0B,GAAU,IACVwtB,GAAU,IACVD,GAAQ,IAAO,GAAK,GAGxB,KAAK,MAAQ,CAAC7sB,GAAO0zB,GAAQ,EAI7B,KAAK,QAAU,CAACD,EAASD,EAAW,EAAID,EAAQ,GAEhD,KAAK,MAAQ,GAEb,KAAK,QAAUzF,KAEf,KAAK,QAAO,CACf,CAED,SAAS8F,GAAWv9I,EAAK,CACrB,OAAOA,aAAei9I,EACzB,CAED,SAASO,GAAS9xG,EAAQ,CACtB,OAAIA,EAAS,EACF,KAAK,MAAM,GAAKA,CAAM,EAAI,GAE1B,KAAK,MAAMA,CAAM,CAE/B,CAGD,SAAS+xG,GAAcC,EAAQC,EAAQC,EAAa,CAChD,IAAI9hK,EAAM,KAAK,IAAI4hK,EAAO,OAAQC,EAAO,MAAM,EAC3CE,EAAa,KAAK,IAAIH,EAAO,OAASC,EAAO,MAAM,EACnDG,GAAQ,EACRn3M,GACJ,IAAKA,GAAI,EAAGA,GAAIm1C,EAAKn1C,MAEZi3M,GAAeF,EAAO/2M,EAAC,IAAMg3M,EAAOh3M,EAAC,GACrC,CAACi3M,GAAe/9D,GAAM69D,EAAO/2M,EAAC,CAAC,IAAMk5I,GAAM89D,EAAOh3M,EAAC,CAAC,IAErDm3M,KAGR,OAAOA,GAAQD,CAClB,CAID,SAAS9kK,GAAOuyI,EAAOjtK,EAAW,CAC9BusL,GAAetf,EAAO,EAAG,EAAG,UAAY,CACpC,IAAIvyI,EAAS,KAAK,UAAW,EACzBwxJ,EAAO,IACX,OAAIxxJ,EAAS,IACTA,EAAS,CAACA,EACVwxJ,EAAO,KAGPA,EACAL,EAAS,CAAC,EAAEnxJ,EAAS,IAAK,CAAC,EAC3B16B,EACA6rL,EAAS,CAAC,CAACnxJ,EAAS,GAAI,CAAC,CAEzC,CAAS,CACJ,CAEDA,GAAO,IAAK,GAAG,EACfA,GAAO,KAAM,EAAE,EAIfi1J,GAAc,IAAKN,EAAgB,EACnCM,GAAc,KAAMN,EAAgB,EACpCqB,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACvDA,EAAO,QAAU,GACjBA,EAAO,KAAOsiM,GAAiBrQ,GAAkBxiL,CAAK,CAC9D,CAAK,EAOD,IAAI8yL,GAAc,kBAElB,SAASD,GAAiBtmG,EAAS39F,EAAQ,CACvC,IAAIiyF,GAAWjyF,GAAU,IAAI,MAAM29F,CAAO,EACtCwmG,EACAz0C,EACAitC,GAEJ,OAAI1qG,IAAY,KACL,MAGXkyG,EAAQlyG,EAAQA,EAAQ,OAAS,CAAC,GAAK,GACvCy9D,GAASy0C,EAAQ,IAAI,MAAMD,EAAW,GAAK,CAAC,IAAK,EAAG,CAAC,EACrDvH,GAAU,EAAEjtC,EAAM,CAAC,EAAI,IAAM3pB,GAAM2pB,EAAM,CAAC,CAAC,EAEpCitC,KAAY,EAAI,EAAIjtC,EAAM,CAAC,IAAM,IAAMitC,GAAU,CAACA,GAC5D,CAGD,SAASyH,GAAgBhzL,EAAOizL,EAAO,CACnC,IAAI5rB,EAAK0Z,EACT,OAAIkS,EAAM,QACN5rB,EAAM4rB,EAAM,QACZlS,GACK5C,EAASn+K,CAAK,GAAKi9K,EAAOj9K,CAAK,EAC1BA,EAAM,QAAS,EACf8vL,GAAY9vL,CAAK,EAAE,QAAS,GAAIqnK,EAAI,QAAO,EAErDA,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAO,EAAK0Z,CAAI,EACtCxxB,EAAM,aAAa8X,EAAK,EAAK,EACtBA,GAEAyoB,GAAY9vL,CAAK,EAAE,OAEjC,CAED,SAASkzL,GAAch/N,EAAG,CAGtB,MAAO,CAAC,KAAK,MAAMA,EAAE,GAAG,kBAAiB,CAAE,CAC9C,CAMDq7L,EAAM,aAAe,UAAY,GAcjC,SAAS4jC,GAAanzL,EAAOozL,EAAeC,EAAa,CACrD,IAAIxlK,EAAS,KAAK,SAAW,EACzBylK,EACJ,GAAI,CAAC,KAAK,UACN,OAAOtzL,GAAS,KAAO,KAAO,IAElC,GAAIA,GAAS,KAAM,CACf,GAAI,OAAOA,GAAU,UAEjB,GADAA,EAAQ6yL,GAAiBrQ,GAAkBxiL,CAAK,EAC5CA,IAAU,KACV,OAAO,UAEJ,KAAK,IAAIA,CAAK,EAAI,IAAM,CAACqzL,IAChCrzL,EAAQA,EAAQ,IAEpB,MAAI,CAAC,KAAK,QAAUozL,IAChBE,EAAcJ,GAAc,IAAI,GAEpC,KAAK,QAAUlzL,EACf,KAAK,OAAS,GACVszL,GAAe,MACf,KAAK,IAAIA,EAAa,GAAG,EAEzBzlK,IAAW7tB,IACP,CAACozL,GAAiB,KAAK,kBACvBG,GACI,KACAzB,GAAe9xL,EAAQ6tB,EAAQ,GAAG,EAClC,EACA,EACxB,EAC4B,KAAK,oBACb,KAAK,kBAAoB,GACzB0hI,EAAM,aAAa,KAAM,EAAI,EAC7B,KAAK,kBAAoB,OAG1B,IACnB,KACY,QAAO,KAAK,OAAS1hI,EAASqlK,GAAc,IAAI,CAEvD,CAED,SAASM,GAAWxzL,EAAOozL,EAAe,CACtC,OAAIpzL,GAAS,MACL,OAAOA,GAAU,WACjBA,EAAQ,CAACA,GAGb,KAAK,UAAUA,EAAOozL,CAAa,EAE5B,MAEA,CAAC,KAAK,WAEpB,CAED,SAASK,GAAeL,EAAe,CACnC,OAAO,KAAK,UAAU,EAAGA,CAAa,CACzC,CAED,SAASM,GAAiBN,EAAe,CACrC,OAAI,KAAK,SACL,KAAK,UAAU,EAAGA,CAAa,EAC/B,KAAK,OAAS,GAEVA,GACA,KAAK,SAASF,GAAc,IAAI,EAAG,GAAG,GAGvC,IACV,CAED,SAASS,IAA0B,CAC/B,GAAI,KAAK,MAAQ,KACb,KAAK,UAAU,KAAK,KAAM,GAAO,EAAI,UAC9B,OAAO,KAAK,IAAO,SAAU,CACpC,IAAIC,EAAQf,GAAiBtQ,GAAa,KAAK,EAAE,EAC7CqR,GAAS,KACT,KAAK,UAAUA,CAAK,EAEpB,KAAK,UAAU,EAAG,EAAI,CAE7B,CACD,OAAO,IACV,CAED,SAASC,GAAqB7zL,EAAO,CACjC,OAAK,KAAK,WAGVA,EAAQA,EAAQ8vL,GAAY9vL,CAAK,EAAE,UAAW,EAAG,GAEzC,KAAK,UAAS,EAAKA,GAAS,KAAO,GAJhC,EAKd,CAED,SAAS8zL,IAAuB,CAC5B,OACI,KAAK,UAAW,EAAG,KAAK,MAAO,EAAC,MAAM,CAAC,EAAE,UAAW,GACpD,KAAK,UAAW,EAAG,KAAK,MAAO,EAAC,MAAM,CAAC,EAAE,UAAW,CAE3D,CAED,SAASC,IAA8B,CACnC,GAAI,CAACxrJ,EAAY,KAAK,aAAa,EAC/B,OAAO,KAAK,cAGhB,IAAI10E,EAAI,CAAE,EACNu9N,EAEJ,OAAApT,EAAWnqN,EAAG,IAAI,EAClBA,EAAIo9N,GAAcp9N,CAAC,EAEfA,EAAE,IACFu9N,EAAQv9N,EAAE,OAASupN,EAAUvpN,EAAE,EAAE,EAAIi8N,GAAYj8N,EAAE,EAAE,EACrD,KAAK,cACD,KAAK,WAAa0+N,GAAc1+N,EAAE,GAAIu9N,EAAM,SAAS,EAAI,GAE7D,KAAK,cAAgB,GAGlB,KAAK,aACf,CAED,SAAS4C,IAAU,CACf,OAAO,KAAK,QAAS,EAAG,CAAC,KAAK,OAAS,EAC1C,CAED,SAASC,IAAc,CACnB,OAAO,KAAK,QAAO,EAAK,KAAK,OAAS,EACzC,CAED,SAASC,IAAQ,CACb,OAAO,KAAK,QAAO,EAAK,KAAK,QAAU,KAAK,UAAY,EAAI,EAC/D,CAGD,IAAIC,GAAc,wDAIdC,GACI,sKAER,SAAStC,GAAe9xL,EAAO5N,EAAK,CAChC,IAAIgqE,EAAWp8D,EAEXw0C,EAAQ,KACR6qI,EACAj4C,GACAitD,GAEJ,OAAIhC,GAAWryL,CAAK,EAChBo8D,EAAW,CACP,GAAIp8D,EAAM,cACV,EAAGA,EAAM,MACT,EAAGA,EAAM,OACzB,EACmB/I,EAAS+I,CAAK,GAAK,CAAC,MAAM,CAACA,CAAK,GACvCo8D,EAAW,GACPhqE,EACAgqE,EAAShqE,CAAG,EAAI,CAAC4N,EAEjBo8D,EAAS,aAAe,CAACp8D,IAErBw0C,EAAQ2/I,GAAY,KAAKn0L,CAAK,IACtCq/K,EAAO7qI,EAAM,CAAC,IAAM,IAAM,GAAK,EAC/B4nB,EAAW,CACP,EAAG,EACH,EAAGu4D,GAAMngF,EAAM6vI,EAAI,CAAC,EAAIhF,EACxB,EAAG1qD,GAAMngF,EAAM8vI,EAAI,CAAC,EAAIjF,EACxB,EAAG1qD,GAAMngF,EAAM+vI,EAAM,CAAC,EAAIlF,EAC1B,EAAG1qD,GAAMngF,EAAMgwI,EAAM,CAAC,EAAInF,EAC1B,GAAI1qD,GAAM29D,GAAS99I,EAAMiwI,EAAW,EAAI,GAAI,CAAC,EAAIpF,CACjE,IACoB7qI,EAAQ4/I,GAAS,KAAKp0L,CAAK,IACnCq/K,EAAO7qI,EAAM,CAAC,IAAM,IAAM,GAAK,EAC/B4nB,EAAW,CACP,EAAGk4H,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,CAC1C,GACmBjjH,GAAY,KAEnBA,EAAW,GAEX,OAAOA,GAAa,WACnB,SAAUA,GAAY,OAAQA,KAE/Bi4H,GAAUE,GACNzE,GAAY1zH,EAAS,IAAI,EACzB0zH,GAAY1zH,EAAS,EAAE,CACvC,EAEYA,EAAW,GACXA,EAAS,GAAKi4H,GAAQ,aACtBj4H,EAAS,EAAIi4H,GAAQ,QAGzBjtD,GAAM,IAAI2qD,GAAS31H,CAAQ,EAEvBi2H,GAAWryL,CAAK,GAAK+8K,EAAW/8K,EAAO,SAAS,IAChDonI,GAAI,QAAUpnI,EAAM,SAGpBqyL,GAAWryL,CAAK,GAAK+8K,EAAW/8K,EAAO,UAAU,IACjDonI,GAAI,SAAWpnI,EAAM,UAGlBonI,EACV,CAED0qD,GAAe,GAAKC,GAAS,UAC7BD,GAAe,QAAUD,GAEzB,SAASyC,GAASE,EAAKnV,EAAM,CAIzB,IAAIhY,EAAMmtB,GAAO,WAAWA,EAAI,QAAQ,IAAK,GAAG,CAAC,EAEjD,OAAQ,MAAMntB,CAAG,EAAI,EAAIA,GAAOgY,CACnC,CAED,SAASoV,GAA0Bl5L,EAAM61L,EAAO,CAC5C,IAAI/pB,EAAM,GAEV,OAAAA,EAAI,OACA+pB,EAAM,MAAK,EAAK71L,EAAK,MAAK,GAAM61L,EAAM,OAAS71L,EAAK,KAAI,GAAM,GAC9DA,EAAK,MAAO,EAAC,IAAI8rK,EAAI,OAAQ,GAAG,EAAE,QAAQ+pB,CAAK,GAC/C,EAAE/pB,EAAI,OAGVA,EAAI,aAAe,CAAC+pB,EAAQ,CAAC71L,EAAK,MAAO,EAAC,IAAI8rK,EAAI,OAAQ,GAAG,EAEtDA,CACV,CAED,SAASktB,GAAkBh5L,EAAM61L,EAAO,CACpC,IAAI/pB,EACJ,OAAM9rK,EAAK,QAAO,GAAM61L,EAAM,QAAS,GAIvCA,EAAQ4B,GAAgB5B,EAAO71L,CAAI,EAC/BA,EAAK,SAAS61L,CAAK,EACnB/pB,EAAMotB,GAA0Bl5L,EAAM61L,CAAK,GAE3C/pB,EAAMotB,GAA0BrD,EAAO71L,CAAI,EAC3C8rK,EAAI,aAAe,CAACA,EAAI,aACxBA,EAAI,OAAS,CAACA,EAAI,QAGfA,GAZI,CAAE,aAAc,EAAG,OAAQ,CAAC,CAa1C,CAGD,SAASqtB,GAAY3+K,EAAWp0B,EAAM,CAClC,OAAO,SAAU6mD,EAAKmsJ,EAAQ,CAC1B,IAAIC,EAAKt3B,GAET,OAAIq3B,IAAW,MAAQ,CAAC,MAAM,CAACA,CAAM,IACjCnW,EACI78L,EACA,YACIA,EACA,uDACAA,EACA,gGAExB,EACgB27K,GAAM90H,EACNA,EAAMmsJ,EACNA,EAASr3B,IAGbs3B,EAAM9C,GAAetpJ,EAAKmsJ,CAAM,EAChCpB,GAAY,KAAMqB,EAAK7+K,CAAS,EACzB,IACnB,CACK,CAED,SAASw9K,GAAYxU,EAAK3iH,EAAUy4H,EAAUC,EAAc,CACxD,IAAI1C,EAAeh2H,EAAS,cACxBqiG,GAAO6zB,GAASl2H,EAAS,KAAK,EAC9B81H,GAASI,GAASl2H,EAAS,OAAO,EAEjC2iH,EAAI,YAKT+V,EAAeA,GAAuB,GAElC5C,IACA3L,GAASxH,EAAKx9L,GAAIw9L,EAAK,OAAO,EAAImT,GAAS2C,CAAQ,EAEnDp2B,IACAymB,GAAMnG,EAAK,OAAQx9L,GAAIw9L,EAAK,MAAM,EAAItgB,GAAOo2B,CAAQ,EAErDzC,GACArT,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAS,EAAGqT,EAAeyC,CAAQ,EAEzDC,GACAvlC,EAAM,aAAawvB,EAAKtgB,IAAQyzB,EAAM,EAE7C,CAED,IAAIl6K,GAAM08K,GAAY,EAAG,KAAK,EAC1BK,GAAWL,GAAY,GAAI,UAAU,EAEzC,SAAStnJ,GAASptC,EAAO,CACrB,OAAO,OAAOA,GAAU,UAAYA,aAAiB,MACxD,CAGD,SAASg1L,GAAch1L,EAAO,CAC1B,OACIm+K,EAASn+K,CAAK,GACdi9K,EAAOj9K,CAAK,GACZotC,GAASptC,CAAK,GACd/I,EAAS+I,CAAK,GACdi1L,GAAsBj1L,CAAK,GAC3Bk1L,GAAoBl1L,CAAK,GACzBA,IAAU,MACVA,IAAU,MAEjB,CAED,SAASk1L,GAAoBl1L,EAAO,CAChC,IAAIm1L,EAAatuJ,EAAS7mC,CAAK,GAAK,CAACg9K,EAAch9K,CAAK,EACpDo1L,EAAe,GACfhqG,EAAa,CACT,QACA,OACA,IACA,SACA,QACA,IACA,OACA,MACA,IACA,QACA,OACA,IACA,QACA,OACA,IACA,UACA,SACA,IACA,UACA,SACA,IACA,eACA,cACA,IACH,EACD3vG,EACAiW,GACA2jM,GAAcjqG,EAAW,OAE7B,IAAK3vG,EAAI,EAAGA,EAAI45M,GAAa55M,GAAK,EAC9BiW,GAAW05F,EAAW3vG,CAAC,EACvB25M,EAAeA,GAAgBrY,EAAW/8K,EAAOtO,EAAQ,EAG7D,OAAOyjM,GAAcC,CACxB,CAED,SAASH,GAAsBj1L,EAAO,CAClC,IAAIs1L,EAAYvuJ,EAAQ/mC,CAAK,EACzBu1L,EAAe,GACnB,OAAID,IACAC,EACIv1L,EAAM,OAAO,SAAUvT,EAAM,CACzB,MAAO,CAACwK,EAASxK,CAAI,GAAK2gD,GAASptC,CAAK,CAC5D,CAAiB,EAAE,SAAW,GAEfs1L,GAAaC,CACvB,CAED,SAASC,GAAex1L,EAAO,CAC3B,IAAIm1L,EAAatuJ,EAAS7mC,CAAK,GAAK,CAACg9K,EAAch9K,CAAK,EACpDo1L,EAAe,GACfhqG,EAAa,CACT,UACA,UACA,UACA,WACA,WACA,UACH,EACD3vG,EACAiW,GAEJ,IAAKjW,EAAI,EAAGA,EAAI2vG,EAAW,OAAQ3vG,GAAK,EACpCiW,GAAW05F,EAAW3vG,CAAC,EACvB25M,EAAeA,GAAgBrY,EAAW/8K,EAAOtO,EAAQ,EAG7D,OAAOyjM,GAAcC,CACxB,CAED,SAASK,GAAkBC,EAAUzxC,EAAK,CACtC,IAAI88B,EAAO2U,EAAS,KAAKzxC,EAAK,OAAQ,EAAI,EAC1C,OAAO88B,EAAO,GACR,WACAA,EAAO,GACL,WACAA,EAAO,EACL,UACAA,EAAO,EACL,UACAA,EAAO,EACL,UACAA,EAAO,EACL,WACA,UACnB,CAED,SAAS4U,GAAW1hJ,EAAMiqC,EAAS,CAE3B,UAAU,SAAW,IAChB,UAAU,CAAC,EAGL82G,GAAc,UAAU,CAAC,CAAC,GACjC/gJ,EAAO,UAAU,CAAC,EAClBiqC,EAAU,QACHs3G,GAAe,UAAU,CAAC,CAAC,IAClCt3G,EAAU,UAAU,CAAC,EACrBjqC,EAAO,SAPPA,EAAO,OACPiqC,EAAU,SAWlB,IAAI+lE,EAAMhwG,GAAQ67I,GAAa,EAC3B8F,EAAM5C,GAAgB/uC,EAAK,IAAI,EAAE,QAAQ,KAAK,EAC9C/tE,EAASq5E,EAAM,eAAe,KAAMqmC,CAAG,GAAK,WAC5Ct7I,GACI4jC,IACC9sC,EAAW8sC,EAAQhI,CAAM,CAAC,EACrBgI,EAAQhI,CAAM,EAAE,KAAK,KAAM+tE,CAAG,EAC9B/lE,EAAQhI,CAAM,GAE5B,OAAO,KAAK,OACR57B,IAAU,KAAK,aAAa,SAAS47B,EAAQ,KAAM45G,GAAY7rC,CAAG,CAAC,CAC/E,CACK,CAED,SAAS4xC,IAAQ,CACb,OAAO,IAAI3X,EAAO,IAAI,CACzB,CAED,SAAS4X,GAAQ91L,EAAOkhL,EAAO,CAC3B,IAAI6U,EAAa5X,EAASn+K,CAAK,EAAIA,EAAQ8vL,GAAY9vL,CAAK,EAC5D,OAAM,KAAK,QAAO,GAAM+1L,EAAW,QAAS,GAG5C7U,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,EAAK6U,EAAW,QAAO,EAEnCA,EAAW,QAAS,EAAG,KAAK,MAAO,EAAC,QAAQ7U,CAAK,EAAE,WANnD,EAQd,CAED,SAAS8U,GAASh2L,EAAOkhL,EAAO,CAC5B,IAAI6U,EAAa5X,EAASn+K,CAAK,EAAIA,EAAQ8vL,GAAY9vL,CAAK,EAC5D,OAAM,KAAK,QAAO,GAAM+1L,EAAW,QAAS,GAG5C7U,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,EAAK6U,EAAW,QAAO,EAEnC,KAAK,MAAO,EAAC,MAAM7U,CAAK,EAAE,QAAS,EAAG6U,EAAW,WANjD,EAQd,CAED,SAASE,GAAUp6M,EAAMD,EAAIslM,EAAOgV,EAAa,CAC7C,IAAIC,EAAYhY,EAAStiM,CAAI,EAAIA,EAAOi0M,GAAYj0M,CAAI,EACpDu6M,GAAUjY,EAASviM,CAAE,EAAIA,EAAKk0M,GAAYl0M,CAAE,EAChD,OAAM,KAAK,WAAau6M,EAAU,WAAaC,GAAQ,QAAO,GAG9DF,EAAcA,GAAe,MAExBA,EAAY,CAAC,IAAM,IACd,KAAK,QAAQC,EAAWjV,CAAK,EAC7B,CAAC,KAAK,SAASiV,EAAWjV,CAAK,KACpCgV,EAAY,CAAC,IAAM,IACd,KAAK,SAASE,GAASlV,CAAK,EAC5B,CAAC,KAAK,QAAQkV,GAASlV,CAAK,IAT3B,EAWd,CAED,SAASmV,GAAOr2L,EAAOkhL,EAAO,CAC1B,IAAI6U,EAAa5X,EAASn+K,CAAK,EAAIA,EAAQ8vL,GAAY9vL,CAAK,EACxDs2L,EACJ,OAAM,KAAK,QAAO,GAAMP,EAAW,QAAS,GAG5C7U,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,IAAO6U,EAAW,QAAO,GAE5CO,EAAUP,EAAW,UAEjB,KAAK,MAAK,EAAG,QAAQ7U,CAAK,EAAE,QAAO,GAAMoV,GACzCA,GAAW,KAAK,MAAK,EAAG,MAAMpV,CAAK,EAAE,QAAS,IAT3C,EAYd,CAED,SAASqV,GAAcv2L,EAAOkhL,EAAO,CACjC,OAAO,KAAK,OAAOlhL,EAAOkhL,CAAK,GAAK,KAAK,QAAQlhL,EAAOkhL,CAAK,CAChE,CAED,SAASsV,GAAex2L,EAAOkhL,EAAO,CAClC,OAAO,KAAK,OAAOlhL,EAAOkhL,CAAK,GAAK,KAAK,SAASlhL,EAAOkhL,CAAK,CACjE,CAED,SAASH,GAAK/gL,EAAOkhL,EAAOuV,EAAS,CACjC,IAAIlmB,EAAMmmB,EAAWp8I,GAErB,GAAI,CAAC,KAAK,UACN,MAAO,KAKX,GAFAi2H,EAAOyiB,GAAgBhzL,EAAO,IAAI,EAE9B,CAACuwK,EAAK,UACN,MAAO,KAOX,OAJAmmB,GAAanmB,EAAK,UAAS,EAAK,KAAK,UAAW,GAAI,IAEpD2Q,EAAQD,GAAeC,CAAK,EAEpBA,EAAK,CACT,IAAK,OACD5mI,GAASq8I,GAAU,KAAMpmB,CAAI,EAAI,GACjC,MACJ,IAAK,QACDj2H,GAASq8I,GAAU,KAAMpmB,CAAI,EAC7B,MACJ,IAAK,UACDj2H,GAASq8I,GAAU,KAAMpmB,CAAI,EAAI,EACjC,MACJ,IAAK,SACDj2H,IAAU,KAAOi2H,GAAQ,IACzB,MACJ,IAAK,SACDj2H,IAAU,KAAOi2H,GAAQ,IACzB,MACJ,IAAK,OACDj2H,IAAU,KAAOi2H,GAAQ,KACzB,MACJ,IAAK,MACDj2H,IAAU,KAAOi2H,EAAOmmB,GAAa,MACrC,MACJ,IAAK,OACDp8I,IAAU,KAAOi2H,EAAOmmB,GAAa,OACrC,MACJ,QACIp8I,GAAS,KAAOi2H,CACvB,CAED,OAAOkmB,EAAUn8I,GAASopI,GAASppI,EAAM,CAC5C,CAED,SAASq8I,GAAU9jO,EAAGK,EAAG,CACrB,GAAIL,EAAE,KAAI,EAAKK,EAAE,KAAI,EAGjB,MAAO,CAACyjO,GAAUzjO,EAAGL,CAAC,EAG1B,IAAI+jO,GAAkB1jO,EAAE,KAAI,EAAKL,EAAE,QAAU,IAAMK,EAAE,MAAO,EAAGL,EAAE,MAAK,GAElEwrE,EAASxrE,EAAE,MAAK,EAAG,IAAI+jO,EAAgB,QAAQ,EAC/CC,EACAC,GAEJ,OAAI5jO,EAAImrE,EAAS,GACbw4J,EAAUhkO,EAAE,MAAO,EAAC,IAAI+jO,EAAiB,EAAG,QAAQ,EAEpDE,IAAU5jO,EAAImrE,IAAWA,EAASw4J,KAElCA,EAAUhkO,EAAE,MAAO,EAAC,IAAI+jO,EAAiB,EAAG,QAAQ,EAEpDE,IAAU5jO,EAAImrE,IAAWw4J,EAAUx4J,IAIhC,EAAEu4J,EAAiBE,KAAW,CACxC,CAEDvnC,EAAM,cAAgB,uBACtBA,EAAM,iBAAmB,yBAEzB,SAASj7I,IAAW,CAChB,OAAO,KAAK,QAAQ,OAAO,IAAI,EAAE,OAAO,kCAAkC,CAC7E,CAED,SAASyiL,GAAYC,EAAY,CAC7B,GAAI,CAAC,KAAK,UACN,OAAO,KAEX,IAAIC,EAAMD,IAAe,GACrB9iO,EAAI+iO,EAAM,KAAK,MAAK,EAAG,IAAK,EAAG,KACnC,OAAI/iO,EAAE,OAAS,GAAKA,EAAE,KAAM,EAAG,KACpB6rN,GACH7rN,EACA+iO,EACM,iCACA,8BACtB,EAEY7lJ,EAAW,KAAK,UAAU,WAAW,EAEjC6lJ,EACO,KAAK,SAAS,cAEd,IAAI,KAAK,KAAK,QAAO,EAAK,KAAK,UAAS,EAAK,GAAK,GAAI,EACxD,YAAa,EACb,QAAQ,IAAKlX,GAAa7rN,EAAG,GAAG,CAAC,EAGvC6rN,GACH7rN,EACA+iO,EAAM,+BAAiC,4BACnD,CACK,CAQD,SAASC,IAAU,CACf,GAAI,CAAC,KAAK,UACN,MAAO,qBAAuB,KAAK,GAAK,OAE5C,IAAI1kM,EAAO,SACP2kM,EAAO,GACPvlM,EACAsyL,EACAkT,EACAC,GACJ,OAAK,KAAK,YACN7kM,EAAO,KAAK,UAAS,IAAO,EAAI,aAAe,mBAC/C2kM,EAAO,KAEXvlM,EAAS,IAAMY,EAAO,MACtB0xL,EAAO,GAAK,KAAK,KAAM,GAAI,KAAK,QAAU,KAAO,OAAS,SAC1DkT,EAAW,wBACXC,GAASF,EAAO,OAET,KAAK,OAAOvlM,EAASsyL,EAAOkT,EAAWC,EAAM,CACvD,CAED,SAASnhH,GAAOohH,EAAa,CACpBA,IACDA,EAAc,KAAK,MAAO,EACpB/nC,EAAM,iBACNA,EAAM,eAEhB,IAAIj1G,EAASylI,GAAa,KAAMuX,CAAW,EAC3C,OAAO,KAAK,WAAU,EAAG,WAAWh9I,CAAM,CAC7C,CAED,SAASz+D,GAAKo4D,EAAM2sI,EAAe,CAC/B,OACI,KAAK,QAAS,IACZzC,EAASlqI,CAAI,GAAKA,EAAK,QAAS,GAAK67I,GAAY77I,CAAI,EAAE,WAElD69I,GAAe,CAAE,GAAI,KAAM,KAAM79I,CAAI,CAAE,EACzC,OAAO,KAAK,QAAQ,EACpB,SAAS,CAAC2sI,CAAa,EAErB,KAAK,aAAa,aAEhC,CAED,SAAS2W,GAAQ3W,EAAe,CAC5B,OAAO,KAAK,KAAKkP,GAAa,EAAElP,CAAa,CAChD,CAED,SAAShlM,GAAGq4D,EAAM2sI,EAAe,CAC7B,OACI,KAAK,QAAS,IACZzC,EAASlqI,CAAI,GAAKA,EAAK,QAAS,GAAK67I,GAAY77I,CAAI,EAAE,WAElD69I,GAAe,CAAE,KAAM,KAAM,GAAI79I,CAAI,CAAE,EACzC,OAAO,KAAK,QAAQ,EACpB,SAAS,CAAC2sI,CAAa,EAErB,KAAK,aAAa,aAEhC,CAED,SAAS4W,GAAM5W,EAAe,CAC1B,OAAO,KAAK,GAAGkP,GAAa,EAAElP,CAAa,CAC9C,CAKD,SAASvD,GAAOjrL,EAAK,CACjB,IAAIqlM,EAEJ,OAAIrlM,IAAQ,OACD,KAAK,QAAQ,OAEpBqlM,EAAgBlL,GAAUn6L,CAAG,EACzBqlM,GAAiB,OACjB,KAAK,QAAUA,GAEZ,KAEd,CAED,IAAIC,GAAOtZ,EACP,kJACA,SAAUhsL,EAAK,CACX,OAAIA,IAAQ,OACD,KAAK,aAEL,KAAK,OAAOA,CAAG,CAE7B,CACT,EAEI,SAAS6wL,IAAa,CAClB,OAAO,KAAK,OACf,CAED,IAAI0U,GAAgB,IAChBC,GAAgB,GAAKD,GACrBE,GAAc,GAAKD,GACnBE,IAAoB,IAAM,IAAM,IAAM,GAAKD,GAG/C,SAASE,GAAMC,EAAUC,EAAS,CAC9B,OAASD,EAAWC,EAAWA,GAAWA,CAC7C,CAED,SAASC,GAAiBxlO,EAAGwB,EAAGN,EAAG,CAE/B,OAAIlB,EAAI,KAAOA,GAAK,EAET,IAAI,KAAKA,EAAI,IAAKwB,EAAGN,CAAC,EAAIkkO,GAE1B,IAAI,KAAKplO,EAAGwB,EAAGN,CAAC,EAAE,SAEhC,CAED,SAASukO,GAAezlO,EAAGwB,EAAGN,EAAG,CAE7B,OAAIlB,EAAI,KAAOA,GAAK,EAET,KAAK,IAAIA,EAAI,IAAKwB,EAAGN,CAAC,EAAIkkO,GAE1B,KAAK,IAAIplO,EAAGwB,EAAGN,CAAC,CAE9B,CAED,SAASwkO,GAAQlX,EAAO,CACpB,IAAIjtI,EAAMokJ,EAEV,GADAnX,EAAQD,GAAeC,CAAK,EACxBA,IAAU,QAAaA,IAAU,eAAiB,CAAC,KAAK,UACxD,OAAO,KAKX,OAFAmX,EAAc,KAAK,OAASF,GAAiBD,GAErChX,EAAK,CACT,IAAK,OACDjtI,EAAOokJ,EAAY,KAAK,KAAI,EAAI,EAAG,CAAC,EACpC,MACJ,IAAK,UACDpkJ,EAAOokJ,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EAAI,KAAK,MAAK,EAAK,EAC/B,CACpB,EACgB,MACJ,IAAK,QACDpkJ,EAAOokJ,EAAY,KAAK,KAAI,EAAI,KAAK,MAAK,EAAI,CAAC,EAC/C,MACJ,IAAK,OACDpkJ,EAAOokJ,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAI,EAAK,KAAK,QAAS,CAChD,EACgB,MACJ,IAAK,UACDpkJ,EAAOokJ,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAM,GAAI,KAAK,WAAU,EAAK,EACvD,EACgB,MACJ,IAAK,MACL,IAAK,OACDpkJ,EAAOokJ,EAAY,KAAK,KAAM,EAAE,KAAK,QAAS,KAAK,KAAI,CAAE,EACzD,MACJ,IAAK,OACDpkJ,EAAO,KAAK,GAAG,UACfA,GAAQ8jJ,GACJ9jJ,GAAQ,KAAK,OAAS,EAAI,KAAK,UAAW,EAAG2jJ,IAC7CC,EACpB,EACgB,MACJ,IAAK,SACD5jJ,EAAO,KAAK,GAAG,UACfA,GAAQ8jJ,GAAM9jJ,EAAM2jJ,EAAa,EACjC,MACJ,IAAK,SACD3jJ,EAAO,KAAK,GAAG,UACfA,GAAQ8jJ,GAAM9jJ,EAAM0jJ,EAAa,EACjC,KACP,CAED,YAAK,GAAG,QAAQ1jJ,CAAI,EACpBs7G,EAAM,aAAa,KAAM,EAAI,EACtB,IACV,CAED,SAAS+oC,GAAMpX,EAAO,CAClB,IAAIjtI,EAAMokJ,EAEV,GADAnX,EAAQD,GAAeC,CAAK,EACxBA,IAAU,QAAaA,IAAU,eAAiB,CAAC,KAAK,UACxD,OAAO,KAKX,OAFAmX,EAAc,KAAK,OAASF,GAAiBD,GAErChX,EAAK,CACT,IAAK,OACDjtI,EAAOokJ,EAAY,KAAK,KAAI,EAAK,EAAG,EAAG,CAAC,EAAI,EAC5C,MACJ,IAAK,UACDpkJ,EACIokJ,EACI,KAAK,KAAM,EACX,KAAK,MAAK,EAAM,KAAK,MAAO,EAAG,EAAK,EACpC,CACH,EAAG,EACR,MACJ,IAAK,QACDpkJ,EAAOokJ,EAAY,KAAK,OAAQ,KAAK,MAAK,EAAK,EAAG,CAAC,EAAI,EACvD,MACJ,IAAK,OACDpkJ,EACIokJ,EACI,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAM,EAAG,KAAK,QAAS,EAAG,CAClC,EAAG,EACR,MACJ,IAAK,UACDpkJ,EACIokJ,EACI,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAI,GAAM,KAAK,WAAY,EAAG,GAAK,CAC3C,EAAG,EACR,MACJ,IAAK,MACL,IAAK,OACDpkJ,EAAOokJ,EAAY,KAAK,KAAM,EAAE,KAAK,MAAO,EAAE,KAAK,KAAI,EAAK,CAAC,EAAI,EACjE,MACJ,IAAK,OACDpkJ,EAAO,KAAK,GAAG,UACfA,GACI4jJ,GACAE,GACI9jJ,GAAQ,KAAK,OAAS,EAAI,KAAK,UAAW,EAAG2jJ,IAC7CC,EACH,EACD,EACJ,MACJ,IAAK,SACD5jJ,EAAO,KAAK,GAAG,UACfA,GAAQ2jJ,GAAgBG,GAAM9jJ,EAAM2jJ,EAAa,EAAI,EACrD,MACJ,IAAK,SACD3jJ,EAAO,KAAK,GAAG,UACfA,GAAQ0jJ,GAAgBI,GAAM9jJ,EAAM0jJ,EAAa,EAAI,EACrD,KACP,CAED,YAAK,GAAG,QAAQ1jJ,CAAI,EACpBs7G,EAAM,aAAa,KAAM,EAAI,EACtB,IACV,CAED,SAAS5yD,IAAU,CACf,OAAO,KAAK,GAAG,QAAS,GAAI,KAAK,SAAW,GAAK,GACpD,CAED,SAAS47F,IAAO,CACZ,OAAO,KAAK,MAAM,KAAK,QAAS,EAAG,GAAI,CAC1C,CAED,SAASC,IAAS,CACd,OAAO,IAAI,KAAK,KAAK,QAAS,EACjC,CAED,SAASl5M,IAAU,CACf,IAAIprB,EAAI,KACR,MAAO,CACHA,EAAE,KAAM,EACRA,EAAE,MAAO,EACTA,EAAE,KAAM,EACRA,EAAE,KAAM,EACRA,EAAE,OAAQ,EACVA,EAAE,OAAQ,EACVA,EAAE,YAAa,CAC3B,CACK,CAED,SAASukO,IAAW,CAChB,IAAIvkO,EAAI,KACR,MAAO,CACH,MAAOA,EAAE,KAAM,EACf,OAAQA,EAAE,MAAO,EACjB,KAAMA,EAAE,KAAM,EACd,MAAOA,EAAE,MAAO,EAChB,QAASA,EAAE,QAAS,EACpB,QAASA,EAAE,QAAS,EACpB,aAAcA,EAAE,aAAc,CAC1C,CACK,CAED,SAASwkO,IAAS,CAEd,OAAO,KAAK,QAAS,EAAG,KAAK,YAAW,EAAK,IAChD,CAED,SAASC,IAAY,CACjB,OAAO9rJ,EAAQ,IAAI,CACtB,CAED,SAAS+rJ,IAAe,CACpB,OAAOzb,EAAO,CAAE,EAAEM,EAAgB,IAAI,CAAC,CAC1C,CAED,SAASob,IAAY,CACjB,OAAOpb,EAAgB,IAAI,EAAE,QAChC,CAED,SAASqb,IAAe,CACpB,MAAO,CACH,MAAO,KAAK,GACZ,OAAQ,KAAK,GACb,OAAQ,KAAK,QACb,MAAO,KAAK,OACZ,OAAQ,KAAK,OACzB,CACK,CAEDpZ,GAAe,IAAK,EAAG,EAAG,SAAS,EACnCA,GAAe,KAAM,EAAG,EAAG,SAAS,EACpCA,GAAe,MAAO,EAAG,EAAG,SAAS,EACrCA,GAAe,OAAQ,EAAG,EAAG,SAAS,EACtCA,GAAe,QAAS,EAAG,EAAG,WAAW,EAEzCA,GAAe,IAAK,CAAC,IAAK,CAAC,EAAG,KAAM,SAAS,EAC7CA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,SAAS,EAC3CA,GAAe,IAAK,CAAC,MAAO,CAAC,EAAG,EAAG,SAAS,EAC5CA,GAAe,IAAK,CAAC,OAAQ,CAAC,EAAG,EAAG,SAAS,EAE7CoD,GAAc,IAAKiW,EAAY,EAC/BjW,GAAc,KAAMiW,EAAY,EAChCjW,GAAc,MAAOiW,EAAY,EACjCjW,GAAc,OAAQkW,EAAY,EAClClW,GAAc,QAASmW,EAAc,EAErCpV,GACI,CAAC,IAAK,KAAM,MAAO,OAAQ,OAAO,EAClC,SAAU7jL,EAAO0L,EAAOnb,EAAQ6vK,EAAO,CACnC,IAAI8vB,EAAM3/L,EAAO,QAAQ,UAAUyP,EAAOogK,EAAO7vK,EAAO,OAAO,EAC3D2/L,EACAzS,EAAgBltL,CAAM,EAAE,IAAM2/L,EAE9BzS,EAAgBltL,CAAM,EAAE,WAAayP,CAE5C,CACT,EAEI8iL,GAAc,IAAKT,EAAa,EAChCS,GAAc,KAAMT,EAAa,EACjCS,GAAc,MAAOT,EAAa,EAClCS,GAAc,OAAQT,EAAa,EACnCS,GAAc,KAAMoW,EAAmB,EAEvCrV,GAAc,CAAC,IAAK,KAAM,MAAO,MAAM,EAAGM,EAAI,EAC9CN,GAAc,CAAC,IAAI,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ6vK,EAAO,CACzD,IAAI5rH,EACAjkD,EAAO,QAAQ,uBACfikD,EAAQx0C,EAAM,MAAMzP,EAAO,QAAQ,oBAAoB,GAGvDA,EAAO,QAAQ,oBACfmb,EAAMy4K,EAAI,EAAI5zL,EAAO,QAAQ,oBAAoByP,EAAOw0C,CAAK,EAE7D9oC,EAAMy4K,EAAI,EAAI,SAASnkL,EAAO,EAAE,CAE5C,CAAK,EAED,SAASm5L,GAAWjlO,EAAGgiH,EAAQ,CAC3B,IAAIz6F,EACAzpB,EACAo8G,EACAgrH,GAAO,KAAK,OAAS7M,GAAU,IAAI,EAAE,MACzC,IAAK9wM,EAAI,EAAGzpB,EAAIonO,GAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAAG,CACrC,OAAQ,OAAO29M,GAAK39M,CAAC,EAAE,MAAK,CACxB,IAAK,SAED2yF,EAAOmhF,EAAM6pC,GAAK39M,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,EACzC29M,GAAK39M,CAAC,EAAE,MAAQ2yF,EAAK,QAAO,EAC5B,KACP,CAED,OAAQ,OAAOgrH,GAAK39M,CAAC,EAAE,MAAK,CACxB,IAAK,YACD29M,GAAK39M,CAAC,EAAE,MAAQ,IAChB,MACJ,IAAK,SAED2yF,EAAOmhF,EAAM6pC,GAAK39M,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,EAAE,UAC3C29M,GAAK39M,CAAC,EAAE,MAAQ2yF,EAAK,QAAO,EAC5B,KACP,CACJ,CACD,OAAOgrH,EACV,CAED,SAASC,GAAgBC,EAASpjH,EAAQonG,EAAQ,CAC9C,IAAI7hM,EACAzpB,EACAonO,GAAO,KAAK,KAAM,EAClBz3M,GACA43M,GACAC,GAGJ,IAFAF,EAAUA,EAAQ,cAEb79M,EAAI,EAAGzpB,EAAIonO,GAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAKlC,GAJAkG,GAAOy3M,GAAK39M,CAAC,EAAE,KAAK,YAAW,EAC/B89M,GAAOH,GAAK39M,CAAC,EAAE,KAAK,YAAW,EAC/B+9M,GAASJ,GAAK39M,CAAC,EAAE,OAAO,YAAW,EAE/B6hM,EACA,OAAQpnG,EAAM,CACV,IAAK,IACL,IAAK,KACL,IAAK,MACD,GAAIqjH,KAASD,EACT,OAAOF,GAAK39M,CAAC,EAEjB,MAEJ,IAAK,OACD,GAAIkG,KAAS23M,EACT,OAAOF,GAAK39M,CAAC,EAEjB,MAEJ,IAAK,QACD,GAAI+9M,KAAWF,EACX,OAAOF,GAAK39M,CAAC,EAEjB,KACP,SACM,CAACkG,GAAM43M,GAAMC,EAAM,EAAE,QAAQF,CAAO,GAAK,EAChD,OAAOF,GAAK39M,CAAC,CAGxB,CAED,SAASg+M,GAAsBvJ,EAAKhM,EAAM,CACtC,IAAIh4L,EAAMgkM,EAAI,OAASA,EAAI,MAAQ,EAAK,GACxC,OAAIhM,IAAS,OACF30B,EAAM2gC,EAAI,KAAK,EAAE,KAAI,EAErB3gC,EAAM2gC,EAAI,KAAK,EAAE,QAAUhM,EAAOgM,EAAI,QAAUhkM,CAE9D,CAED,SAASwtM,IAAa,CAClB,IAAIj+M,EACAzpB,EACAw2E,EACA4wJ,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK39M,EAAI,EAAGzpB,EAAIonO,EAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAOlC,GALA+sD,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9B4wJ,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,OAGvC29M,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,MACvC,OAAO29M,EAAK39M,CAAC,EAAE,KAIvB,MAAO,EACV,CAED,SAASk+M,IAAe,CACpB,IAAIl+M,EACAzpB,EACAw2E,EACA4wJ,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK39M,EAAI,EAAGzpB,EAAIonO,EAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAOlC,GALA+sD,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9B4wJ,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,OAGvC29M,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,MACvC,OAAO29M,EAAK39M,CAAC,EAAE,OAIvB,MAAO,EACV,CAED,SAASm+M,IAAa,CAClB,IAAIn+M,EACAzpB,EACAw2E,EACA4wJ,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK39M,EAAI,EAAGzpB,EAAIonO,EAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAOlC,GALA+sD,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9B4wJ,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,OAGvC29M,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,MACvC,OAAO29M,EAAK39M,CAAC,EAAE,KAIvB,MAAO,EACV,CAED,SAASo+M,IAAa,CAClB,IAAIp+M,EACAzpB,EACAk6B,EACAs8C,EACA4wJ,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK39M,EAAI,EAAGzpB,EAAIonO,EAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAMlC,GALAyQ,EAAMktM,EAAK39M,CAAC,EAAE,OAAS29M,EAAK39M,CAAC,EAAE,MAAQ,EAAK,GAG5C+sD,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAG7B4wJ,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,OACvC29M,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,MAExC,OACK,KAAK,KAAM,EAAG8zK,EAAM6pC,EAAK39M,CAAC,EAAE,KAAK,EAAE,KAAI,GAAMyQ,EAC9CktM,EAAK39M,CAAC,EAAE,OAKpB,OAAO,KAAK,MACf,CAED,SAASq+M,GAAc9W,EAAU,CAC7B,OAAKjG,EAAW,KAAM,gBAAgB,GAClCgd,GAAiB,KAAK,IAAI,EAEvB/W,EAAW,KAAK,eAAiB,KAAK,UAChD,CAED,SAASgX,GAAchX,EAAU,CAC7B,OAAKjG,EAAW,KAAM,gBAAgB,GAClCgd,GAAiB,KAAK,IAAI,EAEvB/W,EAAW,KAAK,eAAiB,KAAK,UAChD,CAED,SAASiX,GAAgBjX,EAAU,CAC/B,OAAKjG,EAAW,KAAM,kBAAkB,GACpCgd,GAAiB,KAAK,IAAI,EAEvB/W,EAAW,KAAK,iBAAmB,KAAK,UAClD,CAED,SAAS+V,GAAa/V,EAAU3F,EAAQ,CACpC,OAAOA,EAAO,cAAc2F,CAAQ,CACvC,CAED,SAASgW,GAAahW,EAAU3F,EAAQ,CACpC,OAAOA,EAAO,cAAc2F,CAAQ,CACvC,CAED,SAASiW,GAAejW,EAAU3F,EAAQ,CACtC,OAAOA,EAAO,gBAAgB2F,CAAQ,CACzC,CAED,SAASkW,GAAoBlW,EAAU3F,EAAQ,CAC3C,OAAOA,EAAO,sBAAwBgF,EACzC,CAED,SAAS0X,IAAmB,CACxB,IAAIG,EAAa,CAAE,EACfC,EAAa,CAAE,EACfC,EAAe,CAAE,EACjBpT,EAAc,CAAE,EAChBvrM,EACAzpB,GACAqoO,GACAC,GACAC,GACAnB,GAAO,KAAK,OAEhB,IAAK39M,EAAI,EAAGzpB,GAAIonO,GAAK,OAAQ39M,EAAIzpB,GAAG,EAAEypB,EAClC4+M,GAAWjX,GAAYgW,GAAK39M,CAAC,EAAE,IAAI,EACnC6+M,GAAWlX,GAAYgW,GAAK39M,CAAC,EAAE,IAAI,EACnC8+M,GAAanX,GAAYgW,GAAK39M,CAAC,EAAE,MAAM,EAEvC0+M,EAAW,KAAKE,EAAQ,EACxBH,EAAW,KAAKI,EAAQ,EACxBF,EAAa,KAAKG,EAAU,EAC5BvT,EAAY,KAAKqT,EAAQ,EACzBrT,EAAY,KAAKsT,EAAQ,EACzBtT,EAAY,KAAKuT,EAAU,EAG/B,KAAK,WAAa,IAAI,OAAO,KAAOvT,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACpE,KAAK,eAAiB,IAAI,OAAO,KAAOmT,EAAW,KAAK,GAAG,EAAI,IAAK,GAAG,EACvE,KAAK,eAAiB,IAAI,OAAO,KAAOD,EAAW,KAAK,GAAG,EAAI,IAAK,GAAG,EACvE,KAAK,iBAAmB,IAAI,OACxB,KAAOE,EAAa,KAAK,GAAG,EAAI,IAChC,GACZ,CACK,CAID1a,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,SAAU,EAAG,GACjC,CAAK,EAEDA,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EAED,SAAS8a,GAAuBp6B,EAAOh/K,EAAQ,CAC3Cs+L,GAAe,EAAG,CAACtf,EAAOA,EAAM,MAAM,EAAG,EAAGh/K,CAAM,CACrD,CAEDo5M,GAAuB,OAAQ,UAAU,EACzCA,GAAuB,QAAS,UAAU,EAC1CA,GAAuB,OAAQ,aAAa,EAC5CA,GAAuB,QAAS,aAAa,EAM7C1X,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,OAAQX,GAAWN,EAAM,EACvCiB,GAAc,OAAQX,GAAWN,EAAM,EACvCiB,GAAc,QAASV,GAAWN,EAAM,EACxCgB,GAAc,QAASV,GAAWN,EAAM,EAExCiC,GACI,CAAC,OAAQ,QAAS,OAAQ,OAAO,EACjC,SAAU/jL,EAAO4nL,EAAMr3L,EAAQ6vK,EAAO,CAClCwnB,EAAKxnB,EAAM,OAAO,EAAG,CAAC,CAAC,EAAIzrC,GAAM30H,CAAK,CACzC,CACT,EAEI+jL,GAAkB,CAAC,KAAM,IAAI,EAAG,SAAU/jL,EAAO4nL,EAAMr3L,EAAQ6vK,EAAO,CAClEwnB,EAAKxnB,CAAK,EAAI7Q,EAAM,kBAAkBvvJ,CAAK,CACnD,CAAK,EAID,SAASy6L,GAAez6L,EAAO,CAC3B,OAAO06L,GAAqB,KACxB,KACA16L,EACA,KAAK,KAAM,EACX,KAAK,QAAO,EAAK,KAAK,WAAY,EAAC,MAAM,IACzC,KAAK,aAAa,MAAM,IACxB,KAAK,aAAa,MAAM,GACpC,CACK,CAED,SAAS26L,GAAkB36L,EAAO,CAC9B,OAAO06L,GAAqB,KACxB,KACA16L,EACA,KAAK,QAAS,EACd,KAAK,WAAY,EACjB,EACA,CACZ,CACK,CAED,SAAS46L,IAAoB,CACzB,OAAOvS,GAAY,KAAK,KAAM,EAAE,EAAG,CAAC,CACvC,CAED,SAASwS,IAA2B,CAChC,OAAOxS,GAAY,KAAK,YAAa,EAAE,EAAG,CAAC,CAC9C,CAED,SAASyS,IAAiB,CACtB,IAAIC,EAAW,KAAK,WAAU,EAAG,MACjC,OAAO1S,GAAY,KAAK,KAAM,EAAE0S,EAAS,IAAKA,EAAS,GAAG,CAC7D,CAED,SAASC,IAAqB,CAC1B,IAAID,EAAW,KAAK,WAAU,EAAG,MACjC,OAAO1S,GAAY,KAAK,SAAU,EAAE0S,EAAS,IAAKA,EAAS,GAAG,CACjE,CAED,SAASL,GAAqB16L,EAAO4nL,EAAMC,EAASN,EAAKC,EAAK,CAC1D,IAAIyT,GACJ,OAAIj7L,GAAS,KACFmoL,GAAW,KAAMZ,EAAKC,CAAG,EAAE,MAElCyT,GAAc5S,GAAYroL,EAAOunL,EAAKC,CAAG,EACrCI,EAAOqT,KACPrT,EAAOqT,IAEJC,GAAW,KAAK,KAAMl7L,EAAO4nL,EAAMC,EAASN,EAAKC,CAAG,EAElE,CAED,SAAS0T,GAAWxL,EAAU9H,EAAMC,EAASN,EAAKC,EAAK,CACnD,IAAI2T,GAAgBxT,GAAmB+H,EAAU9H,EAAMC,EAASN,EAAKC,CAAG,EACpEp5G,GAAOi5G,GAAc8T,GAAc,KAAM,EAAGA,GAAc,SAAS,EAEvE,YAAK,KAAK/sH,GAAK,eAAgB,GAC/B,KAAK,MAAMA,GAAK,YAAa,GAC7B,KAAK,KAAKA,GAAK,WAAY,GACpB,IACV,CAIDsxG,GAAe,IAAK,EAAG,KAAM,SAAS,EAItCoD,GAAc,IAAKpB,EAAM,EACzBmC,GAAc,IAAK,SAAU7jL,EAAO0L,EAAO,CACvCA,EAAM04K,EAAK,GAAKzvD,GAAM30H,CAAK,EAAI,GAAK,CAC5C,CAAK,EAID,SAASo7L,GAAcp7L,EAAO,CAC1B,OAAOA,GAAS,KACV,KAAK,MAAM,KAAK,MAAO,EAAG,GAAK,CAAC,EAChC,KAAK,OAAOA,EAAQ,GAAK,EAAK,KAAK,MAAK,EAAK,CAAE,CACxD,CAID0/K,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,MAAM,EAI3CoD,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAM,SAAUE,EAAU3F,EAAQ,CAE5C,OAAO2F,EACD3F,EAAO,yBAA2BA,EAAO,cACzCA,EAAO,8BACrB,CAAK,EAEDwG,GAAc,CAAC,IAAK,IAAI,EAAGQ,EAAI,EAC/BR,GAAc,KAAM,SAAU7jL,EAAO0L,EAAO,CACxCA,EAAM24K,EAAI,EAAI1vD,GAAM30H,EAAM,MAAM+hL,EAAS,EAAE,CAAC,CAAC,CACrD,CAAK,EAID,IAAIsZ,GAAmBvW,GAAW,OAAQ,EAAI,EAI9CpF,GAAe,MAAO,CAAC,OAAQ,CAAC,EAAG,OAAQ,WAAW,EAItDoD,GAAc,MAAOZ,EAAS,EAC9BY,GAAc,OAAQlB,EAAM,EAC5BiC,GAAc,CAAC,MAAO,MAAM,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CAC3DA,EAAO,WAAaokI,GAAM30H,CAAK,CACvC,CAAK,EAMD,SAASs7L,GAAgBt7L,EAAO,CAC5B,IAAIgoL,EACA,KAAK,OACA,KAAK,QAAQ,QAAQ,KAAK,EAAI,KAAK,MAAO,EAAC,QAAQ,MAAM,GAAK,KAClE,EAAG,EACR,OAAOhoL,GAAS,KAAOgoL,EAAY,KAAK,IAAIhoL,EAAQgoL,EAAW,GAAG,CACrE,CAIDtI,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,QAAQ,EAI1CoD,GAAc,IAAKf,GAAWa,EAAgB,EAC9CE,GAAc,KAAMf,GAAWJ,EAAM,EACrCkC,GAAc,CAAC,IAAK,IAAI,EAAGU,EAAM,EAIjC,IAAIgX,GAAezW,GAAW,UAAW,EAAK,EAI9CpF,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,QAAQ,EAI1CoD,GAAc,IAAKf,GAAWa,EAAgB,EAC9CE,GAAc,KAAMf,GAAWJ,EAAM,EACrCkC,GAAc,CAAC,IAAK,IAAI,EAAGW,EAAM,EAIjC,IAAIgX,GAAe1W,GAAW,UAAW,EAAK,EAI9CpF,GAAe,IAAK,EAAG,EAAG,UAAY,CAClC,MAAO,CAAC,EAAE,KAAK,YAAa,EAAG,IACvC,CAAK,EAEDA,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,MAAO,CAAC,EAAE,KAAK,YAAa,EAAG,GACvC,CAAK,EAEDA,GAAe,EAAG,CAAC,MAAO,CAAC,EAAG,EAAG,aAAa,EAC9CA,GAAe,EAAG,CAAC,OAAQ,CAAC,EAAG,EAAG,UAAY,CAC1C,OAAO,KAAK,YAAa,EAAG,EACpC,CAAK,EACDA,GAAe,EAAG,CAAC,QAAS,CAAC,EAAG,EAAG,UAAY,CAC3C,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EACDA,GAAe,EAAG,CAAC,SAAU,CAAC,EAAG,EAAG,UAAY,CAC5C,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EACDA,GAAe,EAAG,CAAC,UAAW,CAAC,EAAG,EAAG,UAAY,CAC7C,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EACDA,GAAe,EAAG,CAAC,WAAY,CAAC,EAAG,EAAG,UAAY,CAC9C,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EACDA,GAAe,EAAG,CAAC,YAAa,CAAC,EAAG,EAAG,UAAY,CAC/C,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EAIDoD,GAAc,IAAKZ,GAAWR,EAAM,EACpCoB,GAAc,KAAMZ,GAAWP,EAAM,EACrCmB,GAAc,MAAOZ,GAAWN,EAAM,EAEtC,IAAIxhB,GAAOq7B,GACX,IAAKr7B,GAAQ,OAAQA,GAAM,QAAU,EAAGA,IAAS,IAC7C0iB,GAAc1iB,GAAOiiB,EAAa,EAGtC,SAASqZ,GAAQ17L,EAAO0L,EAAO,CAC3BA,EAAM+4K,EAAW,EAAI9vD,IAAO,KAAO30H,GAAS,GAAI,CACnD,CAED,IAAKogK,GAAQ,IAAKA,GAAM,QAAU,EAAGA,IAAS,IAC1CyjB,GAAczjB,GAAOs7B,EAAO,EAGhCD,GAAoB3W,GAAW,eAAgB,EAAK,EAIpDpF,GAAe,IAAK,EAAG,EAAG,UAAU,EACpCA,GAAe,KAAM,EAAG,EAAG,UAAU,EAIrC,SAASic,IAAc,CACnB,OAAO,KAAK,OAAS,MAAQ,EAChC,CAED,SAASC,IAAc,CACnB,OAAO,KAAK,OAAS,6BAA+B,EACvD,CAED,IAAI5gC,GAAQkjB,EAAO,UAEnBljB,GAAM,IAAMhjJ,GACZgjJ,GAAM,SAAW26B,GACjB36B,GAAM,MAAQ66B,GACd76B,GAAM,KAAO+lB,GACb/lB,GAAM,MAAQs9B,GACdt9B,GAAM,OAAS9kF,GACf8kF,GAAM,KAAOn/K,GACbm/K,GAAM,QAAUu8B,GAChBv8B,GAAM,GAAKp/K,GACXo/K,GAAM,MAAQw8B,GACdx8B,GAAM,IAAMqqB,GACZrqB,GAAM,UAAY69B,GAClB79B,GAAM,QAAU86B,GAChB96B,GAAM,SAAWg7B,GACjBh7B,GAAM,UAAYi7B,GAClBj7B,GAAM,OAASq7B,GACfr7B,GAAM,cAAgBu7B,GACtBv7B,GAAM,eAAiBw7B,GACvBx7B,GAAM,QAAU29B,GAChB39B,GAAM,KAAO08B,GACb18B,GAAM,OAASqiB,GACfriB,GAAM,WAAaioB,GACnBjoB,GAAM,IAAMq2B,GACZr2B,GAAM,IAAMm2B,GACZn2B,GAAM,aAAe49B,GACrB59B,GAAM,IAAMsqB,GACZtqB,GAAM,QAAUo9B,GAChBp9B,GAAM,SAAW+5B,GACjB/5B,GAAM,QAAU17K,GAChB07K,GAAM,SAAWy9B,GACjBz9B,GAAM,OAASw9B,GACfx9B,GAAM,YAAc+7B,GACpB/7B,GAAM,QAAUk8B,GACZ,OAAO,OAAW,KAAe,OAAO,KAAO,OAC/Cl8B,GAAM,OAAO,IAAI,4BAA4B,CAAC,EAAI,UAAY,CAC1D,MAAO,UAAY,KAAK,OAAM,EAAK,GAC/C,GAEIA,GAAM,OAAS09B,GACf19B,GAAM,SAAW1mJ,GACjB0mJ,GAAM,KAAOu9B,GACbv9B,GAAM,QAAUr+D,GAChBq+D,GAAM,aAAe89B,GACrB99B,GAAM,QAAU0+B,GAChB1+B,GAAM,UAAY2+B,GAClB3+B,GAAM,QAAU4+B,GAChB5+B,GAAM,QAAU6+B,GAChB7+B,GAAM,KAAO6pB,GACb7pB,GAAM,WAAa+pB,GACnB/pB,GAAM,SAAWy/B,GACjBz/B,GAAM,YAAc2/B,GACpB3/B,GAAM,QAAUA,GAAM,SAAWogC,GACjCpgC,GAAM,MAAQwrB,GACdxrB,GAAM,YAAcyrB,GACpBzrB,GAAM,KAAOA,GAAM,MAAQ2tB,GAC3B3tB,GAAM,QAAUA,GAAM,SAAW4tB,GACjC5tB,GAAM,YAAc8/B,GACpB9/B,GAAM,gBAAkBggC,GACxBhgC,GAAM,eAAiB4/B,GACvB5/B,GAAM,sBAAwB6/B,GAC9B7/B,GAAM,KAAOqgC,GACbrgC,GAAM,IAAMA,GAAM,KAAO8uB,GACzB9uB,GAAM,QAAUgvB,EAChBhvB,GAAM,WAAaivB,EACnBjvB,GAAM,UAAYsgC,GAClBtgC,GAAM,KAAOA,GAAM,MAAQowB,GAC3BpwB,GAAM,OAASA,GAAM,QAAUugC,GAC/BvgC,GAAM,OAASA,GAAM,QAAUwgC,GAC/BxgC,GAAM,YAAcA,GAAM,aAAeygC,GACzCzgC,GAAM,UAAYm4B,GAClBn4B,GAAM,IAAMy4B,GACZz4B,GAAM,MAAQ04B,GACd14B,GAAM,UAAY24B,GAClB34B,GAAM,qBAAuB64B,GAC7B74B,GAAM,MAAQ84B,GACd94B,GAAM,QAAUg5B,GAChBh5B,GAAM,YAAci5B,GACpBj5B,GAAM,MAAQk5B,GACdl5B,GAAM,MAAQk5B,GACdl5B,GAAM,SAAW2gC,GACjB3gC,GAAM,SAAW4gC,GACjB5gC,GAAM,MAAQojB,EACV,kDACAid,EACR,EACIrgC,GAAM,OAASojB,EACX,mDACAoI,EACR,EACIxrB,GAAM,MAAQojB,EACV,iDACAyG,EACR,EACI7pB,GAAM,KAAOojB,EACT,2GACAoV,EACR,EACIx4B,GAAM,aAAeojB,EACjB,0GACA2V,EACR,EAEI,SAAS8H,GAAW77L,EAAO,CACvB,OAAO8vL,GAAY9vL,EAAQ,GAAI,CAClC,CAED,SAAS87L,IAAe,CACpB,OAAOhM,GAAY,MAAM,KAAM,SAAS,EAAE,UAAS,CACtD,CAED,SAASiM,GAAmBntM,EAAQ,CAChC,OAAOA,CACV,CAED,IAAIotM,GAAUpd,EAAO,UAErBod,GAAQ,SAAWld,EACnBkd,GAAQ,eAAiB7b,GACzB6b,GAAQ,YAAczb,GACtByb,GAAQ,QAAUpc,GAClBoc,GAAQ,SAAWD,GACnBC,GAAQ,WAAaD,GACrBC,GAAQ,aAAerb,GACvBqb,GAAQ,WAAalb,GACrBkb,GAAQ,IAAMhzJ,EACdgzJ,GAAQ,KAAO7C,GACf6C,GAAQ,UAAY3C,GACpB2C,GAAQ,gBAAkBvC,GAC1BuC,GAAQ,cAAgBhC,GACxBgC,GAAQ,cAAgBlC,GACxBkC,GAAQ,gBAAkB/B,GAE1B+B,GAAQ,OAAS/V,GACjB+V,GAAQ,YAAc9V,GACtB8V,GAAQ,YAAc1V,GACtB0V,GAAQ,YAAcpV,GACtBoV,GAAQ,iBAAmBtV,GAC3BsV,GAAQ,KAAOzT,GACfyT,GAAQ,eAAiBtT,GACzBsT,GAAQ,eAAiBvT,GAEzBuT,GAAQ,SAAWzS,GACnByS,GAAQ,YAActS,GACtBsS,GAAQ,cAAgBvS,GACxBuS,GAAQ,cAAgBnS,GAExBmS,GAAQ,cAAgB9R,EACxB8R,GAAQ,mBAAqB5R,EAC7B4R,GAAQ,iBAAmB3R,GAE3B2R,GAAQ,KAAO9Q,GACf8Q,GAAQ,SAAW3Q,GAEnB,SAAS4Q,GAAM/lH,EAAQ34F,EAAOuxD,EAAOotJ,EAAQ,CACzC,IAAI7e,EAASkP,GAAW,EACpB0K,GAAM7Z,EAAW,EAAC,IAAI8e,EAAQ3+M,CAAK,EACvC,OAAO8/L,EAAOvuI,CAAK,EAAEmoJ,GAAK/gH,CAAM,CACnC,CAED,SAASimH,GAAejmH,EAAQ34F,EAAOuxD,EAAO,CAQ1C,GAPI73C,EAASi/E,CAAM,IACf34F,EAAQ24F,EACRA,EAAS,QAGbA,EAASA,GAAU,GAEf34F,GAAS,KACT,OAAO0+M,GAAM/lH,EAAQ34F,EAAOuxD,EAAO,OAAO,EAG9C,IAAIrzD,EACA2gN,EAAM,GACV,IAAK3gN,EAAI,EAAGA,EAAI,GAAIA,IAChB2gN,EAAI3gN,CAAC,EAAIwgN,GAAM/lH,EAAQz6F,EAAGqzD,EAAO,OAAO,EAE5C,OAAOstJ,CACV,CAUD,SAASC,GAAiBC,EAAcpmH,EAAQ34F,EAAOuxD,EAAO,CACtD,OAAOwtJ,GAAiB,WACpBrlM,EAASi/E,CAAM,IACf34F,EAAQ24F,EACRA,EAAS,QAGbA,EAASA,GAAU,KAEnBA,EAASomH,EACT/+M,EAAQ24F,EACRomH,EAAe,GAEXrlM,EAASi/E,CAAM,IACf34F,EAAQ24F,EACRA,EAAS,QAGbA,EAASA,GAAU,IAGvB,IAAImnG,EAASkP,GAAW,EACpBr8J,GAAQosK,EAAejf,EAAO,MAAM,IAAM,EAC1C5hM,GACA2gN,GAAM,GAEV,GAAI7+M,GAAS,KACT,OAAO0+M,GAAM/lH,GAAS34F,EAAQ2yC,IAAS,EAAG4e,EAAO,KAAK,EAG1D,IAAKrzD,GAAI,EAAGA,GAAI,EAAGA,KACf2gN,GAAI3gN,EAAC,EAAIwgN,GAAM/lH,GAASz6F,GAAIy0C,IAAS,EAAG4e,EAAO,KAAK,EAExD,OAAOstJ,EACV,CAED,SAASG,GAAWrmH,EAAQ34F,EAAO,CAC/B,OAAO4+M,GAAejmH,EAAQ34F,EAAO,QAAQ,CAChD,CAED,SAASi/M,GAAgBtmH,EAAQ34F,EAAO,CACpC,OAAO4+M,GAAejmH,EAAQ34F,EAAO,aAAa,CACrD,CAED,SAASk/M,GAAaH,EAAcpmH,EAAQ34F,EAAO,CAC/C,OAAO8+M,GAAiBC,EAAcpmH,EAAQ34F,EAAO,UAAU,CAClE,CAED,SAASm/M,GAAkBJ,EAAcpmH,EAAQ34F,EAAO,CACpD,OAAO8+M,GAAiBC,EAAcpmH,EAAQ34F,EAAO,eAAe,CACvE,CAED,SAASo/M,GAAgBL,EAAcpmH,EAAQ34F,EAAO,CAClD,OAAO8+M,GAAiBC,EAAcpmH,EAAQ34F,EAAO,aAAa,CACrE,CAED+uM,GAAmB,KAAM,CACrB,KAAM,CACF,CACI,MAAO,aACP,MAAO,IACP,OAAQ,EACR,KAAM,cACN,OAAQ,KACR,KAAM,IACT,EACD,CACI,MAAO,aACP,MAAO,KACP,OAAQ,EACR,KAAM,gBACN,OAAQ,KACR,KAAM,IACT,CACJ,EACD,uBAAwB,uBACxB,QAAS,SAAU9rG,EAAQ,CACvB,IAAIttH,EAAIstH,EAAS,GACblmC,EACIq6E,GAAOn0C,EAAS,IAAO,EAAE,IAAM,EACzB,KACAttH,IAAM,EACJ,KACAA,IAAM,EACJ,KACAA,IAAM,EACJ,KACA,KACpB,OAAOstH,EAASlmC,CACnB,CACT,CAAK,EAIDi1G,EAAM,KAAO6uB,EACT,wDACAkO,EACR,EACI/8B,EAAM,SAAW6uB,EACb,gEACAmO,EACR,EAEI,IAAIqQ,GAAU,KAAK,IAEnB,SAAS/jL,IAAM,CACX,IAAI5J,EAAO,KAAK,MAEhB,YAAK,cAAgB2tL,GAAQ,KAAK,aAAa,EAC/C,KAAK,MAAQA,GAAQ,KAAK,KAAK,EAC/B,KAAK,QAAUA,GAAQ,KAAK,OAAO,EAEnC3tL,EAAK,aAAe2tL,GAAQ3tL,EAAK,YAAY,EAC7CA,EAAK,QAAU2tL,GAAQ3tL,EAAK,OAAO,EACnCA,EAAK,QAAU2tL,GAAQ3tL,EAAK,OAAO,EACnCA,EAAK,MAAQ2tL,GAAQ3tL,EAAK,KAAK,EAC/BA,EAAK,OAAS2tL,GAAQ3tL,EAAK,MAAM,EACjCA,EAAK,MAAQ2tL,GAAQ3tL,EAAK,KAAK,EAExB,IACV,CAED,SAAS4tL,GAAczgI,EAAUp8D,EAAOrjB,EAAOo5B,EAAW,CACtD,IAAIq7K,EAAQU,GAAe9xL,EAAOrjB,CAAK,EAEvC,OAAAy/E,EAAS,eAAiBrmD,EAAYq7K,EAAM,cAC5Ch1H,EAAS,OAASrmD,EAAYq7K,EAAM,MACpCh1H,EAAS,SAAWrmD,EAAYq7K,EAAM,QAE/Bh1H,EAAS,SACnB,CAGD,SAAS0gI,GAAM98L,EAAOrjB,EAAO,CACzB,OAAOkgN,GAAc,KAAM78L,EAAOrjB,EAAO,CAAC,CAC7C,CAGD,SAASogN,GAAW/8L,EAAOrjB,EAAO,CAC9B,OAAOkgN,GAAc,KAAM78L,EAAOrjB,EAAO,EAAE,CAC9C,CAED,SAASqgN,GAAQx8G,EAAQ,CACrB,OAAIA,EAAS,EACF,KAAK,MAAMA,CAAM,EAEjB,KAAK,KAAKA,CAAM,CAE9B,CAED,SAASy8G,IAAS,CACd,IAAI7K,EAAe,KAAK,cACpB3zB,EAAO,KAAK,MACZyzB,EAAS,KAAK,QACdjjL,EAAO,KAAK,MACZ8uJ,EACAwtB,GACAD,GACA0G,GACAkL,GAIJ,OAES9K,GAAgB,GAAK3zB,GAAQ,GAAKyzB,GAAU,GAC5CE,GAAgB,GAAK3zB,GAAQ,GAAKyzB,GAAU,IAGjDE,GAAgB4K,GAAQG,GAAajL,CAAM,EAAIzzB,CAAI,EAAI,MACvDA,EAAO,EACPyzB,EAAS,GAKbjjL,EAAK,aAAemjL,EAAe,IAEnCr0B,EAAU2lB,GAAS0O,EAAe,GAAI,EACtCnjL,EAAK,QAAU8uJ,EAAU,GAEzBwtB,GAAU7H,GAAS3lB,EAAU,EAAE,EAC/B9uJ,EAAK,QAAUs8K,GAAU,GAEzBD,GAAQ5H,GAAS6H,GAAU,EAAE,EAC7Bt8K,EAAK,MAAQq8K,GAAQ,GAErB7sB,GAAQilB,GAAS4H,GAAQ,EAAE,EAG3B4R,GAAiBxZ,GAAS0Z,GAAa3+B,CAAI,CAAC,EAC5CyzB,GAAUgL,GACVz+B,GAAQu+B,GAAQG,GAAaD,EAAc,CAAC,EAG5ClL,GAAQtO,GAASwO,EAAS,EAAE,EAC5BA,GAAU,GAEVjjL,EAAK,KAAOwvJ,EACZxvJ,EAAK,OAASijL,EACdjjL,EAAK,MAAQ+iL,GAEN,IACV,CAED,SAASoL,GAAa3+B,EAAM,CAGxB,OAAQA,EAAO,KAAQ,MAC1B,CAED,SAAS0+B,GAAajL,EAAQ,CAE1B,OAAQA,EAAS,OAAU,IAC9B,CAED,SAASjhL,GAAGiwK,EAAO,CACf,GAAI,CAAC,KAAK,UACN,MAAO,KAEX,IAAIziB,EACAyzB,EACAE,EAAe,KAAK,cAIxB,GAFAlR,EAAQD,GAAeC,CAAK,EAExBA,IAAU,SAAWA,IAAU,WAAaA,IAAU,OAGtD,OAFAziB,EAAO,KAAK,MAAQ2zB,EAAe,MACnCF,EAAS,KAAK,QAAUkL,GAAa3+B,CAAI,EACjCyiB,EAAK,CACT,IAAK,QACD,OAAOgR,EACX,IAAK,UACD,OAAOA,EAAS,EACpB,IAAK,OACD,OAAOA,EAAS,EACvB,KAID,QADAzzB,EAAO,KAAK,MAAQ,KAAK,MAAM0+B,GAAa,KAAK,OAAO,CAAC,EACjDjc,EAAK,CACT,IAAK,OACD,OAAOziB,EAAO,EAAI2zB,EAAe,OACrC,IAAK,MACD,OAAO3zB,EAAO2zB,EAAe,MACjC,IAAK,OACD,OAAO3zB,EAAO,GAAK2zB,EAAe,KACtC,IAAK,SACD,OAAO3zB,EAAO,KAAO2zB,EAAe,IACxC,IAAK,SACD,OAAO3zB,EAAO,MAAQ2zB,EAAe,IAEzC,IAAK,cACD,OAAO,KAAK,MAAM3zB,EAAO,KAAK,EAAI2zB,EACtC,QACI,MAAM,IAAI,MAAM,gBAAkBlR,CAAK,CAC9C,CAER,CAED,SAASmc,GAAO/hB,EAAO,CACnB,OAAO,UAAY,CACf,OAAO,KAAK,GAAGA,CAAK,CAChC,CACK,CAED,IAAIgiB,GAAiBD,GAAO,IAAI,EAC5BE,GAAYF,GAAO,GAAG,EACtBG,GAAYH,GAAO,GAAG,EACtBI,GAAUJ,GAAO,GAAG,EACpBK,GAASL,GAAO,GAAG,EACnBM,GAAUN,GAAO,GAAG,EACpBO,GAAWP,GAAO,GAAG,EACrBQ,GAAaR,GAAO,GAAG,EACvBS,GAAUT,GAAO,GAAG,EACpBU,GAAYT,GAEhB,SAASU,IAAU,CACf,OAAOlM,GAAe,IAAI,CAC7B,CAED,SAASmM,GAAM/c,EAAO,CAClB,OAAAA,EAAQD,GAAeC,CAAK,EACrB,KAAK,UAAY,KAAKA,EAAQ,GAAG,EAAG,EAAG,GACjD,CAED,SAASgd,GAAWv8M,EAAM,CACtB,OAAO,UAAY,CACf,OAAO,KAAK,UAAY,KAAK,MAAMA,CAAI,EAAI,GACvD,CACK,CAED,IAAIywM,GAAe8L,GAAW,cAAc,EACxCngC,GAAUmgC,GAAW,SAAS,EAC9B3S,GAAU2S,GAAW,SAAS,EAC9B5S,GAAQ4S,GAAW,OAAO,EAC1Bz/B,GAAOy/B,GAAW,MAAM,EACxBhM,GAASgM,GAAW,QAAQ,EAC5BlM,GAAQkM,GAAW,OAAO,EAE9B,SAAS/L,IAAQ,CACb,OAAOzO,GAAS,KAAK,KAAM,EAAG,CAAC,CAClC,CAED,IAAIl7J,GAAQ,KAAK,MACb21K,GAAa,CACT,GAAI,GACJ,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,KACH,EAAG,EACf,EAGI,SAASC,GAAkBxvM,EAAQ4xF,EAAQogG,EAAeC,EAAUxD,EAAQ,CACxE,OAAOA,EAAO,aAAa78F,GAAU,EAAG,CAAC,CAACogG,EAAehyL,EAAQiyL,CAAQ,CAC5E,CAED,SAASwd,GAAeC,EAAgB1d,EAAeud,EAAY9gB,EAAQ,CACvE,IAAIjhH,EAAW01H,GAAewM,CAAc,EAAE,IAAK,EAC/CvgC,GAAUv1I,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAChCmvH,GAAU/iK,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAChCkvH,GAAQ9iK,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAC9BqiG,GAAOj2I,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAC7B81H,GAAS1pK,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAC/B+1H,GAAQ3pK,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAC9B41H,GAAQxpK,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAC9BvpG,GACKkrM,IAAWogC,EAAW,IAAM,CAAC,IAAKpgC,EAAO,GACzCA,GAAUogC,EAAW,GAAK,CAAC,KAAMpgC,EAAO,GACxCwtB,IAAW,GAAK,CAAC,GAAG,GACpBA,GAAU4S,EAAW,GAAK,CAAC,KAAM5S,EAAO,GACxCD,IAAS,GAAK,CAAC,GAAG,GAClBA,GAAQ6S,EAAW,GAAK,CAAC,KAAM7S,EAAK,GACpC7sB,IAAQ,GAAK,CAAC,GAAG,GACjBA,GAAO0/B,EAAW,GAAK,CAAC,KAAM1/B,EAAI,EAE3C,OAAI0/B,EAAW,GAAK,OAChBtrO,GACIA,IACCs/N,IAAS,GAAK,CAAC,GAAG,GAClBA,GAAQgM,EAAW,GAAK,CAAC,KAAMhM,EAAK,GAE7Ct/N,GAAIA,IACCq/N,IAAU,GAAK,CAAC,GAAG,GACnBA,GAASiM,EAAW,GAAK,CAAC,KAAMjM,EAAM,GACtCF,IAAS,GAAK,CAAC,GAAG,GAAM,CAAC,KAAMA,EAAK,EAEzCn/N,GAAE,CAAC,EAAI+tN,EACP/tN,GAAE,CAAC,EAAI,CAACyrO,EAAiB,EACzBzrO,GAAE,CAAC,EAAIwqN,EACA+gB,GAAkB,MAAM,KAAMvrO,EAAC,CACzC,CAGD,SAAS0rO,GAA2BC,EAAkB,CAClD,OAAIA,IAAqB,OACdh2K,GAEP,OAAOg2K,GAAqB,YAC5Bh2K,GAAQg2K,EACD,IAEJ,EACV,CAGD,SAASC,GAA4BtlK,EAAWulK,EAAO,CACnD,OAAIP,GAAWhlK,CAAS,IAAM,OACnB,GAEPulK,IAAU,OACHP,GAAWhlK,CAAS,GAE/BglK,GAAWhlK,CAAS,EAAIulK,EACpBvlK,IAAc,MACdglK,GAAW,GAAKO,EAAQ,GAErB,GACV,CAED,SAASC,GAASC,EAAeC,EAAe,CAC5C,GAAI,CAAC,KAAK,UACN,OAAO,KAAK,aAAa,cAG7B,IAAIC,EAAa,GACbrxN,EAAK0wN,GACL9gB,EACA/iI,GAEJ,OAAI,OAAOskJ,GAAkB,WACzBC,EAAgBD,EAChBA,EAAgB,IAEhB,OAAOA,GAAkB,YACzBE,EAAaF,GAEb,OAAOC,GAAkB,WACzBpxN,EAAK,OAAO,OAAO,CAAE,EAAE0wN,GAAYU,CAAa,EAC5CA,EAAc,GAAK,MAAQA,EAAc,IAAM,OAC/CpxN,EAAG,GAAKoxN,EAAc,EAAI,IAIlCxhB,EAAS,KAAK,aACd/iI,GAAS+jJ,GAAe,KAAM,CAACS,EAAYrxN,EAAI4vM,CAAM,EAEjDyhB,IACAxkJ,GAAS+iI,EAAO,WAAW,CAAC,KAAM/iI,EAAM,GAGrC+iI,EAAO,WAAW/iI,EAAM,CAClC,CAED,IAAIykJ,GAAQ,KAAK,IAEjB,SAAS1f,GAAK5sN,EAAG,CACb,OAAQA,EAAI,IAAMA,EAAI,IAAM,CAACA,CAChC,CAED,SAASusO,IAAgB,CAQrB,GAAI,CAAC,KAAK,UACN,OAAO,KAAK,aAAa,cAG7B,IAAIjhC,EAAUghC,GAAM,KAAK,aAAa,EAAI,IACtCtgC,EAAOsgC,GAAM,KAAK,KAAK,EACvB7M,EAAS6M,GAAM,KAAK,OAAO,EAC3BxT,EACAD,EACA0G,GACAx2M,GACAyjN,GAAQ,KAAK,UAAW,EACxBC,GACAC,GACAC,GACAC,GAEJ,OAAKJ,IAOL1T,EAAU7H,GAAS3lB,EAAU,EAAE,EAC/ButB,EAAQ5H,GAAS6H,EAAU,EAAE,EAC7BxtB,GAAW,GACXwtB,GAAW,GAGXyG,GAAQtO,GAASwO,EAAS,EAAE,EAC5BA,GAAU,GAGV12M,GAAIuiL,EAAUA,EAAQ,QAAQ,CAAC,EAAE,QAAQ,SAAU,EAAE,EAAI,GAEzDmhC,GAAYD,GAAQ,EAAI,IAAM,GAC9BE,GAAS9f,GAAK,KAAK,OAAO,IAAMA,GAAK4f,EAAK,EAAI,IAAM,GACpDG,GAAW/f,GAAK,KAAK,KAAK,IAAMA,GAAK4f,EAAK,EAAI,IAAM,GACpDI,GAAUhgB,GAAK,KAAK,aAAa,IAAMA,GAAK4f,EAAK,EAAI,IAAM,GAGvDC,GACA,KACClN,GAAQmN,GAASnN,GAAQ,IAAM,KAC/BE,EAASiN,GAASjN,EAAS,IAAM,KACjCzzB,EAAO2gC,GAAW3gC,EAAO,IAAM,KAC/B6sB,GAASC,GAAWxtB,EAAU,IAAM,KACpCutB,EAAQ+T,GAAU/T,EAAQ,IAAM,KAChCC,EAAU8T,GAAU9T,EAAU,IAAM,KACpCxtB,EAAUshC,GAAU7jN,GAAI,IAAM,KA9BxB,KAgCd,CAED,IAAI8jN,GAAUvN,GAAS,UAEvBuN,GAAQ,QAAU1N,GAClB0N,GAAQ,IAAMzmL,GACdymL,GAAQ,IAAMxC,GACdwC,GAAQ,SAAWvC,GACnBuC,GAAQ,GAAKruL,GACbquL,GAAQ,eAAiBhC,GACzBgC,GAAQ,UAAY/B,GACpB+B,GAAQ,UAAY9B,GACpB8B,GAAQ,QAAU7B,GAClB6B,GAAQ,OAAS5B,GACjB4B,GAAQ,QAAU3B,GAClB2B,GAAQ,SAAW1B,GACnB0B,GAAQ,WAAazB,GACrByB,GAAQ,QAAUxB,GAClBwB,GAAQ,QAAUvB,GAClBuB,GAAQ,QAAUrC,GAClBqC,GAAQ,MAAQtB,GAChBsB,GAAQ,IAAMrB,GACdqB,GAAQ,aAAelN,GACvBkN,GAAQ,QAAUvhC,GAClBuhC,GAAQ,QAAU/T,GAClB+T,GAAQ,MAAQhU,GAChBgU,GAAQ,KAAO7gC,GACf6gC,GAAQ,MAAQnN,GAChBmN,GAAQ,OAASpN,GACjBoN,GAAQ,MAAQtN,GAChBsN,GAAQ,SAAWX,GACnBW,GAAQ,YAAcN,GACtBM,GAAQ,SAAWN,GACnBM,GAAQ,OAASN,GACjBM,GAAQ,OAASjiB,GACjBiiB,GAAQ,WAAarc,GAErBqc,GAAQ,YAAclhB,EAClB,sFACA4gB,EACR,EACIM,GAAQ,KAAO5H,GAIfhY,GAAe,IAAK,EAAG,EAAG,MAAM,EAChCA,GAAe,IAAK,EAAG,EAAG,SAAS,EAInCoD,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,IAAKL,EAAc,EACjCoB,GAAc,IAAK,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CAC/CA,EAAO,GAAK,IAAI,KAAK,WAAWyP,CAAK,EAAI,GAAI,CACrD,CAAK,EACD6jL,GAAc,IAAK,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CAC/CA,EAAO,GAAK,IAAI,KAAKokI,GAAM30H,CAAK,CAAC,CACzC,CAAK,EAEL;AAEI,OAAAuvJ,EAAM,QAAU,SAEhButB,EAAgBgT,EAAW,EAE3BvgC,EAAM,GAAKyL,GACXzL,EAAM,IAAMjnI,GACZinI,EAAM,IAAMhnI,GACZgnI,EAAM,IAAMtL,GACZsL,EAAM,IAAM6tB,EACZ7tB,EAAM,KAAOssC,GACbtsC,EAAM,OAASgtC,GACfhtC,EAAM,OAAS0tB,EACf1tB,EAAM,OAAS+8B,GACf/8B,EAAM,QAAUsuB,EAChBtuB,EAAM,SAAWuiC,GACjBviC,EAAM,SAAW4uB,EACjB5uB,EAAM,SAAWktC,GACjBltC,EAAM,UAAYusC,GAClBvsC,EAAM,WAAag9B,GACnBh9B,EAAM,WAAa8iC,GACnB9iC,EAAM,YAAcitC,GACpBjtC,EAAM,YAAcotC,GACpBptC,EAAM,aAAei9B,GACrBj9B,EAAM,aAAek9B,GACrBl9B,EAAM,QAAUo9B,GAChBp9B,EAAM,cAAgBmtC,GACtBntC,EAAM,eAAiB0xB,GACvB1xB,EAAM,qBAAuBgvC,GAC7BhvC,EAAM,sBAAwBkvC,GAC9BlvC,EAAM,eAAiBkmC,GACvBlmC,EAAM,UAAYyL,GAGlBzL,EAAM,UAAY,CACd,eAAgB,mBAChB,uBAAwB,sBACxB,kBAAmB,0BACnB,KAAM,aACN,KAAM,QACN,aAAc,WACd,QAAS,eACT,KAAM,aACN,MAAO,SACf,EAEWA,CAEX,oCCnjLE,SAAUmtB,EAAQC,EAAS,CAEaA,EAAhC,OAAO0P,IAAY,WAAqBp3N,KAEvCynN,EAAO,MAFoD,IAGpEE,GAAO,SAAU2iB,EAAQ,CAE3B;AAEI,IAAIC,EAAOD,EAAO,aAAa,QAAS,CACpC,OAAQ,wFAAwF,MAC5F,GACH,EACD,YAAa,kDAAkD,MAAM,GAAG,EACxE,SAAU,2DAA2D,MACjE,GACH,EACD,cAAe,8BAA8B,MAAM,GAAG,EACtD,YAAa,uBAAuB,MAAM,GAAG,EAC7C,eAAgB,CACZ,GAAI,QACJ,IAAK,WACL,EAAG,aACH,GAAI,cACJ,IAAK,oBACL,KAAM,yBACT,EACD,SAAU,CACN,QAAS,gBACT,QAAS,mBACT,SAAU,eACV,QAAS,oBACT,SAAU,sBACV,SAAU,GACb,EACD,aAAc,CACV,OAAQ,QACR,KAAM,SACN,EAAG,gBACH,GAAI,aACJ,EAAG,WACH,GAAI,aACJ,EAAG,UACH,GAAI,WACJ,EAAG,QACH,GAAI,UACJ,EAAG,UACH,GAAI,YACJ,EAAG,SACH,GAAI,UACP,EACD,uBAAwB,uBACxB,QAAS,SAAU/+G,EAAQ,CACvB,IAAIttH,EAAIstH,EAAS,GACblmC,EACI,CAAC,EAAGkmC,EAAS,IAAO,MAAQ,EACtB,KACAttH,IAAM,EACJ,KACAA,IAAM,EACJ,KACAA,IAAM,EACJ,KACA,KACpB,OAAOstH,EAASlmC,CACnB,EACD,KAAM,CACF,IAAK,EACL,IAAK,CACR,CACT,CAAK,EAED,OAAOklJ,CAEX,uBCxEE,SAAU9iB,EAAQC,EAAS,CAEaA,EAAhC,OAAO0P,IAAY,WAAqBp3N,KAEvCynN,EAAO,MAFoD,IAGpEE,GAAO,SAAU2iB,EAAQ,CAE3B;AAEI,SAASE,EAAOrjC,EAAMsjC,EAAK,CACvB,IAAIC,EAAQvjC,EAAK,MAAM,GAAG,EAC1B,OAAOsjC,EAAM,KAAO,GAAKA,EAAM,MAAQ,GACjCC,EAAM,CAAC,EACPD,EAAM,IAAM,GAAKA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,KAAO,IAChEC,EAAM,CAAC,EACPA,EAAM,CAAC,CAClB,CACD,SAASC,EAAuBp/G,EAAQogG,EAAexuL,EAAK,CACxD,IAAI8jF,EAAS,CACT,GAAI0qG,EAAgB,yBAA2B,yBAC/C,GAAIA,EAAgB,sBAAwB,sBAC5C,GAAI,iBACJ,GAAI,gBACJ,GAAI,uBACJ,GAAI,uBACJ,GAAI,cAChB,EACQ,OAAIxuL,IAAQ,IACDwuL,EAAgB,SAAW,SAE3BpgG,EAAS,IAAMi/G,EAAOvpH,EAAO9jF,CAAG,EAAG,CAACouF,CAAM,CAExD,CACD,IAAIq/G,EAAc,CACd,QACA,QACA,QACA,QACA,WACA,QACA,QACA,QACA,QACA,QACA,QACA,OACR,EAKQC,EAAKP,EAAO,aAAa,KAAM,CAC/B,OAAQ,CACJ,OAAQ,oFAAoF,MACxF,GACH,EACD,WACI,kFAAkF,MAC9E,GACH,CACR,EACD,YAAa,CAET,OAAQ,gEAAgE,MACpE,GACH,EACD,WACI,gEAAgE,MAC5D,GACH,CACR,EACD,SAAU,CACN,WACI,gEAAgE,MAC5D,GACH,EACL,OAAQ,gEAAgE,MACpE,GACH,EACD,SAAU,+CACb,EACD,cAAe,uBAAuB,MAAM,GAAG,EAC/C,YAAa,uBAAuB,MAAM,GAAG,EAC7C,YAAaM,EACb,gBAAiBA,EACjB,iBAAkBA,EAGlB,YACI,2MAGJ,iBACI,2MAGJ,kBACI,wHAGJ,uBACI,6FACJ,eAAgB,CACZ,GAAI,OACJ,IAAK,UACL,EAAG,aACH,GAAI,iBACJ,IAAK,uBACL,KAAM,4BACT,EACD,SAAU,CACN,QAAS,kBACT,QAAS,iBACT,QAAS,gBACT,SAAU,SAAU57C,EAAK,CACrB,GAAIA,EAAI,KAAI,IAAO,KAAK,KAAI,EACxB,OAAQ,KAAK,IAAK,GACd,IAAK,GACD,MAAO,6BACX,IAAK,GACL,IAAK,GACL,IAAK,GACD,MAAO,6BACX,IAAK,GACL,IAAK,GACL,IAAK,GACD,MAAO,4BACd,KAED,QAAI,KAAK,IAAK,IAAK,EACR,oBAEA,kBAGlB,EACD,SAAU,SAAUA,EAAK,CACrB,GAAIA,EAAI,KAAI,IAAO,KAAK,KAAI,EACxB,OAAQ,KAAK,IAAK,GACd,IAAK,GACD,MAAO,2BACX,IAAK,GACL,IAAK,GACL,IAAK,GACD,MAAO,2BACX,IAAK,GACL,IAAK,GACL,IAAK,GACD,MAAO,0BACd,KAED,QAAI,KAAK,IAAK,IAAK,EACR,oBAEA,kBAGlB,EACD,SAAU,GACb,EACD,aAAc,CACV,OAAQ,WACR,KAAM,WACN,EAAG,mBACH,GAAI27C,EACJ,EAAGA,EACH,GAAIA,EACJ,EAAG,MACH,GAAIA,EACJ,EAAG,OACH,GAAIA,EACJ,EAAG,SACH,GAAIA,EACJ,EAAG,QACH,GAAIA,EACJ,EAAG,MACH,GAAIA,CACP,EACD,cAAe,wBACf,KAAM,SAAU5/L,EAAO,CACnB,MAAO,iBAAiB,KAAKA,CAAK,CACrC,EACD,SAAU,SAAUowL,EAAM2P,EAAQvU,EAAS,CACvC,OAAI4E,EAAO,EACA,OACAA,EAAO,GACP,OACAA,EAAO,GACP,MAEA,QAEd,EACD,uBAAwB,mBACxB,QAAS,SAAU5vG,EAAQm0G,EAAQ,CAC/B,OAAQA,EAAM,CACV,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOn0G,EAAS,KACpB,IAAK,IACD,OAAOA,EAAS,MACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,KACpB,QACI,OAAOA,CACd,CACJ,EACD,KAAM,CACF,IAAK,EACL,IAAK,CACR,CACT,CAAK,EAED,OAAOs/G,CAEX,uBC1NE,SAAUpjB,EAAQC,EAAS,CAEaA,EAAhC,OAAO0P,IAAY,WAAqBp3N,KAEvCynN,EAAO,MAFoD,IAGpEE,GAAO,SAAU2iB,EAAQ,CAE3B;AAEI,IAAIS,EAAW,CACX,EAAG,QACH,EAAG,QACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,EAAG,OACH,EAAG,OACH,GAAI,OACJ,GAAI,OACJ,EAAG,QACH,EAAG,QACH,IAAK,QACL,EAAG,OACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,OACZ,EAEQC,EAAKV,EAAO,aAAa,KAAM,CAC/B,OAAQ,6EAA6E,MACjF,GACH,EACD,YAAa,kDAAkD,MAAM,GAAG,EACxE,SAAU,wDAAwD,MAC9D,GACH,EACD,cAAe,8BAA8B,MAAM,GAAG,EACtD,YAAa,uBAAuB,MAAM,GAAG,EAC7C,SAAU,SAAUjU,EAAOC,EAASC,EAAS,CACzC,OAAIF,EAAQ,GACDE,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAE/B,EACD,cAAe,cACf,KAAM,SAAUxrL,EAAO,CACnB,OAAOA,IAAU,MAAQA,IAAU,IACtC,EACD,eAAgB,CACZ,GAAI,QACJ,IAAK,WACL,EAAG,aACH,GAAI,cACJ,IAAK,oBACL,KAAM,yBACT,EACD,SAAU,CACN,QAAS,kBACT,QAAS,kBACT,SAAU,2BACV,QAAS,WACT,SAAU,yBACV,SAAU,GACb,EACD,aAAc,CACV,OAAQ,WACR,KAAM,UACN,EAAG,gBACH,GAAI,YACJ,EAAG,aACH,GAAI,YACJ,EAAG,WACH,GAAI,UACJ,EAAG,UACH,GAAI,SACJ,EAAG,YACH,GAAI,WACJ,EAAG,SACH,GAAI,QACJ,EAAG,UACH,GAAI,QACP,EACD,QAAS,SAAUwgF,EAAQm0G,EAAQ,CAC/B,OAAQA,EAAM,CACV,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACD,OAAOn0G,EACX,QACI,GAAIA,IAAW,EAEX,OAAOA,EAAS,QAEpB,IAAI3tH,EAAI2tH,EAAS,GACbttH,EAAKstH,EAAS,IAAO3tH,EACrBgB,EAAI2sH,GAAU,IAAM,IAAM,KAC9B,OAAOA,GAAUw/G,EAASntO,CAAC,GAAKmtO,EAAS9sO,CAAC,GAAK8sO,EAASnsO,CAAC,EAChE,CACJ,EACD,KAAM,CACF,IAAK,EACL,IAAK,CACR,CACT,CAAK,EAED,OAAOosO,CAEX,o3BC5GA,SAASC,IAAW3wL,EAAU,GAAI,CAChC,KAAM,CACJ,UAAA4wL,EAAY,GACZ,cAAAC,EACA,eAAAC,EACA,aAAAC,EACA,eAAAC,EACA,gBAAAC,CACD,EAAGjxL,EACJ,IAAI51C,EACA8mO,EAEJ,MAAMC,EAAsB,MAAOC,EAAc,KAAS,CACxD,MAAMF,CAIV,EACE,eAAenyJ,GAAW,CACxB,GAAI,kBAAmB,UAAW,CAOhC,GANA30E,EAAK,MAAKinO,GAAA,IAAC,OAAO,uCAAgB,EAAC,IAAC,KAAK,CAAC,CAAE,QAAAC,CAAO,IAC1C,IAAIA,EAAQ,SAAU,CAAE,MAAO,IAAK,KAAM,SAAS,CAAE,CAC7D,EAAE,MAAO1tO,GAAM,CACdqtO,GAAA,MAAAA,EAAkBrtO,EAE1B,CAAO,EACG,CAACwG,EACH,OAMEA,EAAG,iBAAiB,YAAcspB,GAAU,EACtCA,EAAM,UAAYA,EAAM,aAC1B,OAAO,SAAS,QAC9B,CAAW,EACDtpB,EAAG,iBAAiB,YAAcspB,GAAU,CACrCA,EAAM,UACTo9M,GAAA,MAAAA,GAEd,CAAW,EAgCL1mO,EAAG,SAAS,CAAE,UAAAwmO,CAAW,GAAE,KAAM/tO,GAAM,CACjCmuO,EACFA,EAAe,SAAUnuO,CAAC,EAE1BkuO,GAAA,MAAAA,EAAeluO,EACzB,CAAO,EAAE,MAAOe,GAAM,CACdqtO,GAAA,MAAAA,EAAkBrtO,EAC1B,CAAO,CACF,CACF,CACD,OAAAstO,EAAkBnyJ,EAAQ,EACnBoyJ,CACT,CAGA,SAASI,IAAcvxL,EAAU,GAAI,CACnC,KAAM,CACJ,UAAA4wL,EAAY,GACZ,cAAAC,EACA,eAAAC,EACA,aAAAC,EACA,eAAAC,EACA,gBAAAC,CACD,EAAGjxL,EACE,CAACwxL,EAAaC,CAAc,EAAI/yL,EAAQ,SAAC,EAAK,EAC9C,CAACgzL,EAAcC,CAAe,EAAIjzL,EAAQ,SAAC,EAAK,EAChD,CAACyyL,CAAmB,EAAIzyL,WAAS,IAC9BiyL,IAAW,CAChB,UAAAC,EACA,gBAAiB,CACfe,EAAgB,EAAI,EACpBb,GAAA,MAAAA,GACD,EACD,eAAgB,CACdW,EAAe,EAAI,EACnBZ,GAAA,MAAAA,GACD,EACD,aAAAE,EACA,eAAAC,EACA,gBAAAC,CACN,CAAK,CACF,EACD,MAAO,CACL,YAAa,CAACO,EAAaC,CAAc,EACzC,aAAc,CAACC,EAAcC,CAAe,EAC5C,oBAAAR,CACJ,CACA,CChIA,eAAeS,KAAwB,CAC/BC,QAAgBC,aAAaC,QAAQ,aAAa,EAClDC,EAAkBF,aAAaC,QAAQ,kBAAkB,EACzDr9C,EAAMv9G,KAAKu9G,MACXu9C,EAAU,GAAK,GAAK,GAAK,IAE/B,GACEJ,GACAG,GACAt9C,EAAMlwI,SAASwtL,CAAe,EAAIC,EAE3BJ,SAGL,IAGF,IAAIxjH,GADS,MADI,MAAM6jH,MAAM,wBAAwB,GACzBC,QACT9jH,QAEfA,WAAY,MAAQA,IAAY,OACxBA,EAAA,MAGC+jH,qBAAQ,cAAe/jH,CAAO,EAC3CyjH,aAAaM,QAAQ,mBAAoB19C,EAAI3vI,SAAU,GAEhDspE,QACA/uC,EAAO,CACNA,qBAAM,+BAAgCA,CAAK,EAC5C,IACT,CACF,CAEO,SAAS+yJ,KAAiB,CAC/B,OAAOT,IAAsB,CAC/B,CChCA,SAAwBU,KAAc,CAC9B,MAAEn6D,YAAa6H,GAAY,EAEjCh0G,mBAAU,IAAM,CACPumK,gBAAS,EAAG,CAAC,GACnB,CAACp6D,CAAQ,CAAC,EAEN,IACT,CCRA,SAAwBq6D,GAAO,CAAEC,cAAa,EAAG,CACzC,MAAE3vO,EAAGyxK,QAASgC,GAAe,EAKnC,SACE,UAAQx2I,UALY0yM,EAClB,8KACA,8HAG+BvlN,UAC/Bwe,EAAA,QAAM3L,UAAU,UAAS7S,SAAC,kBAAqB,EAC/C0e,EAAA,MAAI7L,UAAU,kCAAiC7S,UAC7Cwe,EAAA,MAAAxe,WACE,KACE6S,UAAU,0CACV65I,KAAM,wBAAwBrF,EAAKm+D,QAAQ,uBAC3Cl9M,OAAO,SAAQtI,SAEdpqB,EAAE,mBAAmB,EACrB,EACD,EACJ4oC,EAAA,MAAAxe,WACE,KACE6S,UAAU,0CACV65I,KAAM,wBAAwBrF,EAAKm+D,QAAQ,QAC3Cl9M,OAAO,SAAQtI,SAEdpqB,EAAE,YAAY,EACd,EACD,EACJ4oC,EAAA,MAAAxe,WACE,KACE6S,UAAU,0CACV65I,KAAM,wBAAwBrF,EAAKm+D,QAAQ,YAC3Cl9M,OAAO,SAAQtI,SAEdpqB,EAAE,gBAAgB,EAClB,EACD,CAAC,EACH,CAAC,EACC,CAEZ,CC3CA,MAAe6vO,GAAA,oCCCTC,IAAe3lN,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,msBAAosB,OAAQ,UAAW,YAAa,IAAK,cAAe,QAAS,eAAgB,OAAS,EAAC,ECDpgC,SAAS3mH,GAAuB,EAAG,CACjC,GAAe,IAAX,OAAc,MAAM,IAAI,eAAe,2DAA2D,EACtG,OAAO,CACT,CCHA,SAASV,GAAgB1oH,EAAGc,EAAG,CAC7B,OAAO4nH,GAAkB,OAAO,eAAiB,OAAO,eAAe,KAAM,EAAG,SAAU1oH,EAAGc,EAAG,CAC9F,OAAOd,EAAE,UAAYc,EAAGd,CAC5B,EAAK0oH,GAAgB1oH,EAAGc,CAAC,CACzB,CCHA,SAASynH,GAAUvoH,EAAGc,EAAG,CACvB,GAAkB,OAAOA,GAArB,YAAmCA,IAAT,KAAY,MAAM,IAAI,UAAU,oDAAoD,EAClHd,EAAE,UAAY,OAAO,OAAOc,GAAKA,EAAE,UAAW,CAC5C,YAAa,CACX,MAAOd,EACP,SAAU,GACV,aAAc,EACf,CACF,GAAG,OAAO,eAAeA,EAAG,YAAa,CACxC,SAAU,EACX,GAAGc,GAAKypI,GAAevqI,EAAGc,CAAC,CAC9B,CCVA,SAASooH,GAA2BlpH,EAAGc,EAAG,CACxC,GAAIA,IAAkBinH,GAAQjnH,CAAC,GAArB,UAAwC,OAAOA,GAArB,YAAyB,OAAOA,EACpE,GAAeA,IAAX,OAAc,MAAM,IAAI,UAAU,0DAA0D,EAChG,OAAOkvO,GAAsBhwO,CAAC,CAChC,CCNA,SAASgpH,GAAgBhpH,EAAG,CAC1B,OAAOgpH,GAAkB,OAAO,eAAiB,OAAO,eAAe,KAAI,EAAK,SAAU,EAAG,CAC3F,OAAO,EAAE,WAAa,OAAO,eAAe,CAAC,CACjD,EAAKA,GAAgBhpH,CAAC,CACtB,CCJA,SAASiwO,GAAiBlwO,EAAG,CAC3B,GAAmB,OAAO,OAAtB,KAAwCA,EAAE,OAAO,QAAQ,GAAzB,MAAsCA,EAAE,YAAY,GAAtB,KAAyB,OAAO,MAAM,KAAKA,CAAC,CAChH,CCEA,SAASmwO,IAASnwO,EAAG,CACnB,OAAOqzK,GAAerzK,CAAC,GAAKowO,GAAgBpwO,CAAC,GAAKuzK,GAA2BvzK,CAAC,GAAKwzK,IACrF,CCIA,SAAS68D,GAAUh6J,EAAQivC,EAAgB,CAAE,IAAIj8C,EAAO,OAAO,KAAKgN,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIkvC,EAAU,OAAO,sBAAsBlvC,CAAM,EAAGivC,IAAmBC,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CAAE,OAAO,OAAO,yBAAyBnvC,EAAQmvC,CAAG,EAAE,UAAW,CAAE,GAAIn8C,EAAK,KAAK,MAAMA,EAAMk8C,CAAO,CAAE,CAAG,OAAOl8C,CAAO,CACvV,SAASinK,GAAgB39M,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAiB,UAAUz7D,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIgnN,GAAU,OAAOvrJ,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAU9kD,EAAK,CAAE0lF,GAAgB/yF,EAAQqN,EAAK8kD,EAAO9kD,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBrN,EAAQ,OAAO,0BAA0BmyD,CAAM,CAAC,EAAIurJ,GAAU,OAAOvrJ,CAAM,CAAC,EAAE,QAAQ,SAAU9kD,EAAK,CAAE,OAAO,eAAerN,EAAQqN,EAAK,OAAO,yBAAyB8kD,EAAQ9kD,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOrN,CAAS,CAChgB,IAAI49M,IAAgB,CAClB,KAAM,SACN,IAAK,SAAa5hN,EAAM,CACtB,KAAK,OAAO,MAAOA,CAAI,CACxB,EACD,KAAM,SAAcA,EAAM,CACxB,KAAK,OAAO,OAAQA,CAAI,CACzB,EACD,MAAO,SAAeA,EAAM,CAC1B,KAAK,OAAO,QAASA,CAAI,CAC1B,EACD,OAAQ,SAAgBT,EAAMS,EAAM,CAC9B,SAAW,QAAQT,CAAI,GAAG,QAAQA,CAAI,EAAE,MAAM,QAASS,CAAI,CAChE,CACH,EACI6hN,IAAS,UAAY,CACvB,SAASA,EAAOC,EAAgB,CAC9B,IAAItzL,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClForE,GAAgB,KAAMioH,CAAM,EAC5B,KAAK,KAAKC,EAAgBtzL,CAAO,CAClC,CACDgrE,UAAaqoH,EAAQ,CAAC,CACpB,IAAK,OACL,MAAO,SAAcC,EAAgB,CACnC,IAAItzL,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClF,KAAK,OAASA,EAAQ,QAAU,WAChC,KAAK,OAASszL,GAAkBF,IAChC,KAAK,QAAUpzL,EACf,KAAK,MAAQA,EAAQ,KACtB,CACL,EAAK,CACD,IAAK,WACL,MAAO,SAAkByqE,EAAM,CAC7B,KAAK,MAAQA,CACd,CACL,EAAK,CACD,IAAK,MACL,MAAO,UAAe,CACpB,QAASwpD,EAAO,UAAU,OAAQziJ,EAAO,IAAI,MAAMyiJ,CAAI,EAAG34F,EAAO,EAAGA,EAAO24F,EAAM34F,IAC/E9pD,EAAK8pD,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAO,KAAK,QAAQ9pD,EAAM,MAAO,GAAI,EAAI,CAC1C,CACL,EAAK,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,QAAS4iJ,EAAQ,UAAU,OAAQ5iJ,EAAO,IAAI,MAAM4iJ,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF7iJ,EAAK6iJ,CAAK,EAAI,UAAUA,CAAK,EAE/B,OAAO,KAAK,QAAQ7iJ,EAAM,OAAQ,GAAI,EAAI,CAC3C,CACL,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,QAAS+hN,EAAQ,UAAU,OAAQ/hN,EAAO,IAAI,MAAM+hN,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFhiN,EAAKgiN,CAAK,EAAI,UAAUA,CAAK,EAE/B,OAAO,KAAK,QAAQhiN,EAAM,QAAS,EAAE,CACtC,CACL,EAAK,CACD,IAAK,YACL,MAAO,UAAqB,CAC1B,QAASiiN,EAAQ,UAAU,OAAQjiN,EAAO,IAAI,MAAMiiN,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFliN,EAAKkiN,CAAK,EAAI,UAAUA,CAAK,EAE/B,OAAO,KAAK,QAAQliN,EAAM,OAAQ,uBAAwB,EAAI,CAC/D,CACL,EAAK,CACD,IAAK,UACL,MAAO,SAAiBA,EAAMmiN,EAAKtxM,EAAQuxM,EAAW,CACpD,OAAIA,GAAa,CAAC,KAAK,MAAc,MACjC,OAAOpiN,EAAK,CAAC,GAAM,WAAUA,EAAK,CAAC,EAAI,GAAG,OAAO6Q,CAAM,EAAE,OAAO,KAAK,OAAQ,GAAG,EAAE,OAAO7Q,EAAK,CAAC,CAAC,GAC7F,KAAK,OAAOmiN,CAAG,EAAEniN,CAAI,EAC7B,CACL,EAAK,CACD,IAAK,SACL,MAAO,SAAgBqiN,EAAY,CACjC,OAAO,IAAIR,EAAO,KAAK,OAAQF,GAAgBA,GAAgB,GAAI,CACjE,OAAQ,GAAG,OAAO,KAAK,OAAQ,GAAG,EAAE,OAAOU,EAAY,GAAG,CAClE,CAAO,EAAG,KAAK,OAAO,CAAC,CAClB,CACL,EAAK,CACD,IAAK,QACL,MAAO,SAAe7zL,EAAS,CAC7B,OAAAA,EAAUA,GAAW,KAAK,QAC1BA,EAAQ,OAASA,EAAQ,QAAU,KAAK,OACjC,IAAIqzL,EAAO,KAAK,OAAQrzL,CAAO,CACvC,CACF,EAAC,EACKqzL,CACT,IACIS,GAAa,IAAIT,IAEjBU,GAAe,UAAY,CAC7B,SAASA,GAAe,CACtB3oH,GAAgB,KAAM2oH,CAAY,EAClC,KAAK,UAAY,EAClB,CACD/oH,UAAa+oH,EAAc,CAAC,CAC1B,IAAK,KACL,MAAO,SAAY3pB,EAAQv2G,EAAU,CACnC,IAAIgZ,EAAQ,KACZ,OAAAu9F,EAAO,MAAM,GAAG,EAAE,QAAQ,SAAU12L,EAAO,CACzCm5F,EAAM,UAAUn5F,CAAK,EAAIm5F,EAAM,UAAUn5F,CAAK,GAAK,GACnDm5F,EAAM,UAAUn5F,CAAK,EAAE,KAAKmgF,CAAQ,CAC5C,CAAO,EACM,IACR,CACL,EAAK,CACD,IAAK,MACL,MAAO,SAAangF,EAAOmgF,EAAU,CACnC,GAAK,KAAK,UAAUngF,CAAK,EACzB,IAAI,CAACmgF,EAAU,CACb,OAAO,KAAK,UAAUngF,CAAK,EAC3B,MACD,CACD,KAAK,UAAUA,CAAK,EAAI,KAAK,UAAUA,CAAK,EAAE,OAAO,SAAUjxB,EAAG,CAChE,OAAOA,IAAMoxG,CACrB,CAAO,EACF,CACL,EAAK,CACD,IAAK,OACL,MAAO,SAAcngF,EAAO,CAC1B,QAASugJ,EAAO,UAAU,OAAQziJ,EAAO,IAAI,MAAMyiJ,EAAO,EAAIA,EAAO,EAAI,CAAC,EAAG34F,EAAO,EAAGA,EAAO24F,EAAM34F,IAClG9pD,EAAK8pD,EAAO,CAAC,EAAI,UAAUA,CAAI,EAEjC,GAAI,KAAK,UAAU5nD,CAAK,EAAG,CACzB,IAAIsgN,EAAS,GAAG,OAAO,KAAK,UAAUtgN,CAAK,CAAC,EAC5CsgN,EAAO,QAAQ,SAAUluJ,EAAU,CACjCA,EAAS,MAAM,OAAQt0D,CAAI,CACrC,CAAS,CACF,CACD,GAAI,KAAK,UAAU,GAAG,EAAG,CACvB,IAAIyiN,EAAU,GAAG,OAAO,KAAK,UAAU,GAAG,CAAC,EAC3CA,EAAQ,QAAQ,SAAUnuJ,EAAU,CAClCA,EAAS,MAAMA,EAAU,CAACpyD,CAAK,EAAE,OAAOlC,CAAI,CAAC,CACvD,CAAS,CACF,CACF,CACF,EAAC,EACKuiN,CACT,IAEA,SAASG,IAAQ,CACf,IAAIp8B,EACAq8B,EACAC,EAAU,IAAI,QAAQ,SAAUt8D,EAASqqB,EAAQ,CACnD2V,EAAMhgC,EACNq8D,EAAMhyC,CACV,CAAG,EACD,OAAAiyC,EAAQ,QAAUt8B,EAClBs8B,EAAQ,OAASD,EACVC,CACT,CACA,SAASC,GAAWn7J,EAAQ,CAC1B,OAAIA,GAAU,KAAa,GACpB,GAAKA,CACd,CACA,SAASR,IAAKp1E,EAAG2oB,EAAGnpB,EAAG,CACrBQ,EAAE,QAAQ,SAAUqB,EAAG,CACjBsnB,EAAEtnB,CAAC,IAAG7B,EAAE6B,CAAC,EAAIsnB,EAAEtnB,CAAC,EACxB,CAAG,CACH,CACA,SAAS2vO,GAAcp7J,EAAQp2C,EAAM01B,EAAO,CAC1C,SAAS+7K,EAAS1xM,EAAK,CACrB,OAAOA,GAAOA,EAAI,QAAQ,KAAK,EAAI,GAAKA,EAAI,QAAQ,OAAQ,GAAG,EAAIA,CACpE,CACD,SAAS2xM,GAAuB,CAC9B,MAAO,CAACt7J,GAAU,OAAOA,GAAW,QACrC,CAED,QADIn9B,EAAQ,OAAOjZ,GAAS,SAAW,CAAE,EAAC,OAAOA,CAAI,EAAIA,EAAK,MAAM,GAAG,EAChEiZ,EAAM,OAAS,GAAG,CACvB,GAAIy4L,EAAoB,EAAI,MAAO,GACnC,IAAI3xM,EAAM0xM,EAASx4L,EAAM,MAAO,GAC5B,CAACm9B,EAAOr2C,CAAG,GAAK21B,IAAO0gB,EAAOr2C,CAAG,EAAI,IAAI21B,GACzC,OAAO,UAAU,eAAe,KAAK0gB,EAAQr2C,CAAG,EAClDq2C,EAASA,EAAOr2C,CAAG,EAEnBq2C,EAAS,EAEZ,CACD,OAAIs7J,EAAoB,EAAW,GAC5B,CACL,IAAKt7J,EACL,EAAGq7J,EAASx4L,EAAM,OAAO,CAC7B,CACA,CACA,SAAS04L,GAAQv7J,EAAQp2C,EAAMgc,EAAU,CACvC,IAAI41L,EAAiBJ,GAAcp7J,EAAQp2C,EAAM,MAAM,EACrDyiD,EAAMmvJ,EAAe,IACrBnwO,EAAImwO,EAAe,EACrBnvJ,EAAIhhF,CAAC,EAAIu6C,CACX,CACA,SAAS61L,IAASz7J,EAAQp2C,EAAMgc,EAAUwF,EAAQ,CAChD,IAAIswL,EAAkBN,GAAcp7J,EAAQp2C,EAAM,MAAM,EACtDyiD,EAAMqvJ,EAAgB,IACtBrwO,EAAIqwO,EAAgB,EACtBrvJ,EAAIhhF,CAAC,EAAIghF,EAAIhhF,CAAC,GAAK,GACf+/C,IAAQihC,EAAIhhF,CAAC,EAAIghF,EAAIhhF,CAAC,EAAE,OAAOu6C,CAAQ,GACtCwF,GAAQihC,EAAIhhF,CAAC,EAAE,KAAKu6C,CAAQ,CACnC,CACA,SAAS+1L,GAAQ37J,EAAQp2C,EAAM,CAC7B,IAAIgyM,EAAkBR,GAAcp7J,EAAQp2C,CAAI,EAC9CyiD,EAAMuvJ,EAAgB,IACtBvwO,EAAIuwO,EAAgB,EACtB,GAAKvvJ,EACL,OAAOA,EAAIhhF,CAAC,CACd,CACA,SAASwwO,IAAoBr1L,EAAMs1L,EAAanyM,EAAK,CACnD,IAAIzV,EAAQynN,GAAQn1L,EAAM7c,CAAG,EAC7B,OAAIzV,IAAU,OACLA,EAEFynN,GAAQG,EAAanyM,CAAG,CACjC,CACA,SAASoyM,GAAWz/M,EAAQmyD,EAAQutJ,EAAW,CAC7C,QAASjhN,KAAQ0zD,EACX1zD,IAAS,aAAeA,IAAS,gBAC/BA,KAAQuB,EACN,OAAOA,EAAOvB,CAAI,GAAM,UAAYuB,EAAOvB,CAAI,YAAa,QAAU,OAAO0zD,EAAO1zD,CAAI,GAAM,UAAY0zD,EAAO1zD,CAAI,YAAa,OAChIihN,IAAW1/M,EAAOvB,CAAI,EAAI0zD,EAAO1zD,CAAI,GAEzCghN,GAAWz/M,EAAOvB,CAAI,EAAG0zD,EAAO1zD,CAAI,EAAGihN,CAAS,EAGlD1/M,EAAOvB,CAAI,EAAI0zD,EAAO1zD,CAAI,GAIhC,OAAOuB,CACT,CACA,SAASq+L,GAAY7mC,EAAK,CACxB,OAAOA,EAAI,QAAQ,sCAAuC,MAAM,CAClE,CACA,IAAImoD,IAAa,CACf,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,QACP,EACA,SAASrwO,IAAO46C,EAAM,CACpB,OAAI,OAAOA,GAAS,SACXA,EAAK,QAAQ,aAAc,SAAUzzB,EAAG,CAC7C,OAAOkpN,IAAWlpN,CAAC,CACzB,CAAK,EAEIyzB,CACT,CACA,IAAI01L,GAAS,OAAO,OAAW,KAAe,OAAO,WAAa,OAAO,OAAO,UAAU,cAAkB,KAAe,OAAO,UAAU,WAAa,OAAO,UAAU,UAAU,QAAQ,MAAM,EAAI,GAClM3lD,IAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,EACpC,SAAS4lD,IAAoBxyM,EAAKyyM,EAAaC,EAAc,CAC3DD,EAAcA,GAAe,GAC7BC,EAAeA,GAAgB,GAC/B,IAAIC,EAAgB/lD,IAAM,OAAO,SAAUnrL,EAAG,CAC5C,OAAOgxO,EAAY,QAAQhxO,CAAC,EAAI,GAAKixO,EAAa,QAAQjxO,CAAC,EAAI,CACnE,CAAG,EACD,GAAIkxO,EAAc,SAAW,EAAG,MAAO,GACvC,IAAI3yO,EAAI,IAAI,OAAO,IAAI,OAAO2yO,EAAc,IAAI,SAAUlxO,EAAG,CAC3D,OAAOA,IAAM,IAAM,MAAQA,CAC5B,GAAE,KAAK,GAAG,EAAG,GAAG,CAAC,EACdwvN,EAAU,CAACjxN,EAAE,KAAKggC,CAAG,EACzB,GAAI,CAACixL,EAAS,CACZ,IAAIhzM,EAAK+hB,EAAI,QAAQ0yM,CAAY,EAC7Bz0N,EAAK,GAAK,CAACje,EAAE,KAAKggC,EAAI,UAAU,EAAG/hB,CAAE,CAAC,IACxCgzM,EAAU,GAEb,CACD,OAAOA,CACT,CACA,SAAS2hB,GAASlwJ,EAAKziD,EAAM,CAC3B,IAAIyyM,EAAe,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,IACvF,GAAKhwJ,EACL,IAAIA,EAAIziD,CAAI,EAAG,OAAOyiD,EAAIziD,CAAI,EAG9B,QAFI2iD,EAAQ3iD,EAAK,MAAMyyM,CAAY,EAC/B5vL,EAAU4/B,EACLr5D,EAAI,EAAGA,EAAIu5D,EAAM,OAAQ,EAAEv5D,EAAG,CAErC,GADI,CAACy5B,GACD,OAAOA,EAAQ8/B,EAAMv5D,CAAC,CAAC,GAAM,UAAYA,EAAI,EAAIu5D,EAAM,OACzD,OAEF,GAAI9/B,EAAQ8/B,EAAMv5D,CAAC,CAAC,IAAM,OAAW,CAInC,QAHI4kC,EAAI,EACJnuD,EAAI8iF,EAAM,MAAMv5D,EAAGA,EAAI4kC,CAAC,EAAE,KAAKykL,CAAY,EAC3CpvM,EAAMwf,EAAQhjD,CAAC,EACZwjC,IAAQ,QAAas/C,EAAM,OAASv5D,EAAI4kC,GAC7CA,IACAnuD,EAAI8iF,EAAM,MAAMv5D,EAAGA,EAAI4kC,CAAC,EAAE,KAAKykL,CAAY,EAC3CpvM,EAAMwf,EAAQhjD,CAAC,EAEjB,GAAIwjC,IAAQ,OAAW,OACvB,GAAIA,IAAQ,KAAM,OAAO,KACzB,GAAIrD,EAAK,SAASngC,CAAC,EAAG,CACpB,GAAI,OAAOwjC,GAAQ,SAAU,OAAOA,EACpC,GAAIxjC,GAAK,OAAOwjC,EAAIxjC,CAAC,GAAM,SAAU,OAAOwjC,EAAIxjC,CAAC,CAClD,CACD,IAAI+yO,EAAajwJ,EAAM,MAAMv5D,EAAI4kC,CAAC,EAAE,KAAKykL,CAAY,EACrD,OAAIG,EAAmBD,GAAStvM,EAAKuvM,EAAYH,CAAY,EAC7D,MACD,CACD5vL,EAAUA,EAAQ8/B,EAAMv5D,CAAC,CAAC,CAC3B,CACD,OAAOy5B,EACT,CAEA,SAASgwL,GAAUz8J,EAAQivC,EAAgB,CAAE,IAAIj8C,EAAO,OAAO,KAAKgN,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIkvC,EAAU,OAAO,sBAAsBlvC,CAAM,EAAGivC,IAAmBC,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CAAE,OAAO,OAAO,yBAAyBnvC,EAAQmvC,CAAG,EAAE,UAAW,CAAE,GAAIn8C,EAAK,KAAK,MAAMA,EAAMk8C,CAAO,CAAE,CAAG,OAAOl8C,CAAO,CACvV,SAAS0pK,GAAgBpgN,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAiB,UAAUz7D,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIypN,GAAU,OAAOhuJ,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAU9kD,EAAK,CAAE0lF,GAAgB/yF,EAAQqN,EAAK8kD,EAAO9kD,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBrN,EAAQ,OAAO,0BAA0BmyD,CAAM,CAAC,EAAIguJ,GAAU,OAAOhuJ,CAAM,CAAC,EAAE,QAAQ,SAAU9kD,EAAK,CAAE,OAAO,eAAerN,EAAQqN,EAAK,OAAO,yBAAyB8kD,EAAQ9kD,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOrN,CAAS,CAChgB,SAASqgN,IAAenqH,EAAS,CAAE,IAAIC,EAA4BmqH,IAA2B,EAAI,OAAO,UAAgC,CAAE,IAAIjqH,EAAQC,GAAgBJ,CAAO,EAAGlmF,EAAQ,GAAImmF,EAA2B,CAAE,IAAII,EAAYD,GAAgB,IAAI,EAAE,YAAatmF,EAAS,QAAQ,UAAUqmF,EAAO,UAAWE,CAAS,OAAYvmF,EAASqmF,EAAM,MAAM,KAAM,SAAS,EAAK,OAAOG,GAA2B,KAAMxmF,CAAM,CAAE,CAAK,CAC7a,SAASswM,KAA8B,CAA0E,GAApE,OAAO,QAAY,KAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,OAAO,OAAU,WAAY,MAAO,GAAM,GAAI,CAAE,eAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,GAAI,UAAY,CAAE,EAAC,EAAU,EAAO,MAAW,CAAE,MAAO,GAAU,CAC3U,IAAIC,IAAgB,SAAUC,EAAe,CAC3C3qH,GAAU0qH,EAAeC,CAAa,EACtC,IAAIppH,EAASipH,IAAeE,CAAa,EACzC,SAASA,EAAcr2L,EAAM,CAC3B,IAAImtE,EACA7sE,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAChF,GAAI,CAAC,aAAa,EAClB,UAAW,aACjB,EACIorE,UAAgB,KAAM2qH,CAAa,EACnClpH,EAAQD,EAAO,KAAK,IAAI,EACpBwoH,IACFrB,GAAa,KAAK7nH,GAAuBW,CAAK,CAAC,EAEjDA,EAAM,KAAOntE,GAAQ,GACrBmtE,EAAM,QAAU7sE,EACZ6sE,EAAM,QAAQ,eAAiB,SACjCA,EAAM,QAAQ,aAAe,KAE3BA,EAAM,QAAQ,sBAAwB,SACxCA,EAAM,QAAQ,oBAAsB,IAE/BA,CACR,CACD7B,UAAa+qH,EAAe,CAAC,CAC3B,IAAK,gBACL,MAAO,SAAuBrhE,EAAI,CAC5B,KAAK,QAAQ,GAAG,QAAQA,CAAE,EAAI,GAChC,KAAK,QAAQ,GAAG,KAAKA,CAAE,CAE1B,CACL,EAAK,CACD,IAAK,mBACL,MAAO,SAA0BA,EAAI,CACnC,IAAI1mJ,EAAQ,KAAK,QAAQ,GAAG,QAAQ0mJ,CAAE,EAClC1mJ,EAAQ,IACV,KAAK,QAAQ,GAAG,OAAOA,EAAO,CAAC,CAElC,CACL,EAAK,CACD,IAAK,cACL,MAAO,SAAqB4mJ,EAAKF,EAAI7xI,EAAK,CACxC,IAAImd,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9Eu1L,EAAev1L,EAAQ,eAAiB,OAAYA,EAAQ,aAAe,KAAK,QAAQ,aACxFi2L,EAAsBj2L,EAAQ,sBAAwB,OAAYA,EAAQ,oBAAsB,KAAK,QAAQ,oBAC7Gld,EAAO,CAAC8xI,EAAKF,CAAE,EACf7xI,GAAO,OAAOA,GAAQ,WAAUC,EAAOA,EAAK,OAAOD,CAAG,GACtDA,GAAO,OAAOA,GAAQ,WAAUC,EAAOA,EAAK,OAAOyyM,EAAe1yM,EAAI,MAAM0yM,CAAY,EAAI1yM,CAAG,GAC/F+xI,EAAI,QAAQ,GAAG,EAAI,KACrB9xI,EAAO8xI,EAAI,MAAM,GAAG,GAEtB,IAAIpvI,EAASqvM,GAAQ,KAAK,KAAM/xM,CAAI,EACpC,OAAI0C,GAAU,CAACywM,GAAuB,OAAOpzM,GAAQ,SAAiB2C,EAC/DiwM,GAAS,KAAK,MAAQ,KAAK,KAAK7gE,CAAG,GAAK,KAAK,KAAKA,CAAG,EAAEF,CAAE,EAAG7xI,EAAK0yM,CAAY,CACrF,CACL,EAAK,CACD,IAAK,cACL,MAAO,SAAqB3gE,EAAKF,EAAI7xI,EAAKzV,EAAO,CAC/C,IAAI4yB,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAChF,OAAQ,EAChB,EACUu1L,EAAev1L,EAAQ,eAAiB,OAAYA,EAAQ,aAAe,KAAK,QAAQ,aACxFld,EAAO,CAAC8xI,EAAKF,CAAE,EACf7xI,IAAKC,EAAOA,EAAK,OAAOyyM,EAAe1yM,EAAI,MAAM0yM,CAAY,EAAI1yM,CAAG,GACpE+xI,EAAI,QAAQ,GAAG,EAAI,KACrB9xI,EAAO8xI,EAAI,MAAM,GAAG,EACpBxnJ,EAAQsnJ,EACRA,EAAK5xI,EAAK,CAAC,GAEb,KAAK,cAAc4xI,CAAE,EACrB+/D,GAAQ,KAAK,KAAM3xM,EAAM1V,CAAK,EACzB4yB,EAAQ,QAAQ,KAAK,KAAK,QAAS40H,EAAKF,EAAI7xI,EAAKzV,CAAK,CAC5D,CACL,EAAK,CACD,IAAK,eACL,MAAO,SAAsBwnJ,EAAKF,EAAIwhE,EAAW,CAC/C,IAAIl2L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAChF,OAAQ,EAChB,EACM,QAASr7C,KAAKuxO,GACR,OAAOA,EAAUvxO,CAAC,GAAM,UAAY,OAAO,UAAU,SAAS,MAAMuxO,EAAUvxO,CAAC,CAAC,IAAM,mBAAkB,KAAK,YAAYiwK,EAAKF,EAAI/vK,EAAGuxO,EAAUvxO,CAAC,EAAG,CACrJ,OAAQ,EAClB,CAAS,EAEEq7C,EAAQ,QAAQ,KAAK,KAAK,QAAS40H,EAAKF,EAAIwhE,CAAS,CAC3D,CACL,EAAK,CACD,IAAK,oBACL,MAAO,SAA2BthE,EAAKF,EAAIwhE,EAAWhqL,EAAMgpL,EAAW,CACrE,IAAIl1L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAChF,OAAQ,EAChB,EACUld,EAAO,CAAC8xI,EAAKF,CAAE,EACfE,EAAI,QAAQ,GAAG,EAAI,KACrB9xI,EAAO8xI,EAAI,MAAM,GAAG,EACpB1oH,EAAOgqL,EACPA,EAAYxhE,EACZA,EAAK5xI,EAAK,CAAC,GAEb,KAAK,cAAc4xI,CAAE,EACrB,IAAInoJ,EAAOsoN,GAAQ,KAAK,KAAM/xM,CAAI,GAAK,GACnCopB,EACF+oL,GAAW1oN,EAAM2pN,EAAWhB,CAAS,EAErC3oN,EAAOqpN,GAAgBA,GAAgB,CAAE,EAAErpN,CAAI,EAAG2pN,CAAS,EAE7DzB,GAAQ,KAAK,KAAM3xM,EAAMvW,CAAI,EACxByzB,EAAQ,QAAQ,KAAK,KAAK,QAAS40H,EAAKF,EAAIwhE,CAAS,CAC3D,CACL,EAAK,CACD,IAAK,uBACL,MAAO,SAA8BthE,EAAKF,EAAI,CACxC,KAAK,kBAAkBE,EAAKF,CAAE,GAChC,OAAO,KAAK,KAAKE,CAAG,EAAEF,CAAE,EAE1B,KAAK,iBAAiBA,CAAE,EACxB,KAAK,KAAK,UAAWE,EAAKF,CAAE,CAC7B,CACL,EAAK,CACD,IAAK,oBACL,MAAO,SAA2BE,EAAKF,EAAI,CACzC,OAAO,KAAK,YAAYE,EAAKF,CAAE,IAAM,MACtC,CACL,EAAK,CACD,IAAK,oBACL,MAAO,SAA2BE,EAAKF,EAAI,CAEzC,OADKA,IAAIA,EAAK,KAAK,QAAQ,WACvB,KAAK,QAAQ,mBAAqB,KAAakhE,GAAgBA,GAAgB,CAAE,EAAE,CAAE,GAAG,KAAK,YAAYhhE,EAAKF,CAAE,CAAC,EAC9G,KAAK,YAAYE,EAAKF,CAAE,CAChC,CACL,EAAK,CACD,IAAK,oBACL,MAAO,SAA2BE,EAAK,CACrC,OAAO,KAAK,KAAKA,CAAG,CACrB,CACL,EAAK,CACD,IAAK,8BACL,MAAO,SAAqCA,EAAK,CAC/C,IAAIl1H,EAAO,KAAK,kBAAkBk1H,CAAG,EACjClyK,EAAIg9C,GAAQ,OAAO,KAAKA,CAAI,GAAK,GACrC,MAAO,CAAC,CAACh9C,EAAE,KAAK,SAAUM,EAAG,CAC3B,OAAO08C,EAAK18C,CAAC,GAAK,OAAO,KAAK08C,EAAK18C,CAAC,CAAC,EAAE,OAAS,CACxD,CAAO,CACF,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,OAAO,KAAK,IACb,CACF,EAAC,EACK+yO,CACT,EAAEhC,EAAY,EAEVoC,GAAgB,CAClB,WAAY,CAAE,EACd,iBAAkB,SAA0B3xH,EAAQ,CAClD,KAAK,WAAWA,EAAO,IAAI,EAAIA,CAChC,EACD,OAAQ,SAAgB4xH,EAAYhpN,EAAOyV,EAAKmd,EAASq2L,EAAY,CACnE,IAAIxpH,EAAQ,KACZ,OAAAupH,EAAW,QAAQ,SAAUE,EAAW,CAClCzpH,EAAM,WAAWypH,CAAS,IAAGlpN,EAAQy/F,EAAM,WAAWypH,CAAS,EAAE,QAAQlpN,EAAOyV,EAAKmd,EAASq2L,CAAU,EAClH,CAAK,EACMjpN,CACR,CACH,EAEA,SAASmpN,GAAUr9J,EAAQivC,EAAgB,CAAE,IAAIj8C,EAAO,OAAO,KAAKgN,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIkvC,EAAU,OAAO,sBAAsBlvC,CAAM,EAAGivC,IAAmBC,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CAAE,OAAO,OAAO,yBAAyBnvC,EAAQmvC,CAAG,EAAE,UAAW,CAAE,GAAIn8C,EAAK,KAAK,MAAMA,EAAMk8C,CAAO,CAAE,CAAG,OAAOl8C,CAAO,CACvV,SAASsqK,GAAgBhhN,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAiB,UAAUz7D,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIqqN,GAAU,OAAO5uJ,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAU9kD,EAAK,CAAE0lF,GAAgB/yF,EAAQqN,EAAK8kD,EAAO9kD,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBrN,EAAQ,OAAO,0BAA0BmyD,CAAM,CAAC,EAAI4uJ,GAAU,OAAO5uJ,CAAM,CAAC,EAAE,QAAQ,SAAU9kD,EAAK,CAAE,OAAO,eAAerN,EAAQqN,EAAK,OAAO,yBAAyB8kD,EAAQ9kD,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOrN,CAAS,CAChgB,SAASihN,IAAe/qH,EAAS,CAAE,IAAIC,EAA4B+qH,IAA2B,EAAI,OAAO,UAAgC,CAAE,IAAI7qH,EAAQC,GAAgBJ,CAAO,EAAGlmF,EAAQ,GAAImmF,EAA2B,CAAE,IAAII,EAAYD,GAAgB,IAAI,EAAE,YAAatmF,EAAS,QAAQ,UAAUqmF,EAAO,UAAWE,CAAS,OAAYvmF,EAASqmF,EAAM,MAAM,KAAM,SAAS,EAAK,OAAOG,GAA2B,KAAMxmF,CAAM,CAAE,CAAK,CAC7a,SAASkxM,KAA8B,CAA0E,GAApE,OAAO,QAAY,KAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,OAAO,OAAU,WAAY,MAAO,GAAM,GAAI,CAAE,eAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,GAAI,UAAY,CAAE,EAAC,EAAU,EAAO,MAAW,CAAE,MAAO,GAAU,CAC3U,IAAIC,GAAmB,GACnBC,GAAa,SAAUZ,EAAe,CACxC3qH,GAAUurH,EAAYZ,CAAa,EACnC,IAAIppH,EAAS6pH,IAAeG,CAAU,EACtC,SAASA,EAAWC,EAAU,CAC5B,IAAIhqH,EACA7sE,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClForE,UAAgB,KAAMwrH,CAAU,EAChC/pH,EAAQD,EAAO,KAAK,IAAI,EACpBwoH,IACFrB,GAAa,KAAK7nH,GAAuBW,CAAK,CAAC,EAEjDn0C,IAAK,CAAC,gBAAiB,gBAAiB,iBAAkB,eAAgB,mBAAoB,aAAc,OAAO,EAAGm+J,EAAU3qH,GAAuBW,CAAK,CAAC,EAC7JA,EAAM,QAAU7sE,EACZ6sE,EAAM,QAAQ,eAAiB,SACjCA,EAAM,QAAQ,aAAe,KAE/BA,EAAM,OAASinH,GAAW,OAAO,YAAY,EACtCjnH,CACR,CACD7B,UAAa4rH,EAAY,CAAC,CACxB,IAAK,iBACL,MAAO,SAAwBhiE,EAAK,CAC9BA,IAAK,KAAK,SAAWA,EAC1B,CACL,EAAK,CACD,IAAK,SACL,MAAO,SAAgB/xI,EAAK,CAC1B,IAAImd,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAChF,cAAe,CAAE,CACzB,EACM,GAAyBnd,GAAQ,KAC/B,MAAO,GAET,IAAIi0M,EAAW,KAAK,QAAQj0M,EAAKmd,CAAO,EACxC,OAAO82L,GAAYA,EAAS,MAAQ,MACrC,CACL,EAAK,CACD,IAAK,iBACL,MAAO,SAAwBj0M,EAAKmd,EAAS,CAC3C,IAAIs1L,EAAct1L,EAAQ,cAAgB,OAAYA,EAAQ,YAAc,KAAK,QAAQ,YACrFs1L,IAAgB,SAAWA,EAAc,KAC7C,IAAIC,EAAev1L,EAAQ,eAAiB,OAAYA,EAAQ,aAAe,KAAK,QAAQ,aACxFg2H,EAAah2H,EAAQ,IAAM,KAAK,QAAQ,WAAa,GACrD+2L,EAAuBzB,GAAezyM,EAAI,QAAQyyM,CAAW,EAAI,GACjE0B,EAAuB,CAAC,KAAK,QAAQ,yBAA2B,CAACh3L,EAAQ,cAAgB,CAAC,KAAK,QAAQ,wBAA0B,CAACA,EAAQ,aAAe,CAACq1L,IAAoBxyM,EAAKyyM,EAAaC,CAAY,EAChN,GAAIwB,GAAwB,CAACC,EAAsB,CACjD,IAAIryO,EAAIk+B,EAAI,MAAM,KAAK,aAAa,aAAa,EACjD,GAAIl+B,GAAKA,EAAE,OAAS,EAClB,MAAO,CACL,IAAKk+B,EACL,WAAYmzI,CACxB,EAEQ,IAAI+Y,EAAQlsJ,EAAI,MAAMyyM,CAAW,GAC7BA,IAAgBC,GAAgBD,IAAgBC,GAAgB,KAAK,QAAQ,GAAG,QAAQxmD,EAAM,CAAC,CAAC,EAAI,MAAI/Y,EAAa+Y,EAAM,SAC/HlsJ,EAAMksJ,EAAM,KAAKwmD,CAAY,CAC9B,CACD,OAAI,OAAOv/D,GAAe,WAAUA,EAAa,CAACA,CAAU,GACrD,CACL,IAAKnzI,EACL,WAAYmzI,CACpB,CACK,CACL,EAAK,CACD,IAAK,YACL,MAAO,SAAmB9pG,EAAMlsB,EAASi3L,EAAS,CAChD,IAAIr3G,EAAS,KAMb,GALI/U,GAAQ7qE,CAAO,IAAM,UAAY,KAAK,QAAQ,mCAChDA,EAAU,KAAK,QAAQ,iCAAiC,SAAS,GAE/D6qE,GAAQ7qE,CAAO,IAAM,WAAUA,EAAUw2L,GAAgB,GAAIx2L,CAAO,GACnEA,IAASA,EAAU,IACEksB,GAAS,KAAM,MAAO,GAC3C,MAAM,QAAQA,CAAI,IAAGA,EAAO,CAAC,OAAOA,CAAI,CAAC,GAC9C,IAAIgrK,EAAgBl3L,EAAQ,gBAAkB,OAAYA,EAAQ,cAAgB,KAAK,QAAQ,cAC3Fu1L,EAAev1L,EAAQ,eAAiB,OAAYA,EAAQ,aAAe,KAAK,QAAQ,aACxFm3L,EAAuB,KAAK,eAAejrK,EAAKA,EAAK,OAAS,CAAC,EAAGlsB,CAAO,EAC3End,EAAMs0M,EAAqB,IAC3BnhE,EAAamhE,EAAqB,WAChCC,EAAYphE,EAAWA,EAAW,OAAS,CAAC,EAC5CpB,EAAM50H,EAAQ,KAAO,KAAK,SAC1Bq3L,EAA0Br3L,EAAQ,yBAA2B,KAAK,QAAQ,wBAC9E,GAAI40H,GAAOA,EAAI,YAAW,IAAO,SAAU,CACzC,GAAIyiE,EAAyB,CAC3B,IAAI/B,EAAct1L,EAAQ,aAAe,KAAK,QAAQ,YACtD,OAAIk3L,EACK,CACL,IAAK,GAAG,OAAOE,CAAS,EAAE,OAAO9B,CAAW,EAAE,OAAOzyM,CAAG,EACxD,QAASA,EACT,aAAcA,EACd,QAAS+xI,EACT,OAAQwiE,CACtB,EAEiB,GAAG,OAAOA,CAAS,EAAE,OAAO9B,CAAW,EAAE,OAAOzyM,CAAG,CAC3D,CACD,OAAIq0M,EACK,CACL,IAAKr0M,EACL,QAASA,EACT,aAAcA,EACd,QAAS+xI,EACT,OAAQwiE,CACpB,EAEev0M,CACR,CACD,IAAIi0M,EAAW,KAAK,QAAQ5qK,EAAMlsB,CAAO,EACrC83J,EAAMg/B,GAAYA,EAAS,IAC3BQ,EAAaR,GAAYA,EAAS,SAAWj0M,EAC7C00M,EAAkBT,GAAYA,EAAS,cAAgBj0M,EACvD20M,EAAU,OAAO,UAAU,SAAS,MAAM1/B,CAAG,EAC7C2/B,EAAW,CAAC,kBAAmB,oBAAqB,iBAAiB,EACrEC,EAAa13L,EAAQ,aAAe,OAAYA,EAAQ,WAAa,KAAK,QAAQ,WAClF23L,EAA6B,CAAC,KAAK,YAAc,KAAK,WAAW,eACjEC,EAAiB,OAAO9/B,GAAQ,UAAY,OAAOA,GAAQ,WAAa,OAAOA,GAAQ,SAC3F,GAAI6/B,GAA8B7/B,GAAO8/B,GAAkBH,EAAS,QAAQD,CAAO,EAAI,GAAK,EAAE,OAAOE,GAAe,UAAYF,IAAY,kBAAmB,CAC7J,GAAI,CAACx3L,EAAQ,eAAiB,CAAC,KAAK,QAAQ,cAAe,CACpD,KAAK,QAAQ,uBAChB,KAAK,OAAO,KAAK,iEAAiE,EAEpF,IAAIn9C,EAAI,KAAK,QAAQ,sBAAwB,KAAK,QAAQ,sBAAsBy0O,EAAYx/B,EAAK0+B,GAAgBA,GAAgB,GAAIx2L,CAAO,EAAG,GAAI,CACjJ,GAAIg2H,CACL,EAAC,EAAI,QAAQ,OAAOnzI,EAAK,IAAI,EAAE,OAAO,KAAK,SAAU,0CAA0C,EAChG,OAAIq0M,GACFJ,EAAS,IAAMj0O,EACRi0O,GAEFj0O,CACR,CACD,GAAI0yO,EAAc,CAChB,IAAIsC,EAAiBL,IAAY,iBAC7B9+J,EAAOm/J,EAAiB,CAAE,EAAG,GAC7BC,EAAcD,EAAiBN,EAAkBD,EACrD,QAAS3yO,KAAKmzM,EACZ,GAAI,OAAO,UAAU,eAAe,KAAKA,EAAKnzM,CAAC,EAAG,CAChD,IAAIozO,EAAU,GAAG,OAAOD,CAAW,EAAE,OAAOvC,CAAY,EAAE,OAAO5wO,CAAC,EAClE+zE,EAAK/zE,CAAC,EAAI,KAAK,UAAUozO,EAASvB,GAAgBA,GAAgB,GAAIx2L,CAAO,EAAG,CAC9E,WAAY,GACZ,GAAIg2H,CACL,EAAC,EACEt9F,EAAK/zE,CAAC,IAAMozO,IAASr/J,EAAK/zE,CAAC,EAAImzM,EAAInzM,CAAC,EACzC,CAEHmzM,EAAMp/H,CACP,CACT,SAAiBi/J,GAA8B,OAAOD,GAAe,UAAYF,IAAY,iBACrF1/B,EAAMA,EAAI,KAAK4/B,CAAU,EACrB5/B,IAAKA,EAAM,KAAK,kBAAkBA,EAAK5rI,EAAMlsB,EAASi3L,CAAO,OAC5D,CACL,IAAIe,EAAc,GACdC,EAAU,GACVC,EAAsBl4L,EAAQ,QAAU,QAAa,OAAOA,EAAQ,OAAU,SAC9Em4L,EAAkBvB,EAAW,gBAAgB52L,CAAO,EACpDo4L,EAAqBF,EAAsB,KAAK,eAAe,UAAUtjE,EAAK50H,EAAQ,MAAOA,CAAO,EAAI,GACxGlkB,EAAekkB,EAAQ,eAAe,OAAOo4L,CAAkB,CAAC,GAAKp4L,EAAQ,aAC7E,CAAC,KAAK,cAAc83J,CAAG,GAAKqgC,IAC9BH,EAAc,GACdlgC,EAAMh8K,GAEH,KAAK,cAAcg8K,CAAG,IACzBmgC,EAAU,GACVngC,EAAMj1K,GAER,IAAIw1M,EAAiCr4L,EAAQ,gCAAkC,KAAK,QAAQ,+BACxFs4L,EAAgBD,GAAkCJ,EAAU,OAAYngC,EACxEygC,GAAgBJ,GAAmBr8M,IAAiBg8K,GAAO,KAAK,QAAQ,cAC5E,GAAImgC,GAAWD,GAAeO,GAAe,CAE3C,GADA,KAAK,OAAO,IAAIA,GAAgB,YAAc,aAAc3jE,EAAKwiE,EAAWv0M,EAAK01M,GAAgBz8M,EAAeg8K,CAAG,EAC/Gy9B,EAAc,CAChB,IAAIruN,GAAK,KAAK,QAAQ2b,EAAK2zM,GAAgBA,GAAgB,CAAE,EAAEx2L,CAAO,EAAG,GAAI,CAC3E,aAAc,EACf,EAAC,EACE94B,IAAMA,GAAG,KAAK,KAAK,OAAO,KAAK,iLAAiL,CACrN,CACD,IAAIsxN,GAAO,GACPC,GAAe,KAAK,cAAc,iBAAiB,KAAK,QAAQ,YAAaz4L,EAAQ,KAAO,KAAK,QAAQ,EAC7G,GAAI,KAAK,QAAQ,gBAAkB,YAAcy4L,IAAgBA,GAAa,CAAC,EAC7E,QAASvsN,GAAI,EAAGA,GAAIusN,GAAa,OAAQvsN,KACvCssN,GAAK,KAAKC,GAAavsN,EAAC,CAAC,OAElB,KAAK,QAAQ,gBAAkB,MACxCssN,GAAO,KAAK,cAAc,mBAAmBx4L,EAAQ,KAAO,KAAK,QAAQ,EAEzEw4L,GAAK,KAAKx4L,EAAQ,KAAO,KAAK,QAAQ,EAExC,IAAInpB,GAAO,SAAcp0B,GAAG8B,GAAGm0O,GAAsB,CACnD,IAAIC,GAAoBR,GAAmBO,KAAyB5gC,EAAM4gC,GAAuBJ,EAC7F14G,EAAO,QAAQ,kBACjBA,EAAO,QAAQ,kBAAkBn9H,GAAG20O,EAAW7yO,GAAGo0O,GAAmBJ,GAAev4L,CAAO,EAClF4/E,EAAO,kBAAoBA,EAAO,iBAAiB,aAC5DA,EAAO,iBAAiB,YAAYn9H,GAAG20O,EAAW7yO,GAAGo0O,GAAmBJ,GAAev4L,CAAO,EAEhG4/E,EAAO,KAAK,aAAcn9H,GAAG20O,EAAW7yO,GAAGuzM,CAAG,CAC1D,EACc,KAAK,QAAQ,cACX,KAAK,QAAQ,oBAAsBogC,EACrCM,GAAK,QAAQ,SAAU9F,GAAU,CAC/B9yG,EAAO,eAAe,YAAY8yG,GAAU1yL,CAAO,EAAE,QAAQ,SAAU8nL,GAAQ,CAC7EjxM,GAAK,CAAC67M,EAAQ,EAAG7vM,EAAMilM,GAAQ9nL,EAAQ,eAAe,OAAO8nL,EAAM,CAAC,GAAKhsM,CAAY,CACvG,CAAiB,CACjB,CAAe,EAEDjF,GAAK2hN,GAAM31M,EAAK/G,CAAY,EAGjC,CACDg8K,EAAM,KAAK,kBAAkBA,EAAK5rI,EAAMlsB,EAAS82L,EAAUG,CAAO,EAC9DgB,GAAWngC,IAAQj1K,GAAO,KAAK,QAAQ,8BAA6Bi1K,EAAM,GAAG,OAAOs/B,EAAW,GAAG,EAAE,OAAOv0M,CAAG,IAC7Go1M,GAAWD,IAAgB,KAAK,QAAQ,yBACvC,KAAK,QAAQ,mBAAqB,KACpClgC,EAAM,KAAK,QAAQ,uBAAuB,KAAK,QAAQ,4BAA8B,GAAG,OAAOs/B,EAAW,GAAG,EAAE,OAAOv0M,CAAG,EAAIA,EAAKm1M,EAAclgC,EAAM,MAAS,EAE/JA,EAAM,KAAK,QAAQ,uBAAuBA,CAAG,EAGlD,CACD,OAAIo/B,GACFJ,EAAS,IAAMh/B,EACRg/B,GAEFh/B,CACR,CACL,EAAK,CACD,IAAK,oBACL,MAAO,SAA2BA,EAAKj1K,EAAKmd,EAAS82L,EAAUG,EAAS,CACtE,IAAI/2G,EAAS,KACb,GAAI,KAAK,YAAc,KAAK,WAAW,MACrC43E,EAAM,KAAK,WAAW,MAAMA,EAAK0+B,GAAgBA,GAAgB,CAAE,EAAE,KAAK,QAAQ,cAAc,gBAAgB,EAAGx2L,CAAO,EAAG82L,EAAS,QAASA,EAAS,OAAQA,EAAS,QAAS,CAChL,SAAUA,CACpB,CAAS,UACQ,CAAC92L,EAAQ,kBAAmB,CACjCA,EAAQ,eAAe,KAAK,aAAa,KAAKw2L,GAAgBA,GAAgB,GAAIx2L,CAAO,EAAG,CAC9F,cAAew2L,GAAgBA,GAAgB,GAAI,KAAK,QAAQ,aAAa,EAAGx2L,EAAQ,aAAa,CACtG,EAAC,EACF,IAAI44L,EAAkB,OAAO9gC,GAAQ,WAAa93J,GAAWA,EAAQ,eAAiBA,EAAQ,cAAc,kBAAoB,OAAYA,EAAQ,cAAc,gBAAkB,KAAK,QAAQ,cAAc,iBAC3M64L,EACJ,GAAID,EAAiB,CACnB,IAAIjvO,EAAKmuM,EAAI,MAAM,KAAK,aAAa,aAAa,EAClD+gC,EAAUlvO,GAAMA,EAAG,MACpB,CACD,IAAI+1C,EAAOM,EAAQ,SAAW,OAAOA,EAAQ,SAAY,SAAWA,EAAQ,QAAUA,EAGtF,GAFI,KAAK,QAAQ,cAAc,mBAAkBN,EAAO82L,GAAgBA,GAAgB,GAAI,KAAK,QAAQ,cAAc,gBAAgB,EAAG92L,CAAI,GAC9Io4J,EAAM,KAAK,aAAa,YAAYA,EAAKp4J,EAAMM,EAAQ,KAAO,KAAK,SAAUA,CAAO,EAChF44L,EAAiB,CACnB,IAAIphO,EAAKsgM,EAAI,MAAM,KAAK,aAAa,aAAa,EAC9CghC,EAAUthO,GAAMA,EAAG,OACnBqhO,EAAUC,IAAS94L,EAAQ,KAAO,GACvC,CACG,CAACA,EAAQ,KAAO,KAAK,QAAQ,mBAAqB,MAAQ82L,GAAYA,EAAS,MAAK92L,EAAQ,IAAM82L,EAAS,SAC3G92L,EAAQ,OAAS,KAAO83J,EAAM,KAAK,aAAa,KAAKA,EAAK,UAAY,CACxE,QAAS7jC,EAAO,UAAU,OAAQziJ,EAAO,IAAI,MAAMyiJ,CAAI,EAAG34F,EAAO,EAAGA,EAAO24F,EAAM34F,IAC/E9pD,EAAK8pD,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAI27J,GAAWA,EAAQ,CAAC,IAAMzlN,EAAK,CAAC,GAAK,CAACwuB,EAAQ,SAChDkgF,EAAO,OAAO,KAAK,6CAA6C,OAAO1uG,EAAK,CAAC,EAAG,WAAW,EAAE,OAAOqR,EAAI,CAAC,CAAC,CAAC,EACpG,MAEFq9F,EAAO,UAAU,MAAMA,EAAQ1uG,EAAK,OAAO,CAACqR,CAAG,CAAC,CAAC,CACzD,EAAEmd,CAAO,GACNA,EAAQ,eAAe,KAAK,aAAa,MAAK,CACnD,CACD,IAAI+4L,EAAc/4L,EAAQ,aAAe,KAAK,QAAQ,YAClDg5L,EAAqB,OAAOD,GAAgB,SAAW,CAACA,CAAW,EAAIA,EAC3E,OAAyBjhC,GAAQ,MAAQkhC,GAAsBA,EAAmB,QAAUh5L,EAAQ,qBAAuB,KACzH83J,EAAMq+B,GAAc,OAAO6C,EAAoBlhC,EAAKj1K,EAAK,KAAK,SAAW,KAAK,QAAQ,wBAA0B2zM,GAAgB,CAC9H,aAAcM,CACf,EAAE92L,CAAO,EAAIA,EAAS,IAAI,GAEtB83J,CACR,CACL,EAAK,CACD,IAAK,UACL,MAAO,SAAiB5rI,EAAM,CAC5B,IAAI+sK,EAAS,KACTj5L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E6mE,EACAoxH,EACAiB,EACAC,EACAC,EACJ,OAAI,OAAOltK,GAAS,WAAUA,EAAO,CAACA,CAAI,GAC1CA,EAAK,QAAQ,SAAU3nE,EAAG,CACxB,GAAI,CAAA00O,EAAO,cAAcpyH,CAAK,EAC9B,KAAIwyH,EAAYJ,EAAO,eAAe10O,EAAGy7C,CAAO,EAC5Cnd,EAAMw2M,EAAU,IACpBpB,EAAUp1M,EACV,IAAImzI,EAAaqjE,EAAU,WACvBJ,EAAO,QAAQ,aAAYjjE,EAAaA,EAAW,OAAOijE,EAAO,QAAQ,UAAU,GACvF,IAAIf,EAAsBl4L,EAAQ,QAAU,QAAa,OAAOA,EAAQ,OAAU,SAC9Es5L,EAAwBpB,GAAuB,CAACl4L,EAAQ,SAAWA,EAAQ,QAAU,GAAKi5L,EAAO,eAAe,iBAAgB,EAChIM,EAAuBv5L,EAAQ,UAAY,SAAc,OAAOA,EAAQ,SAAY,UAAY,OAAOA,EAAQ,SAAY,WAAaA,EAAQ,UAAY,GAC5Jw5L,EAAQx5L,EAAQ,KAAOA,EAAQ,KAAOi5L,EAAO,cAAc,mBAAmBj5L,EAAQ,KAAOi5L,EAAO,SAAUj5L,EAAQ,WAAW,EACrIg2H,EAAW,QAAQ,SAAUtB,EAAI,CAC3BukE,EAAO,cAAcpyH,CAAK,IAC9BuyH,EAAS1kE,EACL,CAACiiE,GAAiB,GAAG,OAAO6C,EAAM,CAAC,EAAG,GAAG,EAAE,OAAO9kE,CAAE,CAAC,GAAKukE,EAAO,OAASA,EAAO,MAAM,oBAAsB,CAACA,EAAO,MAAM,mBAAmBG,CAAM,IACtJzC,GAAiB,GAAG,OAAO6C,EAAM,CAAC,EAAG,GAAG,EAAE,OAAO9kE,CAAE,CAAC,EAAI,GACxDukE,EAAO,OAAO,KAAK,QAAS,OAAOhB,EAAS,mBAAqB,EAAE,OAAOuB,EAAM,KAAK,IAAI,EAAG,qCAAuC,EAAE,OAAOJ,EAAQ,sBAAuB,EAAG,0NAA0N,GAE1YI,EAAM,QAAQ,SAAUllI,EAAM,CAC5B,GAAI,CAAA2kI,EAAO,cAAcpyH,CAAK,EAC9B,CAAAsyH,EAAU7kI,EACV,IAAImlI,EAAY,CAAC52M,CAAG,EACpB,GAAIo2M,EAAO,YAAcA,EAAO,WAAW,cACzCA,EAAO,WAAW,cAAcQ,EAAW52M,EAAKyxE,EAAMogE,EAAI10H,CAAO,MAC5D,CACL,IAAI05L,EACAxB,IAAqBwB,EAAeT,EAAO,eAAe,UAAU3kI,EAAMt0D,EAAQ,MAAOA,CAAO,GACpG,IAAI25L,EAAa,GAAG,OAAOV,EAAO,QAAQ,gBAAiB,MAAM,EAOjE,GANIf,IACFuB,EAAU,KAAK52M,EAAM62M,CAAY,EAC7BJ,GACFG,EAAU,KAAK52M,EAAM82M,CAAU,GAG/BJ,EAAsB,CACxB,IAAIK,EAAa,GAAG,OAAO/2M,CAAG,EAAE,OAAOo2M,EAAO,QAAQ,gBAAgB,EAAE,OAAOj5L,EAAQ,OAAO,EAC9Fy5L,EAAU,KAAKG,CAAU,EACrB1B,IACFuB,EAAU,KAAKG,EAAaF,CAAY,EACpCJ,GACFG,EAAU,KAAKG,EAAaD,CAAU,EAG3C,CACF,CAED,QADIE,EACGA,EAAcJ,EAAU,OACxBR,EAAO,cAAcpyH,CAAK,IAC7BqyH,EAAeW,EACfhzH,EAAQoyH,EAAO,YAAY3kI,EAAMogE,EAAImlE,EAAa75L,CAAO,GAGzE,CAAW,EACX,CAAS,EACT,CAAO,EACM,CACL,IAAK6mE,EACL,QAASoxH,EACT,aAAciB,EACd,QAASC,EACT,OAAQC,CAChB,CACK,CACL,EAAK,CACD,IAAK,gBACL,MAAO,SAAuBthC,EAAK,CACjC,OAAOA,IAAQ,QAAa,EAAE,CAAC,KAAK,QAAQ,YAAcA,IAAQ,OAAS,EAAE,CAAC,KAAK,QAAQ,mBAAqBA,IAAQ,GACzH,CACL,EAAK,CACD,IAAK,cACL,MAAO,SAAqBxjG,EAAMogE,EAAI7xI,EAAK,CACzC,IAAImd,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClF,OAAI,KAAK,YAAc,KAAK,WAAW,YAAoB,KAAK,WAAW,YAAYs0D,EAAMogE,EAAI7xI,EAAKmd,CAAO,EACtG,KAAK,cAAc,YAAYs0D,EAAMogE,EAAI7xI,EAAKmd,CAAO,CAC7D,CACF,GAAG,CAAC,CACH,IAAK,kBACL,MAAO,SAAyBA,EAAS,CACvC,IAAI3d,EAAS,eACb,QAASkgD,KAAUviC,EACjB,GAAI,OAAO,UAAU,eAAe,KAAKA,EAASuiC,CAAM,GAAKlgD,IAAWkgD,EAAO,UAAU,EAAGlgD,EAAO,MAAM,GAAmB2d,EAAQuiC,CAAM,IAA5B,OAC5G,MAAO,GAGX,MAAO,EACR,CACF,EAAC,EACKq0J,CACT,EAAE7C,EAAY,EAEd,SAAS+F,GAAWz6M,EAAQ,CAC1B,OAAOA,EAAO,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAO,MAAM,CAAC,CACxD,CACA,IAAI06M,GAAe,UAAY,CAC7B,SAASA,EAAa/5L,EAAS,CAC7BorE,GAAgB,KAAM2uH,CAAY,EAClC,KAAK,QAAU/5L,EACf,KAAK,cAAgB,KAAK,QAAQ,eAAiB,GACnD,KAAK,OAAS8zL,GAAW,OAAO,eAAe,CAChD,CACD9oH,UAAa+uH,EAAc,CAAC,CAC1B,IAAK,wBACL,MAAO,SAA+BzlI,EAAM,CAC1C,GAAI,CAACA,GAAQA,EAAK,QAAQ,GAAG,EAAI,EAAG,OAAO,KAC3C,IAAI3xG,EAAI2xG,EAAK,MAAM,GAAG,EAGtB,OAFI3xG,EAAE,SAAW,IACjBA,EAAE,IAAG,EACDA,EAAEA,EAAE,OAAS,CAAC,EAAE,YAAa,IAAK,KAAY,KAC3C,KAAK,mBAAmBA,EAAE,KAAK,GAAG,CAAC,CAC3C,CACL,EAAK,CACD,IAAK,0BACL,MAAO,SAAiC2xG,EAAM,CAC5C,GAAI,CAACA,GAAQA,EAAK,QAAQ,GAAG,EAAI,EAAG,OAAOA,EAC3C,IAAI3xG,EAAI2xG,EAAK,MAAM,GAAG,EACtB,OAAO,KAAK,mBAAmB3xG,EAAE,CAAC,CAAC,CACpC,CACL,EAAK,CACD,IAAK,qBACL,MAAO,SAA4B2xG,EAAM,CACvC,GAAI,OAAOA,GAAS,UAAYA,EAAK,QAAQ,GAAG,EAAI,GAAI,CACtD,IAAI0lI,EAAe,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAM,EACtEr3O,EAAI2xG,EAAK,MAAM,GAAG,EACtB,OAAI,KAAK,QAAQ,aACf3xG,EAAIA,EAAE,IAAI,SAAUqsL,EAAM,CACxB,OAAOA,EAAK,aACxB,CAAW,EACQrsL,EAAE,SAAW,GACtBA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAE,YAAW,EACvBA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAE,YAAW,EACnBq3O,EAAa,QAAQr3O,EAAE,CAAC,EAAE,YAAa,GAAI,KAAIA,EAAE,CAAC,EAAIm3O,GAAWn3O,EAAE,CAAC,EAAE,YAAW,CAAE,IAC9EA,EAAE,SAAW,IACtBA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAE,YAAW,EACnBA,EAAE,CAAC,EAAE,SAAW,IAAGA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAE,YAAW,GAC1CA,EAAE,CAAC,IAAM,OAASA,EAAE,CAAC,EAAE,SAAW,IAAGA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAE,eACjDq3O,EAAa,QAAQr3O,EAAE,CAAC,EAAE,YAAa,GAAI,KAAIA,EAAE,CAAC,EAAIm3O,GAAWn3O,EAAE,CAAC,EAAE,YAAW,CAAE,GACnFq3O,EAAa,QAAQr3O,EAAE,CAAC,EAAE,YAAa,GAAI,KAAIA,EAAE,CAAC,EAAIm3O,GAAWn3O,EAAE,CAAC,EAAE,YAAW,CAAE,IAElFA,EAAE,KAAK,GAAG,CAClB,CACD,OAAO,KAAK,QAAQ,WAAa,KAAK,QAAQ,aAAe2xG,EAAK,YAAa,EAAGA,CACnF,CACL,EAAK,CACD,IAAK,kBACL,MAAO,SAAyBA,EAAM,CACpC,OAAI,KAAK,QAAQ,OAAS,gBAAkB,KAAK,QAAQ,4BACvDA,EAAO,KAAK,wBAAwBA,CAAI,GAEnC,CAAC,KAAK,eAAiB,CAAC,KAAK,cAAc,QAAU,KAAK,cAAc,QAAQA,CAAI,EAAI,EAChG,CACL,EAAK,CACD,IAAK,wBACL,MAAO,SAA+BklI,EAAO,CAC3C,IAAI3sH,EAAQ,KACZ,GAAI,CAAC2sH,EAAO,OAAO,KACnB,IAAI3yH,EACJ,OAAA2yH,EAAM,QAAQ,SAAUllI,EAAM,CAC5B,GAAI,CAAAuS,EACJ,KAAIozH,EAAaptH,EAAM,mBAAmBvY,CAAI,GAC1C,CAACuY,EAAM,QAAQ,eAAiBA,EAAM,gBAAgBotH,CAAU,KAAGpzH,EAAQozH,GACvF,CAAO,EACG,CAACpzH,GAAS,KAAK,QAAQ,eACzB2yH,EAAM,QAAQ,SAAUllI,EAAM,CAC5B,GAAI,CAAAuS,EACJ,KAAIqzH,EAAUrtH,EAAM,wBAAwBvY,CAAI,EAChD,GAAIuY,EAAM,gBAAgBqtH,CAAO,EAAG,OAAOrzH,EAAQqzH,EACnDrzH,EAAQgG,EAAM,QAAQ,cAAc,KAAK,SAAUstH,EAAc,CAC/D,GAAIA,IAAiBD,EAAS,OAAOC,EACrC,GAAI,EAAAA,EAAa,QAAQ,GAAG,EAAI,GAAKD,EAAQ,QAAQ,GAAG,EAAI,IACxDC,EAAa,QAAQD,CAAO,IAAM,EAAG,OAAOC,CAC5D,CAAW,EACX,CAAS,EAEEtzH,IAAOA,EAAQ,KAAK,iBAAiB,KAAK,QAAQ,WAAW,EAAE,CAAC,GAC9DA,CACR,CACL,EAAK,CACD,IAAK,mBACL,MAAO,SAA0BuzH,EAAW9lI,EAAM,CAChD,GAAI,CAAC8lI,EAAW,MAAO,GAGvB,GAFI,OAAOA,GAAc,aAAYA,EAAYA,EAAU9lI,CAAI,GAC3D,OAAO8lI,GAAc,WAAUA,EAAY,CAACA,CAAS,GACrD,OAAO,UAAU,SAAS,MAAMA,CAAS,IAAM,iBAAkB,OAAOA,EAC5E,GAAI,CAAC9lI,EAAM,OAAO8lI,EAAU,SAAc,GAC1C,IAAIvzH,EAAQuzH,EAAU9lI,CAAI,EAC1B,OAAKuS,IAAOA,EAAQuzH,EAAU,KAAK,sBAAsB9lI,CAAI,CAAC,GACzDuS,IAAOA,EAAQuzH,EAAU,KAAK,mBAAmB9lI,CAAI,CAAC,GACtDuS,IAAOA,EAAQuzH,EAAU,KAAK,wBAAwB9lI,CAAI,CAAC,GAC3DuS,IAAOA,EAAQuzH,EAAU,SACvBvzH,GAAS,EACjB,CACL,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BvS,EAAM+lI,EAAc,CACrD,IAAIz6G,EAAS,KACT06G,EAAgB,KAAK,iBAAiBD,GAAgB,KAAK,QAAQ,aAAe,GAAI/lI,CAAI,EAC1FklI,EAAQ,GACRe,EAAU,SAAiBj2O,EAAG,CAC3BA,IACDs7H,EAAO,gBAAgBt7H,CAAC,EAC1Bk1O,EAAM,KAAKl1O,CAAC,EAEZs7H,EAAO,OAAO,KAAK,uDAAuD,OAAOt7H,CAAC,CAAC,EAE7F,EACM,OAAI,OAAOgwG,GAAS,UAAYA,EAAK,QAAQ,GAAG,EAAI,IAC9C,KAAK,QAAQ,OAAS,gBAAgBimI,EAAQ,KAAK,mBAAmBjmI,CAAI,CAAC,EAC3E,KAAK,QAAQ,OAAS,gBAAkB,KAAK,QAAQ,OAAS,eAAeimI,EAAQ,KAAK,sBAAsBjmI,CAAI,CAAC,EACrH,KAAK,QAAQ,OAAS,eAAeimI,EAAQ,KAAK,wBAAwBjmI,CAAI,CAAC,GAC1E,OAAOA,GAAS,UACzBimI,EAAQ,KAAK,mBAAmBjmI,CAAI,CAAC,EAEvCgmI,EAAc,QAAQ,SAAU9tO,EAAI,CAC9BgtO,EAAM,QAAQhtO,CAAE,EAAI,GAAG+tO,EAAQ36G,EAAO,mBAAmBpzH,CAAE,CAAC,CACxE,CAAO,EACMgtO,CACR,CACF,EAAC,EACKO,CACT,IAEIS,IAAO,CAAC,CACV,KAAM,CAAC,MAAO,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EACrI,GAAI,CAAC,EAAG,CAAC,EACT,GAAI,CACN,EAAG,CACD,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,QAAS,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAC7Y,GAAI,CAAC,EAAG,CAAC,EACT,GAAI,CACN,EAAG,CACD,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAC5I,GAAI,CAAC,CAAC,EACN,GAAI,CACN,EAAG,CACD,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,IAAI,EACtD,GAAI,CAAC,EAAG,EAAG,CAAC,EACZ,GAAI,CACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAG,EACxB,GAAI,CACN,EAAG,CACD,KAAM,CAAC,KAAM,IAAI,EACjB,GAAI,CAAC,EAAG,EAAG,CAAC,EACZ,GAAI,CACN,EAAG,CACD,KAAM,CAAC,MAAO,IAAI,EAClB,GAAI,CAAC,EAAG,EAAG,CAAC,EACZ,GAAI,CACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,EAAG,EAAG,CAAC,EACf,GAAI,CACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,CAAC,EACT,GAAI,CACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAE,EACnB,GAAI,EACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,EAAG,EAAG,EAAE,EAChB,GAAI,EACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,CAAC,EACT,GAAI,EACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,CAAC,EACT,GAAI,EACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,EAAG,EAAG,CAAC,EACf,GAAI,EACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,EAAG,EAAE,EACb,GAAI,EACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,EAAG,CAAC,EACZ,GAAI,EACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,CAAC,EACT,GAAI,EACN,EAAG,CACD,KAAM,CAAC,KAAK,EACZ,GAAI,CAAC,EAAG,EAAG,CAAC,EACZ,GAAI,EACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,EAAG,GAAI,EAAE,EACjB,GAAI,EACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,CAAC,EACT,GAAI,CACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,EAAG,EAAE,EACb,GAAI,EACN,EAAG,CACD,KAAM,CAAC,IAAI,EACX,GAAI,CAAC,EAAG,EAAG,EAAG,CAAC,EACf,GAAI,EACN,EAAG,CACD,KAAM,CAAC,KAAM,IAAI,EACjB,GAAI,CAAC,EAAG,EAAG,GAAI,EAAE,EACjB,GAAI,EACN,CAAC,EACGC,IAAqB,CACvB,EAAG,SAAW/3O,EAAG,CACf,MAAO,EAAOA,EAAI,EACnB,EACD,EAAG,SAAWA,EAAG,CACf,MAAO,EAAOA,GAAK,EACpB,EACD,EAAG,SAAWA,EAAG,CACf,MAAO,EACR,EACD,EAAG,SAAWA,EAAG,CACf,OAAcA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,IAAM,GAAKA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,CACtH,EACD,EAAG,SAAWA,EAAG,CACf,OAAcA,GAAK,EAAI,EAAIA,GAAK,EAAI,EAAIA,GAAK,EAAI,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,KAAO,GAAK,EAAI,CAC9G,EACD,EAAG,SAAWA,EAAG,CACf,OAAcA,GAAK,EAAI,EAAIA,GAAK,GAAKA,GAAK,EAAI,EAAI,CACnD,EACD,EAAG,SAAWA,EAAG,CACf,OAAcA,GAAK,EAAI,EAAIA,EAAI,IAAM,GAAKA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,CAChG,EACD,EAAG,SAAWA,EAAG,CACf,OAAcA,GAAK,EAAI,EAAIA,GAAK,EAAI,EAAIA,GAAK,GAAKA,GAAK,GAAK,EAAI,CACjE,EACD,EAAG,SAAWA,EAAG,CACf,MAAO,EAAOA,GAAK,EACpB,EACD,GAAI,SAAWA,EAAG,CAChB,OAAcA,GAAK,EAAI,EAAIA,GAAK,EAAI,EAAIA,EAAI,EAAI,EAAIA,EAAI,GAAK,EAAI,CAClE,EACD,GAAI,SAAWA,EAAG,CAChB,OAAcA,GAAK,GAAKA,GAAK,GAAK,EAAIA,GAAK,GAAKA,GAAK,GAAK,EAAIA,EAAI,GAAKA,EAAI,GAAK,EAAI,CACrF,EACD,GAAI,SAAWA,EAAG,CAChB,MAAO,EAAOA,EAAI,IAAM,GAAKA,EAAI,KAAO,GACzC,EACD,GAAI,SAAWA,EAAG,CAChB,MAAO,EAAOA,IAAM,EACrB,EACD,GAAI,SAAWA,EAAG,CAChB,OAAcA,GAAK,EAAI,EAAIA,GAAK,EAAI,EAAIA,GAAK,EAAI,EAAI,CACtD,EACD,GAAI,SAAWA,EAAG,CAChB,OAAcA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,CACvG,EACD,GAAI,SAAWA,EAAG,CAChB,OAAcA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,IAAM,EAAI,EAAI,CAChE,EACD,GAAI,SAAWA,EAAG,CAChB,OAAcA,GAAK,GAAKA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAI,CAC5D,EACD,GAAI,SAAWA,EAAG,CAChB,OAAcA,GAAK,EAAI,EAAIA,GAAK,EAAI,EAAI,CACzC,EACD,GAAI,SAAWA,EAAG,CAChB,OAAcA,GAAK,EAAI,EAAIA,GAAK,GAAKA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,GAAK,EAAI,CAC3G,EACD,GAAI,SAAWA,EAAG,CAChB,OAAcA,GAAK,EAAI,EAAIA,GAAK,GAAKA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAI,CACxE,EACD,GAAI,SAAWA,EAAG,CAChB,OAAcA,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,EAAI,EAAI,CACxF,EACD,GAAI,SAAWA,EAAG,CAChB,OAAcA,GAAK,EAAI,EAAIA,GAAK,EAAI,GAAKA,EAAI,GAAKA,EAAI,KAAOA,EAAI,IAAM,EAAI,EAAI,CAChF,CACH,EACIg4O,IAAyB,CAAC,KAAM,KAAM,IAAI,EAC1CC,GAAgB,CAClB,KAAM,EACN,IAAK,EACL,IAAK,EACL,IAAK,EACL,KAAM,EACN,MAAO,CACT,EACA,SAASC,KAAc,CACrB,IAAI57J,EAAQ,GACZ,OAAAw7J,IAAK,QAAQ,SAAU/gK,EAAK,CAC1BA,EAAI,KAAK,QAAQ,SAAUh3E,EAAG,CAC5Bu8E,EAAMv8E,CAAC,EAAI,CACT,QAASg3E,EAAI,GACb,QAASghK,IAAmBhhK,EAAI,EAAE,CAC1C,CACA,CAAK,CACL,CAAG,EACMuF,CACT,CACA,IAAI67J,IAAiB,UAAY,CAC/B,SAASA,EAAeC,EAAe,CACrC,IAAI96L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClForE,GAAgB,KAAMyvH,CAAc,EACpC,KAAK,cAAgBC,EACrB,KAAK,QAAU96L,EACf,KAAK,OAAS8zL,GAAW,OAAO,gBAAgB,GAC3C,CAAC,KAAK,QAAQ,mBAAqB,KAAK,QAAQ,oBAAsB,QAAU,OAAO,KAAS,KAAe,CAAC,KAAK,eACxH,KAAK,QAAQ,kBAAoB,KACjC,KAAK,OAAO,MAAM,oJAAoJ,GAExK,KAAK,MAAQ8G,KACd,CACD5vH,UAAa6vH,EAAgB,CAAC,CAC5B,IAAK,UACL,MAAO,SAAiBjmE,EAAKrvF,EAAK,CAChC,KAAK,MAAMqvF,CAAG,EAAIrvF,CACnB,CACL,EAAK,CACD,IAAK,UACL,MAAO,SAAiB+uB,EAAM,CAC5B,IAAIt0D,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClF,GAAI,KAAK,mBACP,GAAI,CACF,OAAO,IAAI,KAAK,YAAYs0D,EAAM,CAChC,KAAMt0D,EAAQ,QAAU,UAAY,UAChD,CAAW,CACF,MAAiB,CAChB,MACD,CAEH,OAAO,KAAK,MAAMs0D,CAAI,GAAK,KAAK,MAAM,KAAK,cAAc,wBAAwBA,CAAI,CAAC,CACvF,CACL,EAAK,CACD,IAAK,cACL,MAAO,SAAqBA,EAAM,CAChC,IAAIt0D,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E0nC,EAAO,KAAK,QAAQ4sB,EAAMt0D,CAAO,EACrC,OAAI,KAAK,mBACA0nC,GAAQA,EAAK,gBAAiB,EAAC,iBAAiB,OAAS,EAE3DA,GAAQA,EAAK,QAAQ,OAAS,CACtC,CACL,EAAK,CACD,IAAK,sBACL,MAAO,SAA6B4sB,EAAMzxE,EAAK,CAC7C,IAAImd,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClF,OAAO,KAAK,YAAYs0D,EAAMt0D,CAAO,EAAE,IAAI,SAAU8nL,EAAQ,CAC3D,MAAO,GAAG,OAAOjlM,CAAG,EAAE,OAAOilM,CAAM,CAC3C,CAAO,CACF,CACL,EAAK,CACD,IAAK,cACL,MAAO,SAAqBxzH,EAAM,CAChC,IAAIuY,EAAQ,KACR7sE,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E0nC,EAAO,KAAK,QAAQ4sB,EAAMt0D,CAAO,EACrC,OAAK0nC,EAGD,KAAK,mBACAA,EAAK,kBAAkB,iBAAiB,KAAK,SAAUqzJ,EAAiBC,EAAiB,CAC9F,OAAOL,GAAcI,CAAe,EAAIJ,GAAcK,CAAe,CAC/E,CAAS,EAAE,IAAI,SAAUC,EAAgB,CAC/B,MAAO,GAAG,OAAOpuH,EAAM,QAAQ,OAAO,EAAE,OAAOouH,CAAc,CACvE,CAAS,EAEIvzJ,EAAK,QAAQ,IAAI,SAAUupC,EAAQ,CACxC,OAAOpE,EAAM,UAAUvY,EAAM2c,EAAQjxE,CAAO,CACpD,CAAO,EAXQ,EAYV,CACL,EAAK,CACD,IAAK,YACL,MAAO,SAAmBs0D,EAAM/jF,EAAO,CACrC,IAAIyvB,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E0nC,EAAO,KAAK,QAAQ4sB,EAAMt0D,CAAO,EACrC,OAAI0nC,EACE,KAAK,mBACA,GAAG,OAAO,KAAK,QAAQ,OAAO,EAAE,OAAOA,EAAK,OAAOn3D,CAAK,CAAC,EAE3D,KAAK,yBAAyBm3D,EAAMn3D,CAAK,GAElD,KAAK,OAAO,KAAK,6BAA6B,OAAO+jF,CAAI,CAAC,EACnD,GACR,CACL,EAAK,CACD,IAAK,2BACL,MAAO,SAAkC5sB,EAAMn3D,EAAO,CACpD,IAAIqvG,EAAS,KACTq+C,EAAMv2F,EAAK,MAAQA,EAAK,QAAQn3D,CAAK,EAAIm3D,EAAK,QAAQ,KAAK,IAAIn3D,CAAK,CAAC,EACrEu3M,EAASpgJ,EAAK,QAAQu2F,CAAG,EACzB,KAAK,QAAQ,sBAAwBv2F,EAAK,QAAQ,SAAW,GAAKA,EAAK,QAAQ,CAAC,IAAM,IACpFogJ,IAAW,EACbA,EAAS,SACAA,IAAW,IACpBA,EAAS,KAGb,IAAIoT,EAAe,UAAwB,CACzC,OAAOt7G,EAAO,QAAQ,SAAWkoG,EAAO,SAAQ,EAAKloG,EAAO,QAAQ,QAAUkoG,EAAO,SAAU,EAAGA,EAAO,SAAQ,CACzH,EACM,OAAI,KAAK,QAAQ,oBAAsB,KACjCA,IAAW,EAAU,GACrB,OAAOA,GAAW,SAAiB,WAAW,OAAOA,EAAO,SAAQ,CAAE,EACnEoT,EAAY,EACV,KAAK,QAAQ,oBAAsB,MAEnC,KAAK,QAAQ,sBAAwBxzJ,EAAK,QAAQ,SAAW,GAAKA,EAAK,QAAQ,CAAC,IAAM,EADxFwzJ,EAAY,EAId,KAAK,QAAQ,SAAWj9D,EAAI,SAAQ,EAAK,KAAK,QAAQ,QAAUA,EAAI,SAAU,EAAGA,EAAI,SAAQ,CACrG,CACL,EAAK,CACD,IAAK,mBACL,MAAO,UAA4B,CACjC,MAAO,CAACy8D,IAAuB,SAAS,KAAK,QAAQ,iBAAiB,CACvE,CACF,EAAC,EACKG,CACT,IAEA,SAASM,GAAUjiK,EAAQivC,EAAgB,CAAE,IAAIj8C,EAAO,OAAO,KAAKgN,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIkvC,EAAU,OAAO,sBAAsBlvC,CAAM,EAAGivC,IAAmBC,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CAAE,OAAO,OAAO,yBAAyBnvC,EAAQmvC,CAAG,EAAE,UAAW,CAAE,GAAIn8C,EAAK,KAAK,MAAMA,EAAMk8C,CAAO,CAAE,CAAG,OAAOl8C,CAAO,CACvV,SAASkvK,GAAgB5lN,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAiB,UAAUz7D,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIivN,GAAU,OAAOxzJ,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAU9kD,EAAK,CAAE0lF,GAAgB/yF,EAAQqN,EAAK8kD,EAAO9kD,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBrN,EAAQ,OAAO,0BAA0BmyD,CAAM,CAAC,EAAIwzJ,GAAU,OAAOxzJ,CAAM,CAAC,EAAE,QAAQ,SAAU9kD,EAAK,CAAE,OAAO,eAAerN,EAAQqN,EAAK,OAAO,yBAAyB8kD,EAAQ9kD,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOrN,CAAS,CAChgB,SAAS6lN,GAAqB37L,EAAMs1L,EAAanyM,EAAK,CACpD,IAAI0yM,EAAe,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,IACnFU,EAAsB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC1FnzM,EAAOiyM,IAAoBr1L,EAAMs1L,EAAanyM,CAAG,EACrD,MAAI,CAACC,GAAQmzM,GAAuB,OAAOpzM,GAAQ,WACjDC,EAAO2yM,GAAS/1L,EAAM7c,EAAK0yM,CAAY,EACnCzyM,IAAS,SAAWA,EAAO2yM,GAAST,EAAanyM,EAAK0yM,CAAY,IAEjEzyM,CACT,CACA,IAAIw4M,IAAe,UAAY,CAC7B,SAASA,GAAe,CACtB,IAAIt7L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClForE,GAAgB,KAAMkwH,CAAY,EAClC,KAAK,OAASxH,GAAW,OAAO,cAAc,EAC9C,KAAK,QAAU9zL,EACf,KAAK,OAASA,EAAQ,eAAiBA,EAAQ,cAAc,QAAU,SAAU5yB,EAAO,CACtF,OAAOA,CACb,EACI,KAAK,KAAK4yB,CAAO,CAClB,CACDgrE,UAAaswH,EAAc,CAAC,CAC1B,IAAK,OACL,MAAO,UAAgB,CACrB,IAAIt7L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7EA,EAAQ,gBAAeA,EAAQ,cAAgB,CAClD,YAAa,EACrB,GACM,IAAIu7L,EAAQv7L,EAAQ,cACpB,KAAK,OAASu7L,EAAM,SAAW,OAAYA,EAAM,OAASz2O,IAC1D,KAAK,YAAcy2O,EAAM,cAAgB,OAAYA,EAAM,YAAc,GACzE,KAAK,oBAAsBA,EAAM,sBAAwB,OAAYA,EAAM,oBAAsB,GACjG,KAAK,OAASA,EAAM,OAAS1nB,GAAY0nB,EAAM,MAAM,EAAIA,EAAM,eAAiB,KAChF,KAAK,OAASA,EAAM,OAAS1nB,GAAY0nB,EAAM,MAAM,EAAIA,EAAM,eAAiB,KAChF,KAAK,gBAAkBA,EAAM,gBAAkBA,EAAM,gBAAkBA,EAAM,iBAAmB,IAChG,KAAK,eAAiBA,EAAM,eAAiB,GAAKA,EAAM,gBAAkB,IAC1E,KAAK,eAAiB,KAAK,eAAiB,GAAKA,EAAM,gBAAkB,GACzE,KAAK,cAAgBA,EAAM,cAAgB1nB,GAAY0nB,EAAM,aAAa,EAAIA,EAAM,sBAAwB1nB,GAAY,KAAK,EAC7H,KAAK,cAAgB0nB,EAAM,cAAgB1nB,GAAY0nB,EAAM,aAAa,EAAIA,EAAM,sBAAwB1nB,GAAY,GAAG,EAC3H,KAAK,wBAA0B0nB,EAAM,wBAA0BA,EAAM,wBAA0BA,EAAM,yBAA2B,IAChI,KAAK,YAAcA,EAAM,YAAcA,EAAM,YAAc,IAC3D,KAAK,aAAeA,EAAM,eAAiB,OAAYA,EAAM,aAAe,GAC5E,KAAK,YAAW,CACjB,CACL,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CAClB,KAAK,SAAS,KAAK,KAAK,KAAK,OAAO,CACzC,CACL,EAAK,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,IAAIC,EAAY,GAAG,OAAO,KAAK,OAAQ,OAAO,EAAE,OAAO,KAAK,MAAM,EAClE,KAAK,OAAS,IAAI,OAAOA,EAAW,GAAG,EACvC,IAAIC,EAAoB,GAAG,OAAO,KAAK,MAAM,EAAE,OAAO,KAAK,eAAgB,OAAO,EAAE,OAAO,KAAK,cAAc,EAAE,OAAO,KAAK,MAAM,EAClI,KAAK,eAAiB,IAAI,OAAOA,EAAmB,GAAG,EACvD,IAAIC,EAAmB,GAAG,OAAO,KAAK,cAAe,OAAO,EAAE,OAAO,KAAK,aAAa,EACvF,KAAK,cAAgB,IAAI,OAAOA,EAAkB,GAAG,CACtD,CACL,EAAK,CACD,IAAK,cACL,MAAO,SAAqB1uD,EAAKttI,EAAMk1H,EAAK50H,EAAS,CACnD,IAAI6sE,EAAQ,KACR5nC,EACA73D,EACAuuN,EACA3G,EAAc,KAAK,SAAW,KAAK,QAAQ,eAAiB,KAAK,QAAQ,cAAc,kBAAoB,GAC/G,SAAS4G,EAAU3iK,EAAK,CACtB,OAAOA,EAAI,QAAQ,MAAO,MAAM,CACjC,CACD,IAAI4iK,EAAe,SAAsBh5M,EAAK,CAC5C,GAAIA,EAAI,QAAQgqF,EAAM,eAAe,EAAI,EAAG,CAC1C,IAAI/pF,EAAOu4M,GAAqB37L,EAAMs1L,EAAanyM,EAAKgqF,EAAM,QAAQ,aAAcA,EAAM,QAAQ,mBAAmB,EACrH,OAAOA,EAAM,aAAeA,EAAM,OAAO/pF,EAAM,OAAW8xI,EAAKwmE,GAAgBA,GAAgBA,GAAgB,CAAE,EAAEp7L,CAAO,EAAGN,CAAI,EAAG,GAAI,CACtI,iBAAkB7c,CAC9B,CAAW,CAAC,EAAIC,CACP,CACD,IAAIngC,EAAIkgC,EAAI,MAAMgqF,EAAM,eAAe,EACnCtoH,EAAI5B,EAAE,MAAO,EAAC,KAAI,EAClB+B,EAAI/B,EAAE,KAAKkqH,EAAM,eAAe,EAAE,OACtC,OAAOA,EAAM,OAAOwuH,GAAqB37L,EAAMs1L,EAAazwO,EAAGsoH,EAAM,QAAQ,aAAcA,EAAM,QAAQ,mBAAmB,EAAGnoH,EAAGkwK,EAAKwmE,GAAgBA,GAAgBA,GAAgB,GAAIp7L,CAAO,EAAGN,CAAI,EAAG,GAAI,CAC9M,iBAAkBn7C,CACnB,EAAC,CACV,EACM,KAAK,YAAW,EAChB,IAAIu3O,EAA8B97L,GAAWA,EAAQ,6BAA+B,KAAK,QAAQ,4BAC7F44L,EAAkB54L,GAAWA,EAAQ,eAAiBA,EAAQ,cAAc,kBAAoB,OAAYA,EAAQ,cAAc,gBAAkB,KAAK,QAAQ,cAAc,gBAC/K+7L,EAAQ,CAAC,CACX,MAAO,KAAK,eACZ,UAAW,SAAmB9iK,EAAK,CACjC,OAAO2iK,EAAU3iK,CAAG,CACrB,CACT,EAAS,CACD,MAAO,KAAK,OACZ,UAAW,SAAmBA,EAAK,CACjC,OAAO4zC,EAAM,YAAc+uH,EAAU/uH,EAAM,OAAO5zC,CAAG,CAAC,EAAI2iK,EAAU3iK,CAAG,CACxE,CACT,CAAO,EACD,OAAA8iK,EAAM,QAAQ,SAAUC,EAAM,CAE5B,IADAL,EAAW,EACJ12J,EAAQ+2J,EAAK,MAAM,KAAKhvD,CAAG,GAAG,CACnC,IAAIivD,EAAah3J,EAAM,CAAC,EAAE,KAAI,EAE9B,GADA73D,EAAQyuN,EAAaI,CAAU,EAC3B7uN,IAAU,OACZ,GAAI,OAAO0uN,GAAgC,WAAY,CACrD,IAAI1b,EAAO0b,EAA4B9uD,EAAK/nG,EAAOjlC,CAAO,EAC1D5yB,EAAQ,OAAOgzM,GAAS,SAAWA,EAAO,EACxD,SAAuBpgL,GAAW,OAAO,UAAU,eAAe,KAAKA,EAASi8L,CAAU,EAC5E7uN,EAAQ,WACCwrN,EAAiB,CAC1BxrN,EAAQ63D,EAAM,CAAC,EACf,QACd,MACc4nC,EAAM,OAAO,KAAK,8BAA8B,OAAOovH,EAAY,qBAAqB,EAAE,OAAOjvD,CAAG,CAAC,EACrG5/J,EAAQ,QAED,OAAOA,GAAU,UAAY,CAACy/F,EAAM,sBAC7Cz/F,EAAQinN,GAAWjnN,CAAK,GAE1B,IAAI8uN,EAAYF,EAAK,UAAU5uN,CAAK,EASpC,GARA4/J,EAAMA,EAAI,QAAQ/nG,EAAM,CAAC,EAAGi3J,CAAS,EACjCtD,GACFoD,EAAK,MAAM,WAAa5uN,EAAM,OAC9B4uN,EAAK,MAAM,WAAa/2J,EAAM,CAAC,EAAE,QAEjC+2J,EAAK,MAAM,UAAY,EAEzBL,IACIA,GAAY9uH,EAAM,YACpB,KAEH,CACT,CAAO,EACMmgE,CACR,CACL,EAAK,CACD,IAAK,OACL,MAAO,SAAcA,EAAKxgL,EAAI,CAC5B,IAAIozH,EAAS,KACT5/E,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9EilC,EACA73D,EACA+uN,EACJ,SAASC,EAAiBv5M,EAAKw5M,EAAkB,CAC/C,IAAIC,EAAM,KAAK,wBACf,GAAIz5M,EAAI,QAAQy5M,CAAG,EAAI,EAAG,OAAOz5M,EACjC,IAAIv+B,EAAIu+B,EAAI,MAAM,IAAI,OAAO,GAAG,OAAOy5M,EAAK,OAAO,CAAC,CAAC,EACjDC,EAAgB,IAAI,OAAOj4O,EAAE,CAAC,CAAC,EACnCu+B,EAAMv+B,EAAE,CAAC,EACTi4O,EAAgB,KAAK,YAAYA,EAAeJ,CAAa,EAC7D,IAAIK,EAAsBD,EAAc,MAAM,IAAI,EAC9CE,EAAsBF,EAAc,MAAM,IAAI,GAC9CC,GAAuBA,EAAoB,OAAS,IAAM,GAAK,CAACC,GAAuBA,EAAoB,OAAS,IAAM,KAC5HF,EAAgBA,EAAc,QAAQ,KAAM,GAAG,GAEjD,GAAI,CACFJ,EAAgB,KAAK,MAAMI,CAAa,EACpCF,IAAkBF,EAAgBf,GAAgBA,GAAgB,GAAIiB,CAAgB,EAAGF,CAAa,EAC3G,OAAQv4O,EAAG,CACV,YAAK,OAAO,KAAK,oDAAoD,OAAOi/B,CAAG,EAAGj/B,CAAC,EAC5E,GAAG,OAAOi/B,CAAG,EAAE,OAAOy5M,CAAG,EAAE,OAAOC,CAAa,CACvD,CACD,cAAOJ,EAAc,aACdt5M,CACR,CACD,KAAOoiD,EAAQ,KAAK,cAAc,KAAK+nG,CAAG,GAAG,CAC3C,IAAI0vD,EAAa,GACjBP,EAAgBf,GAAgB,GAAIp7L,CAAO,EAC3Cm8L,EAAgBA,EAAc,SAAW,OAAOA,EAAc,SAAY,SAAWA,EAAc,QAAUA,EAC7GA,EAAc,mBAAqB,GACnC,OAAOA,EAAc,aACrB,IAAIQ,EAAW,GACf,GAAI13J,EAAM,CAAC,EAAE,QAAQ,KAAK,eAAe,IAAM,IAAM,CAAC,OAAO,KAAKA,EAAM,CAAC,CAAC,EAAG,CAC3E,IAAIpiF,EAAIoiF,EAAM,CAAC,EAAE,MAAM,KAAK,eAAe,EAAE,IAAI,SAAUyrH,EAAM,CAC/D,OAAOA,EAAK,MACxB,CAAW,EACDzrH,EAAM,CAAC,EAAIpiF,EAAE,MAAK,EAClB65O,EAAa75O,EACb85O,EAAW,EACZ,CAED,GADAvvN,EAAQ5gB,EAAG4vO,EAAiB,KAAK,KAAMn3J,EAAM,CAAC,EAAE,KAAM,EAAEk3J,CAAa,EAAGA,CAAa,EACjF/uN,GAAS63D,EAAM,CAAC,IAAM+nG,GAAO,OAAO5/J,GAAU,SAAU,OAAOA,EAC/D,OAAOA,GAAU,WAAUA,EAAQinN,GAAWjnN,CAAK,GAClDA,IACH,KAAK,OAAO,KAAK,qBAAqB,OAAO63D,EAAM,CAAC,EAAG,eAAe,EAAE,OAAO+nG,CAAG,CAAC,EACnF5/J,EAAQ,IAENuvN,IACFvvN,EAAQsvN,EAAW,OAAO,SAAU15O,EAAG0B,EAAG,CACxC,OAAOk7H,EAAO,OAAO58H,EAAG0B,EAAGs7C,EAAQ,IAAKo7L,GAAgBA,GAAgB,GAAIp7L,CAAO,EAAG,GAAI,CACxF,iBAAkBilC,EAAM,CAAC,EAAE,KAAM,CAClC,EAAC,CACd,EAAa73D,EAAM,KAAI,CAAE,GAEjB4/J,EAAMA,EAAI,QAAQ/nG,EAAM,CAAC,EAAG73D,CAAK,EACjC,KAAK,OAAO,UAAY,CACzB,CACD,OAAO4/J,CACR,CACF,EAAC,EACKsuD,CACT,IAEA,SAASsB,GAAU1jK,EAAQivC,EAAgB,CAAE,IAAIj8C,EAAO,OAAO,KAAKgN,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIkvC,EAAU,OAAO,sBAAsBlvC,CAAM,EAAGivC,IAAmBC,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CAAE,OAAO,OAAO,yBAAyBnvC,EAAQmvC,CAAG,EAAE,UAAW,CAAE,GAAIn8C,EAAK,KAAK,MAAMA,EAAMk8C,CAAO,CAAE,CAAG,OAAOl8C,CAAO,CACvV,SAAS2wK,GAAgBrnN,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAiB,UAAUz7D,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAI0wN,GAAU,OAAOj1J,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAU9kD,EAAK,CAAE0lF,GAAgB/yF,EAAQqN,EAAK8kD,EAAO9kD,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBrN,EAAQ,OAAO,0BAA0BmyD,CAAM,CAAC,EAAIi1J,GAAU,OAAOj1J,CAAM,CAAC,EAAE,QAAQ,SAAU9kD,EAAK,CAAE,OAAO,eAAerN,EAAQqN,EAAK,OAAO,yBAAyB8kD,EAAQ9kD,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOrN,CAAS,CAChgB,SAASsnN,IAAeC,EAAW,CACjC,IAAIC,EAAaD,EAAU,YAAa,EAAC,KAAI,EACzCE,EAAgB,GACpB,GAAIF,EAAU,QAAQ,GAAG,EAAI,GAAI,CAC/B,IAAIp6O,EAAIo6O,EAAU,MAAM,GAAG,EAC3BC,EAAar6O,EAAE,CAAC,EAAE,YAAa,EAAC,KAAI,EACpC,IAAIu6O,EAASv6O,EAAE,CAAC,EAAE,UAAU,EAAGA,EAAE,CAAC,EAAE,OAAS,CAAC,EAC9C,GAAIq6O,IAAe,YAAcE,EAAO,QAAQ,GAAG,EAAI,EAChDD,EAAc,WAAUA,EAAc,SAAWC,EAAO,gBACpDF,IAAe,gBAAkBE,EAAO,QAAQ,GAAG,EAAI,EAC3DD,EAAc,QAAOA,EAAc,MAAQC,EAAO,YAClD,CACL,IAAIhyD,EAAOgyD,EAAO,MAAM,GAAG,EAC3BhyD,EAAK,QAAQ,SAAUiyD,EAAK,CAC1B,GAAKA,EACL,KAAIC,EAAaD,EAAI,MAAM,GAAG,EAC5BE,EAAcrK,IAASoK,CAAU,EACjCv6M,EAAMw6M,EAAY,CAAC,EACnBr9M,EAAOq9M,EAAY,MAAM,CAAC,EACxBpkK,EAAMj5C,EAAK,KAAK,GAAG,EAAE,KAAI,EAAG,QAAQ,WAAY,EAAE,EACjDi9M,EAAcp6M,EAAI,KAAM,KAAGo6M,EAAcp6M,EAAI,MAAM,EAAIo2C,GACxDA,IAAQ,UAASgkK,EAAcp6M,EAAI,KAAI,CAAE,EAAI,IAC7Co2C,IAAQ,SAAQgkK,EAAcp6M,EAAI,KAAI,CAAE,EAAI,IAC3C,MAAMo2C,CAAG,IAAGgkK,EAAcp6M,EAAI,KAAI,CAAE,EAAI,SAASo2C,EAAK,EAAE,GACrE,CAAO,CACF,CACF,CACD,MAAO,CACL,WAAY+jK,EACZ,cAAeC,CACnB,CACA,CACA,SAASK,GAAsB9gL,EAAI,CACjC,IAAIj5B,EAAQ,GACZ,OAAO,SAAyB01C,EAAK27F,EAAK50H,EAAS,CACjD,IAAInd,EAAM+xI,EAAM,KAAK,UAAU50H,CAAO,EAClC4mE,EAAYrjF,EAAMV,CAAG,EACzB,OAAK+jF,IACHA,EAAYpqD,EAAGo4G,EAAK50H,CAAO,EAC3Bzc,EAAMV,CAAG,EAAI+jF,GAERA,EAAU3tC,CAAG,CACxB,CACA,CACA,IAAIskK,IAAY,UAAY,CAC1B,SAASA,GAAY,CACnB,IAAIv9L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClForE,GAAgB,KAAMmyH,CAAS,EAC/B,KAAK,OAASzJ,GAAW,OAAO,WAAW,EAC3C,KAAK,QAAU9zL,EACf,KAAK,QAAU,CACb,OAAQs9L,GAAsB,SAAU1oE,EAAKuoE,EAAK,CAChD,IAAIv2H,EAAY,IAAI,KAAK,aAAaguD,EAAKioE,GAAgB,GAAIM,CAAG,CAAC,EACnE,OAAO,SAAUlkK,EAAK,CACpB,OAAO2tC,EAAU,OAAO3tC,CAAG,CACrC,CACA,CAAO,EACD,SAAUqkK,GAAsB,SAAU1oE,EAAKuoE,EAAK,CAClD,IAAIv2H,EAAY,IAAI,KAAK,aAAaguD,EAAKioE,GAAgBA,GAAgB,CAAE,EAAEM,CAAG,EAAG,GAAI,CACvF,MAAO,UACR,EAAC,EACF,OAAO,SAAUlkK,EAAK,CACpB,OAAO2tC,EAAU,OAAO3tC,CAAG,CACrC,CACA,CAAO,EACD,SAAUqkK,GAAsB,SAAU1oE,EAAKuoE,EAAK,CAClD,IAAIv2H,EAAY,IAAI,KAAK,eAAeguD,EAAKioE,GAAgB,GAAIM,CAAG,CAAC,EACrE,OAAO,SAAUlkK,EAAK,CACpB,OAAO2tC,EAAU,OAAO3tC,CAAG,CACrC,CACA,CAAO,EACD,aAAcqkK,GAAsB,SAAU1oE,EAAKuoE,EAAK,CACtD,IAAIv2H,EAAY,IAAI,KAAK,mBAAmBguD,EAAKioE,GAAgB,GAAIM,CAAG,CAAC,EACzE,OAAO,SAAUlkK,EAAK,CACpB,OAAO2tC,EAAU,OAAO3tC,EAAKkkK,EAAI,OAAS,KAAK,CACzD,CACA,CAAO,EACD,KAAMG,GAAsB,SAAU1oE,EAAKuoE,EAAK,CAC9C,IAAIv2H,EAAY,IAAI,KAAK,WAAWguD,EAAKioE,GAAgB,GAAIM,CAAG,CAAC,EACjE,OAAO,SAAUlkK,EAAK,CACpB,OAAO2tC,EAAU,OAAO3tC,CAAG,CACrC,CACA,CAAO,CACP,EACI,KAAK,KAAKj5B,CAAO,CAClB,CACDgrE,UAAauyH,EAAW,CAAC,CACvB,IAAK,OACL,MAAO,SAAc1G,EAAU,CAC7B,IAAI72L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAChF,cAAe,CAAE,CACzB,EACUu7L,EAAQv7L,EAAQ,cACpB,KAAK,gBAAkBu7L,EAAM,gBAAkBA,EAAM,gBAAkBA,EAAM,iBAAmB,GACjG,CACL,EAAK,CACD,IAAK,MACL,MAAO,SAAanpN,EAAM5lB,EAAI,CAC5B,KAAK,QAAQ4lB,EAAK,YAAa,EAAC,KAAI,CAAE,EAAI5lB,CAC3C,CACL,EAAK,CACD,IAAK,YACL,MAAO,SAAmB4lB,EAAM5lB,EAAI,CAClC,KAAK,QAAQ4lB,EAAK,YAAW,EAAG,MAAM,EAAIkrN,GAAsB9wO,CAAE,CACnE,CACL,EAAK,CACD,IAAK,SACL,MAAO,SAAgB4gB,EAAOo6F,EAASotD,EAAK,CAC1C,IAAI/nD,EAAQ,KACR7sE,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E2uE,EAAUnH,EAAQ,MAAM,KAAK,eAAe,EAC5ChiF,EAASmpF,EAAQ,OAAO,SAAU6uH,EAAK94O,EAAG,CAC5C,IAAI+4O,EAAkBX,IAAep4O,CAAC,EACpCs4O,EAAaS,EAAgB,WAC7BR,EAAgBQ,EAAgB,cAClC,GAAI5wH,EAAM,QAAQmwH,CAAU,EAAG,CAC7B,IAAIh1H,EAAYw1H,EAChB,GAAI,CACF,IAAIE,EAAa19L,GAAWA,EAAQ,cAAgBA,EAAQ,aAAaA,EAAQ,gBAAgB,GAAK,GAClGv9C,EAAIi7O,EAAW,QAAUA,EAAW,KAAO19L,EAAQ,QAAUA,EAAQ,KAAO40H,EAChF5sD,EAAY6E,EAAM,QAAQmwH,CAAU,EAAEQ,EAAK/6O,EAAGo6O,GAAgBA,GAAgBA,GAAgB,CAAE,EAAEI,CAAa,EAAGj9L,CAAO,EAAG09L,CAAU,CAAC,CACxI,OAAQp+J,EAAO,CACdutC,EAAM,OAAO,KAAKvtC,CAAK,CACxB,CACD,OAAO0oC,CACjB,MACU6E,EAAM,OAAO,KAAK,oCAAoC,OAAOmwH,CAAU,CAAC,EAE1E,OAAOQ,CACR,EAAEpwN,CAAK,EACR,OAAOoY,CACR,CACF,EAAC,EACK+3M,CACT,IAEA,SAASI,GAAUzkK,EAAQivC,EAAgB,CAAE,IAAIj8C,EAAO,OAAO,KAAKgN,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIkvC,EAAU,OAAO,sBAAsBlvC,CAAM,EAAGivC,IAAmBC,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CAAE,OAAO,OAAO,yBAAyBnvC,EAAQmvC,CAAG,EAAE,UAAW,CAAE,GAAIn8C,EAAK,KAAK,MAAMA,EAAMk8C,CAAO,CAAE,CAAG,OAAOl8C,CAAO,CACvV,SAAS0xK,GAAgBpoN,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAiB,UAAUz7D,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIyxN,GAAU,OAAOh2J,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAU9kD,EAAK,CAAE0lF,GAAgB/yF,EAAQqN,EAAK8kD,EAAO9kD,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBrN,EAAQ,OAAO,0BAA0BmyD,CAAM,CAAC,EAAIg2J,GAAU,OAAOh2J,CAAM,CAAC,EAAE,QAAQ,SAAU9kD,EAAK,CAAE,OAAO,eAAerN,EAAQqN,EAAK,OAAO,yBAAyB8kD,EAAQ9kD,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOrN,CAAS,CAChgB,SAASqoN,IAAenyH,EAAS,CAAE,IAAIC,EAA4BmyH,IAA2B,EAAI,OAAO,UAAgC,CAAE,IAAIjyH,EAAQC,GAAgBJ,CAAO,EAAGlmF,EAAQ,GAAImmF,EAA2B,CAAE,IAAII,EAAYD,GAAgB,IAAI,EAAE,YAAatmF,EAAS,QAAQ,UAAUqmF,EAAO,UAAWE,CAAS,OAAYvmF,EAASqmF,EAAM,MAAM,KAAM,SAAS,EAAK,OAAOG,GAA2B,KAAMxmF,CAAM,CAAE,CAAK,CAC7a,SAASs4M,KAA8B,CAA0E,GAApE,OAAO,QAAY,KAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,OAAO,OAAU,WAAY,MAAO,GAAM,GAAI,CAAE,eAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,GAAI,UAAY,CAAE,EAAC,EAAU,EAAO,MAAW,CAAE,MAAO,GAAU,CAC3U,SAASC,IAAcn7O,EAAGwvB,EAAM,CAC1BxvB,EAAE,QAAQwvB,CAAI,IAAM,SACtB,OAAOxvB,EAAE,QAAQwvB,CAAI,EACrBxvB,EAAE,eAEN,CACA,IAAIo7O,IAAY,SAAUhI,EAAe,CACvC3qH,GAAU2yH,EAAWhI,CAAa,EAClC,IAAIppH,EAASixH,IAAeG,CAAS,EACrC,SAASA,EAAUC,EAASC,EAAOrH,EAAU,CAC3C,IAAIhqH,EACA7sE,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClForE,UAAgB,KAAM4yH,CAAS,EAC/BnxH,EAAQD,EAAO,KAAK,IAAI,EACpBwoH,IACFrB,GAAa,KAAK7nH,GAAuBW,CAAK,CAAC,EAEjDA,EAAM,QAAUoxH,EAChBpxH,EAAM,MAAQqxH,EACdrxH,EAAM,SAAWgqH,EACjBhqH,EAAM,cAAgBgqH,EAAS,cAC/BhqH,EAAM,QAAU7sE,EAChB6sE,EAAM,OAASinH,GAAW,OAAO,kBAAkB,EACnDjnH,EAAM,aAAe,GACrBA,EAAM,iBAAmB7sE,EAAQ,kBAAoB,GACrD6sE,EAAM,aAAe,EACrBA,EAAM,WAAa7sE,EAAQ,YAAc,EAAIA,EAAQ,WAAa,EAClE6sE,EAAM,aAAe7sE,EAAQ,cAAgB,EAAIA,EAAQ,aAAe,IACxE6sE,EAAM,MAAQ,GACdA,EAAM,MAAQ,GACVA,EAAM,SAAWA,EAAM,QAAQ,MACjCA,EAAM,QAAQ,KAAKgqH,EAAU72L,EAAQ,QAASA,CAAO,EAEhD6sE,CACR,CACD7B,UAAagzH,EAAW,CAAC,CACvB,IAAK,YACL,MAAO,SAAmBG,EAAWnoE,EAAYh2H,EAASpsB,EAAU,CAClE,IAAIgsG,EAAS,KACTw+G,EAAS,GACTC,EAAU,GACVC,EAAkB,GAClBC,EAAmB,GACvB,OAAAJ,EAAU,QAAQ,SAAUvpE,EAAK,CAC/B,IAAI4pE,EAAmB,GACvBxoE,EAAW,QAAQ,SAAUtB,EAAI,CAC/B,IAAItiJ,EAAO,GAAG,OAAOwiJ,EAAK,GAAG,EAAE,OAAOF,CAAE,EACpC,CAAC10H,EAAQ,QAAU4/E,EAAO,MAAM,kBAAkBg1C,EAAKF,CAAE,EAC3D90C,EAAO,MAAMxtG,CAAI,EAAI,EACZwtG,EAAO,MAAMxtG,CAAI,EAAI,IAAcwtG,EAAO,MAAMxtG,CAAI,IAAM,EAC/DisN,EAAQjsN,CAAI,IAAM,SAAWisN,EAAQjsN,CAAI,EAAI,KAEjDwtG,EAAO,MAAMxtG,CAAI,EAAI,EACrBosN,EAAmB,GACfH,EAAQjsN,CAAI,IAAM,SAAWisN,EAAQjsN,CAAI,EAAI,IAC7CgsN,EAAOhsN,CAAI,IAAM,SAAWgsN,EAAOhsN,CAAI,EAAI,IAC3CmsN,EAAiB7pE,CAAE,IAAM,SAAW6pE,EAAiB7pE,CAAE,EAAI,KAE3E,CAAS,EACI8pE,IAAkBF,EAAgB1pE,CAAG,EAAI,GACtD,CAAO,GACG,OAAO,KAAKwpE,CAAM,EAAE,QAAU,OAAO,KAAKC,CAAO,EAAE,SACrD,KAAK,MAAM,KAAK,CACd,QAASA,EACT,aAAc,OAAO,KAAKA,CAAO,EAAE,OACnC,OAAQ,CAAE,EACV,OAAQ,CAAE,EACV,SAAUzqN,CACpB,CAAS,EAEI,CACL,OAAQ,OAAO,KAAKwqN,CAAM,EAC1B,QAAS,OAAO,KAAKC,CAAO,EAC5B,gBAAiB,OAAO,KAAKC,CAAe,EAC5C,iBAAkB,OAAO,KAAKC,CAAgB,CACtD,CACK,CACL,EAAK,CACD,IAAK,SACL,MAAO,SAAgBnsN,EAAMxG,EAAK8zB,EAAM,CACtC,IAAIzzB,EAAImG,EAAK,MAAM,GAAG,EAClBwiJ,EAAM3oJ,EAAE,CAAC,EACTyoJ,EAAKzoJ,EAAE,CAAC,EACRL,GAAK,KAAK,KAAK,gBAAiBgpJ,EAAKF,EAAI9oJ,CAAG,EAC5C8zB,GACF,KAAK,MAAM,kBAAkBk1H,EAAKF,EAAIh1H,CAAI,EAE5C,KAAK,MAAMttB,CAAI,EAAIxG,EAAM,GAAK,EAC9B,IAAI6yN,EAAS,GACb,KAAK,MAAM,QAAQ,SAAU77O,EAAG,CAC9B+xO,IAAS/xO,EAAE,OAAQ,CAACgyK,CAAG,EAAGF,CAAE,EAC5BqpE,IAAcn7O,EAAGwvB,CAAI,EACjBxG,GAAKhpB,EAAE,OAAO,KAAKgpB,CAAG,EACtBhpB,EAAE,eAAiB,GAAK,CAACA,EAAE,OAC7B,OAAO,KAAKA,EAAE,MAAM,EAAE,QAAQ,SAAUH,EAAG,CACpCg8O,EAAOh8O,CAAC,IAAGg8O,EAAOh8O,CAAC,EAAI,IAC5B,IAAIi8O,EAAa97O,EAAE,OAAOH,CAAC,EACvBi8O,EAAW,QACbA,EAAW,QAAQ,SAAUh8O,EAAG,CAC1B+7O,EAAOh8O,CAAC,EAAEC,CAAC,IAAM,SAAW+7O,EAAOh8O,CAAC,EAAEC,CAAC,EAAI,GAC/D,CAAe,CAEf,CAAW,EACDE,EAAE,KAAO,GACLA,EAAE,OAAO,OACXA,EAAE,SAASA,EAAE,MAAM,EAEnBA,EAAE,SAAQ,EAGtB,CAAO,EACD,KAAK,KAAK,SAAU67O,CAAM,EAC1B,KAAK,MAAQ,KAAK,MAAM,OAAO,SAAU77O,EAAG,CAC1C,MAAO,CAACA,EAAE,IAClB,CAAO,CACF,CACL,EAAK,CACD,IAAK,OACL,MAAO,SAAcgyK,EAAKF,EAAIiqE,EAAQ,CACpC,IAAIz+G,EAAS,KACT0+G,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,EAC5Ev1J,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAAK,aAChFz1D,EAAW,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,OACrD,GAAI,CAACghJ,EAAI,OAAQ,OAAOhhJ,EAAS,KAAM,EAAE,EACzC,GAAI,KAAK,cAAgB,KAAK,iBAAkB,CAC9C,KAAK,aAAa,KAAK,CACrB,IAAKghJ,EACL,GAAIF,EACJ,OAAQiqE,EACR,MAAOC,EACP,KAAMv1J,EACN,SAAUz1D,CACpB,CAAS,EACD,MACD,CACD,KAAK,eACL,IAAI41D,EAAW,SAAkB59D,EAAK8zB,EAAM,CAE1C,GADAwgF,EAAO,eACHA,EAAO,aAAa,OAAS,EAAG,CAClC,IAAIzjD,EAAOyjD,EAAO,aAAa,MAAK,EACpCA,EAAO,KAAKzjD,EAAK,IAAKA,EAAK,GAAIA,EAAK,OAAQA,EAAK,MAAOA,EAAK,KAAMA,EAAK,QAAQ,CACjF,CACD,GAAI7wD,GAAO8zB,GAAQk/L,EAAQ1+G,EAAO,WAAY,CAC5C,WAAW,UAAY,CACrBA,EAAO,KAAK,KAAKA,EAAQ00C,EAAKF,EAAIiqE,EAAQC,EAAQ,EAAGv1J,EAAO,EAAGz1D,CAAQ,CACxE,EAAEy1D,CAAI,EACP,MACD,CACDz1D,EAAShI,EAAK8zB,CAAI,CAC1B,EACUlzC,EAAK,KAAK,QAAQmyO,CAAM,EAAE,KAAK,KAAK,OAAO,EAC/C,GAAInyO,EAAG,SAAW,EAAG,CACnB,GAAI,CACF,IAAI3J,EAAI2J,EAAGooK,EAAKF,CAAE,EACd7xK,GAAK,OAAOA,EAAE,MAAS,WACzBA,EAAE,KAAK,SAAU68C,EAAM,CACrB,OAAO8pC,EAAS,KAAM9pC,CAAI,CACxC,CAAa,EAAE,MAAS8pC,CAAQ,EAEpBA,EAAS,KAAM3mF,CAAC,CAEnB,OAAQ+oB,EAAK,CACZ49D,EAAS59D,CAAG,CACb,CACD,MACD,CACD,OAAOpf,EAAGooK,EAAKF,EAAIlrF,CAAQ,CAC5B,CACL,EAAK,CACD,IAAK,iBACL,MAAO,SAAwB20J,EAAWnoE,EAAY,CACpD,IAAIijE,EAAS,KACTj5L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9EpsB,EAAW,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,OACrD,GAAI,CAAC,KAAK,QACR,YAAK,OAAO,KAAK,gEAAgE,EAC1EA,GAAYA,IAEjB,OAAOuqN,GAAc,WAAUA,EAAY,KAAK,cAAc,mBAAmBA,CAAS,GAC1F,OAAOnoE,GAAe,WAAUA,EAAa,CAACA,CAAU,GAC5D,IAAIooE,EAAS,KAAK,UAAUD,EAAWnoE,EAAYh2H,EAASpsB,CAAQ,EACpE,GAAI,CAACwqN,EAAO,OAAO,OACjB,OAAKA,EAAO,QAAQ,QAAQxqN,EAAQ,EAC7B,KAETwqN,EAAO,OAAO,QAAQ,SAAUhsN,EAAM,CACpC6mN,EAAO,QAAQ7mN,CAAI,CAC3B,CAAO,CACF,CACL,EAAK,CACD,IAAK,OACL,MAAO,SAAc+rN,EAAWnoE,EAAYpiJ,EAAU,CACpD,KAAK,eAAeuqN,EAAWnoE,EAAY,CAAE,EAAEpiJ,CAAQ,CACxD,CACL,EAAK,CACD,IAAK,SACL,MAAO,SAAgBuqN,EAAWnoE,EAAYpiJ,EAAU,CACtD,KAAK,eAAeuqN,EAAWnoE,EAAY,CACzC,OAAQ,EACT,EAAEpiJ,CAAQ,CACZ,CACL,EAAK,CACD,IAAK,UACL,MAAO,SAAiBxB,EAAM,CAC5B,IAAIysN,EAAS,KACTx8M,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7EpW,EAAImG,EAAK,MAAM,GAAG,EAClBwiJ,EAAM3oJ,EAAE,CAAC,EACTyoJ,EAAKzoJ,EAAE,CAAC,EACZ,KAAK,KAAK2oJ,EAAKF,EAAI,OAAQ,OAAW,OAAW,SAAU9oJ,EAAK8zB,EAAM,CAChE9zB,GAAKizN,EAAO,OAAO,KAAK,GAAG,OAAOx8M,EAAQ,oBAAoB,EAAE,OAAOqyI,EAAI,gBAAgB,EAAE,OAAOE,EAAK,SAAS,EAAGhpJ,CAAG,EACxH,CAACA,GAAO8zB,GAAMm/L,EAAO,OAAO,IAAI,GAAG,OAAOx8M,EAAQ,mBAAmB,EAAE,OAAOqyI,EAAI,gBAAgB,EAAE,OAAOE,CAAG,EAAGl1H,CAAI,EACzHm/L,EAAO,OAAOzsN,EAAMxG,EAAK8zB,CAAI,CACrC,CAAO,CACF,CACL,EAAK,CACD,IAAK,cACL,MAAO,SAAqBy+L,EAAW/G,EAAWv0M,EAAKi8M,EAAeC,EAAU,CAC9E,IAAI/+L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9Eg/L,EAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,UAAY,GAC1F,GAAI,KAAK,SAAS,OAAS,KAAK,SAAS,MAAM,oBAAsB,CAAC,KAAK,SAAS,MAAM,mBAAmB5H,CAAS,EAAG,CACvH,KAAK,OAAO,KAAK,qBAAsB,OAAOv0M,EAAK,sBAAwB,EAAE,OAAOu0M,EAAW,sBAAuB,EAAG,0NAA0N,EACnV,MACD,CACD,GAAI,EAAqBv0M,GAAQ,MAAQA,IAAQ,IACjD,IAAI,KAAK,SAAW,KAAK,QAAQ,OAAQ,CACvC,IAAIqoJ,EAAO0yD,GAAgBA,GAAgB,GAAI59L,CAAO,EAAG,GAAI,CAC3D,SAAU++L,CACpB,CAAS,EACGvyO,EAAK,KAAK,QAAQ,OAAO,KAAK,KAAK,OAAO,EAC9C,GAAIA,EAAG,OAAS,EACd,GAAI,CACF,IAAI3J,EACA2J,EAAG,SAAW,EAChB3J,EAAI2J,EAAG2xO,EAAW/G,EAAWv0M,EAAKi8M,EAAe5zD,CAAI,EAErDroL,EAAI2J,EAAG2xO,EAAW/G,EAAWv0M,EAAKi8M,CAAa,EAE7Cj8O,GAAK,OAAOA,EAAE,MAAS,WACzBA,EAAE,KAAK,SAAU68C,EAAM,CACrB,OAAOs/L,EAAI,KAAMt/L,CAAI,CACrC,CAAe,EAAE,MAASs/L,CAAG,EAEfA,EAAI,KAAMn8O,CAAC,CAEd,OAAQ+oB,EAAK,CACZozN,EAAIpzN,CAAG,CACR,MAEDpf,EAAG2xO,EAAW/G,EAAWv0M,EAAKi8M,EAAeE,EAAK9zD,CAAI,CAEzD,CACG,CAACizD,GAAa,CAACA,EAAU,CAAC,GAC9B,KAAK,MAAM,YAAYA,EAAU,CAAC,EAAG/G,EAAWv0M,EAAKi8M,CAAa,EACnE,CACF,EAAC,EACKd,CACT,EAAEjK,EAAY,EAEd,SAAS/hN,IAAM,CACb,MAAO,CACL,MAAO,GACP,cAAe,GACf,GAAI,CAAC,aAAa,EAClB,UAAW,CAAC,aAAa,EACzB,YAAa,CAAC,KAAK,EACnB,WAAY,GACZ,cAAe,GACf,yBAA0B,GAC1B,KAAM,MACN,QAAS,GACT,qBAAsB,GACtB,aAAc,IACd,YAAa,IACb,gBAAiB,IACjB,iBAAkB,IAClB,wBAAyB,GACzB,YAAa,GACb,cAAe,GACf,cAAe,WACf,mBAAoB,GACpB,kBAAmB,GACnB,4BAA6B,GAC7B,YAAa,GACb,wBAAyB,GACzB,WAAY,GACZ,kBAAmB,GACnB,cAAe,GACf,WAAY,GACZ,sBAAuB,GACvB,uBAAwB,GACxB,4BAA6B,GAC7B,wBAAyB,GACzB,iCAAkC,SAAgBR,EAAM,CACtD,IAAIqmJ,EAAM,GAIV,GAHIhtD,GAAQr5F,EAAK,CAAC,CAAC,IAAM,WAAUqmJ,EAAMrmJ,EAAK,CAAC,GAC3C,OAAOA,EAAK,CAAC,GAAM,WAAUqmJ,EAAI,aAAermJ,EAAK,CAAC,GACtD,OAAOA,EAAK,CAAC,GAAM,WAAUqmJ,EAAI,aAAermJ,EAAK,CAAC,GACtDq5F,GAAQr5F,EAAK,CAAC,CAAC,IAAM,UAAYq5F,GAAQr5F,EAAK,CAAC,CAAC,IAAM,SAAU,CAClE,IAAIwuB,EAAUxuB,EAAK,CAAC,GAAKA,EAAK,CAAC,EAC/B,OAAO,KAAKwuB,CAAO,EAAE,QAAQ,SAAUnd,EAAK,CAC1Cg1I,EAAIh1I,CAAG,EAAImd,EAAQnd,CAAG,CAChC,CAAS,CACF,CACD,OAAOg1I,CACR,EACD,cAAe,CACb,YAAa,GACb,OAAQ,SAAgBzqJ,EAAOo6F,EAASotD,EAAK50H,EAAS,CACpD,OAAO5yB,CACR,EACD,OAAQ,KACR,OAAQ,KACR,gBAAiB,IACjB,eAAgB,IAChB,cAAe,MACf,cAAe,IACf,wBAAyB,IACzB,YAAa,IACb,gBAAiB,EAClB,CACL,CACA,CACA,SAAS6xN,GAAiBj/L,EAAS,CACjC,OAAI,OAAOA,EAAQ,IAAO,WAAUA,EAAQ,GAAK,CAACA,EAAQ,EAAE,GACxD,OAAOA,EAAQ,aAAgB,WAAUA,EAAQ,YAAc,CAACA,EAAQ,WAAW,GACnF,OAAOA,EAAQ,YAAe,WAAUA,EAAQ,WAAa,CAACA,EAAQ,UAAU,GAChFA,EAAQ,eAAiBA,EAAQ,cAAc,QAAQ,QAAQ,EAAI,IACrEA,EAAQ,cAAgBA,EAAQ,cAAc,OAAO,CAAC,QAAQ,CAAC,GAE1DA,CACT,CAEA,SAASkoE,GAAQhvC,EAAQivC,EAAgB,CAAE,IAAIj8C,EAAO,OAAO,KAAKgN,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIkvC,EAAU,OAAO,sBAAsBlvC,CAAM,EAAGivC,IAAmBC,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CAAE,OAAO,OAAO,yBAAyBnvC,EAAQmvC,CAAG,EAAE,UAAW,CAAE,GAAIn8C,EAAK,KAAK,MAAMA,EAAMk8C,CAAO,CAAE,CAAG,OAAOl8C,CAAO,CACrV,SAASo8C,GAAc9yF,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAiB,UAAUz7D,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIg8F,GAAQ,OAAOvgC,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAU9kD,EAAK,CAAE0lF,GAAgB/yF,EAAQqN,EAAK8kD,EAAO9kD,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBrN,EAAQ,OAAO,0BAA0BmyD,CAAM,CAAC,EAAIugC,GAAQ,OAAOvgC,CAAM,CAAC,EAAE,QAAQ,SAAU9kD,EAAK,CAAE,OAAO,eAAerN,EAAQqN,EAAK,OAAO,yBAAyB8kD,EAAQ9kD,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOrN,CAAS,CAC1f,SAASi2F,IAAaC,EAAS,CAAE,IAAIC,EAA4BC,IAAyB,EAAI,OAAO,UAAgC,CAAE,IAAIC,EAAQC,GAAgBJ,CAAO,EAAGlmF,EAAQ,GAAImmF,EAA2B,CAAE,IAAII,EAAYD,GAAgB,IAAI,EAAE,YAAatmF,EAAS,QAAQ,UAAUqmF,EAAO,UAAWE,CAAS,OAAYvmF,EAASqmF,EAAM,MAAM,KAAM,SAAS,EAAK,OAAOG,GAA2B,KAAMxmF,CAAM,CAAE,CAAK,CACza,SAASomF,KAA4B,CAA0E,GAApE,OAAO,QAAY,KAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,OAAO,OAAU,WAAY,MAAO,GAAM,GAAI,CAAE,eAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,GAAI,UAAY,CAAE,EAAC,EAAU,EAAO,MAAW,CAAE,MAAO,GAAU,CACzU,SAAS5Q,IAAO,CAAE,CAClB,SAASkkI,IAAoBz0L,EAAM,CACjC,IAAI00L,EAAO,OAAO,oBAAoB,OAAO,eAAe10L,CAAI,CAAC,EACjE00L,EAAK,QAAQ,SAAU3B,EAAK,CACtB,OAAO/yL,EAAK+yL,CAAG,GAAM,aACvB/yL,EAAK+yL,CAAG,EAAI/yL,EAAK+yL,CAAG,EAAE,KAAK/yL,CAAI,EAErC,CAAG,CACH,CACA,IAAI20L,GAAO,SAAUpJ,EAAe,CAClC3qH,GAAU+zH,EAAMpJ,CAAa,EAC7B,IAAIppH,EAASnB,IAAa2zH,CAAI,EAC9B,SAASA,GAAO,CACd,IAAIvyH,EACA7sE,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9EpsB,EAAW,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,OAarD,GAZAw3F,GAAgB,KAAMg0H,CAAI,EAC1BvyH,EAAQD,EAAO,KAAK,IAAI,EACpBwoH,IACFrB,GAAa,KAAK7nH,GAAuBW,CAAK,CAAC,EAEjDA,EAAM,QAAUoyH,GAAiBj/L,CAAO,EACxC6sE,EAAM,SAAW,GACjBA,EAAM,OAASinH,GACfjnH,EAAM,QAAU,CACd,SAAU,CAAE,CAClB,EACIqyH,IAAoBhzH,GAAuBW,CAAK,CAAC,EAC7Cj5F,GAAY,CAACi5F,EAAM,eAAiB,CAAC7sE,EAAQ,QAAS,CACxD,GAAI,CAAC6sE,EAAM,QAAQ,cACjB,OAAAA,EAAM,KAAK7sE,EAASpsB,CAAQ,EACrBo4F,GAA2Ba,EAAOX,GAAuBW,CAAK,CAAC,EAExE,WAAW,UAAY,CACrBA,EAAM,KAAK7sE,EAASpsB,CAAQ,CAC7B,EAAE,CAAC,CACL,CACD,OAAOi5F,CACR,CACD7B,UAAao0H,EAAM,CAAC,CAClB,IAAK,OACL,MAAO,UAAgB,CACrB,IAAIx/G,EAAS,KACT5/E,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9EpsB,EAAW,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,OACjD,OAAOosB,GAAY,aACrBpsB,EAAWosB,EACXA,EAAU,IAER,CAACA,EAAQ,WAAaA,EAAQ,YAAc,IAASA,EAAQ,KAC3D,OAAOA,EAAQ,IAAO,SACxBA,EAAQ,UAAYA,EAAQ,GACnBA,EAAQ,GAAG,QAAQ,aAAa,EAAI,IAC7CA,EAAQ,UAAYA,EAAQ,GAAG,CAAC,IAGpC,IAAIq/L,EAAUrtN,KACd,KAAK,QAAUs2F,GAAcA,GAAcA,GAAc,CAAE,EAAE+2H,CAAO,EAAG,KAAK,OAAO,EAAGJ,GAAiBj/L,CAAO,CAAC,EAC3G,KAAK,QAAQ,mBAAqB,OACpC,KAAK,QAAQ,cAAgBsoE,GAAcA,GAAc,GAAI+2H,EAAQ,aAAa,EAAG,KAAK,QAAQ,aAAa,GAE7Gr/L,EAAQ,eAAiB,SAC3B,KAAK,QAAQ,wBAA0BA,EAAQ,cAE7CA,EAAQ,cAAgB,SAC1B,KAAK,QAAQ,uBAAyBA,EAAQ,aAEhD,SAASs/L,EAAoBC,EAAe,CAC1C,OAAKA,EACD,OAAOA,GAAkB,WAAmB,IAAIA,EAC7CA,EAFoB,IAG5B,CACD,GAAI,CAAC,KAAK,QAAQ,QAAS,CACrB,KAAK,QAAQ,OACfzL,GAAW,KAAKwL,EAAoB,KAAK,QAAQ,MAAM,EAAG,KAAK,OAAO,EAEtExL,GAAW,KAAK,KAAM,KAAK,OAAO,EAEpC,IAAIltH,EACA,KAAK,QAAQ,UACfA,EAAY,KAAK,QAAQ,UAChB,OAAO,KAAS,MACzBA,EAAY22H,KAEd,IAAIiC,EAAK,IAAIzF,GAAa,KAAK,OAAO,EACtC,KAAK,MAAQ,IAAIhE,IAAc,KAAK,QAAQ,UAAW,KAAK,OAAO,EACnE,IAAI9pN,EAAI,KAAK,SACbA,EAAE,OAAS6nN,GACX7nN,EAAE,cAAgB,KAAK,MACvBA,EAAE,cAAgBuzN,EAClBvzN,EAAE,eAAiB,IAAI4uN,IAAe2E,EAAI,CACxC,QAAS,KAAK,QAAQ,gBACtB,kBAAmB,KAAK,QAAQ,kBAChC,qBAAsB,KAAK,QAAQ,oBAC7C,CAAS,EACG54H,IAAc,CAAC,KAAK,QAAQ,cAAc,QAAU,KAAK,QAAQ,cAAc,SAAWy4H,EAAQ,cAAc,UAClHpzN,EAAE,UAAYqzN,EAAoB14H,CAAS,EAC3C36F,EAAE,UAAU,KAAKA,EAAG,KAAK,OAAO,EAChC,KAAK,QAAQ,cAAc,OAASA,EAAE,UAAU,OAAO,KAAKA,EAAE,SAAS,GAEzEA,EAAE,aAAe,IAAIqvN,IAAa,KAAK,OAAO,EAC9CrvN,EAAE,MAAQ,CACR,mBAAoB,KAAK,mBAAmB,KAAK,IAAI,CAC/D,EACQA,EAAE,iBAAmB,IAAI+xN,IAAUsB,EAAoB,KAAK,QAAQ,OAAO,EAAGrzN,EAAE,cAAeA,EAAG,KAAK,OAAO,EAC9GA,EAAE,iBAAiB,GAAG,IAAK,SAAUyH,EAAO,CAC1C,QAASugJ,EAAO,UAAU,OAAQziJ,EAAO,IAAI,MAAMyiJ,EAAO,EAAIA,EAAO,EAAI,CAAC,EAAG34F,EAAO,EAAGA,EAAO24F,EAAM34F,IAClG9pD,EAAK8pD,EAAO,CAAC,EAAI,UAAUA,CAAI,EAEjCskD,EAAO,KAAK,MAAMA,EAAQ,CAAClsG,CAAK,EAAE,OAAOlC,CAAI,CAAC,CACxD,CAAS,EACG,KAAK,QAAQ,mBACfvF,EAAE,iBAAmBqzN,EAAoB,KAAK,QAAQ,gBAAgB,EAClErzN,EAAE,iBAAiB,MAAMA,EAAE,iBAAiB,KAAKA,EAAG,KAAK,QAAQ,UAAW,KAAK,OAAO,GAE1F,KAAK,QAAQ,aACfA,EAAE,WAAaqzN,EAAoB,KAAK,QAAQ,UAAU,EACtDrzN,EAAE,WAAW,MAAMA,EAAE,WAAW,KAAK,IAAI,GAE/C,KAAK,WAAa,IAAI2qN,GAAW,KAAK,SAAU,KAAK,OAAO,EAC5D,KAAK,WAAW,GAAG,IAAK,SAAUljN,EAAO,CACvC,QAAS0gJ,EAAQ,UAAU,OAAQ5iJ,EAAO,IAAI,MAAM4iJ,EAAQ,EAAIA,EAAQ,EAAI,CAAC,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG7iJ,EAAK6iJ,EAAQ,CAAC,EAAI,UAAUA,CAAK,EAEnCz0C,EAAO,KAAK,MAAMA,EAAQ,CAAClsG,CAAK,EAAE,OAAOlC,CAAI,CAAC,CACxD,CAAS,EACD,KAAK,QAAQ,SAAS,QAAQ,SAAU7sB,EAAG,CACrCA,EAAE,MAAMA,EAAE,KAAKi7H,CAAM,CACnC,CAAS,CACF,CAGD,GAFA,KAAK,OAAS,KAAK,QAAQ,cAAc,OACpChsG,IAAUA,EAAWonF,IACtB,KAAK,QAAQ,aAAe,CAAC,KAAK,SAAS,kBAAoB,CAAC,KAAK,QAAQ,IAAK,CACpF,IAAIw+H,EAAQ,KAAK,SAAS,cAAc,iBAAiB,KAAK,QAAQ,WAAW,EAC7EA,EAAM,OAAS,GAAKA,EAAM,CAAC,IAAM,QAAO,KAAK,QAAQ,IAAMA,EAAM,CAAC,EACvE,CACG,CAAC,KAAK,SAAS,kBAAoB,CAAC,KAAK,QAAQ,KACnD,KAAK,OAAO,KAAK,yDAAyD,EAE5E,IAAIiG,EAAW,CAAC,cAAe,oBAAqB,oBAAqB,mBAAmB,EAC5FA,EAAS,QAAQ,SAAUd,EAAQ,CACjC/+G,EAAO++G,CAAM,EAAI,UAAY,CAC3B,IAAIe,EACJ,OAAQA,EAAe9/G,EAAO,OAAO++G,CAAM,EAAE,MAAMe,EAAc,SAAS,CACpF,CACA,CAAO,EACD,IAAIC,EAAkB,CAAC,cAAe,eAAgB,oBAAqB,sBAAsB,EACjGA,EAAgB,QAAQ,SAAUhB,EAAQ,CACxC/+G,EAAO++G,CAAM,EAAI,UAAY,CAC3B,IAAIiB,EACJ,OAACA,EAAgBhgH,EAAO,OAAO++G,CAAM,EAAE,MAAMiB,EAAe,SAAS,EAC9DhgH,CACjB,CACA,CAAO,EACD,IAAIigH,EAAW3L,KACX4L,EAAO,UAAgB,CACzB,IAAIC,EAAS,SAAgBn0N,EAAK9oB,EAAG,CAC/B88H,EAAO,eAAiB,CAACA,EAAO,sBAAsBA,EAAO,OAAO,KAAK,uEAAuE,EACpJA,EAAO,cAAgB,GAClBA,EAAO,QAAQ,SAASA,EAAO,OAAO,IAAI,cAAeA,EAAO,OAAO,EAC5EA,EAAO,KAAK,cAAeA,EAAO,OAAO,EACzCigH,EAAS,QAAQ/8O,CAAC,EAClB8wB,EAAShI,EAAK9oB,CAAC,CACzB,EACQ,GAAI88H,EAAO,WAAaA,EAAO,QAAQ,mBAAqB,MAAQ,CAACA,EAAO,cAAe,OAAOmgH,EAAO,KAAMngH,EAAO,EAAE,KAAKA,CAAM,CAAC,EACpIA,EAAO,eAAeA,EAAO,QAAQ,IAAKmgH,CAAM,CACxD,EACM,OAAI,KAAK,QAAQ,WAAa,CAAC,KAAK,QAAQ,cAC1CD,IAEA,WAAWA,EAAM,CAAC,EAEbD,CACR,CACL,EAAK,CACD,IAAK,gBACL,MAAO,SAAuBnN,EAAU,CACtC,IAAIxyG,EAAS,KACTtsG,EAAW,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIonF,GAC/EglI,EAAepsN,EACfulN,EAAU,OAAOzG,GAAa,SAAWA,EAAW,KAAK,SAE7D,GADI,OAAOA,GAAa,aAAYsN,EAAetN,GAC/C,CAAC,KAAK,QAAQ,WAAa,KAAK,QAAQ,wBAAyB,CACnE,GAAIyG,GAAWA,EAAQ,YAAa,IAAK,SAAU,OAAO6G,IAC1D,IAAI5B,EAAS,GACT12D,EAAS,SAAgB9S,EAAK,CAChC,GAAKA,EACL,KAAI4jE,EAAOt4G,EAAO,SAAS,cAAc,mBAAmB00C,CAAG,EAC/D4jE,EAAK,QAAQ,SAAU/1O,EAAG,CACpB27O,EAAO,QAAQ37O,CAAC,EAAI,GAAG27O,EAAO,KAAK37O,CAAC,CACpD,CAAW,EACX,EACQ,GAAK02O,EAMHzxD,EAAOyxD,CAAO,MANF,CACZ,IAAIiB,EAAY,KAAK,SAAS,cAAc,iBAAiB,KAAK,QAAQ,WAAW,EACrFA,EAAU,QAAQ,SAAU33O,EAAG,CAC7B,OAAOilL,EAAOjlL,CAAC,CAC3B,CAAW,CACX,CAGY,KAAK,QAAQ,SACf,KAAK,QAAQ,QAAQ,QAAQ,SAAUA,EAAG,CACxC,OAAOilL,EAAOjlL,CAAC,CAC3B,CAAW,EAEH,KAAK,SAAS,iBAAiB,KAAK27O,EAAQ,KAAK,QAAQ,GAAI,SAAUx6O,EAAG,CACpE,CAACA,GAAK,CAACs8H,EAAO,kBAAoBA,EAAO,UAAUA,EAAO,oBAAoBA,EAAO,QAAQ,EACjG8/G,EAAap8O,CAAC,CACxB,CAAS,CACT,MACQo8O,EAAa,IAAI,CAEpB,CACL,EAAK,CACD,IAAK,kBACL,MAAO,SAAyBxH,EAAM9jE,EAAI9gJ,EAAU,CAClD,IAAIisN,EAAW3L,KACf,OAAKsE,IAAMA,EAAO,KAAK,WAClB9jE,IAAIA,EAAK,KAAK,QAAQ,IACtB9gJ,IAAUA,EAAWonF,IAC1B,KAAK,SAAS,iBAAiB,OAAOw9H,EAAM9jE,EAAI,SAAU9oJ,EAAK,CAC7Di0N,EAAS,QAAO,EAChBjsN,EAAShI,CAAG,CACpB,CAAO,EACMi0N,CACR,CACL,EAAK,CACD,IAAK,MACL,MAAO,SAAar7H,EAAQ,CAC1B,GAAI,CAACA,EAAQ,MAAM,IAAI,MAAM,+FAA+F,EAC5H,GAAI,CAACA,EAAO,KAAM,MAAM,IAAI,MAAM,0FAA0F,EAC5H,OAAIA,EAAO,OAAS,YAClB,KAAK,QAAQ,QAAUA,IAErBA,EAAO,OAAS,UAAYA,EAAO,KAAOA,EAAO,MAAQA,EAAO,SAClE,KAAK,QAAQ,OAASA,GAEpBA,EAAO,OAAS,qBAClB,KAAK,QAAQ,iBAAmBA,GAE9BA,EAAO,OAAS,eAClB,KAAK,QAAQ,WAAaA,GAExBA,EAAO,OAAS,iBAClB2xH,GAAc,iBAAiB3xH,CAAM,EAEnCA,EAAO,OAAS,cAClB,KAAK,QAAQ,UAAYA,GAEvBA,EAAO,OAAS,YAClB,KAAK,QAAQ,SAAS,KAAKA,CAAM,EAE5B,IACR,CACL,EAAK,CACD,IAAK,sBACL,MAAO,SAA6B/hH,EAAG,CACrC,GAAI,GAACA,GAAK,CAAC,KAAK,YACZ,GAAC,SAAU,KAAK,EAAE,QAAQA,CAAC,EAAI,IACnC,QAASse,EAAK,EAAGA,EAAK,KAAK,UAAU,OAAQA,IAAM,CACjD,IAAIk/N,EAAY,KAAK,UAAUl/N,CAAE,EACjC,GAAI,GAAC,SAAU,KAAK,EAAE,QAAQk/N,CAAS,EAAI,KACvC,KAAK,MAAM,4BAA4BA,CAAS,EAAG,CACrD,KAAK,iBAAmBA,EACxB,KACD,CACF,CACF,CACL,EAAK,CACD,IAAK,iBACL,MAAO,SAAwBrrE,EAAKhhJ,EAAU,CAC5C,IAAIqlN,EAAS,KACb,KAAK,qBAAuBrkE,EAC5B,IAAIirE,EAAW3L,KACf,KAAK,KAAK,mBAAoBt/D,CAAG,EACjC,IAAIsrE,EAAc,SAAqBz9O,EAAG,CACxCw2O,EAAO,SAAWx2O,EAClBw2O,EAAO,UAAYA,EAAO,SAAS,cAAc,mBAAmBx2O,CAAC,EACrEw2O,EAAO,iBAAmB,OAC1BA,EAAO,oBAAoBx2O,CAAC,CACpC,EACUuiI,EAAO,SAAcp5G,EAAKnpB,EAAG,CAC3BA,GACFy9O,EAAYz9O,CAAC,EACbw2O,EAAO,WAAW,eAAex2O,CAAC,EAClCw2O,EAAO,qBAAuB,OAC9BA,EAAO,KAAK,kBAAmBx2O,CAAC,EAChCw2O,EAAO,OAAO,IAAI,kBAAmBx2O,CAAC,GAEtCw2O,EAAO,qBAAuB,OAEhC4G,EAAS,QAAQ,UAAY,CAC3B,OAAO5G,EAAO,EAAE,MAAMA,EAAQ,SAAS,CACjD,CAAS,EACGrlN,GAAUA,EAAShI,EAAK,UAAY,CACtC,OAAOqtN,EAAO,EAAE,MAAMA,EAAQ,SAAS,CACjD,CAAS,CACT,EACUkH,EAAS,SAAgB3H,EAAM,CAC7B,CAAC5jE,GAAO,CAAC4jE,GAAQS,EAAO,SAAS,mBAAkBT,EAAO,IAC9D,IAAI/1O,EAAI,OAAO+1O,GAAS,SAAWA,EAAOS,EAAO,SAAS,cAAc,sBAAsBT,CAAI,EAC9F/1O,IACGw2O,EAAO,UACViH,EAAYz9O,CAAC,EAEVw2O,EAAO,WAAW,UAAUA,EAAO,WAAW,eAAex2O,CAAC,EAC/Dw2O,EAAO,SAAS,kBAAoBA,EAAO,SAAS,iBAAiB,mBAAmBA,EAAO,SAAS,iBAAiB,kBAAkBx2O,CAAC,GAElJw2O,EAAO,cAAcx2O,EAAG,SAAUmpB,EAAK,CACrCo5G,EAAKp5G,EAAKnpB,CAAC,CACrB,CAAS,CACT,EACM,MAAI,CAACmyK,GAAO,KAAK,SAAS,kBAAoB,CAAC,KAAK,SAAS,iBAAiB,MAC5EurE,EAAO,KAAK,SAAS,iBAAiB,OAAQ,GACrC,CAACvrE,GAAO,KAAK,SAAS,kBAAoB,KAAK,SAAS,iBAAiB,MAC9E,KAAK,SAAS,iBAAiB,OAAO,SAAW,EACnD,KAAK,SAAS,iBAAiB,OAAM,EAAG,KAAKurE,CAAM,EAEnD,KAAK,SAAS,iBAAiB,OAAOA,CAAM,EAG9CA,EAAOvrE,CAAG,EAELirE,CACR,CACL,EAAK,CACD,IAAK,YACL,MAAO,SAAmBjrE,EAAKF,EAAIsC,EAAW,CAC5C,IAAI6nE,EAAS,KACTuB,EAAS,SAASA,EAAOv9M,EAAKqoJ,EAAM,CACtC,IAAIlrI,EACJ,GAAI6qE,GAAQqgE,CAAI,IAAM,SAAU,CAC9B,QAASqoD,EAAQ,UAAU,OAAQvzM,EAAO,IAAI,MAAMuzM,EAAQ,EAAIA,EAAQ,EAAI,CAAC,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGxzM,EAAKwzM,EAAQ,CAAC,EAAI,UAAUA,CAAK,EAEnCxzL,EAAU6+L,EAAO,QAAQ,iCAAiC,CAACh8M,EAAKqoJ,CAAI,EAAE,OAAOlrJ,CAAI,CAAC,CAC5F,MACUggB,EAAUsoE,GAAc,GAAI4iE,CAAI,EAElClrI,EAAQ,IAAMA,EAAQ,KAAOogM,EAAO,IACpCpgM,EAAQ,KAAOA,EAAQ,MAAQogM,EAAO,KACtCpgM,EAAQ,GAAKA,EAAQ,IAAMogM,EAAO,GAClCpgM,EAAQ,UAAYA,EAAQ,WAAag3H,GAAaopE,EAAO,UAC7D,IAAI7K,EAAesJ,EAAO,QAAQ,cAAgB,IAC9CwB,EACJ,OAAIrgM,EAAQ,WAAa,MAAM,QAAQnd,CAAG,EACxCw9M,EAAYx9M,EAAI,IAAI,SAAUt+B,EAAG,CAC/B,MAAO,GAAG,OAAOy7C,EAAQ,SAAS,EAAE,OAAOu1L,CAAY,EAAE,OAAOhxO,CAAC,CAC7E,CAAW,EAED87O,EAAYrgM,EAAQ,UAAY,GAAG,OAAOA,EAAQ,SAAS,EAAE,OAAOu1L,CAAY,EAAE,OAAO1yM,CAAG,EAAIA,EAE3Fg8M,EAAO,EAAEwB,EAAWrgM,CAAO,CAC1C,EACM,OAAI,OAAO40H,GAAQ,SACjBwrE,EAAO,IAAMxrE,EAEbwrE,EAAO,KAAOxrE,EAEhBwrE,EAAO,GAAK1rE,EACZ0rE,EAAO,UAAYppE,EACZopE,CACR,CACL,EAAK,CACD,IAAK,IACL,MAAO,UAAa,CAClB,IAAIE,EACJ,OAAO,KAAK,aAAeA,EAAmB,KAAK,YAAY,UAAU,MAAMA,EAAkB,SAAS,CAC3G,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAIC,EACJ,OAAO,KAAK,aAAeA,EAAoB,KAAK,YAAY,OAAO,MAAMA,EAAmB,SAAS,CAC1G,CACL,EAAK,CACD,IAAK,sBACL,MAAO,SAA6B7rE,EAAI,CACtC,KAAK,QAAQ,UAAYA,CAC1B,CACL,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BA,EAAI,CACrC,IAAI8rE,EAAS,KACTxgM,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClF,GAAI,CAAC,KAAK,cACR,YAAK,OAAO,KAAK,kDAAmD,KAAK,SAAS,EAC3E,GAET,GAAI,CAAC,KAAK,WAAa,CAAC,KAAK,UAAU,OACrC,YAAK,OAAO,KAAK,6DAA8D,KAAK,SAAS,EACtF,GAET,IAAI40H,EAAM50H,EAAQ,KAAO,KAAK,kBAAoB,KAAK,UAAU,CAAC,EAC9D80H,EAAc,KAAK,QAAU,KAAK,QAAQ,YAAc,GACxDC,EAAU,KAAK,UAAU,KAAK,UAAU,OAAS,CAAC,EACtD,GAAIH,EAAI,YAAW,IAAO,SAAU,MAAO,GAC3C,IAAII,EAAiB,SAAwBvyK,EAAGC,EAAG,CACjD,IAAIuyK,EAAYurE,EAAO,SAAS,iBAAiB,MAAM,GAAG,OAAO/9O,EAAG,GAAG,EAAE,OAAOC,CAAC,CAAC,EAClF,OAAOuyK,IAAc,IAAMA,IAAc,CACjD,EACM,GAAIj1H,EAAQ,SAAU,CACpB,IAAIygM,EAAYzgM,EAAQ,SAAS,KAAMg1H,CAAc,EACrD,GAAIyrE,IAAc,OAAW,OAAOA,CACrC,CAGD,MAFI,QAAK,kBAAkB7rE,EAAKF,CAAE,GAC9B,CAAC,KAAK,SAAS,iBAAiB,SAAW,KAAK,QAAQ,WAAa,CAAC,KAAK,QAAQ,yBACnFM,EAAeJ,EAAKF,CAAE,IAAM,CAACI,GAAeE,EAAeD,EAASL,CAAE,GAE3E,CACL,EAAK,CACD,IAAK,iBACL,MAAO,SAAwBA,EAAI9gJ,EAAU,CAC3C,IAAI8sN,EAAS,KACTb,EAAW3L,KACf,OAAK,KAAK,QAAQ,IAId,OAAOx/D,GAAO,WAAUA,EAAK,CAACA,CAAE,GACpCA,EAAG,QAAQ,SAAUhyK,EAAG,CAClBg+O,EAAO,QAAQ,GAAG,QAAQh+O,CAAC,EAAI,GAAGg+O,EAAO,QAAQ,GAAG,KAAKh+O,CAAC,CACtE,CAAO,EACD,KAAK,cAAc,SAAUkpB,EAAK,CAChCi0N,EAAS,QAAO,EACZjsN,GAAUA,EAAShI,CAAG,CAClC,CAAO,EACMi0N,IAXDjsN,GAAUA,IACP,QAAQ,UAWlB,CACL,EAAK,CACD,IAAK,gBACL,MAAO,SAAuB4kN,EAAM5kN,EAAU,CAC5C,IAAIisN,EAAW3L,KACX,OAAOsE,GAAS,WAAUA,EAAO,CAACA,CAAI,GAC1C,IAAImI,EAAY,KAAK,QAAQ,SAAW,GACpCC,EAAUpI,EAAK,OAAO,SAAU5jE,EAAK,CACvC,OAAO+rE,EAAU,QAAQ/rE,CAAG,EAAI,CACxC,CAAO,EACD,OAAKgsE,EAAQ,QAIb,KAAK,QAAQ,QAAUD,EAAU,OAAOC,CAAO,EAC/C,KAAK,cAAc,SAAUh1N,EAAK,CAChCi0N,EAAS,QAAO,EACZjsN,GAAUA,EAAShI,CAAG,CAClC,CAAO,EACMi0N,IARDjsN,GAAUA,IACP,QAAQ,UAQlB,CACL,EAAK,CACD,IAAK,MACL,MAAO,SAAaghJ,EAAK,CAEvB,GADKA,IAAKA,EAAM,KAAK,mBAAqB,KAAK,WAAa,KAAK,UAAU,OAAS,EAAI,KAAK,UAAU,CAAC,EAAI,KAAK,WAC7G,CAACA,EAAK,MAAO,MACjB,IAAIisE,EAAU,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,KAAK,EACjb/F,EAAgB,KAAK,UAAY,KAAK,SAAS,eAAiB,IAAIf,GAAa/nN,GAAG,CAAE,EAC1F,OAAO6uN,EAAQ,QAAQ/F,EAAc,wBAAwBlmE,CAAG,CAAC,EAAI,IAAMA,EAAI,YAAa,EAAC,QAAQ,OAAO,EAAI,EAAI,MAAQ,KAC7H,CACL,EAAK,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,IAAIksE,EAAS,KACT9gM,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9EpsB,EAAW,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIonF,GAC/EnvC,EAAgBy8C,GAAcA,GAAcA,GAAc,CAAE,EAAE,KAAK,OAAO,EAAGtoE,CAAO,EAAG,CACzF,QAAS,EACjB,CAAO,EACGsmL,EAAQ,IAAI8Y,EAAKvzK,CAAa,GAC9B7rB,EAAQ,QAAU,QAAaA,EAAQ,SAAW,UACpDsmL,EAAM,OAASA,EAAM,OAAO,MAAMtmL,CAAO,GAE3C,IAAI+gM,EAAgB,CAAC,QAAS,WAAY,UAAU,EACpD,OAAAA,EAAc,QAAQ,SAAUp8O,EAAG,CACjC2hO,EAAM3hO,CAAC,EAAIm8O,EAAOn8O,CAAC,CAC3B,CAAO,EACD2hO,EAAM,SAAWh+G,GAAc,CAAE,EAAE,KAAK,QAAQ,EAChDg+G,EAAM,SAAS,MAAQ,CACrB,mBAAoBA,EAAM,mBAAmB,KAAKA,CAAK,CAC/D,EACMA,EAAM,WAAa,IAAIsQ,GAAWtQ,EAAM,SAAUA,EAAM,OAAO,EAC/DA,EAAM,WAAW,GAAG,IAAK,SAAU5yM,EAAO,CACxC,QAAS+/M,EAAQ,UAAU,OAAQjiN,EAAO,IAAI,MAAMiiN,EAAQ,EAAIA,EAAQ,EAAI,CAAC,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGliN,EAAKkiN,EAAQ,CAAC,EAAI,UAAUA,CAAK,EAEnCpN,EAAM,KAAK,MAAMA,EAAO,CAAC5yM,CAAK,EAAE,OAAOlC,CAAI,CAAC,CACpD,CAAO,EACD80M,EAAM,KAAKz6J,EAAej4C,CAAQ,EAClC0yM,EAAM,WAAW,QAAUA,EAAM,QACjCA,EAAM,WAAW,iBAAiB,SAAS,MAAQ,CACjD,mBAAoBA,EAAM,mBAAmB,KAAKA,CAAK,CAC/D,EACaA,CACR,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,MAAO,CACL,QAAS,KAAK,QACd,MAAO,KAAK,MACZ,SAAU,KAAK,SACf,UAAW,KAAK,UAChB,iBAAkB,KAAK,gBAC/B,CACK,CACF,EAAC,EACK8Y,CACT,EAAErL,EAAY,EACdxrH,GAAgB62H,GAAM,iBAAkB,UAAY,CAClD,IAAIp/L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9EpsB,EAAW,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,OACrD,OAAO,IAAIwrN,GAAKp/L,EAASpsB,CAAQ,CACnC,CAAC,EACD,IAAIs1F,GAAWk2H,GAAK,iBACpBl2H,GAAS,eAAiBk2H,GAAK,eAEVl2H,GAAS,eACpBA,GAAS,IACRA,GAAS,KACAA,GAAS,cACPA,GAAS,gBACrBA,GAAS,IACEA,GAAS,eACdA,GAAS,UACzB,IAAIpmH,GAAIomH,GAAS,EACJA,GAAS,OACIA,GAAS,oBACVA,GAAS,mBACbA,GAAS,eACVA,GAAS,cC78E7B,IAAI3D,GAAM,GACNy7H,IAAOz7H,GAAI,QACXlkC,IAAQkkC,GAAI,MAChB,SAASlmE,IAASkmC,EAAK,CACrBy7J,WAAK,KAAK3/J,IAAM,KAAK,UAAW,CAAC,EAAG,SAAUsG,EAAQ,CACpD,GAAIA,EACF,QAAS1zD,KAAQ0zD,EACXpC,EAAItxD,CAAI,IAAM,SAAWsxD,EAAItxD,CAAI,EAAI0zD,EAAO1zD,CAAI,EAG5D,CAAG,EACMsxD,CACT,CAGA,IAAI07J,GAAqB,wCACrBC,IAAkB,SAAyB9uN,EAAM6mD,EAAKj5B,EAAS,CACjE,IAAIm9L,EAAMn9L,GAAW,GACrBm9L,EAAI,KAAOA,EAAI,MAAQ,IACvB,IAAI/vN,EAAQ,mBAAmB6rD,CAAG,EAC9B+zG,EAAM,GAAG,OAAO56J,EAAM,GAAG,EAAE,OAAOhF,CAAK,EAC3C,GAAI+vN,EAAI,OAAS,EAAG,CAClB,IAAIgE,EAAShE,EAAI,OAAS,EAC1B,GAAI,OAAO,MAAMgE,CAAM,EAAG,MAAM,IAAI,MAAM,2BAA2B,EACrEn0D,GAAO,aAAa,OAAO,KAAK,MAAMm0D,CAAM,CAAC,CAC9C,CACD,GAAIhE,EAAI,OAAQ,CACd,GAAI,CAAC8D,GAAmB,KAAK9D,EAAI,MAAM,EACrC,MAAM,IAAI,UAAU,0BAA0B,EAEhDnwD,GAAO,YAAY,OAAOmwD,EAAI,MAAM,CACrC,CACD,GAAIA,EAAI,KAAM,CACZ,GAAI,CAAC8D,GAAmB,KAAK9D,EAAI,IAAI,EACnC,MAAM,IAAI,UAAU,wBAAwB,EAE9CnwD,GAAO,UAAU,OAAOmwD,EAAI,IAAI,CACjC,CACD,GAAIA,EAAI,QAAS,CACf,GAAI,OAAOA,EAAI,QAAQ,aAAgB,WACrC,MAAM,IAAI,UAAU,2BAA2B,EAEjDnwD,GAAO,aAAa,OAAOmwD,EAAI,QAAQ,YAAW,CAAE,CACrD,CAGD,GAFIA,EAAI,WAAUnwD,GAAO,cACrBmwD,EAAI,SAAQnwD,GAAO,YACnBmwD,EAAI,SAAU,CAChB,IAAIiE,EAAW,OAAOjE,EAAI,UAAa,SAAWA,EAAI,SAAS,YAAW,EAAKA,EAAI,SACnF,OAAQiE,EAAQ,CACd,IAAK,GACHp0D,GAAO,oBACP,MACF,IAAK,MACHA,GAAO,iBACP,MACF,IAAK,SACHA,GAAO,oBACP,MACF,IAAK,OACHA,GAAO,kBACP,MACF,QACE,MAAM,IAAI,UAAU,4BAA4B,CACnD,CACF,CACD,OAAOA,CACT,EACIuhB,GAAS,CACX,OAAQ,SAAgBn8K,EAAMhF,EAAO4uM,EAAShtB,EAAQ,CACpD,IAAIqyC,EAAgB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CACtF,KAAM,IACN,SAAU,QAChB,EACQrlB,IACFqlB,EAAc,QAAU,IAAI,KAC5BA,EAAc,QAAQ,QAAQA,EAAc,QAAQ,QAAO,EAAKrlB,EAAU,GAAK,GAAI,GAEjFhtB,IAAQqyC,EAAc,OAASryC,GACnC,SAAS,OAASkyC,IAAgB9uN,EAAM,mBAAmBhF,CAAK,EAAGi0N,CAAa,CACjF,EACD,KAAM,SAAcjvN,EAAM,CAGxB,QAFIk8K,EAAS,GAAG,OAAOl8K,EAAM,GAAG,EAC5BtsB,EAAK,SAAS,OAAO,MAAM,GAAG,EACzB,EAAI,EAAG,EAAIA,EAAG,OAAQ,IAAK,CAElC,QADIxB,EAAIwB,EAAG,CAAC,EACLxB,EAAE,OAAO,CAAC,IAAM,KAAKA,EAAIA,EAAE,UAAU,EAAGA,EAAE,MAAM,EACvD,GAAIA,EAAE,QAAQgqM,CAAM,IAAM,EAAG,OAAOhqM,EAAE,UAAUgqM,EAAO,OAAQhqM,EAAE,MAAM,CACxE,CACD,OAAO,IACR,EACD,OAAQ,SAAgB8tB,EAAM,CAC5B,KAAK,OAAOA,EAAM,GAAI,EAAE,CACzB,CACH,EACIkvN,IAAW,CACb,KAAM,SACN,OAAQ,SAAgBthM,EAAS,CAC/B,IAAI6mE,EACJ,GAAI7mE,EAAQ,cAAgB,OAAO,SAAa,IAAa,CAC3D,IAAI17C,EAAIiqM,GAAO,KAAKvuJ,EAAQ,YAAY,EACpC17C,IAAGuiH,EAAQviH,EAChB,CACD,OAAOuiH,CACR,EACD,kBAAmB,SAA2B+tD,EAAK50H,EAAS,CACtDA,EAAQ,cAAgB,OAAO,SAAa,KAC9CuuJ,GAAO,OAAOvuJ,EAAQ,aAAc40H,EAAK50H,EAAQ,cAAeA,EAAQ,aAAcA,EAAQ,aAAa,CAE9G,CACH,EAEIuhM,IAAc,CAChB,KAAM,cACN,OAAQ,SAAgBvhM,EAAS,CAC/B,IAAI6mE,EACJ,GAAI,OAAO,OAAW,IAAa,CACjC,IAAIjvC,EAAS,OAAO,SAAS,OACzB,CAAC,OAAO,SAAS,QAAU,OAAO,SAAS,MAAQ,OAAO,SAAS,KAAK,QAAQ,GAAG,EAAI,KACzFA,EAAS,OAAO,SAAS,KAAK,UAAU,OAAO,SAAS,KAAK,QAAQ,GAAG,CAAC,GAI3E,QAFI05H,EAAQ15H,EAAO,UAAU,CAAC,EAC1BslG,EAASo0B,EAAM,MAAM,GAAG,EACnBplL,EAAI,EAAGA,EAAIgxJ,EAAO,OAAQhxJ,IAAK,CACtC,IAAIojK,EAAMpS,EAAOhxJ,CAAC,EAAE,QAAQ,GAAG,EAC/B,GAAIojK,EAAM,EAAG,CACX,IAAIzsJ,EAAMq6I,EAAOhxJ,CAAC,EAAE,UAAU,EAAGojK,CAAG,EAChCzsJ,IAAQmd,EAAQ,oBAClB6mE,EAAQq2D,EAAOhxJ,CAAC,EAAE,UAAUojK,EAAM,CAAC,EAEtC,CACF,CACF,CACD,OAAOzoE,CACR,CACH,EAEI26H,GAAyB,KACzBC,GAAwB,UAAiC,CAC3D,GAAID,KAA2B,KAAM,OAAOA,GAC5C,GAAI,CACFA,GAAyB,SAAW,aAAe,OAAO,eAAiB,KAC3E,IAAIE,EAAU,wBACd,OAAO,aAAa,QAAQA,EAAS,KAAK,EAC1C,OAAO,aAAa,WAAWA,CAAO,CACvC,MAAW,CACVF,GAAyB,EAC1B,CACD,OAAOA,EACT,EACI1P,IAAe,CACjB,KAAM,eACN,OAAQ,SAAgB9xL,EAAS,CAC/B,IAAI6mE,EACJ,GAAI7mE,EAAQ,oBAAsByhM,KAAyB,CACzD,IAAI7sE,EAAM,OAAO,aAAa,QAAQ50H,EAAQ,kBAAkB,EAC5D40H,IAAK/tD,EAAQ+tD,EAClB,CACD,OAAO/tD,CACR,EACD,kBAAmB,SAA2B+tD,EAAK50H,EAAS,CACtDA,EAAQ,oBAAsByhM,MAChC,OAAO,aAAa,QAAQzhM,EAAQ,mBAAoB40H,CAAG,CAE9D,CACH,EAEI+sE,GAA2B,KAC3BC,GAA0B,UAAmC,CAC/D,GAAID,KAA6B,KAAM,OAAOA,GAC9C,GAAI,CACFA,GAA2B,SAAW,aAAe,OAAO,iBAAmB,KAC/E,IAAID,EAAU,wBACd,OAAO,eAAe,QAAQA,EAAS,KAAK,EAC5C,OAAO,eAAe,WAAWA,CAAO,CACzC,MAAW,CACVC,GAA2B,EAC5B,CACD,OAAOA,EACT,EACIE,IAAiB,CACnB,KAAM,iBACN,OAAQ,SAAgB7hM,EAAS,CAC/B,IAAI6mE,EACJ,GAAI7mE,EAAQ,sBAAwB4hM,KAA2B,CAC7D,IAAIhtE,EAAM,OAAO,eAAe,QAAQ50H,EAAQ,oBAAoB,EAChE40H,IAAK/tD,EAAQ+tD,EAClB,CACD,OAAO/tD,CACR,EACD,kBAAmB,SAA2B+tD,EAAK50H,EAAS,CACtDA,EAAQ,sBAAwB4hM,MAClC,OAAO,eAAe,QAAQ5hM,EAAQ,qBAAsB40H,CAAG,CAElE,CACH,EAEIktE,IAAc,CAChB,KAAM,YACN,OAAQ,SAAgB9hM,EAAS,CAC/B,IAAI6mE,EAAQ,GACZ,GAAI,OAAO,UAAc,IAAa,CACpC,GAAI,UAAU,UAEZ,QAAS36F,EAAI,EAAGA,EAAI,UAAU,UAAU,OAAQA,IAC9C26F,EAAM,KAAK,UAAU,UAAU36F,CAAC,CAAC,EAGjC,UAAU,cACZ26F,EAAM,KAAK,UAAU,YAAY,EAE/B,UAAU,UACZA,EAAM,KAAK,UAAU,QAAQ,CAEhC,CACD,OAAOA,EAAM,OAAS,EAAIA,EAAQ,MACnC,CACH,EAEIk7H,IAAU,CACZ,KAAM,UACN,OAAQ,SAAgB/hM,EAAS,CAC/B,IAAI6mE,EACAk7H,EAAU/hM,EAAQ,UAAY,OAAO,SAAa,IAAc,SAAS,gBAAkB,MAC/F,OAAI+hM,GAAW,OAAOA,EAAQ,cAAiB,aAC7Cl7H,EAAQk7H,EAAQ,aAAa,MAAM,GAE9Bl7H,CACR,CACH,EAEI/jF,IAAO,CACT,KAAM,OACN,OAAQ,SAAgBkd,EAAS,CAC/B,IAAI6mE,EACJ,GAAI,OAAO,OAAW,IAAa,CACjC,IAAI6rH,EAAW,OAAO,SAAS,SAAS,MAAM,iBAAiB,EAC/D,GAAIA,aAAoB,MACtB,GAAI,OAAO1yL,EAAQ,qBAAwB,SAAU,CACnD,GAAI,OAAO0yL,EAAS1yL,EAAQ,mBAAmB,GAAM,SACnD,OAEF6mE,EAAQ6rH,EAAS1yL,EAAQ,mBAAmB,EAAE,QAAQ,IAAK,EAAE,CACvE,MACU6mE,EAAQ6rH,EAAS,CAAC,EAAE,QAAQ,IAAK,EAAE,CAGxC,CACD,OAAO7rH,CACR,CACH,EAEIm7H,IAAY,CACd,KAAM,YACN,OAAQ,SAAgBhiM,EAAS,CAE/B,IAAIiiM,EAA2B,OAAOjiM,EAAQ,0BAA6B,SAAWA,EAAQ,yBAA2B,EAAI,EAIzH0yL,EAAW,OAAO,OAAW,KAAe,OAAO,UAAY,OAAO,SAAS,UAAY,OAAO,SAAS,SAAS,MAAM,wDAAwD,EAGtL,GAAKA,EAEL,OAAOA,EAASuP,CAAwB,CACzC,CACH,EAGIC,GAAa,GACjB,GAAI,CAEF,SAAS,OACTA,GAAa,EAEf,MAAY,CAAE,CACd,IAAIv6G,GAAQ,CAAC,cAAe,SAAU,eAAgB,iBAAkB,YAAa,SAAS,EACzFu6G,IAAYv6G,GAAM,OAAO,EAAG,CAAC,EAClC,SAAS+tC,KAAc,CACrB,MAAO,CACL,MAAO/tC,GACP,kBAAmB,MACnB,aAAc,UACd,mBAAoB,aACpB,qBAAsB,aAEtB,OAAQ,CAAC,cAAc,EACvB,gBAAiB,CAAC,QAAQ,EAI1B,wBAAyB,SAAiCllI,EAAG,CAC3D,OAAOA,CACR,CACL,CACA,CACA,IAAI0/O,GAAuB,UAAY,CACrC,SAASA,EAAQtL,EAAU,CACzB,IAAI72L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAClForE,GAAgB,KAAM+2H,CAAO,EAC7B,KAAK,KAAO,mBACZ,KAAK,UAAY,GACjB,KAAK,KAAKtL,EAAU72L,CAAO,CAC5B,CACD,OAAOgrE,GAAam3H,EAAS,CAAC,CAC5B,IAAK,OACL,MAAO,SAActL,EAAU,CAC7B,IAAI72L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E82H,EAAc,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACtF,KAAK,SAAW+/D,GAAY,CAC1B,cAAe,CAAE,CACzB,EACM,KAAK,QAAUx3L,IAASW,EAAS,KAAK,SAAW,GAAI01H,IAAW,CAAE,EAC9D,OAAO,KAAK,QAAQ,yBAA4B,UAAY,KAAK,QAAQ,wBAAwB,QAAQ,OAAO,EAAI,KACtH,KAAK,QAAQ,wBAA0B,SAAUjzK,EAAG,CAClD,OAAOA,EAAE,QAAQ,IAAK,GAAG,CACnC,GAIU,KAAK,QAAQ,qBAAoB,KAAK,QAAQ,oBAAsB,KAAK,QAAQ,oBACrF,KAAK,YAAcq0K,EACnB,KAAK,YAAYwqE,GAAQ,EACzB,KAAK,YAAYC,GAAW,EAC5B,KAAK,YAAYzP,GAAY,EAC7B,KAAK,YAAY+P,GAAc,EAC/B,KAAK,YAAYC,GAAW,EAC5B,KAAK,YAAYC,GAAO,EACxB,KAAK,YAAYj/M,GAAI,EACrB,KAAK,YAAYk/M,GAAS,CAC3B,CACL,EAAK,CACD,IAAK,cACL,MAAO,SAAqBI,EAAU,CACpC,YAAK,UAAUA,EAAS,IAAI,EAAIA,EACzB,IACR,CACL,EAAK,CACD,IAAK,SACL,MAAO,SAAgBC,EAAgB,CACrC,IAAIx1H,EAAQ,KACPw1H,IAAgBA,EAAiB,KAAK,QAAQ,OACnD,IAAIC,EAAW,GAWf,OAVAD,EAAe,QAAQ,SAAUE,EAAc,CAC7C,GAAI11H,EAAM,UAAU01H,CAAY,EAAG,CACjC,IAAIhgD,EAAS11E,EAAM,UAAU01H,CAAY,EAAE,OAAO11H,EAAM,OAAO,EAC3D01E,GAAU,OAAOA,GAAW,WAAUA,EAAS,CAACA,CAAM,GACtDA,IAAQ+/C,EAAWA,EAAS,OAAO//C,CAAM,EAC9C,CACT,CAAO,EACD+/C,EAAWA,EAAS,IAAI,SAAUj+O,EAAG,CACnC,OAAOwoH,EAAM,QAAQ,wBAAwBxoH,CAAC,CACtD,CAAO,EACG,KAAK,SAAS,cAAc,sBAA8Bi+O,EACvDA,EAAS,OAAS,EAAIA,EAAS,CAAC,EAAI,IAC5C,CACL,EAAK,CACD,IAAK,oBACL,MAAO,SAA2B1tE,EAAK4tE,EAAQ,CAC7C,IAAI5iH,EAAS,KACR4iH,IAAQA,EAAS,KAAK,QAAQ,QAC9BA,IACD,KAAK,QAAQ,iBAAmB,KAAK,QAAQ,gBAAgB,QAAQ5tE,CAAG,EAAI,IAChF4tE,EAAO,QAAQ,SAAUC,EAAW,CAC9B7iH,EAAO,UAAU6iH,CAAS,GAAG7iH,EAAO,UAAU6iH,CAAS,EAAE,kBAAkB7tE,EAAKh1C,EAAO,OAAO,CAC1G,CAAO,EACF,CACF,EAAC,CACJ,IACAuiH,GAAQ,KAAO,mBCpXf,IAAI58H,GAAM,GACNy7H,IAAOz7H,GAAI,QACXlkC,IAAQkkC,GAAI,MACT,SAASlmE,GAASkmC,EAAK,CAC5B,OAAAy7J,IAAK,KAAK3/J,IAAM,KAAK,UAAW,CAAC,EAAG,SAAUsG,EAAQ,CACpD,GAAIA,EACF,QAAS1zD,KAAQ0zD,EACXpC,EAAItxD,CAAI,IAAM,SAAWsxD,EAAItxD,CAAI,EAAI0zD,EAAO1zD,CAAI,EAG5D,CAAG,EACMsxD,CACT,CACO,SAAS6D,IAASnmD,EAAMomD,EAAMunJ,EAAW,CAC9C,IAAIr9H,EACJ,OAAO,UAAY,CACjB,IAAIpmF,EAAU,KACVqE,EAAO,UACPkxN,EAAQ,UAAiB,CAC3BnvI,EAAU,KACLq9H,GAAW3tM,EAAK,MAAM9V,EAASqE,CAAI,CAC9C,EACQmxN,EAAU/R,GAAa,CAACr9H,EAC5B,aAAaA,CAAO,EACpBA,EAAU,WAAWmvI,EAAOr5J,CAAI,EAC5Bs5J,GAAS1/M,EAAK,MAAM9V,EAASqE,CAAI,CACzC,CACA,CAEA,SAAS8iN,GAAcp7J,EAAQp2C,EAAM01B,EAAO,CAC1C,SAAS+7K,EAAS1xM,EAAK,CACrB,OAAOA,GAAOA,EAAI,QAAQ,KAAK,EAAI,GAAKA,EAAI,QAAQ,OAAQ,GAAG,EAAIA,CACpE,CAED,QADIkZ,EAAQ,OAAOjZ,GAAS,SAAW,CAAE,EAAC,OAAOA,CAAI,EAAIA,EAAK,MAAM,GAAG,EAChEiZ,EAAM,OAAS,GAAG,CACvB,GAAI,CAACm9B,EAAQ,MAAO,GACpB,IAAIr2C,EAAM0xM,EAASx4L,EAAM,MAAO,GAC5B,CAACm9B,EAAOr2C,CAAG,GAAK21B,IAAO0gB,EAAOr2C,CAAG,EAAI,IAAI21B,GAC7C0gB,EAASA,EAAOr2C,CAAG,CACpB,CACD,OAAKq2C,EACE,CACL,IAAKA,EACL,EAAGq7J,EAASx4L,EAAM,OAAO,CAC7B,EAJsB,EAKtB,CACO,SAAS04L,GAAQv7J,EAAQp2C,EAAMgc,EAAU,CAC9C,IAAI41L,EAAiBJ,GAAcp7J,EAAQp2C,EAAM,MAAM,EACrDyiD,EAAMmvJ,EAAe,IACrBnwO,EAAImwO,EAAe,EACrBnvJ,EAAIhhF,CAAC,EAAIu6C,CACX,CACO,SAAS61L,IAASz7J,EAAQp2C,EAAMgc,EAAUwF,EAAQ,CACvD,IAAIswL,EAAkBN,GAAcp7J,EAAQp2C,EAAM,MAAM,EACtDyiD,EAAMqvJ,EAAgB,IACtBrwO,EAAIqwO,EAAgB,EACtBrvJ,EAAIhhF,CAAC,EAAIghF,EAAIhhF,CAAC,GAAK,GACf+/C,IAAQihC,EAAIhhF,CAAC,EAAIghF,EAAIhhF,CAAC,EAAE,OAAOu6C,CAAQ,GACtCwF,GAAQihC,EAAIhhF,CAAC,EAAE,KAAKu6C,CAAQ,CACnC,CACO,SAAS+1L,GAAQ37J,EAAQp2C,EAAM,CACpC,IAAIgyM,EAAkBR,GAAcp7J,EAAQp2C,CAAI,EAC9CyiD,EAAMuvJ,EAAgB,IACtBvwO,EAAIuwO,EAAgB,EACtB,GAAKvvJ,EACL,OAAOA,EAAIhhF,CAAC,CACd,CACA,IAAIq+O,GAAS,IAAI,OAAO,YAAa,GAAG,EACxC,SAASvO,IAAWn7J,EAAQ,CAC1B,OAAIA,GAAU,KAAa,GACpB,GAAKA,CACd,CACO,SAAS2pK,GAAY71D,EAAKttI,EAAMk1H,EAAK,CAC1C,IAAI3vF,EAAO73D,EACX,SAASwuN,EAAU3iK,EAAK,CACtB,OAAOA,EAAI,QAAQ,MAAO,MAAM,CACjC,CACD,KAAOgM,EAAQ29J,GAAO,KAAK51D,CAAG,GAC5B5/J,EAAQ63D,EAAM,CAAC,EAAE,KAAI,EACjB,OAAO73D,GAAU,WAAUA,EAAQinN,IAAWjnN,CAAK,GAClDA,IAAOA,EAAQ,IACpBA,EAAQwuN,EAAUxuN,CAAK,EACvB4/J,EAAMA,EAAI,QAAQ/nG,EAAM,CAAC,EAAGvlC,EAAKtyB,CAAK,GAAKA,CAAK,EAChDw1N,GAAO,UAAY,EAErB,OAAO51D,CACT,CACO,SAAS81D,GAAgBv9J,EAAKt4D,EAAO,CAC1C,OAAOA,EAAM,OAAO,SAAUuwN,EAAK76O,EAAG,CACpC,GAAI66O,EAAK,OAAOA,EAChB,GAAI,CAACj4J,GAAO,CAACA,EAAI5iF,CAAC,GAAK,OAAO4iF,EAAI5iF,CAAC,GAAM,UAAY,CAAC4iF,EAAI5iF,CAAC,EAAE,YAAW,IAAOA,EAAE,cAAe,CAC9F,IAAIipB,EAAM,kCAAmC,OAAO25D,EAAI5iF,CAAC,EAAG,mBAAoB,EAAE,OAAOA,EAAG,oBAAoB,EAChH,eAAQ,KAAKipB,CAAG,EACTA,CACR,CACD,MAAO,EACR,EAAE,EAAK,CACV,CAIO,SAASsoN,IAAQ,CACtB,IAAIp8B,EACAq8B,EACAC,EAAU,IAAI,QAAQ,SAAUt8D,EAASqqB,EAAQ,CACnD2V,EAAMhgC,EACNq8D,EAAMhyC,CACV,CAAG,EACD,OAAAiyC,EAAQ,QAAUt8B,EAClBs8B,EAAQ,OAASD,EACVC,CACT,CC/GA,SAASvpH,GAAQjqF,EAAG,CAAE,0BAA2B,OAAOiqF,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUjqF,EAAG,CAAE,OAAO,OAAOA,GAAO,SAAUA,EAAG,CAAE,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAAE,EAAIiqF,GAAQjqF,CAAC,CAAI,CAC9T,IAAImiN,GAAW,OAAO,OAAU,WAAa,MAAQ,OACjD,OAAO,OAAW,KAAe,OAAO,MAC1CA,GAAW,OAAO,MACT,OAAO,OAAW,KAAe,OAAO,QACjDA,GAAW,OAAO,OAEpB,IAAIC,IACA,OAAO,gBAAmB,aAAe,OAAO,eAAmB,IAAc,YAAcn4H,GAAQ,cAAc,KAAO,YAC1H,OAAO,OAAW,KAAe,OAAO,eAC1Cm4H,GAAoB,OAAO,eAClB,OAAO,OAAW,KAAe,OAAO,iBACjDA,GAAoB,OAAO,iBAG/B,IAAIC,GACA,OAAO,eAAkB,aACvB,OAAO,OAAW,KAAe,OAAO,cAC1CA,GAAmB,OAAO,cACjB,OAAO,OAAW,KAAe,OAAO,gBACjDA,GAAmB,OAAO,gBAG1B,OAAOF,IAAa,aAAYA,GAAW,QAC/C,GAAI,CAACA,IAAY,CAACC,IAAqB,CAACC,GACtC,GAAI,CACF5R,GAAA,WAAO,gCAAa,OAAA3uO,KAAA,OAAE,KAAK,SAAUwzN,EAAK,CACxC6sB,GAAW7sB,EAAI,OACrB,CAAK,EAAE,MAAM,UAAY,EAAE,CAC3B,MAAc,CAAE,CAEhB,IAAIgtB,IAAmB,SAA0BljM,EAAS05H,EAAK/rF,EAAS/5D,EAAU,CAChF,IAAIs1L,EAAU,GACV,OAAO,OAAW,KAAe,OAAO,OAAW,KAAe,OAAO,OAAO,QAAY,KAAe,OAAO,QAAQ,UAAY,OAAO,QAAQ,SAAS,OAChKA,EAAQ,YAAY,EAAI,gCAAgC,OAAO,OAAO,QAAQ,QAAS,IAAI,EAAE,OAAO,OAAO,QAAQ,SAAU,GAAG,EAAE,OAAO,OAAO,QAAQ,KAAM,GAAG,GAE/JlpK,EAAQ,WAAaA,EAAQ,SAC/BkpK,EAAQ,cAAgBlpK,EAAQ,SAE9B2tC,GAAW3tC,EAAQ,sBACrBkpK,EAAQ,cAAc,EAAI,oBAE5B,IAAI1/H,EAAW,SAAkByvH,EAAU,CACzC,IAAIkqC,EAAsBlqC,EAAS,SAAWA,EAAS,QAAQ,IAAI,SAAS,IAAM,wBAClF,GAAI,CAACA,EAAS,GAAI,OAAOrlL,EAASqlL,EAAS,YAAc,QAAS,CAChE,OAAQA,EAAS,OACjB,oBAAqBkqC,CAC3B,CAAK,EACDlqC,EAAS,KAAI,EAAG,KAAK,SAAUv5J,EAAM,CACnC9rB,EAAS,KAAM,CACb,OAAQqlL,EAAS,OACjB,KAAMv5J,EACN,oBAAqByjM,CAC7B,CAAO,CACP,CAAK,EAAE,MAAMvvN,CAAQ,CACrB,EACM,OAAO,OAAU,WACnB,MAAM8lJ,EAAK,CACT,OAAQ/rF,EAAU,OAAS,MAC3B,KAAMA,EAAU,KAAK,UAAUA,CAAO,EAAI,OAC1C,QAASu7H,CACV,GAAE,KAAK1/H,CAAQ,EAAE,MAAM51D,CAAQ,EAEhCmvN,GAASrpE,EAAK,CACZ,OAAQ/rF,EAAU,OAAS,MAC3B,KAAMA,EAAU,KAAK,UAAUA,CAAO,EAAI,OAC1C,QAASu7H,CACV,GAAE,KAAK1/H,CAAQ,EAAE,MAAM51D,CAAQ,CAEpC,EACIwvN,IAA4B,SAAmCpjM,EAAS05H,EAAK/rF,EAAS/5D,EAAU,CAClG,GAAI,CACF,IAAI1wB,EAAI8/O,GAAoB,IAAIA,GAAsB,IAAIC,GAAiB,oBAAoB,EAC/F//O,EAAE,KAAKyqF,EAAU,OAAS,MAAO+rF,EAAK,CAAC,EAClC15H,EAAQ,aACX98C,EAAE,iBAAiB,mBAAoB,gBAAgB,EAErD88C,EAAQ,WAAaA,EAAQ,QAC/B98C,EAAE,iBAAiB,gBAAiB88C,EAAQ,MAAM,GAEhD2tC,GAAW3tC,EAAQ,qBACrB98C,EAAE,iBAAiB,eAAgB,kBAAkB,EAEvDA,EAAE,mBAAqB,UAAY,CACjC,IAAIigP,EAAsBjgP,EAAE,kBAAkB,SAAS,IAAM,wBAC7DA,EAAE,WAAa,GAAK0wB,EAAS1wB,EAAE,QAAU,IAAMA,EAAE,WAAa,KAAM,CAClE,OAAQA,EAAE,OACV,KAAMA,EAAE,aACR,oBAAqBigP,CAC7B,CAAO,CACP,EACIjgP,EAAE,KAAK,KAAK,UAAUyqF,CAAO,CAAC,CAC/B,OAAQ/pF,EAAG,CACV,SAAW,QAAQ,IAAIA,CAAC,CACzB,CACH,EACIy/O,GAAU,SAAiBrjM,EAAS05H,EAAK/rF,EAAS/5D,EAAU,CAM9D,GALI,OAAO+5D,GAAY,aACrB/5D,EAAW+5D,EACXA,EAAU,QAEZ/5D,EAAWA,GAAY,UAAY,GAC/BmvN,GACF,OAAOG,IAAiBljM,EAAS05H,EAAK/rF,EAAS/5D,CAAQ,EAEzD,GAAI,OAAO,gBAAmB,aAAe,OAAO,eAAmB,IAAc,YAAci3F,GAAQ,cAAc,KAAO,UAAY,OAAO,eAAkB,WACnK,OAAOu4H,IAA0BpjM,EAAS05H,EAAK/rF,EAAS/5D,CAAQ,EAElEA,EAAS,IAAI,MAAM,2CAA2C,CAAC,CACjE,EC7GA,SAASi3F,GAAQjqF,EAAG,CAAE,0BAA2B,OAAOiqF,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUjqF,EAAG,CAAE,OAAO,OAAOA,GAAO,SAAUA,EAAG,CAAE,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAAE,EAAIiqF,GAAQjqF,CAAC,CAAI,CAC9T,SAASwqF,IAAgB9nH,EAAGZ,EAAG,CAAE,GAAI,EAAEY,aAAaZ,GAAI,MAAM,IAAI,UAAU,mCAAmC,CAAI,CACnH,SAASooH,GAAkB,EAAGjoH,EAAG,CAAE,QAASC,EAAI,EAAGA,EAAID,EAAE,OAAQC,IAAK,CAAE,IAAI89B,EAAI/9B,EAAEC,CAAC,EAAG89B,EAAE,WAAaA,EAAE,YAAc,GAAIA,EAAE,aAAe,GAAI,UAAWA,IAAMA,EAAE,SAAW,IAAK,OAAO,eAAe,EAAG+qG,IAAe/qG,EAAE,GAAG,EAAGA,CAAC,EAAM,CACxO,SAASoqF,IAAa,EAAGnoH,EAAGC,EAAG,CAAE,OAAOD,GAAKioH,GAAkB,EAAE,UAAWjoH,CAAC,EAAGC,GAAKgoH,GAAkB,EAAGhoH,CAAC,EAAG,OAAO,eAAe,EAAG,YAAa,CAAE,SAAU,GAAI,EAAG,CAAI,CAC3K,SAAS6oI,IAAe7oI,EAAG,CAAE,IAAIopB,EAAI0/G,IAAa9oI,EAAG,QAAQ,EAAG,OAAmB+nH,GAAQ3+F,CAAC,GAArB,SAAyBA,EAAIA,EAAI,EAAK,CAC7G,SAAS0/G,IAAa9oI,EAAGD,EAAG,CAAE,GAAgBgoH,GAAQ/nH,CAAC,GAArB,UAA0B,CAACA,EAAG,OAAOA,EAAG,IAAIc,EAAId,EAAE,OAAO,WAAW,EAAG,GAAec,IAAX,OAAc,CAAE,IAAIsoB,EAAItoB,EAAE,KAAKd,EAAGD,GAAK,SAAS,EAAG,GAAgBgoH,GAAQ3+F,CAAC,GAArB,SAAwB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAI,CAAC,OAAqBrpB,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAI,CAG5T,IAAI4yK,IAAc,UAAuB,CACvC,MAAO,CACL,SAAU,kEACV,YAAa,0EACb,iBAAkB,iDAClB,QAAS,0EACT,WAAY,yEACZ,aAAc,KACd,YAAa,GACb,mBAAoB,GACpB,QAAS,SACT,QAAS,GACT,8BAA+B,GAC/B,uBAAwB,GACxB,wBAAyB,CAAC,WAAW,EACrC,QAAS,GACT,eAAgB,OAAO,OAAW,IAAc,GAAQ,GAAK,GAAK,IAClE,uBAAwB,EAAI,IAC5B,kBAAmB,GAAK,GAAK,IAC7B,cAAe,EAAI,GACvB,CACA,EACI8rE,GACJ,GAAI,CACFA,GAAyB,OAAO,OAAW,KAAe,OAAO,eAAiB,KAClF,IAAIE,GAAU,2BACd,OAAO,aAAa,QAAQA,GAAS,KAAK,EAC1C,OAAO,aAAa,WAAWA,EAAO,CACxC,MAAY,CACVF,GAAyB,EAC3B,CACA,SAAS8B,IAAWC,EAAmB,CACrC,IAAIC,EAAwB,UAAiC,GACzDC,EAAuB,UAAgC,GAC3D,OAAIjC,IACFgC,EAAwB,SAA+BE,EAAW,CAChE,OAAO,aAAa,QAAQ,4BAA4B,OAAOA,CAAS,EAAG,KAAK,IAAG,CAAE,CAC3F,EACID,EAAuB,SAA8BC,EAAW,CAC9D,IAAI7rE,EAAM,OAAO,aAAa,QAAQ,4BAA4B,OAAO6rE,CAAS,CAAC,EACnF,OAAK7rE,EACD,KAAK,MAAQA,EAAM0rE,GACrB,OAAO,aAAa,WAAW,4BAA4B,OAAOG,CAAS,CAAC,EACrE,IAEF,GALU,EAMvB,GACa,OAAO,SAAa,MAC7BF,EAAwB,SAA+BE,EAAW,CAChE,IAAI7kI,EAAO,IAAI,KACfA,EAAK,QAAQA,EAAK,QAAS,EAAG0kI,CAAiB,EAC/C,IAAIz0C,EAAU,aAAa,OAAOjwF,EAAK,YAAa,GAChDzsF,EAAO,4BAA4B,OAAOsxN,CAAS,EACvD,GAAI,CACF,SAAS,OAAS,GAAG,OAAOtxN,EAAM,GAAG,EAAE,OAAO,KAAK,IAAG,CAAE,EAAE,OAAO08K,EAAS,SAAS,CAC3F,MAAoB,CAAE,CACtB,EACI20C,EAAuB,SAA8BC,EAAW,CAC9D,IAAItxN,EAAO,4BAA4B,OAAOsxN,CAAS,EACnDp1C,EAAS,GAAG,OAAOl8K,EAAM,GAAG,EAChC,GAAI,CAEF,QADItsB,EAAK,SAAS,OAAO,MAAM,GAAG,EACzBomB,EAAI,EAAGA,EAAIpmB,EAAG,OAAQomB,IAAK,CAElC,QADI5nB,EAAIwB,EAAGomB,CAAC,EACL5nB,EAAE,OAAO,CAAC,IAAM,KAAKA,EAAIA,EAAE,UAAU,EAAGA,EAAE,MAAM,EACvD,GAAIA,EAAE,QAAQgqM,CAAM,IAAM,EAAG,MAAO,EACrC,CACT,MAAoB,CAAE,CAChB,MAAO,EACb,GAES,CACL,sBAAuBk1C,EACvB,qBAAsBC,CAC1B,CACA,CACA,IAAIE,GAAuB,SAA8BjqE,EAAK15H,EAAS2tC,EAAS,CAC9E,IAAIu7H,EAAU,GACd,OAAIlpK,EAAQ,WAAaA,EAAQ,SAC/BkpK,EAAQ,cAAgBlpK,EAAQ,SAE9B2tC,GAAW3tC,EAAQ,sBACrBkpK,EAAQ,cAAc,EAAI,oBAErB,CACL,OAAQv7H,EAAU,OAAS,MAC3B,IAAK+rF,EACL,QAASwvC,EACT,KAAMv7H,CACV,CACA,EACIi2J,GAAsB,SAA6BzG,EAAK0G,EAAM76O,EAAI,CACpE,GAAIm0O,EAAI,QAAQ,SAAW,EAAG,CAC5B,GAAI,CACF,IAAIt6O,EAAIs6O,EAAI,QAAQ0G,CAAI,EACpBhhP,GAAK,OAAOA,EAAE,MAAS,WACzBA,EAAE,KAAK,SAAU68C,EAAM,CACrB,OAAO12C,EAAG,KAAM02C,CAAI,CAC9B,CAAS,EAAE,MAAM12C,CAAE,EAEXA,EAAG,KAAMnG,CAAC,CAEb,OAAQ+oB,EAAK,CACZ5iB,EAAG4iB,CAAG,CACP,CACD,MACD,CACDuxN,EAAI,QAAQ0G,EAAM76O,CAAE,CACtB,EACI86O,GAAuB,UAAY,CACrC,SAASA,EAAqBjN,EAAU,CACtC,IAAI72L,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E+jM,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACjFnwN,EAAW,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,OACrDw3F,IAAgB,KAAM04H,CAAoB,EAC1C,KAAK,SAAWjN,EAChB,KAAK,QAAU72L,EACf,KAAK,WAAa+jM,EAClB,KAAK,KAAO,UACRlN,GAAYA,EAAS,UACvB,KAAK,KAAK,KAAMA,EAAUkN,EAAY/jM,CAAO,EAE7C,KAAK,KAAK62L,EAAU72L,EAAS+jM,EAAYnwN,CAAQ,CAEpD,CACD,OAAOo3F,IAAa84H,EAAsB,CAAC,CACzC,IAAK,OACL,MAAO,SAAcjN,EAAU,CAC7B,IAAIhqH,EAAQ,KACR7sE,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E+jM,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACjFnwN,EAAW,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,OACjD,CAACosB,EAAQ,cAAgB+jM,EAAW,aAAe,MAAM,QAAQA,EAAW,WAAW,GAAKA,EAAW,YAAY,CAAC,IAAM,QAC5H/jM,EAAQ,aAAe+jM,EAAW,YAAY,CAAC,GAEjD,KAAK,SAAWlN,EAChB,IAAImN,EAAStuE,MACTuuE,EAAY5kM,GAASW,EAAS,KAAK,SAAW,EAAE,EAChDikM,EAAU,gBAAkBA,EAAU,eAAiB,EAAI,GAAK,MAClE,QAAQ,KAAK,kDAAkD,EAC/DA,EAAU,eAAiBD,EAAO,gBAEpC,KAAK,QAAU3kM,GAASW,EAAS,KAAK,SAAW,GAAIgkM,CAAM,EAC3D,KAAK,WAAaD,EAClB,KAAK,gBAAkB,GACvB,KAAK,qBAAuB,GAC5B,KAAK,QAAUT,IAAW,KAAK,QAAQ,iBAAiB,EACpD,KAAK,QAAQ,MACf,QAAQ,KAAK,wIAAwI,EAEvJ,IAAI7wC,EAAW,OAAO,OAAW,KAAe,OAAO,UAAY,OAAO,SAAS,SAC/EA,GACF,KAAK,qBAAuB,OAAO,KAAK,QAAQ,yBAA4B,WAAa,KAAK,QAAQ,wBAAwBA,CAAQ,EAAI,KAAK,QAAQ,wBAAwB,QAAQA,CAAQ,EAAI,GAC/LokC,GAAYA,EAAS,SAAWkN,EAAW,aAAeA,EAAW,iBAClE,KAAK,qBAECtxC,IAAa,aACtBokC,EAAS,OAAO,KAAK,qFAAsF,OAAOpkC,EAAU;AAAA;AAAA,gEAAoH,CAAC,EAFjPokC,EAAS,OAAO,KAAK,OAAO,KAAK,QAAQ,yBAA4B,WAAa,iHAAkH,OAAOpkC,EAAU,IAAK,EAAI,sEAAuE,OAAOA,EAAU,oDAAqD,EAAE,OAAO,KAAK,QAAQ,wBAAwB,KAAK,IAAI,EAAG,8BAA8B,CAAC,IAMxc,KAAK,qBAAuB,GAE1B,OAAO7+K,GAAa,YACtB,KAAK,WAAW,SAAUhI,EAAKs/J,EAAMizD,EAAW,CAC9C,GAAIvyN,EAAK,OAAOgI,EAAShI,CAAG,EAC5BihG,EAAM,QAAQ,aAAe7sE,EAAQ,cAAgBkrI,EAAK,cAAgBr+D,EAAM,QAAQ,aACxFj5F,EAAS,KAAMs3J,EAAMizD,CAAS,CACxC,CAAS,EAEH,KAAK,aAAe,CAClB,QAAS,CAAE,CACnB,EACM,KAAK,iBAAmB/0J,IAAS,KAAK,QAAS,KAAK,QAAQ,aAAa,EACrE,KAAK,UAAU,cAAc,KAAK,QAAQ,EAC1C,KAAK,QAAQ,gBAAkB,KAAK,QAAQ,YAC9C,KAAK,SAAW,YAAY,UAAY,CACtC,OAAOyjC,EAAM,QACvB,EAAW,KAAK,QAAQ,cAAc,EAC1BhC,GAAQ,KAAK,QAAQ,IAAM,UAAY,OAAO,KAAK,SAAS,OAAU,YAAY,KAAK,SAAS,MAAK,EAE5G,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAI+U,EAAS,KACTrkE,EAAO,KAAK,UAAY,CACxB,OAAQ,OACT,EACD2oL,EAAmB3oL,EAAK,iBACxBu/K,EAAgBv/K,EAAK,cACrBu/I,EAASv/I,EAAK,OAChB,GAAK2oL,EACL,KAAIC,EAAkBD,EAAiB,SACvC,GAAI,EAAAC,GAAmBA,EAAgB,YAAa,IAAK,UACzD,KAAI/F,EAAS,GACT12D,EAAS,SAAgB9S,EAAK,CAChC,IAAI4jE,EAAOsC,EAAc,mBAAmBlmE,CAAG,EAC/C4jE,EAAK,QAAQ,SAAU/1O,EAAG,CACpB27O,EAAO,QAAQ37O,CAAC,EAAI,GAAG27O,EAAO,KAAK37O,CAAC,CAClD,CAAS,CACT,EACMilL,EAAOy8D,CAAe,EAClB,KAAK,WAAW,SAAS,KAAK,WAAW,QAAQ,QAAQ,SAAU1hP,EAAG,CACxE,OAAOilL,EAAOjlL,CAAC,CACvB,CAAO,EACD27O,EAAO,QAAQ,SAAUxpE,EAAK,CAC5Bh1C,EAAO,WAAW,GAAG,QAAQ,SAAU80C,EAAI,CACzCwvE,EAAiB,KAAKtvE,EAAKF,EAAI,OAAQ,KAAM,KAAM,SAAU9oJ,EAAK8zB,EAAM,CAClE9zB,GAAKkvL,EAAO,KAAK,qBAAqB,OAAOpmC,EAAI,gBAAgB,EAAE,OAAOE,EAAK,SAAS,EAAGhpJ,CAAG,EAC9F,CAACA,GAAO8zB,GAAMo7J,EAAO,IAAI,oBAAoB,OAAOpmC,EAAI,gBAAgB,EAAE,OAAOE,CAAG,EAAGl1H,CAAI,EAC/FwkM,EAAiB,OAAO,GAAG,OAAOtvE,EAAK,GAAG,EAAE,OAAOF,CAAE,EAAG9oJ,EAAK8zB,CAAI,CAC7E,CAAW,CACX,CAAS,CACT,CAAO,GACF,CACL,EAAK,CACD,IAAK,eACL,MAAO,SAAsB9rB,EAAU,CACrC,IAAIssG,EAAS,KACT2/G,EACCjsN,IACHisN,EAAW3L,GAAK,EAChBtgN,EAAW,SAAkBhI,EAAKisJ,EAAK,CACrC,GAAIjsJ,EAAK,OAAOi0N,EAAS,OAAOj0N,CAAG,EACnCi0N,EAAS,QAAQhoE,CAAG,CAC9B,GAEM,IAAIusE,EAAYtB,GAAgB,KAAK,QAAS,CAAC,WAAW,CAAC,EAC3D,GAAIsB,EAAW,OAAOxwN,EAAS,IAAI,MAAMwwN,CAAS,CAAC,EACnD,IAAI1qE,EAAMmpE,GAAY,KAAK,QAAQ,iBAAkB,CACnD,UAAW,KAAK,QAAQ,SAChC,CAAO,EAID,GAHI,CAAC,KAAK,sBAAwB,KAAK,QAAQ,qBAAqB,KAAK,QAAQ,SAAS,IACxF,KAAK,qBAAuB,IAE1B,KAAK,qBAAsB,OAAOjvN,EAAS,IAAI,MAAM,kBAAkB,OAAO,KAAK,QAAQ,UAAW,kBAAkB,CAAC,CAAC,EAG9H,GAFA,KAAK,kBAAoB,KAAK,mBAAqB,GACnD,KAAK,kBAAkB,KAAKA,CAAQ,EAChC,OAAK,kBAAkB,OAAS,GACpC,YAAK,QAAQ,GAAI8lJ,EAAK,SAAU9tJ,EAAKisJ,EAAKgsE,EAAM,CAC9C,GAAI,CAAC3jH,EAAO,iBAAmB2jH,GAAQA,EAAK,oBAAqB,CAC/D3jH,EAAO,qBAAuB,GAC9BA,EAAO,QAAQ,sBAAsBA,EAAO,QAAQ,SAAS,EAC7D,IAAIt8H,EAAI,IAAI,MAAM,kBAAkB,OAAOs8H,EAAO,QAAQ,UAAW,kBAAkB,CAAC,EACpFmkH,EAAQnkH,EAAO,kBACnB,OAAAA,EAAO,kBAAoB,GACpBmkH,EAAM,QAAQ,SAAUrF,EAAK,CAClC,OAAOA,EAAIp7O,CAAC,CACxB,CAAW,CACF,CACD,GAAIi0K,EAAK,CACP,IAAIysE,EAAe,OAAO,KAAKzsE,CAAG,EAAE,OAAO,SAAU2lE,EAAKj5O,EAAG,CAC3D,IAAI24B,EAAO26I,EAAItzK,CAAC,EAChB,OAAI24B,EAAK,sBAAqBsgN,EAAMj5O,GAC7Bi5O,CACR,EAAE,EAAE,EACD8G,GAAgBpkH,EAAO,QAAQ,eAAiBokH,IAClDpkH,EAAO,QAAQ,aAAeokH,EAEjC,CACDpkH,EAAO,gBAAkB,GACzB,IAAIqkH,EAAOrkH,EAAO,kBAClBA,EAAO,kBAAoB,GAC3BqkH,EAAK,QAAQ,SAAUvF,EAAK,CAC1B,OAAOA,EAAIpzN,EAAKisJ,CAAG,CAC7B,CAAS,CACT,CAAO,EACMgoE,CACR,CACL,EAAK,CACD,IAAK,aACL,MAAO,SAAoBjsN,EAAU,CACnC,IAAIqlN,EAAS,KACT4G,EACJ,OAAKjsN,IACHisN,EAAW3L,GAAK,EAChBtgN,EAAW,SAAkBhI,EAAKisJ,EAAK,CACrC,GAAIjsJ,EAAK,OAAOi0N,EAAS,OAAOj0N,CAAG,EACnCi0N,EAAS,QAAQhoE,CAAG,CAC9B,GAEM,KAAK,aAAa,SAAUjsJ,EAAK8zB,EAAM,CACrC,GAAI9zB,EAAK,OAAOgI,EAAShI,CAAG,EAC5B,IAAIsgD,EAAO,OAAO,KAAKxsB,CAAI,EAC3B,GAAI,CAACwsB,EAAK,OACR,OAAOt4C,EAAS,IAAI,MAAM,sCAAsC,CAAC,EAEnE,IAAI4kN,EAAOtsK,EAAK,OAAO,SAAUsxK,EAAKj5O,EAAG,CACvC,IAAI24B,EAAOwiB,EAAKn7C,CAAC,EACjB,OAAI24B,EAAK,WAAW+7M,EAAO,QAAQ,OAAO,GAAK/7M,EAAK,WAAW+7M,EAAO,QAAQ,OAAO,GAAKA,EAAO,QAAQ,+BACvGuE,EAAI,KAAKj5O,CAAC,EAELi5O,CACR,EAAE,CAAE,GACDgH,EAAYt4K,EAAK,OAAO,SAAUsxK,EAAKj5O,EAAG,CAC5C,OAAIA,EAAE,QAAQ,GAAG,EAAI,GAAW,GACzBi5O,CACR,EAAE,EAAK,EACR5pN,EAAS,KAAM,CACb,YAAaqlN,EAAO,QAAQ,aAC5B,aAAcA,EAAO,QAAQ,aAC7B,cAAeT,EAAK,SAAW,GAAKS,EAAO,QAAQ,aAAe,CAACA,EAAO,QAAQ,YAAY,EAAIT,EAClG,KAAMgM,EAAY,MAAQ,cAC3B,EAAE9kM,CAAI,CACf,CAAO,EACMmgM,CACR,CACL,EAAK,CACD,IAAK,uBACL,MAAO,SAA8BjsN,EAAU,CAC7C,IAAIirN,EAAS,KACTjjH,EAAQ,KAAK,UAAY,CACzB,OAAQ,OACT,EACDk/E,EAASl/E,EAAM,OACjB,GAAI,KAAK,gBAAiB,CACpBhoG,GAAUA,EAAS,IAAI,EAC3B,MACD,CACD,GAAI,KAAK,qCAAsC,CAC7C,WAAW,UAAY,CACrB,OAAOirN,EAAO,qBAAqBjrN,CAAQ,CACrD,EAAW,KAAK,QAAQ,sBAAsB,EACtC,MACD,CACD,KAAK,qCAAuC,GAC5C,KAAK,aAAa,SAAUhI,EAAK,CAC3BA,GAAOA,EAAI,SAAWA,EAAI,QAAQ,QAAQ,gBAAgB,EAAI,GAC5DkvL,GAAQA,EAAO,MAAMlvL,EAAI,OAAO,EAElCgI,GAAUA,EAAShI,CAAG,CAClC,CAAO,CACF,CACL,EAAK,CACD,IAAK,OACL,MAAO,SAAc8mN,EAAU0E,EAAWxjN,EAAU,CAClD,IAAI4sN,EAAS,KACTpjH,EAAQ,KAAK,UAAY,CACzB,OAAQ,OACT,EACD09E,EAAS19E,EAAM,OACbs8C,EACA15H,EAAU,GACd,GAAI,KAAK,QAAQ,QAAS,CACxB,IAAIokM,EAAYtB,GAAgB,KAAK,QAAS,CAAC,YAAa,UAAW,QAAQ,CAAC,EAChF,GAAIsB,EAAW,OAAOxwN,EAAS,IAAI,MAAMwwN,CAAS,EAAG,EAAK,EAC1D1qE,EAAMmpE,GAAY,KAAK,QAAQ,YAAa,CAC1C,IAAKnQ,EACL,GAAI0E,EACJ,UAAW,KAAK,QAAQ,UACxB,QAAS,KAAK,QAAQ,OAChC,CAAS,EACDp3L,EAAU,CACR,UAAW,EACrB,CACA,KAAa,CACL,IAAIykM,EAAa3B,GAAgB,KAAK,QAAS,CAAC,YAAa,SAAS,CAAC,EACvE,GAAI2B,EAAY,OAAO7wN,EAAS,IAAI,MAAM6wN,CAAU,EAAG,EAAK,EAC5D/qE,EAAMmpE,GAAY,KAAK,QAAQ,SAAU,CACvC,IAAKnQ,EACL,GAAI0E,EACJ,UAAW,KAAK,QAAQ,UACxB,QAAS,KAAK,QAAQ,OAChC,CAAS,CACF,CAID,GAHI,CAAC,KAAK,sBAAwB,KAAK,QAAQ,qBAAqB,KAAK,QAAQ,SAAS,IACxF,KAAK,qBAAuB,IAE1B,KAAK,qBAAsB,CAC7B,IAAIxrN,EAAM,IAAI,MAAM,kBAAkB,OAAO,KAAK,QAAQ,UAAW,kBAAkB,CAAC,EACpFkvL,GAAQA,EAAO,MAAMlvL,EAAI,OAAO,EAChCgI,GAAUA,EAAShI,CAAG,EAC1B,MACD,CACD,KAAK,QAAQo0B,EAAS05H,EAAK,SAAU9tJ,EAAKisJ,EAAKgsE,EAAM,CAC9CrD,EAAO,kBACNqD,GAAQA,EAAK,oBACf,WAAW,UAAY,CACrB,OAAOrD,EAAO,sBAC5B,EAAeA,EAAO,QAAQ,sBAAsB,EAExCA,EAAO,gBAAkB,IAG7B5sN,EAAShI,EAAKisJ,CAAG,CACzB,CAAO,CACF,CACL,EAAK,CACD,IAAK,UACL,MAAO,SAAiB73H,EAAS05H,EAAK/rF,EAAS/5D,EAAU,CACvD,IAAI8sN,EAAS,KACb1gM,EAAUX,GAASW,EAAS,KAAK,OAAO,EACpC,OAAO2tC,GAAY,aACrB/5D,EAAW+5D,EACXA,EAAU,QAEZ/5D,EAAWA,GAAY,UAAY,GACnC,IAAIorN,EAAM,SAAapzN,EAAKksL,EAAK,CAC/B,IAAIqrC,EAAsBrrC,GAAOA,EAAI,oBACrC,GAAIA,IAAQA,EAAI,SAAW,KAAOA,EAAI,SAAW,KAC/C,OAAOlkL,EAAS,kBAAoB8lJ,EAAK,GAAM,CAC7C,oBAAqBypE,CACjC,CAAW,EAEH,GAAIrrC,IAAQA,EAAI,QAAU,KAAOA,EAAI,OAAS,KAAO,CAACA,EAAI,QACxD,OAAOlkL,EAAS,kBAAoB8lJ,EAAK,GAAM,CAC7C,oBAAqBypE,CACjC,CAAW,EAEH,GAAIrrC,GAAOA,EAAI,QAAU,KAAOA,EAAI,OAAS,IAC3C,OAAOlkL,EAAS,kBAAoB8lJ,EAAK,GAAO,CAC9C,oBAAqBypE,CACjC,CAAW,EAEH,GAAI,CAACrrC,GAAOlsL,GAAOA,EAAI,QAAS,CAC9B,IAAI84N,EAAe94N,EAAI,QAAQ,YAAW,EACtC+4N,EAAiB,CAAC,SAAU,QAAS,UAAW,MAAM,EAAE,KAAK,SAAUC,EAAM,CAC/E,OAAOF,EAAa,QAAQE,CAAI,EAAI,EAChD,CAAW,EACD,GAAID,EACF,OAAO/wN,EAAS,kBAAoB8lJ,EAAM,KAAO9tJ,EAAI,QAAS,GAAM,CAClE,oBAAqBu3N,CACnC,CAAa,CAEJ,CACD,GAAIv3N,EAAK,OAAOgI,EAAShI,EAAK,EAAK,EACnC,IAAIisJ,EAAKgtE,EACT,GAAI,CACE,OAAO/sC,EAAI,MAAS,SACtBjgC,EAAM,KAAK,MAAMigC,EAAI,IAAI,EAEzBjgC,EAAMigC,EAAI,IAEb,MAAW,CACV+sC,EAAW,kBAAoBnrE,EAAM,UACtC,CACD,GAAImrE,EAAU,OAAOjxN,EAASixN,EAAU,EAAK,EAC7C,GAAInE,EAAO,QAAQ,wBAA0B,CAAC,OAAO,KAAK7oE,CAAG,EAAE,OAC7D,OAAOjkJ,EAAS,2BAA6B8lJ,EAAK,GAAO,CACvD,oBAAqBypE,CACjC,CAAW,EAEHvvN,EAAS,KAAMikJ,EAAK,CAClB,oBAAqBsrE,CAC/B,CAAS,CACT,EACM,GAAI,CAAC,KAAK,QAAQ,SAAWzpE,EAAI,QAAQ,cAAc,OAAO15H,EAAQ,SAAS,CAAC,EAAI,EAAG,OAAOqjM,GAAQrjM,EAAS05H,EAAK/rF,EAASqxJ,CAAG,EAChI,IAAI6E,EAAOF,GAAqBjqE,EAAK15H,EAAS2tC,CAAO,EACrDi2J,GAAoB,KAAK,QAASC,EAAM7E,CAAG,CAC5C,CACL,EAAK,CACD,IAAK,SACL,MAAO,SAAgBb,EAAW/G,EAAWv0M,EAAKi8M,EAAelrN,EAAUosB,EAAS,CAClF,IAAI8gM,EAAS,KACT,OAAOltN,GAAa,aAAYA,EAAW,UAAoB,IACnE,KAAK,qBAAqB,SAAUhI,EAAK,CACvC,GAAIA,EAAK,OAAOgI,EAAShI,CAAG,EAC5B,IAAIw4N,EAAYtB,GAAgBhC,EAAO,QAAS,CAAC,YAAa,UAAW,SAAU,cAAc,CAAC,EAClG,GAAIsD,EAAW,OAAOxwN,EAAS,IAAI,MAAMwwN,CAAS,CAAC,EACnD,GAAI,CAACtD,EAAO,qBACV,OAAOltN,EAAS,oCAAoC,EAElD,OAAOuqN,GAAc,WAAUA,EAAY,CAACA,CAAS,GACrDA,EAAU,OAAO,SAAU17O,EAAG,CAChC,OAAOA,IAAMq+O,EAAO,QAAQ,YACtC,CAAS,EAAE,OAAS,GACVA,EAAO,UAAYA,EAAO,SAAS,QAAUA,EAAO,SAAS,OAAO,KAAK,0EAA2E,OAAOA,EAAO,QAAQ,aAAc,8CAA+C,EAAE,OAAO3C,EAAU,KAAK,IAAI,EAAG,+DAA+D,CAAC,EAExUA,EAAU,QAAQ,SAAUvpE,EAAK,CAC3BA,IAAQksE,EAAO,QAAQ,cACzBA,EAAO,MAAM,KAAKA,EAAQA,EAAO,QAAQ,aAAc1J,EAAWv0M,EAAKi8M,EAAelrN,EAAUosB,CAAO,CAEnH,CAAS,CACT,CAAO,CACF,CACL,EAAK,CACD,IAAK,SACL,MAAO,SAAgBm+L,EAAW/G,EAAWv0M,EAAKi8M,EAAelrN,EAAUosB,EAAS,CAClF,IAAI8kM,EAAS,KACT,OAAOlxN,GAAa,aAAYA,EAAW,UAAoB,IACnE,KAAK,qBAAqB,SAAUhI,EAAK,CACvC,GAAIA,EAAK,OAAOgI,EAAShI,CAAG,EAC5B,IAAIw4N,EAAYtB,GAAgBgC,EAAO,QAAS,CAAC,YAAa,UAAW,SAAU,cAAc,CAAC,EAClG,GAAIV,EAAW,OAAOxwN,EAAS,IAAI,MAAMwwN,CAAS,CAAC,EACnD,GAAI,CAACU,EAAO,qBACV,OAAOlxN,EAAS,oCAAoC,EAEjDosB,IAASA,EAAU,IACpB,OAAOm+L,GAAc,WAAUA,EAAY,CAACA,CAAS,GACzDn+L,EAAQ,SAAW,GACnBm+L,EAAU,QAAQ,SAAUvpE,EAAK,CAC3BA,IAAQkwE,EAAO,QAAQ,cACzBA,EAAO,MAAM,KAAKA,EAAQA,EAAO,QAAQ,aAAc1N,EAAWv0M,EAAKi8M,EAAelrN,EAAUosB,CAAO,CAEnH,CAAS,CACT,CAAO,CACF,CACL,EAAK,CACD,IAAK,YACL,MAAO,SAAmB40H,EAAKwiE,EAAW2N,EAAUnxN,EAAU,CAC5D,IAAIoxN,EAAanC,GAAY,KAAK,QAAQ,QAAS,CACjD,IAAKjuE,EACL,GAAIwiE,EACJ,UAAW,KAAK,QAAQ,UACxB,QAAS,KAAK,QAAQ,OAC9B,CAAO,EACG6N,EAAapC,GAAY,KAAK,QAAQ,WAAY,CACpD,IAAKjuE,EACL,GAAIwiE,EACJ,UAAW,KAAK,QAAQ,UACxB,QAAS,KAAK,QAAQ,OAC9B,CAAO,EACG8N,EAAa,GACbC,EAAa,GACbC,EAAiB,GACjBC,EAAgB,GACpBN,EAAS,QAAQ,SAAU7nN,EAAM,CAC/B,IAAI9P,EAAQ8P,EAAK,SAAWA,EAAK,QAAQ,aAAe,CACtD,MAAOA,EAAK,eAAiB,GAC7B,QAAS,CACP,KAAMA,EAAK,QAAQ,YACpB,CACX,EAAYA,EAAK,eAAiB,GACtBA,EAAK,SAAWA,EAAK,QAAQ,UAC1BioN,IAAYA,EAAa,IAC9BE,EAAcnoN,EAAK,GAAG,EAAI9P,IAErB83N,IAAYA,EAAa,IAC9BE,EAAeloN,EAAK,GAAG,EAAI9P,EAErC,CAAO,EACD,IAAI4uN,EAAO,EACPkJ,GAAYlJ,IACZmJ,GAAYnJ,IAChB,IAAIsJ,EAAU,SAAiB15N,EAAK,CAClCowN,IACKA,GAAMpoN,EAAShI,CAAG,CAC/B,EAEM,GADKowN,GAAMsJ,IACPJ,EACF,GAAI,CAAC,KAAK,QAAQ,QAChB7B,GAAQhkM,GAAS,CACf,UAAW,EACvB,EAAa,KAAK,OAAO,EAAG2lM,EAAYI,EAAgBE,CAAO,MAChD,CACL,IAAIzB,EAAOF,GAAqBqB,EAAY3lM,GAAS,CACnD,UAAW,EACZ,EAAE,KAAK,OAAO,EAAG+lM,CAAc,EAChCxB,GAAoB,KAAK,QAASC,EAAMyB,CAAO,CAChD,CAEH,GAAIH,EACF,GAAI,CAAC,KAAK,QAAQ,QAChB9B,GAAQhkM,GAAS,CACf,UAAW,EACvB,EAAa,KAAK,OAAO,EAAG4lM,EAAYI,EAAeC,CAAO,MAC/C,CACL,IAAIC,EAAQ5B,GAAqBsB,EAAY5lM,GAAS,CACpD,UAAW,EACZ,EAAE,KAAK,OAAO,EAAGgmM,CAAa,EAC/BzB,GAAoB,KAAK,QAAS2B,EAAOD,CAAO,CACjD,CAEJ,CACL,EAAK,CACD,IAAK,QACL,MAAO,SAAe1wE,EAAKwiE,EAAW,CACpC,IAAIoO,EAAU,KACVC,EAAO5Q,GAAQ,KAAK,aAAc,CAAC,QAASjgE,EAAKwiE,CAAS,CAAC,EAC/D,GAAI,CAAAqO,EACJ,KAAIV,EAAWlQ,GAAQ,KAAK,aAAc,CAACjgE,EAAKwiE,CAAS,CAAC,EAC1D3C,GAAQ,KAAK,aAAc,CAAC7/D,EAAKwiE,CAAS,EAAG,EAAE,EAC/C,IAAIsO,EAAW,IACXnB,EAAOQ,EAAS,OAAO,SAAU,EAAG,CACtC,OAAO,EAAE,QACjB,CAAO,EAAE,IAAI,SAAUY,EAAS,CACxB,OAAOA,EAAQ,QACvB,CAAO,EACD,GAAIZ,EAAS,OAAQ,CACnBtQ,GAAQ,KAAK,aAAc,CAAC,QAAS7/D,EAAKwiE,CAAS,EAAG,EAAI,EAC1D,IAAIwO,EAAiB,UAA0B,CAC7CnR,GAAQ+Q,EAAQ,aAAc,CAAC,QAAS5wE,EAAKwiE,CAAS,EAAG,EAAK,EAC9DmN,EAAK,QAAQ,SAAUvF,EAAK,CAC1B,OAAOA,EAAG,CACtB,CAAW,EACGwG,EAAQ,QAAQ,SAASA,EAAQ,QAAQ,QAAQ5wE,EAAKwiE,CAAS,EACnEoO,EAAQ,iBAAiB5wE,EAAKwiE,CAAS,CACjD,EACYyO,EAAgBd,EAAS,OAASW,EAClCI,EAAY,EACZ3yJ,EAAO4xJ,EAAS,OAAO,EAAGW,CAAQ,EAKtC,IAJA,KAAK,UAAU9wE,EAAKwiE,EAAWjkJ,EAAM,UAAY,CAC/C2yJ,IACIA,GAAaD,GAAeD,GAC1C,CAAS,EACMzyJ,EAAK,SAAWuyJ,GACrBvyJ,EAAO4xJ,EAAS,OAAO,EAAGW,CAAQ,EAC9BvyJ,EAAK,QACP,KAAK,UAAUyhF,EAAKwiE,EAAWjkJ,EAAM,UAAY,CAC/C2yJ,IACIA,GAAaD,GAAeD,GAC9C,CAAa,CAGN,EACF,CACL,EAAK,CACD,IAAK,UACL,MAAO,UAAmB,CACxB,IAAIG,EAAU,KACd,OAAO,KAAK,KAAK,YAAY,EAAE,QAAQ,SAAUnxE,EAAK,CAChDA,IAAQ,SACZ,OAAO,KAAKmxE,EAAQ,aAAanxE,CAAG,CAAC,EAAE,QAAQ,SAAUF,EAAI,CAC3D,IAAIsnE,EAAO+J,EAAQ,aAAanxE,CAAG,EAAEF,CAAE,EACnCsnE,EAAK,QACP+J,EAAQ,MAAMnxE,EAAKF,CAAE,CAEjC,CAAS,CACT,CAAO,CACF,CACL,EAAK,CACD,IAAK,QACL,MAAO,SAAeE,EAAKwiE,EAAWv0M,EAAKi8M,EAAelrN,EAAUosB,EAAS,CAC3E20L,IAAS,KAAK,aAAc,CAAC//D,EAAKwiE,CAAS,EAAG,CAC5C,IAAKv0M,EACL,cAAei8M,GAAiB,GAChC,SAAUlrN,EACV,QAASosB,CACjB,CAAO,EACD,KAAK,iBAAgB,CACtB,CACF,EAAC,CACJ,IACA8jM,GAAqB,KAAO,UCloB5B,IAAIkC,GAAuB,CAAC,IAAU,GAAQ,EAC1CC,GAAkB,OAAO,KAAK,OAAOD,GAAqB,KAAK,EAAE,EAAG,QAAQ,EAAG,IAAI,EACnFE,IAA0B,EAC1BC,IAAuB,mBACvBC,IAAU,SAAiBxhI,EAAM,CACnC,OAAO,MAAM,KAAK,IAAI,YAAa,EAAC,OAAOA,CAAI,CAAC,CAClD,EACIyhI,IAAY,SAAmB3jD,EAAO,CACxC,OAAO,IAAI,YAAW,EAAG,OAAO,IAAI,WAAWA,CAAK,CAAC,CACvD,EACI4jD,IAAkB,SAAyBC,EAAQ,CACrD,IAAIC,EAAa,EAAID,EAAO,OAC5B,MAAO,IAAI,OAAOC,CAAU,EAAID,CAClC,EACIE,GAAgB,SAAuB7hI,EAAM,CAC/C,IAAI89E,EAAQ0jD,IAAQxhI,CAAI,EAAE,IAAI,MAAM,EAChC2hI,EAAS7jD,EAAM,IAAI,SAAUgkD,EAAM,CACrC,OAAOJ,IAAgBI,EAAK,SAAS,CAAC,CAAC,EAAI,GAC/C,CAAG,EAAE,KAAK,EAAE,EACNlhN,EAAS,MAAM,KAAK+gN,CAAM,EAAE,IAAI,SAAU5iP,EAAG,CAC/C,OAAOqiP,GAAqB,OAAOriP,CAAC,CAAC,CACzC,CAAG,EAAE,KAAK,EAAE,EACV,OAAO6hC,CACT,EACImhN,GAA8BF,GAAcN,GAAoB,EAChES,GAAgB,SAAuBjnK,EAAS,CAClD,IAAI4mK,EAAS,MAAM,KAAK5mK,CAAO,EAAE,IAAI,SAAUqlC,EAAW,CACxD,OAAOghI,GAAqB,QAAQhhI,CAAS,CAC9C,GAAE,IAAI,MAAM,EAAE,KAAK,EAAE,EAClB6hI,EAAYN,EAAO,MAAM,SAAS,EAClC/M,EAAQ,WAAW,MAAMqN,GAAc,KAA+B,OAASA,EAAU,IAAI,SAAUH,EAAM,CAC/G,OAAO,SAASA,EAAK,MAAM,EAAG,CAAC,EAAG,CAAC,CACvC,CAAG,IAAM,CAAE,GACT,OAAOL,IAAU7M,CAAK,CACxB,EACIsN,IAAiB,SAAwBliI,EAAM,CACjD,IAAImiI,EACAC,GAAqBD,EAAcniI,EAAK,MAAMqhI,EAAe,KAAO,MAAQc,IAAgB,OAAS,OAASA,EAAY,OAAO,SAAUpiP,EAAG,CAChJ,OAAOA,EAAE,OAASuhP,IAA0B,CAChD,CAAG,EACD,GAAI,GAACc,GAAqBA,EAAkB,SAAW,GACvD,OAAOJ,GAAcI,EAAkBA,EAAkB,OAAS,CAAC,CAAC,CACtE,EACIC,IAAmB,SAA0BriI,EAAM,CACrD,OAAOA,EAAK,QAAQqhI,GAAiB,EAAE,CACzC,EACIiB,IAAc,SAAqBxnM,EAAM,CAC3C,GAAI,OAAO,KAAKA,CAAI,EAAE,SAAW,EAAG,OAAOA,EAC3C,IAAItyB,EAAQ,CACV,EAAGsyB,EAAK,IACR,EAAGA,EAAK,GACR,EAAGA,EAAK,IACR,EAAGA,EAAK,MACZ,EACE,OAAO,KAAK,UAAUtyB,CAAK,CAC7B,EACI+5N,IAAc,SAAqB/5N,EAAO,CAC5C,GAAI,GAACA,GAAS,OAAOA,GAAU,UAAYA,EAAM,QAAQ,GAAG,IAAM,GAClE,GAAI,CACF,IAAIg6N,EAAS,KAAK,MAAMh6N,GAAS,IAAI,EACrC,MAAO,CACL,IAAKg6N,EAAO,EACZ,GAAIA,EAAO,EACX,IAAKA,EAAO,EACZ,OAAQA,EAAO,CACrB,CACG,MAAW,CACV,MACD,CACH,EACA,SAASC,GAAKziI,EAAM,CAClB,IAAI0iI,EAAgB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACpFC,EAAeL,IAAYI,CAAa,EACxCE,EAAgBf,GAAcc,CAAY,EAC9C,OAAO,OAAO3iI,GAAS,UAAYA,EAAO+hI,GAA8B/hI,EAAO4iI,EAAgB5iI,CACjG,CACA,SAAS6iI,GAAO7iI,EAAM,CACpB,IAAI2iI,EAAeT,IAAeliI,CAAI,EAClC8iI,EAAaP,IAAYI,CAAY,EACrC/hN,EAASyhN,IAAiBriI,CAAI,EAClC,MAAO,CACL,KAAMp/E,EACN,cAAekiN,CACnB,CACA,CACA,SAASC,GAAmB/iI,EAAM,CAEhC,GADI,CAACA,GAAQA,EAAK,OAAS,IACvB,CAACqhI,GAAgB,KAAKrhI,CAAI,EAAG,MAAO,GACxC,IAAIgjI,EAAWhjI,EAAK,UAAUA,EAAK,OAAS,CAAC,EACzCijI,EAAWjB,GAAcgB,CAAQ,EACrC,OAAOC,IAAa,GACtB,CACA,SAASC,IAA0BljI,EAAM,CACvC,OAAOA,EAAK,WAAW+hI,EAA2B,CACpD,CC3FA,SAASz+H,GAAQ,EAAGrlH,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI89B,EAAI,OAAO,sBAAsB,CAAC,EAAG/9B,IAAM+9B,EAAIA,EAAE,OAAO,SAAU/9B,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAW,CAAE,GAAIC,EAAE,KAAK,MAAMA,EAAG89B,CAAC,CAAE,CAAG,OAAO99B,CAAI,CAC/P,SAASwlH,GAAc,EAAG,CAAE,QAASzlH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIqlH,GAAQ,OAAOplH,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAE0lH,GAAgB,EAAG1lH,EAAGC,EAAED,CAAC,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIolH,GAAQ,OAAOplH,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAE,CAAE,CAAI,CAAC,OAAO,CAAI,CACvb,IAAIklP,GAAoB,aACpBC,IAA0B,CAC5B,KAAMD,GACN,KAAM,gBACN,QAAS,CAAE,EACX,WAAY,SAAoB/nM,EAAS,CACvC,KAAK,QAAUsoE,GAAcA,GAAc,CAAE,EAAEtoE,CAAO,EAAG,KAAK,OAAO,CACtE,EACD,QAAS,SAAiB5yB,EAAO66N,EAAOjoM,EAASq2L,EAAY,CAC3D,IAAI8G,EAAM,KAAK,QAAU70H,GAAcA,GAAc,CAAE,EAAEtoE,CAAO,EAAG,KAAK,OAAO,EAC3End,EAAK6xI,EAAIE,EAAKjtF,EAClB,GAAI3nC,EAAQ,aACVnd,EAAMmd,EAAQ,aAAa,aAC3B00H,EAAK10H,EAAQ,aAAa,OAC1B40H,EAAM50H,EAAQ,aAAa,QACvBA,EAAQ,aAAa,MAAQ,OAC3Bnd,IAAQzV,EACVu6D,EAAS,UAETA,EAAS,MAGXA,EAAS,kBAEN,CACL,IAAIpsB,EAAM2sL,EAAmBC,EAAqBvsH,EAAOwsH,EAAcC,EACnE9S,GAAgBh6K,GAAQ2sL,EAAoB/K,EAAI,gBAAkB,MAAQ+K,IAAsB,OAASA,EAAoB7R,GAAe,OAAkC8R,EAAsB9R,EAAW,WAAa,MAAQ8R,IAAwB,OAAS,OAASA,EAAoB,gBAAkB,MAAQ5sL,IAAS,OAASA,EAAO,IACrV+sL,EAAwBjS,EAAW,eAAe4R,EAAM,KAAK1S,CAAY,EAAGv1L,CAAO,EACrFuoM,EAAeD,EAAsB,IACrCtyE,EAAasyE,EAAsB,WACrCzlN,EAAM0lN,EACN7zE,GAAM94C,GAASwsH,EAAepyE,GAAe,KAAgC,OAASA,EAAW,CAAC,KAAO,MAAQoyE,IAAiB,OAASA,EAAejL,EAAI,MAAQ,MAAQvhH,IAAU,OAASA,EAAQy6G,GAAe,OAAkCgS,EAAuBhS,EAAW,WAAa,MAAQgS,IAAyB,OAAS,OAASA,EAAqB,UACjXzzE,EAAM50H,EAAQ,KAAO,KAAK,SACtBnd,IAAQzV,EACVu6D,EAAS,MAETA,EAAS,aAEZ,CACD,OAAO0/J,GAAKj6N,EAAO,CACjB,IAAKyV,EACL,GAAI6xI,EACJ,IAAKE,EACL,OAAQjtF,CACd,CAAK,CACF,EACD,iCAAkC,UAA4C,CAC5E,MAAO,CACL,YAAaogK,GACb,wBAAyB,EAC/B,CACG,CACH,ECzDIS,GAAkB,CAAC,cAAe,QAAS,KAAK,EAChDx/M,GAAS,CACX,UAAW,UACX,QAAS,SACX,EACIy/M,GAAe,UAAwB,CACzC,IAAIC,EACA/lP,EACA,OAAO,QAAY,MAAaA,EAAI,SACpC,CAACA,GAAK,OAAO,OAAW,MAAaA,EAAI,OAAO,SACpD,IAAIgmP,EAAMhmP,GAAK,GACXimP,IAAQF,EAAWC,EAAI,OAAS,MAAQD,IAAa,OAAS,OAASA,EAAS,kBAAoB,aACxG,OAAOE,IAAQ,cAAgB,yBAA2BA,IAAQ,UAAY,mCAAqC,8BACrH,ECbI7lM,GAAQ,UAAY,CACtB,GAAI,SAAO,SAAa,KACxB,KAAIjV,EAAQ,SAAS,cAAc,OAAO,EAC1C,gBAAS,KAAK,YAAYA,CAAK,EACxBA,EAAM,MACf,EAAG,ECDH,SAASo6E,GAAQ,EAAGrlH,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI89B,EAAI,OAAO,sBAAsB,CAAC,EAAG/9B,IAAM+9B,EAAIA,EAAE,OAAO,SAAU/9B,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAW,CAAE,GAAIC,EAAE,KAAK,MAAMA,EAAG89B,CAAC,CAAE,CAAG,OAAO99B,CAAI,CAC/P,SAASwlH,IAAc,EAAG,CAAE,QAASzlH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIqlH,GAAQ,OAAOplH,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAE0lH,GAAgB,EAAG1lH,EAAGC,EAAED,CAAC,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIolH,GAAQ,OAAOplH,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAE,CAAE,CAAI,CAAC,OAAO,CAAI,CACvb,IAAIgmP,GAAqB,CACvB,UAAW,YACb,EACA,SAASC,IAAqBx/C,EAAK,CACjC,OAAIu/C,GAAmBv/C,CAAG,EAAUu/C,GAAmBv/C,CAAG,EACnDA,CACT,CAiBA,IAAIy/C,GAAc,GAClB,SAASC,GAAY9oK,EAAQyN,EAAS,CACpC,GAAI,CAACs7J,GAAI,OAAQ,CACf,IAAIC,EACJD,GAAI,QAAUC,EAAwB,SAAS,eAAe,uBAAuB,KAAO,MAAQA,IAA0B,OAAS,OAASA,EAAsB,aACvK,CAED,GADKD,GAAI,SAAQA,GAAI,OAASR,GAAY,GACtC,CAACQ,GAAI,QAAU,CAACA,GAAI,OAAO,YAAa,CAC1CF,GAAY,KAAK,CACf,OAAQ7oK,EACR,QAASyN,CACf,CAAK,EACD,MACD,CACGs7J,GAAI,OACNA,GAAI,OAAO,YAAY3gI,IAAc,CACnC,QAASpoC,CACV,EAAEyN,CAAO,EAAGs7J,GAAI,MAAM,EAEvBA,GAAI,OAAO,YAAY,CACrB,OAAQ,iBACR,iBAAkB,KAClB,OAAQ/oK,EACR,QAASA,EACT,QAASyN,CACf,EAAOs7J,GAAI,MAAM,EAEf,IAAIjN,EAAO+M,GACXA,GAAc,GACd/M,EAAK,QAAQ,SAAUzgL,EAAM,CAC3B,IAAI2kB,EAAS3kB,EAAK,OAChBoyB,EAAUpyB,EAAK,QACjBytL,GAAY9oK,EAAQyN,CAAO,CAC/B,CAAG,CACH,CACA,IAAI6sG,GAAW,GACXt+D,GAAS,EACT+sH,GAAM,CACR,KAAM,SAAcE,EAAgBC,EAAc,CAChDH,GAAI,KAAOE,EACXF,GAAI,aAAeG,CACpB,EACD,kBAAmB,SAA2Bz7J,EAAS,CACrDq7J,GAAY,oBAAqBr7J,CAAO,EACpC,CAAAs7J,GAAI,eACRA,GAAI,aAAe,YAAY,UAAY,CACzC/sH,GAASA,GAAS,EAClB+sH,GAAI,kBAAkBt7J,CAAO,EACzBuuC,GAAS,GAAK+sH,GAAI,eACpB,cAAcA,GAAI,YAAY,EAC9B,OAAOA,GAAI,aAEd,EAAE,GAAI,EACR,EACD,UAAW,SAAmBluE,EAAM,CAClCiuE,GAAY,YAAajuE,CAAI,CAC9B,EACD,sBAAuB,SAA+BptF,EAAS,CAC7Dq7J,GAAY,wBAAyBr7J,CAAO,CAC7C,EACD,yBAA0B,UAAoC,CAC5Dq7J,GAAY,2BAA4B,CACtC,QAAS,OAAO,OAAO9K,GAAM,IAAI,EAAE,IAAI,SAAUhhN,EAAM,CACrD,MAAO,CACL,GAAIA,EAAK,GACT,KAAMA,EAAK,IACrB,CACA,CAAO,CACP,CAAK,CACF,EACD,0BAA2B,SAAmC03I,EAAK,CACjEo0E,GAAY,4BAA6B,CACvC,UAAWp0E,GAAOq0E,GAAI,KAAK,OAAQ,CACzC,CAAK,CACF,EACD,WAAY,SAAoB/oK,EAAQ1zE,EAAI,CACrCguL,GAASt6G,CAAM,IAAGs6G,GAASt6G,CAAM,EAAI,IAC1Cs6G,GAASt6G,CAAM,EAAE,KAAK1zE,CAAE,CACzB,EACD,oBAAqB,UAA+B,CAClDw8O,GAAY,kBAAmB,CAC7B,QAAS,EACf,CAAK,CACF,EACD,OAAQ,UAAkB,CACxB,GAAIC,GAAI,gBAAiB,OAAOD,GAAY,WAAW,EAClDC,GAAI,0BACP,OAAO,SAAS,KAAK,iBAAiB,QAASA,GAAI,aAAc,EAAI,EAEvEA,GAAI,yBAA2B,GAC/BD,GAAY,UAAU,CACvB,EACD,QAAS,UAAmB,CAC1B,GAAIC,GAAI,gBAAiB,OAAOD,GAAY,WAAW,EACnDC,GAAI,0BACN,OAAO,SAAS,KAAK,oBAAoB,QAASA,GAAI,aAAc,EAAI,EAE1EA,GAAI,yBAA2B,GAC/BD,GAAY,WAAW,CACxB,EACD,WAAY,SAAoBp0E,EAAKF,EAAI7xI,EAAKzV,EAAO,CACnD,IAAIk8K,EAAM,CACR,IAAK10B,EACL,GAAIF,EACJ,IAAK7xI,EACL,MAAOzV,CACb,EACI47N,GAAY,QAAS1/C,CAAG,CACzB,CACH,EACI,OAAO,OAAW,KACpB,OAAO,iBAAiB,UAAW,SAAU,EAAG,CAC9C,IAAI+/C,EAAU,EAAE,KACdC,EAASD,EAAQ,OACjBnpK,EAASmpK,EAAQ,OACjB1pK,EAAU0pK,EAAQ,QAClB17J,EAAU07J,EAAQ,QACpB,GAAI1pK,EAAS,CACX,IAAI4pK,EAAgBT,IAAqBnpK,CAAO,EAC5C66G,GAAS+uD,CAAa,GACxB/uD,GAAS+uD,CAAa,EAAE,QAAQ,SAAU/8O,EAAI,CAC5CA,EAAGmhF,EAAS,CAAC,CACvB,CAAS,CAEJ,MAAU27J,IAAW,wBAA0B9uD,GAASt6G,CAAM,GAC7Ds6G,GAASt6G,CAAM,EAAE,QAAQ,SAAU1zE,EAAI,CACrCA,EAAGmhF,CAAO,CAClB,CAAO,CAEP,CAAG,EC1JH,SAAS67J,GAAezuE,EAAM3tJ,EAAO,CACnC,IAAI8P,EAAOghN,GAAM,IAAInjE,EAAK,WAAW,EACrC,GAAI,GAAC79I,GAAQ,CAACA,EAAK,KAAK69I,EAAK,QAAQ,GACrC,KAAI0uE,EAAoBpC,GAAKj6N,EAAO8P,EAAK,UAAU,EACnD,GAAI69I,EAAK,WAAa,OACpB79I,EAAK,KAAK,YAAcusN,UACf1uE,EAAK,SAAS,QAAQ,OAAO,IAAM,EAAG,CAC/C,IAAI5uH,EAAO4uH,EAAK,SAAS,QAAQ,QAAS,EAAE,EAC5C79I,EAAK,KAAK,aAAaivB,EAAMs9L,CAAiB,CAClD,SAAa1uE,EAAK,WAAa,OAAQ,CACnC,IAAI/qK,EAAK,GAAG,OAAO+qK,EAAK,SAAU,GAAG,EAAE,OAAOA,EAAK,QAAQ,EAC3D,GAAI,CAAC79I,EAAK,mBAAoB,CAC5B,IAAIwsN,EAAS,GACbxsN,EAAK,KAAK,WAAW,QAAQ,SAAU54B,EAAG,CACxColP,EAAO,KAAKplP,CAAC,CACrB,CAAO,EACD44B,EAAK,mBAAqBwsN,CAC3B,CACD,GAAIxsN,EAAK,SAASltB,CAAE,EAAE,SAAWktB,EAAK,KAAK,WAAW,OACpDA,EAAK,KAAK,UAAYusN,MACjB,CACL,IAAIv8N,EAAWgQ,EAAK,SAASltB,CAAE,EAC3B6qC,EAAQ3tB,EAAS,CAAC,EAAE,MACpBy8N,EAAQ,SAAS,cAAc,KAAK,EACxCA,EAAM,UAAYF,EAClB,IAAIluM,EAAQ,GACZouM,EAAM,WAAW,QAAQ,SAAUrlP,EAAG,CACpCi3C,EAAM,KAAKj3C,CAAC,CACpB,CAAO,EACDi3C,EAAM,QAAQ,SAAUj3C,EAAG,CACzB,GAAI,CACF44B,EAAK,KAAK,aAAa54B,EAAGu2C,CAAK,CAChC,MAAe,CACd3d,EAAK,KAAK,YAAY54B,CAAC,CACxB,CACT,CAAO,EACD4oB,EAAS,QAAQ,SAAU08N,EAAa,CAClC1sN,EAAK,KAAK,SAAS0sN,EAAY,KAAK,GAAG1sN,EAAK,KAAK,YAAY0sN,EAAY,KAAK,CAC1F,CAAO,CACF,CACF,EACH,CACA,SAAStxM,IAAQq1C,EAAS,CACxB,IAAIotF,EAAOptF,EAAQ,KACjBvgE,EAAQugE,EAAQ,MACdotF,GAAQ3tJ,IAAU,QACpBo8N,GAAezuE,EAAM3tJ,CAAK,CAE9B,CACA67N,GAAI,WAAW,UAAW3wM,GAAO,EClDjC,SAASA,IAAQq1C,EAAS,CACxB,IAAIotF,EAAOptF,EAAQ,KACjBvgE,EAAQugE,EAAQ,MAChBinF,EAAMjnF,EAAQ,IAChB,GAAIotF,GAAQ3tJ,IAAU,OAAW,CAC/Bo8N,GAAezuE,EAAM3tJ,CAAK,EAC1B,IAAI+rN,EAAUvkE,GAAOq0E,GAAI,KAAK,OAAM,EACpCA,GAAI,KAAK,YAAY9P,EAASp+D,EAAK,GAAIA,EAAK,IAAK3tJ,CAAK,EACtD67N,GAAI,KAAK,iBACV,CACH,CACAA,GAAI,WAAW,YAAa3wM,GAAO,ECbnC,SAASuxM,IAAmBhnP,EAAG,CAC7B,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAOozK,GAAiBpzK,CAAC,CACjD,CCHA,SAASinP,KAAqB,CAC5B,MAAM,IAAI,UAAU;AAAA,mFAAsI,CAC5J,CCEA,SAASC,IAAmBlnP,EAAG,CAC7B,OAAOmnP,IAAkBnnP,CAAC,GAAKowO,GAAgBpwO,CAAC,GAAKuzK,GAA2BvzK,CAAC,GAAKonP,KACxF,CCDA,SAAS3xM,IAAQq1C,EAAS,CACxB,IAAIu8J,EAAUv8J,EAAQ,QACtBu8J,EAAQ,QAAQ,SAAUhtN,EAAM,CAC9B,IAAI03I,EAAM13I,EAAK,IACbw3I,EAAKx3I,EAAK,GACV2F,EAAM3F,EAAK,IACXwiB,EAAOxiB,EAAK,KACZitN,EAAQjtN,EAAK,MACb69I,EAAO79I,EAAK,KACV69I,GAAQr7H,EAAK,OAAO8pM,GAAezuE,EAAMr7H,EAAK,KAAK,EACnDyqM,GACF,OAAO,OAAOA,CAAK,EAAE,QAAQ,SAAUC,EAAU,CAC/CZ,GAAeY,EAAU1qM,EAAK,KAAK,CAC3C,CAAO,EAEHupM,GAAI,KAAK,YAAYr0E,EAAKF,EAAI7xI,EAAK6c,EAAK,KAAK,CACjD,CAAG,EACD,OAAO,OAAOw+L,GAAM,IAAI,EAAE,QAAQ,SAAUhhN,EAAM,CAChD,GAAIA,EAAK,mBAAoB,CAC3B,IAAImtN,GACHA,EAAantN,EAAK,MAAM,gBAAgB,MAAMmtN,EAAYN,IAAmB7sN,EAAK,kBAAkB,CAAC,CACvG,CACL,CAAG,EACD+rN,GAAI,KAAK,kBACLA,GAAI,oBAAoBA,GAAI,mBAAmBt7J,CAAO,EACtD,OAAO,oBAAoB,OAAO,mBAAmBA,CAAO,CAClE,CACAs7J,GAAI,WAAW,aAAc3wM,GAAO,EC9BpC,SAASA,IAAQq1C,EAAS,CACxBs7J,GAAI,YAAc,GAClB,cAAcA,GAAI,YAAY,EAC9B,OAAOA,GAAI,aACXA,GAAI,yBAAwB,EAC5BA,GAAI,0BAAyB,CAC/B,CACAA,GAAI,WAAW,qBAAsB3wM,GAAO,ECN5C,SAAS4vE,GAAQ,EAAGrlH,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI89B,EAAI,OAAO,sBAAsB,CAAC,EAAG/9B,IAAM+9B,EAAIA,EAAE,OAAO,SAAU/9B,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAW,CAAE,GAAIC,EAAE,KAAK,MAAMA,EAAG89B,CAAC,CAAE,CAAG,OAAO99B,CAAI,CAC/P,SAASwlH,GAAc,EAAG,CAAE,QAASzlH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIqlH,GAAQ,OAAOplH,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAE0lH,GAAgB,EAAG1lH,EAAGC,EAAED,CAAC,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIolH,GAAQ,OAAOplH,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAE,CAAE,CAAI,CAAC,OAAO,CAAI,CACvb,IAAI68C,GAAO,GACX,SAAS4qM,KAAQ,CACf,OAAO,OAAO5qM,EAAI,EAAE,QAAQ,SAAUxiB,EAAM,CACrC,SAAS,KAAK,SAASA,EAAK,IAAI,IACnCqtN,GAAertN,EAAK,GAAIA,EAAK,IAAI,EACjC,OAAOwiB,GAAKxiB,EAAK,EAAE,EAEzB,CAAG,CACH,CACA,SAASstN,IAAKx6O,EAAI+gB,EAAM3B,EAAM,CACxB,CAACpf,GAAM,CAAC+gB,GAAQ,CAAC3B,IAChBswB,GAAK1vC,CAAE,IACV0vC,GAAK1vC,CAAE,EAAI,CACT,GAAIA,EACJ,KAAMof,CACZ,GAEEswB,GAAK1vC,CAAE,EAAE,KAAOs4G,GAAcA,GAAc,CAAE,EAAE5oE,GAAK1vC,CAAE,EAAE,IAAI,EAAG,CAAE,EAAEu4G,GAAgB,GAAI,GAAG,OAAOx3F,CAAI,EAAG,gBAAgB,CAAC,EAC5H,CACA,SAASiB,IAAIhiB,EAAI,CACf,OAAO0vC,GAAK1vC,CAAE,CAChB,CACA,IAAIy6O,GAAsB,CACxB,KAAMD,IACN,MAAOF,IACP,IAAKt4N,IACL,KAAM0tB,EACR,EChCA,SAASgrM,GAAalgO,EAAI,CACxB,IAAI6P,EAAO7P,EAAG,wBACVmgO,EAAe,OAAO,aAAe,SAAS,gBAAgB,aAC9D3mM,EAAc,OAAO,YAAc,SAAS,gBAAgB,YAC5D4mM,EAAavwN,EAAK,KAAOswN,GAAgBtwN,EAAK,IAAMA,EAAK,QAAU,EACnEwwN,EAAYxwN,EAAK,MAAQ2pB,GAAe3pB,EAAK,KAAOA,EAAK,OAAS,EACtE,OAAOuwN,GAAcC,CACvB,CACA,SAASC,GAAyBC,EAAYn5N,EAAS,CACrD,IAAIo5N,EAAKp5N,EACPq5N,EAAKF,EAAW,MAChBG,EAAKH,EAAW,MAChBz+N,EAAO,CACL,EAAG2+N,EACH,EAAGC,CACJ,EACDC,EAAMH,EAAG,sBAAuB,EAChCI,EAAMD,EAAI,IAAM,SAAS,gBAAgB,UACzCE,EAAMD,EAAMJ,EAAG,aACfM,EAAMH,EAAI,KAAO,SAAS,gBAAgB,WAC1CI,EAAMD,EAAMN,EAAG,YACfQ,EAAQ,KAAK,IAAIP,EAAIK,CAAG,EACxBG,EAAQ,KAAK,IAAIR,EAAIM,CAAG,EACxBG,EAAQ,KAAK,IAAIR,EAAIE,CAAG,EACxBO,EAAQ,KAAK,IAAIT,EAAIG,CAAG,EACxBO,EAAaH,GAASD,EACtBK,EAAaF,GAASD,EACtBr/N,EAAK,CACH,EAAGu/N,EAAaX,EAAKM,EAAMN,EAAKM,EAAMD,EACtC,EAAGO,EAAaX,EAAKG,EAAMH,EAAKG,EAAMD,CACvC,EACDU,EAAQz/N,EAAG,EAAIC,EAAK,EACpBy/N,EAAQ1/N,EAAG,EAAIC,EAAK,EACpB0/N,EAAQ,KAAK,IAAI,KAAK,IAAIF,EAAO,CAAC,EAAI,KAAK,IAAIC,EAAO,CAAC,EAAG,EAAI,CAAC,EACjE,OAAO,KAAK,MAAMC,CAAK,CACzB,CCjCA,SAAS5iK,GAASnmD,EAAMomD,EAAMunJ,EAAW,CACvC,IAAIr9H,EACJ,OAAO,UAAY,CACjB,IAAIpmF,EAAU,KACVqE,EAAO,UACPkxN,EAAQ,UAAiB,CAC3BnvI,EAAU,KACLq9H,GAAW3tM,EAAK,MAAM9V,EAASqE,CAAI,CAC9C,EACQmxN,EAAU/R,GAAa,CAACr9H,EAC5B,aAAaA,CAAO,EACpBA,EAAU,WAAWmvI,EAAOr5J,CAAI,EAC5Bs5J,GAAS1/M,EAAK,MAAM9V,EAASqE,CAAI,CACzC,CACA,CACA,SAASy6N,IAAS1mK,EAAK,CACrB,OAAOA,GAAO,MAAQA,IAAQA,EAAI,MACpC,CACA,SAASziB,IAAU4tI,EAAM,CACvB,OAAOu7C,IAASv7C,CAAI,EAAIA,EAAOA,EAAK,WAAa,GAAKA,EAAK,WAC7D,CACA,SAASpyI,GAAOoyI,EAAM,CACpB,IAAIw7C,EAAM,CACR,IAAK,EACL,KAAM,EACN,MAAO,EACP,OAAQ,CACZ,EACM98D,EAAMshB,GAAQA,EAAK,cACnBy7C,EAAU/8D,GAAOA,EAAI,gBACzB,GAAI,CAAC+8D,EAAS,OAAOD,EACjBrhI,GAAQ6lF,EAAK,qBAAqB,IAAO,cAC3Cw7C,EAAMx7C,EAAK,yBAEb,IAAI/rI,EAAM7B,IAAUssH,CAAG,EACnBzrI,EAAMuoM,EAAI,IAAMvnL,EAAI,YAAcwnL,EAAQ,UAC1CzoM,EAAOwoM,EAAI,KAAOvnL,EAAI,YAAcwnL,EAAQ,WAChD,MAAO,CACL,IAAKxoM,EACL,KAAMD,EACN,MAAOA,GAAQwoM,EAAI,MAAQA,EAAI,MAC/B,OAAQvoM,GAAOuoM,EAAI,OAASA,EAAI,IACpC,CACA,CACA,SAASE,IAAkB,EAAG,CAC5B,GAAI,EAAE,YAAc,EAAE,WAAW,WAAa,IAAM,EAAE,WAAW,WAAa,UAAY,EAAE,WAAW,WAAa,SAClH,OAAI,EAAE,WAAW,cAAgB,EAAE,WAAW,aAAa,oBAAoB,IAAM,GAC5E,KAEF,EAAE,WAEX,IAAI5hO,EACJ,GAAI,EAAE,eAAiB,EAAE,cAAc,uBACrCA,EAAK,EAAE,cAAc,2BAChB,CACL,IAAIs+B,EAAS,EAAE,WACf,GAAIA,EAAO,cAAgBA,EAAO,aAAa,oBAAoB,IAAM,GAAI,OAAO,KAKpF,QAJIpF,EAAO,EAAE,MACTC,EAAM,EAAE,MACR0oM,EAAc,EACdC,EACKpgO,EAAI,EAAGA,EAAI48B,EAAO,WAAW,OAAQ58B,IAAK,CACjD,IAAIxpB,EAAIomD,EAAO,WAAW58B,CAAC,EACvBqgO,EAAUjuL,GAAO57D,CAAC,EAClBA,EAAE,WAAa,GAAK6pP,EAAQ,OAAS5oM,IAAK0oM,EAAcngO,EAAI,GAC5D,CAACogO,GAAeC,EAAQ,KAAO7pP,EAAE,cAAgB,GAAKihD,IAAK2oM,EAAcpgO,EAC9E,CACGmgO,EAAc,EAAIvjM,EAAO,WAAW,SAAQujM,EAAcvjM,EAAO,WAAW,OAAS,GACpFwjM,IAAaA,EAAcxjM,EAAO,WAAW,QAClD,QAAS3lD,EAAIkpP,EAAalpP,EAAImpP,EAAanpP,IAAK,CAC9C,IAAI23H,EAAKhyE,EAAO,WAAW3lD,CAAC,EACxBqpP,EAAWluL,GAAOw8D,CAAE,EACxB,GAAI0xH,EAAS,KAAO9oM,EAClB,MAEEo3E,GAAMA,EAAG,WAAa,IAAGtwG,EAAKswG,EACnC,CACF,CACD,OAAOtwG,CACT,CACA,SAASiiO,IAAejiO,EAAI,CAC1B,IAAIwiK,EAAMxiK,EAAG,aAAeA,EAAG,MAAQA,EAAG,KAAK,WAAaA,EAAG,YAC/D,GAAI,OAAOwiK,GAAQ,SACnB,OAAOA,EAAI,QAAQ,QAAS,EAAE,EAAE,KAAI,CACtC,CACA,SAASroI,GAAan6B,EAAI4H,EAAM,CAC9B,OAAO5H,GAAMA,EAAG,cAAgBA,EAAG,aAAa4H,CAAI,CACtD,CACA,SAASs6N,GAAkBliO,EAAI,CAC7B,IAAIqY,EAAM8hB,GAAan6B,EAAI,WAAW,EACtC,GAAIqY,EAAK,OAAOA,EAChB,GAAIrY,EAAG,WAAa,OAAO,KAAK,WAAaA,EAAG,cAC9C,OAAOkiO,GAAkBliO,EAAG,aAAa,CAG7C,CACA,SAASmiO,IAAoBniO,EAAI,CAC/B,IAAIq8F,EACA52F,EAAO,SAASA,EAAK28N,EAAK,CAC5B,IAAI1hE,EAAOvmI,GAAaioM,EAAK,iBAAiB,EAI9C,GAHK1hE,IAAMA,EAAOvmI,GAAaioM,EAAK,sBAAsB,GACrD1hE,IAAMA,EAAOvmI,GAAaioM,EAAK,cAAc,GAC7C1hE,IAAMA,EAAOvmI,GAAaioM,EAAK,mBAAmB,GACnD1hE,EAAM,CACR,IAAI2hE,EAAW,GACf,GAAI,CACFA,EAAW,KAAK,MAAM3hE,CAAI,CAClC,MAAkB,CAAE,CACV2hE,EAAS,KAAIhmI,EAAQgmI,EAAS,GACnC,CACIhmI,IAAOA,EAAQliE,GAAaioM,EAAK,YAAY,GAC7C/lI,IAAOA,EAAQliE,GAAaioM,EAAK,iBAAiB,GAClD/lI,IAAOA,EAAQliE,GAAaioM,EAAK,SAAS,GAC1C/lI,IAAOA,EAAQliE,GAAaioM,EAAK,cAAc,GAChD,CAAC/lI,GAAS+lI,EAAI,eAAe38N,EAAK28N,EAAI,aAAa,CAC3D,EACE,OAAA38N,EAAKzF,CAAE,EACAq8F,CACT,CACA,SAASimI,IAAqB16N,EAAMsnJ,EAAK,CACvC,GAAI,OAAO,OAAW,IAAa,OAAO,KACrCA,IAAKA,EAAM,OAAO,SAAS,KAAK,eACrCtnJ,EAAOA,EAAK,QAAQ,UAAW,MAAM,EACrC,IAAIk6J,EAAQ,IAAI,OAAO,OAASl6J,EAAO,mBAAmB,EACtDw5K,EAAUtf,EAAM,KAAK5S,CAAG,EAC5B,OAAKkyB,EACAA,EAAQ,CAAC,EACP,mBAAmBA,EAAQ,CAAC,EAAE,QAAQ,MAAO,GAAG,CAAC,EADhC,GADH,IAGvB,CC5HA,IAAImhD,IAA0B3jK,GAAS,SAAU,EAAGtD,EAAU,CAC5D,OAAO,OAAOo4J,GAAM,IAAI,EAAE,QAAQ,SAAUhhN,EAAM,CAChD,GAAKwtN,GAAaxtN,EAAK,IAAI,EAC3B,KAAI8vN,EAAWlC,GAAyB,EAAG5tN,EAAK,IAAI,EACpD,GAAI8vN,EAAW,EACbC,IAAU/vN,EAAMA,EAAK,KAAMA,EAAK,IAAI,UAC3B8vN,EAAW,EAAG,CACvB,IAAIE,EAAchwN,EAAK,UAAY4tN,GAAyB,EAAG5tN,EAAK,SAAS,EAAI,IAC7EgwN,EAAc,IAAI3C,GAAertN,EAAMA,EAAK,KAAMA,EAAK,IAAI,CAChE,EACL,CAAG,EACD,OAAO,OAAOutN,GAAoB,IAAI,EAAE,QAAQ,SAAUvtN,EAAM,CAC9D,GAAKwtN,GAAaxtN,EAAK,IAAI,EAC3B,KAAI8vN,EAAWlC,GAAyB,EAAG5tN,EAAK,IAAI,EAChD8vN,EAAW,GACbG,IAAwBjwN,EAAMA,EAAK,KAAMA,EAAK,IAAI,EACzC8vN,EAAW,IACpBzC,GAAertN,EAAMA,EAAK,KAAMA,EAAK,IAAI,EAE/C,CAAG,CACH,EAAG,EAAE,EACDkwN,GACJ,SAASC,GAAmBvnK,EAAU,CACpCsnK,GAAY,SAAgBxpP,EAAG,CAC7BmpP,IAAwBnpP,EAAGkiF,CAAQ,CACvC,EACE,SAAS,iBAAiB,YAAasnK,EAAS,CAClD,CACA,SAASE,IAAoB,CAC3B,SAAS,oBAAoB,YAAaF,EAAS,CACrD,CClCA,IAAIG,IAAW,gWACXC,IAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACdC,IAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACbC,IAAe,wJACfC,IAAc,IAAI,gBAAgB,IAAI,KAAK,CAACJ,GAAQ,EAAG,CACzD,KAAM,eACR,CAAC,CAAC,EACEK,IAAiB,IAAI,gBAAgB,IAAI,KAAK,CAACJ,GAAW,EAAG,CAC/D,KAAM,eACR,CAAC,CAAC,EACEK,IAAkB,IAAI,gBAAgB,IAAI,KAAK,CAACH,GAAY,EAAG,CACjE,KAAM,eACR,CAAC,CAAC,EACEI,IAAgB,IAAI,gBAAgB,IAAI,KAAK,CAACL,GAAU,EAAG,CAC7D,KAAM,eACR,CAAC,CAAC,EACF,SAASM,KAAW,CAClB,IAAIr7D,EAAQ,SAAS,cAAc,KAAK,EACxC,OAAAA,EAAM,aAAa,8BAA+B,MAAM,EACxDA,EAAM,IAAMi7D,IACZj7D,EAAM,MAAM,MAAQ,OACbA,CACT,CACA,SAASs7D,KAAa,CACpB,IAAIC,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,OACjFC,EAAW,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,OAC/EC,EAAS,SAAS,cAAc,KAAK,EACzCA,EAAO,aAAa,8BAA+B,MAAM,EACzDA,EAAO,MAAQ,8EAA8E,OAAOF,EAAY,YAAY,EAAE,OAAOA,EAAY,8BAA8B,EAAE,OAAOjlN,GAAO,UAAW,sBAAsB,EAAE,OAAOA,GAAO,UAAW,sBAAsB,EACjR,IAAI0pJ,EAAQ,SAAS,cAAc,KAAK,EACxC,OAAAA,EAAM,IAAMk7D,IACZl7D,EAAM,MAAM,MAAQw7D,EACpBC,EAAO,YAAYz7D,CAAK,EACjBy7D,CACT,CChCIprM,KACFA,GAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAiU,EAClVA,GAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAoU,EACrVA,GAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAmY,EACpZA,GAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAmN,EACpOA,GAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAA2O,EAC5PA,GAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAoN,GAEvO,SAASqrM,IAAOC,EAAUC,EAAY,CACpC,IAAIH,EAAS,SAAS,cAAc,KAAK,EACzCA,EAAO,aAAa,8BAA+B,MAAM,EACzDA,EAAO,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IACfA,EAAO,QAAU,UAAY,CAC3BG,GACJ,EACE,IAAI57D,EAAQ,SAAS,cAAc,KAAK,EACxC,OAAAA,EAAM,IAAMo7D,IACZp7D,EAAM,MAAM,MAAQ,OACpBy7D,EAAO,YAAYz7D,CAAK,EACjBy7D,CACT,CACA,SAASI,IAASF,EAAUG,EAAY,CACtC,IAAI97D,EAAQ,SAAS,cAAc,KAAK,EACxC,OAAAA,EAAM,aAAa,8BAA+B,MAAM,EACxDA,EAAM,IAAMm7D,IACZn7D,EAAM,MAAM,MAAQ,OACpBA,EAAM,MAAM,OAAS,UACrBA,EAAM,QAAU,UAAY,CAC1B27D,EAAS,MAAM,YAAY,sCAAuCA,EAAS,MAAM,GAAG,EACpFA,EAAS,MAAM,YAAY,uCAAwCA,EAAS,MAAM,IAAI,EACtFA,EAAS,MAAM,UAAY,4CAC3BG,GACJ,EACS97D,CACT,CACA,IAAI+7D,GAAU,uBACd,SAASC,IAAMh1E,EAAK1wK,EAAI,CACtB,IAAI2lP,EAAQ,SAAS,cAAc,KAAK,EACxCA,EAAM,aAAa,KAAMF,EAAO,EAChCE,EAAM,UAAU,IAAI,sBAAsB,EAC1CA,EAAM,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IACdA,EAAM,aAAa,8BAA+B,MAAM,EACxD,IAAIC,EAAS,SAAS,cAAc,KAAK,EACzCA,EAAO,UAAU,IAAI,6BAA6B,EAClDA,EAAO,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IACfD,EAAM,YAAYC,CAAM,EACxBA,EAAO,YAAYL,IAASI,EAAO,UAAY,CAC7C,IAAIR,EAASC,IAAOO,EAAO,UAAY,CACrCA,EAAM,MAAM,UAAY,gCACxBtB,KACA,WAAW,UAAY,CACrB,SAAS,KAAK,YAAYc,CAAM,CACjC,EAAE,GAAI,CACb,CAAK,EACD,SAAS,KAAK,YAAYA,CAAM,EAChCb,IACD,EAAC,EACF,IAAIz1D,EAAS,SAAS,cAAc,QAAQ,EAC5CA,EAAO,aAAa,KAAM,uBAAuB,EACjDA,EAAO,aAAa,8BAA+B,MAAM,EACzDA,EAAO,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IACfA,EAAO,aAAa,MAAOne,CAAG,EAC9Bme,EAAO,iBAAiB,OAAQ7uL,CAAE,EAClC2lP,EAAM,YAAY92D,CAAM,EACxB,IAAIg3D,EAAU,SAAS,cAAc,KAAK,EAC1C,OAAAA,EAAQ,aAAa,KAAM,8BAA8B,EACzDA,EAAQ,aAAa,8BAA+B,MAAM,EAC1DA,EAAQ,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAChBF,EAAM,YAAYE,CAAO,EAClBF,CACT,CCvEA,SAASr2M,IAAQq1C,EAAS,CACxB,IAAImhK,EAAiBnhK,EAAQ,eAC7B,GAAImhK,EAAgB,CAClB,IAAIH,EAAQ,SAAS,eAAeF,EAAO,EAC3C,GAAIK,EAAe,OAAQ,CACzB,IAAIt9B,EAAO,QAAQ,OAAOs9B,EAAe,OAAQ,KAAK,EAAE,OAAOH,EAAM,MAAM,OAAQ,GAAG,EACtFA,EAAM,MAAM,YAAY,MAAO,QAAQ,OAAOA,EAAM,MAAM,IAAK,KAAK,EAAE,OAAOn9B,EAAM,GAAG,CAAC,EACvFm9B,EAAM,MAAM,YAAY,SAAUG,EAAe,MAAM,CACxD,CACD,GAAIA,EAAe,MAAO,CACxB,IAAIC,EAAQ,QAAQ,OAAOD,EAAe,MAAO,KAAK,EAAE,OAAOH,EAAM,MAAM,MAAO,GAAG,EACrFA,EAAM,MAAM,YAAY,OAAQ,QAAQ,OAAOA,EAAM,MAAM,KAAM,KAAK,EAAE,OAAOI,EAAO,GAAG,CAAC,EAC1FJ,EAAM,MAAM,YAAY,QAASG,EAAe,KAAK,CACtD,CACF,CACH,CACA7F,GAAI,WAAW,sBAAuB3wM,GAAO,ECf7C,IAAI2vE,IAAY,CAAC,MAAO,IAAI,EAC5B,SAASC,GAAQ,EAAGrlH,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI89B,EAAI,OAAO,sBAAsB,CAAC,EAAG/9B,IAAM+9B,EAAIA,EAAE,OAAO,SAAU/9B,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAW,CAAE,GAAIC,EAAE,KAAK,MAAMA,EAAG89B,CAAC,CAAE,CAAG,OAAO99B,CAAI,CAC/P,SAASwlH,IAAc,EAAG,CAAE,QAASzlH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIqlH,GAAQ,OAAOplH,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAE0lH,GAAgB,EAAG1lH,EAAGC,EAAED,CAAC,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIolH,GAAQ,OAAOplH,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAE,CAAE,CAAI,CAAC,OAAO,CAAI,CACvb,SAASy1C,IAAQq1C,EAAS,CACxB,IAAIinF,EAAMjnF,EAAQ,IAChB+mF,EAAK/mF,EAAQ,GACb3tD,EAAOwoF,IAAyB76B,EAASs6B,GAAS,EACpDghI,GAAI,KAAK,kBAAkBr0E,EAAKF,EAAI,SAAUwhE,EAAW,CACvD+S,GAAI,sBAAsB3gI,IAAc,CACtC,UAAW4tH,EACX,IAAKthE,EACL,GAAIF,CACV,EAAO10I,CAAI,CAAC,CACZ,CAAG,CACH,CACAipN,GAAI,WAAW,wBAAyB3wM,GAAO,ECf/C,IAAI02M,GAAkB,GACtB,SAAS12M,IAAQq1C,EAAS,CACxB,IAAIzhB,EAAOyhB,EAAQ,KACfshK,EAAgB,GACpB,OAAO,OAAO/Q,GAAM,IAAI,EAAE,QAAQ,SAAUhhN,EAAM,CAChD,IAAIo0F,EAAU,OAAO,OAAOp0F,EAAK,IAAI,EAAE,OAAO,SAAU34B,EAAG,CACzD,OAAO2nE,EAAK,SAAS3nE,EAAE,YAAY,CACzC,CAAK,EACG+sH,EAAQ,QACV29H,EAAc,KAAK/xN,CAAI,CAE7B,CAAG,EACD8xN,GAAgB,QAAQ,SAAU9xN,EAAM,CACtCqtN,GAAertN,EAAMA,EAAK,KAAMA,EAAK,KAAM,EAAK,CACpD,CAAG,EACD+xN,EAAc,QAAQ,SAAU/xN,EAAM,CACpCgyN,IAAkBhyN,EAAMA,EAAK,KAAMA,EAAK,IAAI,CAChD,CAAG,EACD8xN,GAAkBC,CACpB,CACAhG,GAAI,WAAW,eAAgB3wM,GAAO,ECtBtC,SAASA,IAAQq1C,EAAS/pF,EAAG,CAC3BqlP,GAAI,OAASrlP,EAAE,OACfqlP,GAAI,OAASrlP,EAAE,OACfqlP,GAAI,OAAS,GACbA,GAAI,oBAAmB,CACzB,CACAA,GAAI,WAAW,kBAAmB3wM,GAAO,ECNzC,SAASA,IAAQq1C,EAAS/pF,EAAG,CAC3BqlP,GAAI,OAAM,CACZ,CACAA,GAAI,WAAW,SAAU3wM,GAAO,ECHhC,SAASA,IAAQq1C,EAAS/pF,EAAG,CAC3BqlP,GAAI,QAAO,CACb,CACAA,GAAI,WAAW,UAAW3wM,GAAO,ECU7ByK,IACFA,GAAM,WAAW,sFAAsF,EAEzG,SAASosM,IAAavqI,EAAMwqI,EAAWt9J,EAAS,CAC9C,IAAIu9J,EAAM,SAAS,cAAc,QAAQ,EACzCA,EAAI,MAAQ,2QACZA,EAAI,UAAU,IAAI,uBAAuB,EACzCA,EAAI,aAAa,8BAA+B,MAAM,EACtDA,EAAI,aAAa,QAASD,CAAS,EACnC,IAAIE,EAAOvB,MACXuB,EAAK,MAAQ,2CACbA,EAAK,MAAM,MAAQ,OACnBD,EAAI,YAAYC,CAAI,EACpB,IAAI1gF,EAAO,SAAS,cAAc,MAAM,EACxC,OAAAA,EAAK,YAAchqD,EACnByqI,EAAI,YAAYzgF,CAAI,EACpBygF,EAAI,QAAUv9J,EACPu9J,CACT,CACA,SAASE,KAAY,CACnB,IAAIrjL,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC3EggL,EAAM,SAAS,cAAc,KAAK,EACtCA,EAAI,MAAQ,iJACZA,EAAI,aAAa,8BAA+B,MAAM,EACtD,IAAI5uL,EAAQ,SAAS,cAAc,KAAK,EACxCA,EAAM,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAA6O,OAAOt0B,GAAO,UAAW;AAAA;AAAA,KAAwC,EAC5TkjN,EAAI,YAAY5uL,CAAK,EACrB,IAAIkyL,EAAOxB,MACX9B,EAAI,YAAYsD,CAAI,EACpB,IAAIC,EAAS,SAAS,cAAc,KAAK,EACzC,OAAAA,EAAO,MAAQ,oGACf,OAAO,KAAKvjL,CAAI,EAAE,QAAQ,SAAU3nE,EAAG,CACrC,IAAIm7C,EAAOwsB,EAAK3nE,CAAC,EACb8qP,EAAMF,IAAa5qP,EAAE,QAAQ,QAAS,EAAE,EAAG,GAAG,OAAOm7C,EAAK,GAAI,GAAG,EAAE,OAAOA,EAAK,GAAG,EAAG,UAAY,CACnGupM,GAAI,UAAUvpM,CAAI,CACxB,CAAK,EACD2vM,EAAI,MAAM,aAAe,MACzBI,EAAO,YAAYJ,CAAG,CAC1B,CAAG,EACDnD,EAAI,YAAYuD,CAAM,EACf,CACL,IAAKvD,EACL,MAAO5uL,CACX,CACA,CCtDA,IAAIoyL,GAAe,CAAC,MAAO,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,UAAW,aAAc,KAAM,KAAK,EAChHC,GAAmB,CAAC,UAAW,gBAAiB,iBAAkB,QAAQ,EAC1E94I,GAAiB,GACjB7qB,GAAW,GACf,SAASihK,IAAU/vN,EAAM9N,EAAM88C,EAAM,CACnC,IAAIl8D,EAAKktB,EAAK,GACd,GAAI,CAAA8uD,GAASh8E,CAAE,IACV6mG,GAAe7mG,CAAE,IACpB6mG,GAAe7mG,CAAE,EAAI2/O,GAAiB,OAAO,SAAUnS,EAAKvxN,EAAG,CAC7D,OAAAuxN,EAAIvxN,CAAC,EAAImD,EAAK,MAAMnD,CAAC,EACduxN,CACR,EAAE,CAAE,IAEHkS,GAAa,SAAStgO,EAAK,QAAQ,GACrCA,EAAK,MAAM,QAAU,GAAG,OAAO4Z,GAAO,UAAW,YAAY,EAC7D5Z,EAAK,MAAM,YAAY,gBAAiB,KAAK,EAC7CA,EAAK,MAAM,YAAY,iBAAkB,KAAK,EAC9CA,EAAK,MAAM,OAAS,qBAEpBA,EAAK,MAAM,QAAU,GAAG,OAAO4Z,GAAO,UAAW,YAAY,EAC7D5Z,EAAK,MAAM,YAAY,gBAAiB,KAAK,EAC7CA,EAAK,MAAM,YAAY,iBAAkB,KAAK,EAC9CA,EAAK,MAAM,OAAS,oBAElB,CAAC8N,EAAK,WAAW,CACnB,IAAI0yN,EAAaL,IAAUrjL,CAAI,EAC7B2jL,EAAUD,EAAW,IACrBE,EAAWF,EAAW,MACxB,SAAS,KAAK,YAAYC,CAAO,EACjC,IAAIE,EAAS3gO,EACb,GAAIA,EAAK,WAAW,SAAW,EAAG,CAChC,IAAIo9J,EAAYp9J,EAAK,WAAW,CAAC,EACjC,GAAIo9J,GAAaA,EAAU,WAAa,QAAS,CAC/C,IAAIgT,EAAQ,SAAS,cACrBA,EAAM,WAAWhT,CAAS,EAC1B,IAAInyJ,EAAOmlK,EAAM,wBACjBuwD,EAAS,CACP,sBAAuB,UAAiC,CACtD,OAAO11N,CACR,CACX,CACO,CACF,CACD4hC,GAAgB8zL,EAAQF,EAAS,CAC/B,UAAW,QACX,WAAY,CAACpxL,GAAK,CAChB,mBAAoB,CAAC,OAAQ,QAAQ,CACtC,GAAGkC,GAAK,EAAIrC,GAAO,SAAU/C,EAAM,CAClC,IAAI5B,EAAY4B,EAAK,UACnBrB,EAAQqB,EAAK,MACf,OAAI5B,IAAc,SAAiBO,EAAM,EAClC,EACR,GAAGoD,GAAM,CACR,QAASwyL,CACjB,CAAO,CAAC,CACR,CAAK,EAAE,KAAK,SAAUl0H,EAAO,CACvB,IAAI14H,EAAI04H,EAAM,EACZz4H,EAAIy4H,EAAM,EACVt/D,EAAiBs/D,EAAM,eACvBjiE,EAAYiiE,EAAM,UACpB,OAAO,OAAOi0H,EAAQ,MAAO,CAC3B,KAAM,GAAG,OAAO3sP,EAAG,IAAI,EACvB,IAAK,GAAG,OAAOC,EAAG,IAAI,EACtB,QAAS,aACjB,CAAO,EACD,IAAIy3D,EAAOjB,EAAU,MAAM,GAAG,EAAE,CAAC,EAC7Bq2L,EAAa,CACf,IAAK,SACL,MAAO,OACP,OAAQ,MACR,KAAM,OACP,EAACp1L,CAAI,EACN,GAAI0B,EAAe,MAAO,CACxB,IAAIoC,EAAwBpC,EAAe,MACzC2zL,EAAKvxL,EAAsB,EAC3BwxL,EAAKxxL,EAAsB,EAC7B,OAAO,OAAOoxL,EAAS,MAAOvnI,GAAgBA,GAAgB,CAC5D,KAAM0nI,GAAM,KAAO,GAAG,OAAOA,EAAI,IAAI,EAAI,GACzC,IAAKC,GAAM,KAAO,GAAG,OAAOA,EAAI,IAAI,EAAI,GACxC,MAAO,GACP,OAAQ,EAClB,EAAWF,EAAY,GAAG,OAAOp1L,IAAS,SAAW,IAAM,IAAK,IAAI,CAAC,EAAG,YAAaA,IAAS,SAAW,gBAAkBA,IAAS,OAAS,iBAAmB,EAAE,CAAC,CAC5J,CACP,CAAK,EACD19B,EAAK,UAAY2yN,CAClB,CACH,CACA,SAAS1C,IAAwBjwN,EAAM9N,EAAM88C,EAAM,CACjD,IAAIl8D,EAAKktB,EAAK,GACV8uD,GAASh8E,CAAE,IACV6mG,GAAe7mG,CAAE,IACpB6mG,GAAe7mG,CAAE,EAAI2/O,GAAiB,OAAO,SAAUnS,EAAKvxN,EAAG,CAC7D,OAAAuxN,EAAIvxN,CAAC,EAAImD,EAAK,MAAMnD,CAAC,EACduxN,CACR,EAAE,CAAE,IAEHkS,GAAa,SAAStgO,EAAK,QAAQ,GACrCA,EAAK,MAAM,QAAU,GAAG,OAAO4Z,GAAO,QAAS,YAAY,EAC3D5Z,EAAK,MAAM,YAAY,gBAAiB,KAAK,EAC7CA,EAAK,MAAM,YAAY,iBAAkB,KAAK,EAC9CA,EAAK,MAAM,OAAS,qBAEpBA,EAAK,MAAM,QAAU,GAAG,OAAO4Z,GAAO,QAAS,YAAY,EAC3D5Z,EAAK,MAAM,YAAY,gBAAiB,KAAK,EAC7CA,EAAK,MAAM,YAAY,iBAAkB,KAAK,EAC9CA,EAAK,MAAM,OAAS,oBAExB,CACA,SAAS8/N,IAAkBhyN,EAAM9N,EAAM88C,EAAM,CAC3C,IAAIl8D,EAAKktB,EAAK,GACT25E,GAAe7mG,CAAE,IACpB6mG,GAAe7mG,CAAE,EAAI2/O,GAAiB,OAAO,SAAUnS,EAAKvxN,EAAG,CAC7D,OAAAuxN,EAAIvxN,CAAC,EAAImD,EAAK,MAAMnD,CAAC,EACduxN,CACR,EAAE,CAAE,IAEHkS,GAAa,SAAStgO,EAAK,QAAQ,GACrCA,EAAK,MAAM,QAAU,GAAG,OAAO4Z,GAAO,UAAW,YAAY,EAC7D5Z,EAAK,MAAM,YAAY,gBAAiB,KAAK,EAC7CA,EAAK,MAAM,YAAY,iBAAkB,KAAK,EAC9CA,EAAK,MAAM,OAAS,4CAA4C,OAAO4Z,GAAO,UAAW,IAAI,IAE7F5Z,EAAK,MAAM,QAAU,GAAG,OAAO4Z,GAAO,UAAW,YAAY,EAC7D5Z,EAAK,MAAM,YAAY,gBAAiB,KAAK,EAC7CA,EAAK,MAAM,YAAY,iBAAkB,KAAK,EAC9CA,EAAK,MAAM,OAAS,4CAA4C,OAAO4Z,GAAO,UAAW,IAAI,GAE3F9L,EAAK,YACP,SAAS,KAAK,YAAYA,EAAK,SAAS,EACxC,OAAOA,EAAK,WAEd8uD,GAASh8E,CAAE,EAAI,EACjB,CACA,SAASu6O,GAAertN,EAAM9N,EAAM88C,EAAM,CACxC,IAAIikL,EAAiB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACrFngP,EAAKktB,EAAK,GACVizN,GAAkBnkK,GAASh8E,CAAE,IAC7B6mG,GAAe7mG,CAAE,IACnB2/O,GAAiB,QAAQ,SAAU1jO,EAAG,CACpCmD,EAAK,MAAM,YAAYnD,EAAG4qF,GAAe7mG,CAAE,EAAEic,CAAC,CAAC,CACrD,CAAK,EACD,OAAO4qF,GAAe7mG,CAAE,GAEtBktB,EAAK,YACP,SAAS,KAAK,YAAYA,EAAK,SAAS,EACxC,OAAOA,EAAK,WAEd,OAAO8uD,GAASh8E,CAAE,EACpB,CCtJA,SAASk4G,GAAQ,EAAGrlH,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI89B,EAAI,OAAO,sBAAsB,CAAC,EAAG/9B,IAAM+9B,EAAIA,EAAE,OAAO,SAAU/9B,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAW,CAAE,GAAIC,EAAE,KAAK,MAAMA,EAAG89B,CAAC,CAAE,CAAG,OAAO99B,CAAI,CAC/P,SAASwlH,GAAc,EAAG,CAAE,QAASzlH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIqlH,GAAQ,OAAOplH,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAE0lH,GAAgB,EAAG1lH,EAAGC,EAAED,CAAC,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIolH,GAAQ,OAAOplH,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAE,CAAE,CAAI,CAAC,OAAO,CAAI,CACvb,IAAI68C,GAAO,GACX,SAAS4qM,KAAQ,CACf,OAAO,OAAO5qM,EAAI,EAAE,QAAQ,SAAUxiB,EAAM,CACrC,SAAS,KAAK,SAASA,EAAK,IAAI,IACnCqtN,GAAertN,EAAK,GAAIA,EAAK,IAAI,EACjC,OAAOwiB,GAAKxiB,EAAK,EAAE,EAEzB,CAAG,CACH,CACA,SAASstN,IAAKx6O,EAAIogP,EAAYr/N,EAAMgqJ,EAAM3rJ,EAAMlC,EAAU,CACpD,CAACld,GAAM,CAAC+gB,GAAQ,CAACgqJ,GAAQ,CAAC3rJ,IACzBswB,GAAK1vC,CAAE,IACV0vC,GAAK1vC,CAAE,EAAI,CACT,GAAIA,EACJ,KAAMof,EACN,WAAYghO,CAClB,GAEE1wM,GAAK1vC,CAAE,EAAE,KAAOs4G,GAAcA,GAAc,CAAE,EAAE5oE,GAAK1vC,CAAE,EAAE,IAAI,EAAG,CAAE,EAAEu4G,GAAgB,GAAI,GAAG,OAAOx3F,CAAI,EAAGgqJ,CAAI,CAAC,EAC1G7tJ,IACFwyB,GAAK1vC,CAAE,EAAE,SAAWs4G,GAAcA,GAAc,CAAE,EAAE5oE,GAAK1vC,CAAE,EAAE,QAAQ,EAAG,GAAIu4G,GAAgB,GAAI,GAAG,OAAOx3F,EAAM,GAAG,EAAE,OAAO7D,EAAS,IAAI,SAAU5oB,EAAG,CACpJ,OAAOA,EAAE,UACV,GAAE,KAAK,GAAG,CAAC,EAAG4oB,CAAQ,CAAC,GAE5B,CACA,SAAS8E,IAAIhiB,EAAI,CACf,OAAO0vC,GAAK1vC,CAAE,CAChB,CACA,IAAIkuO,GAAQ,CACV,KAAMsM,IACN,MAAOF,IACP,IAAKt4N,IACL,KAAM0tB,EACR,GCtCC,UAAY,CAEX,GAAI,SAAO,SAAa,KACxB,KAAI2wM,EAAS,EACT,SAAS,UAAU,eAAe,UAAU,IAGhD,QAAQ,KAAK,oDAAoD,EACjE,OAAO,eAAe,SAAS,UAAW,WAAY,CACpD,IAAK,UAAe,CAClB,OAAOA,GACR,EACD,WAAY,GACZ,aAAc,EAClB,CAAG,EACD,OAAO,eAAe,QAAQ,UAAW,WAAY,CACnD,IAAK,UAAe,CAClB,cAAO,eAAe,KAAM,WAAY,CACtC,MAAO,SAAS,SAChB,SAAU,GACV,WAAY,GACZ,aAAc,EACtB,CAAO,EACM,KAAK,QACb,EACD,WAAY,GACZ,aAAc,EAClB,CAAG,GACH,GAAI,ECrBJ,SAASnoI,GAAQ,EAAGrlH,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI89B,EAAI,OAAO,sBAAsB,CAAC,EAAG/9B,IAAM+9B,EAAIA,EAAE,OAAO,SAAU/9B,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAW,CAAE,GAAIC,EAAE,KAAK,MAAMA,EAAG89B,CAAC,CAAE,CAAG,OAAO99B,CAAI,CAC/P,SAASwlH,GAAc,EAAG,CAAE,QAASzlH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIqlH,GAAQ,OAAOplH,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAE0lH,GAAgB,EAAG1lH,EAAGC,EAAED,CAAC,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIolH,GAAQ,OAAOplH,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAE,CAAE,CAAI,CAAC,OAAO,CAAI,CACvb,IAAIytP,GACA/7E,GACAg8E,GAA2B,GAC/B,SAASC,IAAkBC,EAAM,CAC/Bl8E,GAAOk8E,CACT,CACA,SAASC,GAAKthO,EAAM6T,EAAM,CACxB,GAAI,EAAA7T,EAAK,SAAWA,EAAK,QAAQ,uBAAyB,QAC1D,CAAA6T,EAAK7T,CAAI,EAET,QADIlC,EAAWkC,EAAK,WACXlD,EAAI,EAAGA,EAAIgB,EAAS,OAAQhB,IACnCwkO,GAAKxjO,EAAShB,CAAC,EAAG+W,CAAI,EAE1B,CACA,SAAS0tN,GAAY3gP,EAAI+gB,EAAMgqJ,EAAM7tJ,EAAU,CAC7C,IAAI0jO,EAAOC,EACPvJ,EAAgBvsE,EAAK,cACvBn2D,EAAOm2D,EAAK,KACd,GAAI,GAACusE,GAAiB,CAACA,EAAc,KAAO,CAACA,EAAc,IAC3D,OAAKgJ,KAAkBA,IAAoBM,EAAQr8E,MAAU,MAAQq8E,IAAU,OAAS,OAASA,EAAM,aAAY,GAC5GtoI,GAAcA,GAAc,CACjC,YAAat4G,EACb,SAAU+gB,EACV,SAAU7D,EAAWA,EAAS,IAAI,SAAU,EAAG,CAC7C,OAAO,EAAE,UACf,CAAK,EAAE,KAAK,GAAG,EAAI,KACf,aAAc,GAAG,OAAOo6N,EAAc,GAAI,GAAG,EAAE,OAAOA,EAAc,GAAG,CAC3E,EAAKA,CAAa,EAAG,GAAI,CACrB,cAAe1iI,EACf,eAAgBisI,EAASt8E,MAAU,MAAQs8E,IAAW,OAAS,OAASA,EAAO,OAAQ,EACvF,cAAeP,GACf,YAAa/nI,GAAgBA,GAAgB,CAAE,EAAE,GAAG,OAAO++H,EAAc,GAAG,EAAGA,EAAc,SAAW,eAAiB/yE,GAAOA,GAAK,YAAY+yE,EAAc,IAAKA,EAAc,GAAIA,EAAc,GAAG,EAAI,IAAI,EAAG,GAAG,OAAOgJ,EAAgB,EAAGhJ,EAAc,SAAW,eAAiB/yE,GAAOA,GAAK,YAAY+7E,GAAkBhJ,EAAc,GAAIA,EAAc,GAAG,EAAI,IAAI,CAClX,CAAG,CACH,CACA,SAASwJ,IAAmB9jE,EAAK,CAC/B,MAAO,QAAQ,KAAKA,CAAG,CACzB,CACA,SAAS+jE,IAAW3hO,EAAM,CACxB,GAAIA,EAAK,YAAc,CAACmhO,GAAyB,SAASnhO,EAAK,QAAQ,EAAG,CACxE,IAAI4hO,EAAQ,GACZ5hO,EAAK,WAAW,QAAQ,SAAUkB,EAAOpE,EAAG,CAQ1C,GAPI8kO,EAAM,QAAU1gO,EAAM,WAAa,UACrCigO,GAAyB,KAAKjgO,EAAM,QAAQ,EAC5C0gO,EAAM,KAAK,CACT,WAAY9kO,EACZ,MAAOoE,CACjB,CAAS,GAECA,EAAM,WAAa,QACvB,KAAI2gO,EAAM3gO,EAAM,YAChB,GAAI,CAAAwgO,IAAmBG,CAAG,EAC1B,KAAIC,EAAgBvJ,GAAmBsJ,CAAG,EACtCE,EAAuBrJ,IAA0BmJ,CAAG,EACxD,GAAIE,GAAwBD,EAAe,CACzC,IAAIn2E,EAAO0sE,GAAOwJ,CAAG,EACrB/S,GAAM,KAAK9uN,EAAK,SAAU2rJ,EAAK,cAAe,OAAQ41E,GAAYvhO,EAAK,SAAU,OAAQ2rJ,CAAI,EAAG3rJ,CAAI,CACrG,SAAU+hO,EACTH,EAAM,KAAK,CACT,WAAY9kO,EACZ,MAAOoE,EACP,KAAM2gO,CAChB,CAAS,UACQD,EAAM,QAAU,CAACE,EAC1BF,EAAM,KAAK,CACT,WAAY9kO,EACZ,MAAOoE,EACP,KAAM2gO,CAChB,CAAS,UACQD,EAAM,QAAUE,EAAe,CACxCF,EAAM,KAAK,CACT,WAAY9kO,EACZ,MAAOoE,EACP,KAAM2gO,CAChB,CAAS,EACD,IAAIG,EAAQ3J,GAAOuJ,EAAM,OAAO,SAAUxT,EAAKtgN,EAAM,CACnD,OAAOsgN,EAAMtgN,EAAK,IAC5B,EAAW,EAAE,CAAC,EACNghN,GAAM,KAAK9uN,EAAK,SAAUgiO,EAAM,cAAe,OAAQT,GAAYvhO,EAAK,SAAU,OAAQgiO,EAAOJ,CAAK,EAAG5hO,EAAM4hO,CAAK,EACpHA,EAAQ,EACT,MAAUC,GACTxG,GAAoB,KAAKr7N,EAAK,SAAU,OAAQA,CAAI,GAE5D,CAAK,CACF,CACIA,EAAK,cACVo5N,GAAgB,QAAQ,SAAUr8L,EAAM,CACtC,IAAI8kM,EAAM7hO,EAAK,aAAa+8B,CAAI,EAChC,GAAIw7L,GAAmBsJ,CAAG,EAAG,CAC3B,IAAIl2E,EAAO0sE,GAAOwJ,CAAG,EACrB/S,GAAM,KAAK9uN,EAAK,SAAU2rJ,EAAK,cAAe,QAAQ,OAAO5uH,CAAI,EAAGwkM,GAAYvhO,EAAK,SAAU,QAAQ,OAAO+8B,CAAI,EAAG4uH,CAAI,EAAG3rJ,CAAI,CACjI,MAAU6hO,GACTxG,GAAoB,KAAKr7N,EAAK,SAAU,QAAQ,OAAO+8B,CAAI,EAAG/8B,CAAI,CAExE,CAAG,CACH,CACA,SAASiiO,IAAUjiO,EAAM,CACvB,OAAAkhO,GAAmB,OACnBI,GAAKthO,EAAM2hO,GAAU,EACrB7S,GAAM,MAAK,EACXqS,GAA2B,GACpBrS,GAAM,IACf,CC3GA,IAAIoT,GAA6B,GACjC,SAASC,GAAe3E,EAAK,CAC3B,GAAIA,EAAI,SAAU,CAChB,IAAI/I,EAAOyN,GAA2B1E,EAAI,QAAQ,EAClD,GAAI/I,GAAQA,EAAK,UAAY,IAAMA,EAAK,gBAAkB,IAAM,KAAK,MACnE,MAAI,CAACA,EAAK,QAAU,UAClB,QAAQ,KAAK,6FAA8F;AAAA,EAAM,6EAA8E+I,CAAG,EAClM/I,EAAK,OAAS,IAET,EAEV,CACD,IAAIhsE,EAAM+0E,EAAI,UAAYA,EAAI,QAAQ,uBAAyB,QAAUA,EAAI,QAAQ,qBAAuB,QAC5G,MAAI,CAAC/0E,GAAO+0E,EAAI,cAAsB2E,GAAe3E,EAAI,aAAa,EAC/D/0E,CACT,CACA,SAAS25E,IAAe5E,EAAK9lE,EAAQ,CACnC,IAAI2qE,EACAC,EACAC,EAAiB,UAA0B,CACzCD,GAAmB,aAAaA,CAAiB,EACrDA,EAAoB,WAAW,UAAY,CACrCD,IAAgBA,EAAiB,GACtC,EAAE,GAAG,CACV,EACMG,EAAa,GACbC,EAAmBzoK,GAAS,UAAa,CAC3C09F,EAAO8qE,CAAU,EACjBA,EAAa,EACd,EAAE,GAAG,EACF9rK,EAAW,IAAI,iBAAiB,SAAU3yB,EAAW,CACvD,GAAIs+L,EAAgB,CAClBE,IACA,MACD,CACD,IAAIG,EAAkB,GACtB3+L,EAAU,QAAQ,SAAUC,EAAU,CACpC,GAAI,EAAAA,EAAS,OAAS,cAAgB,CAACo1L,GAAgB,SAASp1L,EAAS,aAAa,GAStF,IANA,OAAO,KAAKk+L,EAA0B,EAAE,QAAQ,SAAU/sP,EAAG,CAC3D,IAAIs/O,EAAOyN,GAA2B/sP,CAAC,EACnCs/O,EAAK,gBAAkB,IAAQ,KAAK,IAAG,GACzC,OAAOyN,GAA2B/sP,CAAC,CAE7C,CAAO,EACG6uD,EAAS,OAAS,YAAa,CACjC,IAAI2+L,EAAU,EAWd,GAVKR,GAAen+L,EAAS,MAAM,IACjCA,EAAS,WAAW,QAAQ,SAAU1wD,EAAG,CACnC6uP,GAAe7uP,CAAC,IACpBqvP,EAAUA,EAAU,EACrB,EAAE,CAAC,EACJ3+L,EAAS,aAAa,QAAQ,SAAU1wD,EAAG,CACrC6uP,GAAe7uP,CAAC,IACpBqvP,EAAUA,EAAU,EACrB,EAAE,CAAC,GAEFA,IAAY,EAAG,MACpB,CAED,GADAD,EAAkB,GACd1+L,EAAS,QAAUA,EAAS,OAAO,SAAU,CAC/C,IAAIywL,EAAOyN,GAA2Bl+L,EAAS,OAAO,QAAQ,GAAK,CACjE,UAAW,CACrB,EACQywL,EAAK,UAAYA,EAAK,UAAY,EAClCA,EAAK,gBAAkB,KAAK,MAC5ByN,GAA2Bl+L,EAAS,OAAO,QAAQ,EAAIywL,CACxD,CACD,IAAImO,EAAkBJ,EAAW,OAAO,SAAUpU,EAAK5rN,EAAS,CAC9D,MAAI,GAAA4rN,GAAO5rN,EAAQ,SAASwhC,EAAS,MAAM,GAAK,CAACA,EAAS,OAAO,cAIlE,EAAE,EAAK,EACH4+L,IACHJ,EAAaA,EAAW,OAAO,SAAUhgO,EAAS,CAChD,MAAO,CAACwhC,EAAS,OAAO,SAASxhC,CAAO,CAClD,CAAS,EACDggO,EAAW,KAAKx+L,EAAS,MAAM,GAEvC,CAAK,EACG0+L,GAAiBD,GACzB,CAAG,EACD,MAAO,CACL,MAAO,UAAiB,CACtB,IAAII,EAAiB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CACvF,WAAY,GACZ,UAAW,GACX,cAAe,GACf,QAAS,EACjB,EACMnsK,EAAS,QAAQ8mK,EAAKqF,CAAc,CACrC,EACD,SAAU,UAAoB,CAC5BR,EAAiB,EAClB,CACL,CACA,CCnGA,SAASS,KAAkB,CASzB,QARIz2B,EAAO,EACPC,EAAO,EACPy2B,EAAO,EACPC,EAAO,EACPC,EAAS,SAAS,uBAAuB,sBAAsB,EAC/DC,EAAQ,KACRzD,EAAU,KACV0D,EAAgB,IACXrmO,EAAI,EAAGA,EAAImmO,EAAO,OAAQnmO,IAAK,CACtC,IAAIyiO,EAAQ0D,EAAOnmO,CAAC,EAChB0iO,EAAS4D,EAAU7D,CAAK,EAC5BA,EAAM,YAAc,UAAY,CAC9B,KAAK,MAAM,OAAS,IAAK,EAAE4D,CACjC,EACQ3D,IACFA,EAAO,YAAcD,EACrBC,EAAO,YAAc6D,EAExB,CACD,SAASA,EAAc7uP,EAAG,CACnBirP,IAASA,EAAU,SAAS,eAAe,8BAA8B,GAC1EA,IAASA,EAAQ,MAAM,QAAU,SACrCvB,KACAgF,EAAQ,KAAK,YACbA,EAAM,MAAM,OAAS,IAAK,EAAEC,EAC5B3uP,EAAIA,GAAK,OAAO,MAChBuuP,EAAOvuP,EAAE,QACTwuP,EAAOxuP,EAAE,QACT,SAAS,UAAY8uP,EACrB,SAAS,YAAcC,CACxB,CACD,SAASA,EAAY/uP,EAAG,CACjB0uP,IAGL1uP,EAAIA,GAAK,OAAO,MAChB63N,EAAO02B,EAAOvuP,EAAE,QAChB83N,EAAO02B,EAAOxuP,EAAE,QAChBuuP,EAAOvuP,EAAE,QACTwuP,EAAOxuP,EAAE,QACT0uP,EAAM,MAAM,IAAMA,EAAM,UAAY52B,EAAO,KAC3C42B,EAAM,MAAM,KAAOA,EAAM,WAAa72B,EAAO,KAC9C,CACD,SAASi3B,GAAmB,CAC1BrF,KACIwB,IAASA,EAAQ,MAAM,QAAU,QACrC,SAAS,UAAY,KACrB,SAAS,YAAc,IACxB,CACD,SAAS2D,EAAU5gO,EAAS,CAC1B,IAAIghO,EAAchhO,EAAQ,uBAAuB,6BAA6B,EAC9E,OAAIghO,EAAY,SAAW,EAClBA,EAAY,CAAC,EAEf,IACR,CACH,CACA,SAASC,KAAoB,CAK3B,QAJIR,EAAS,SAAS,uBAAuB,sBAAsB,EAC/DzgO,EAAU,KACVi9N,EAAU,KACViE,EAAQC,EAAQC,EAAYC,EACvB/mO,EAAI,EAAGA,EAAImmO,EAAO,OAAQnmO,IAAK,CACtC,IAAIvpB,EAAI0vP,EAAOnmO,CAAC,EACZ03B,EAAQ,SAAS,cAAc,KAAK,EACxCA,EAAM,UAAY,gBAClBjhD,EAAE,YAAYihD,CAAK,EACnBA,EAAM,iBAAiB,YAAasvM,EAAU,EAAK,EACnDtvM,EAAM,YAAcjhD,EACpB,IAAIqjG,EAAS,SAAS,cAAc,KAAK,EACzCA,EAAO,UAAY,iBACnBrjG,EAAE,YAAYqjG,CAAM,EACpBA,EAAO,iBAAiB,YAAaktJ,EAAU,EAAK,EACpDltJ,EAAO,YAAcrjG,EACrB,IAAIwwP,EAAO,SAAS,cAAc,KAAK,EACvCA,EAAK,UAAY,eACjBxwP,EAAE,YAAYwwP,CAAI,EAClBA,EAAK,iBAAiB,YAAaD,EAAU,EAAK,EAClDC,EAAK,YAAcxwP,CACpB,CACD,SAASuwP,EAAStvP,EAAG,CACnB0pP,KACKuB,IAASA,EAAU,SAAS,eAAe,8BAA8B,GAC1EA,IAASA,EAAQ,MAAM,QAAU,SACrCj9N,EAAU,KAAK,YACfkhO,EAASlvP,EAAE,QACXmvP,EAASnvP,EAAE,QACXovP,EAAa,SAAS,SAAS,YAAY,iBAAiBphO,CAAO,EAAE,MAAO,EAAE,EAC9EqhO,EAAc,SAAS,SAAS,YAAY,iBAAiBrhO,CAAO,EAAE,OAAQ,EAAE,EAChF,SAAS,gBAAgB,iBAAiB,YAAawhO,EAAQ,EAAK,EACpE,SAAS,gBAAgB,iBAAiB,UAAWC,EAAU,EAAK,CACrE,CACD,SAASD,EAAOxvP,EAAG,CACjBguB,EAAQ,MAAM,MAAQohO,EAAapvP,EAAE,QAAUkvP,EAAS,KACxDlhO,EAAQ,MAAM,OAASqhO,EAAcrvP,EAAE,QAAUmvP,EAAS,IAC3D,CACD,SAASM,GAAW,CAClBhG,KACIwB,IAASA,EAAQ,MAAM,QAAU,QACrC,SAAS,gBAAgB,oBAAoB,YAAauE,EAAQ,EAAK,EACvE,SAAS,gBAAgB,oBAAoB,UAAWC,EAAU,EAAK,CACxE,CACH,CCtFA,SAASnrI,GAAQ,EAAGrlH,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI89B,EAAI,OAAO,sBAAsB,CAAC,EAAG/9B,IAAM+9B,EAAIA,EAAE,OAAO,SAAU/9B,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAW,CAAE,GAAIC,EAAE,KAAK,MAAMA,EAAG89B,CAAC,CAAE,CAAG,OAAO99B,CAAI,CAC/P,SAASwlH,GAAc,EAAG,CAAE,QAASzlH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIqlH,GAAQ,OAAOplH,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAE0lH,GAAgB,EAAG1lH,EAAGC,EAAED,CAAC,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIolH,GAAQ,OAAOplH,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAE,CAAE,CAAI,CAAC,OAAO,CAAI,CACvb,SAAS02D,KAAQ,CACf,IAAI4vL,EAAiB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACzF,GAAI,OAAO,SAAa,IAAa,OACrC,IAAImK,EAAY,SAAS,eAAe,QAAQ,EAC5CtyN,EAAS,GACb,CAAC,YAAa,SAAS,EAAE,QAAQ,SAAUmrB,EAAM,CAC/C,GAAKmnM,EACL,KAAIlmO,EAAQkmO,EAAU,aAAannM,EAAK,YAAa,IAAKmnM,EAAU,aAAa,QAAUnnM,EAAK,YAAa,GACzG/+B,IAAU,SAAQA,EAAQ,IAC1BA,IAAU,UAASA,EAAQ,IACJA,GAAU,OAAM4T,EAAOmrB,CAAI,EAAI/+B,GAC9D,CAAG,EACD4T,EAASsnF,GAAcA,GAAc,CAAE,EAAE6gI,EAAe,iBAAkB,GAAGnoN,CAAM,EACnFioN,GAAI,KAAKE,CAAc,EACvBqH,IAAkBrH,CAAc,EAChCA,GAAmB,MAAqCA,EAAe,mBAAmB,SAAUv0E,EAAK,CACvGq0E,GAAI,0BAA0BE,EAAe,OAAQ,EACzD,CAAG,EACD,SAASoK,GAAkB,CACzB,IAAIztK,EAAW0rK,IAAe,SAAS,KAAM,SAAUgC,EAAM,CAC3DA,EAAK,QAAQ,SAAU5G,EAAK,CAC1ByE,IAAUzE,CAAG,CACrB,CAAO,EACD3D,GAAI,yBAAwB,CAClC,CAAK,EACDnjK,EAAS,MAAK,EACdunK,GAAmBvnK,CAAQ,EACtB,SAAS,eAAe2oK,EAAO,IAClC,SAAS,KAAK,OAAOC,IAAMjG,GAAc,EAAE,UAAY,CACrDQ,GAAI,kBAAkBjoN,CAAM,CAC7B,EAAC,EACFkxN,MACAW,MAEH,CACD,GAAI,SAAS,KAAM,OAAOU,IAC1B,OAAO,iBAAiB,OAAQ,UAAY,CAC1C,OAAOA,EAAe,CAC1B,CAAG,CACH,CCzDA,SAASE,IAAmBzqP,EAAI,CAC9B,IAAIg3C,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E1H,EAAU,SAAiB10C,EAAG,CAChC,IAAI4mB,EAAK4hO,IAAkBxoP,CAAC,EAC5B,GAAI,CAAC4mB,EAAI,MAAO,GAChB5mB,EAAE,eAAc,EAChBA,EAAE,gBAAe,EACjB,SAAS8vP,GAAgB,CACvB,GAAI1zM,EAAQ,WAAY,OAAOA,EAAQ,SACxC,CACD,IAAI4kE,EAAO6nI,IAAejiO,CAAE,EACxBqY,EAAM6pN,GAAkBliO,CAAE,EAC1BkqJ,EAAKi4E,IAAoBniO,CAAE,GAAKkpO,EAAa,EACjD,GAAI/L,GAAmB/iI,CAAI,EAAG,CAC5B,IAAIm2D,EAAO0sE,GAAO7iI,CAAI,EAClBm2D,GAAQA,EAAK,eAAiBA,EAAK,cAAc,MAAKl4I,EAAMk4I,EAAK,cAAc,KAC/EA,GAAQA,EAAK,eAAiBA,EAAK,cAAc,KAAIrG,EAAKqG,EAAK,cAAc,GAClF,CACD,IAAI44E,EAASnpO,EAAG,sBAAwBA,EAAKA,EAAG,cAC5CopO,EAAwBD,EAAO,sBAAuB,EACxDhwM,EAAMiwM,EAAsB,IAC5BlwM,EAAOkwM,EAAsB,KAC7B55N,EAAQ45N,EAAsB,MAC9B95N,EAAS85N,EAAsB,OAC7B9lN,EAAQ,OAAO,iBAAiB6lN,EAAQ,IAAI,EAC5CE,EAAK,WAAW/lN,EAAM,iBAAiB,aAAa,CAAC,EACrDgmN,EAAK,WAAWhmN,EAAM,iBAAiB,gBAAgB,CAAC,EACxDimN,EAAK,WAAWjmN,EAAM,iBAAiB,eAAe,CAAC,EACvDkmN,EAAK,WAAWlmN,EAAM,iBAAiB,cAAc,CAAC,EACtDmmN,EAASnmN,EAAM,iBAAiB,YAAY,EAChD9kC,EAAG,CACD,QAAS2qP,EAAO,QAChB,KAAM/uI,EACN,IAAK/hF,EACL,GAAI6xI,EACJ,IAAK,CACH,IAAK/wH,EACL,KAAMD,EACN,MAAOuwM,IAAW,aAAej6N,EAAQA,EAAQ+5N,EAAKC,EACtD,OAAQC,IAAW,aAAen6N,EAASA,EAAS+5N,EAAKC,CAC1D,EACD,MAAOhmN,EAAM,OACnB,CAAK,CACL,EACE,OAAOwK,CACT,CClCA,SAAS4vE,GAAQ,EAAGrlH,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI89B,EAAI,OAAO,sBAAsB,CAAC,EAAG/9B,IAAM+9B,EAAIA,EAAE,OAAO,SAAU/9B,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAW,CAAE,GAAIC,EAAE,KAAK,MAAMA,EAAG89B,CAAC,CAAE,CAAG,OAAO99B,CAAI,CAC/P,SAASwlH,GAAc,EAAG,CAAE,QAASzlH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIqlH,GAAQ,OAAOplH,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAE0lH,GAAgB,EAAG1lH,EAAGC,EAAED,CAAC,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIolH,GAAQ,OAAOplH,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAE,CAAE,CAAI,CAAC,OAAO,CAAI,CACvb,SAASqxP,IAAc,CACrB,IAAI/K,EAAiB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACzF,GAAI,SAAO,SAAa,KACxB,KAAImK,EAAY,SAAS,eAAe,QAAQ,EAC5CtyN,EAAS,GAmBb,GAlBA,CAAC,YAAa,SAAS,EAAE,QAAQ,SAAUmrB,EAAM,CAC/C,GAAKmnM,EACL,KAAIlmO,EAAQkmO,EAAU,aAAannM,EAAK,YAAa,IAAKmnM,EAAU,aAAa,QAAUnnM,EAAK,YAAa,GACzG/+B,IAAU,SAAQA,EAAQ,IAC1BA,IAAU,UAASA,EAAQ,IACJA,GAAU,OAAM4T,EAAOmrB,CAAI,EAAI/+B,GAC9D,CAAG,EACD4T,EAASsnF,GAAcA,GAAc,CAAE,EAAE6gI,EAAe,iBAAkB,GAAGnoN,CAAM,EACnFioN,GAAI,KAAKE,EAAgBsK,IAAmB,SAAU9lK,EAAS,CAC7Dq7J,GAAY,iBAAkB,CAC5B,QAASr7J,CACf,CAAK,CACL,EAAKw7J,EAAe,iBAAkB,EAAC,EACrCF,GAAI,0BAA4B,SAAUr0E,EAAK,CAC7Co0E,GAAY,SAAU,CACpB,IAAKp0E,GAAOu0E,EAAe,OAAQ,CACzC,CAAK,CACL,EACM,OAAO,OAAW,IAAa,CACjC,IAAIgL,EAAU,OAAO,SAAS,SAAS,KACvC,OAAO,iBAAiB,OAAQ,UAAY,CAC1CnL,GAAY,cAAe,CACzB,KAAM,OAAO,SAAS,SAAS,IACvC,CAAO,EACD,IAAIoL,EAAW,OAAO,SAAS,cAAc,MAAM,EAC/CtuK,EAAW,IAAI,OAAO,iBAAiB,SAAU3yB,EAAW,CAC9DA,EAAU,QAAQ,SAAUC,EAAU,CAChC+gM,IAAY,OAAO,SAAS,SAAS,OACvCA,EAAU,OAAO,SAAS,SAAS,KACnCnL,GAAY,cAAe,CACzB,KAAMmL,CACpB,CAAa,EAEb,CAAS,CACT,CAAO,EACGnzN,EAAS,CACX,UAAW,GACX,QAAS,EACjB,EACM8kD,EAAS,QAAQsuK,EAAUpzN,CAAM,CACvC,CAAK,CACF,CACDmoN,GAAmB,MAAqCA,EAAe,mBAAmB,SAAUv0E,EAAK,CACvGq0E,GAAI,0BAA0BE,EAAe,OAAQ,EACzD,CAAG,EACDA,GAAmB,MAAqCA,EAAe,sBAAsB,SAAUv0E,EAAKF,EAAInwK,EAAG00E,EAAK,CACtHgwK,GAAI,WAAWr0E,EAAKF,EAAInwK,EAAG00E,CAAG,CAClC,CAAG,EACH,CC9DA,SAASivC,GAAQ,EAAGrlH,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI89B,EAAI,OAAO,sBAAsB,CAAC,EAAG/9B,IAAM+9B,EAAIA,EAAE,OAAO,SAAU/9B,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAW,CAAE,GAAIC,EAAE,KAAK,MAAMA,EAAG89B,CAAC,CAAE,CAAG,OAAO99B,CAAI,CAC/P,SAASwlH,GAAc,EAAG,CAAE,QAASzlH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIqlH,GAAQ,OAAOplH,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAE0lH,GAAgB,EAAG1lH,EAAGC,EAAED,CAAC,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIolH,GAAQ,OAAOplH,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAE,CAAE,CAAI,CAAC,OAAO,CAAI,CACvb,IAAIwxP,GAAa,OAAO,OAAW,IACnC,GAAI,CACFA,GAAa,OAAS,GACxB,MAAY,CAAE,CACd,SAASC,IAAuBC,EAASv0M,EAAS,CAChDu0M,EAAQ,IAAIC,GAAa,EACrB,OAAOx0M,EAAQ,aAAgB,SACjCA,EAAQ,YAAc,CAACA,EAAQ,YAAa,YAAY,EAC/C,MAAM,QAAQA,EAAQ,WAAW,EAC1CA,EAAQ,YAAY,KAAK,YAAY,EAErCA,EAAQ,YAAc,aAExBA,EAAQ,wBAA0B,EACpC,CACA,SAASy0M,IAAkBlgF,EAAM,CAC/B,IAAIk8E,EAAO,CACT,YAAa,SAAqB77E,EAAKF,EAAI7xI,EAAK,CAC9C,OAAO0xI,EAAK,YAAYK,EAAKF,EAAI7xI,CAAG,CACrC,EACD,YAAa,SAAqB+xI,EAAKF,EAAI7xI,EAAKzV,EAAO,CACrD,OAAOmnJ,EAAK,YAAYK,EAAKF,EAAI7xI,EAAKzV,EAAO,CAC3C,OAAQ,EAChB,CAAO,CACF,EACD,kBAAmB,SAA2BwnJ,EAAKF,EAAI1rK,EAAI,CACzDurK,EAAK,eAAeG,EAAI,UAAY,CAClC1rK,EAAGurK,EAAK,kBAAkBK,EAAKF,CAAE,CAAC,CAC1C,CAAO,CACF,EACD,OAAQ,UAAkB,CACxB,OAAOH,EAAK,kBAAoBA,EAAK,UAAU,CAAC,CACjD,EACD,aAAc,UAAwB,CACpC,IAAImgF,EAAWngF,EAAK,QAAQ,YAC5B,GAAI,OAAOmgF,GAAa,SAAU,OAAOA,EACzC,GAAI,MAAM,QAAQA,CAAQ,EAAG,OAAOA,EAASA,EAAS,OAAS,CAAC,EAChE,GAAIA,GAAYA,EAAS,QAAY,CACnC,GAAI,OAAOA,EAAS,SAAe,SAAU,OAAOA,EACpD,GAAI,MAAM,QAAQA,EAAS,OAAU,EAAG,OAAOA,EAAS,QAAWA,EAAS,QAAW,OAAS,CAAC,CAClG,CACD,GAAI,OAAOA,GAAa,WAAY,CAClC,IAAI58C,EAAM48C,EAASngF,EAAK,gBAAgB,EACxC,GAAI,OAAOujC,GAAQ,SAAU,OAAOA,EACpC,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOA,EAAIA,EAAI,OAAS,CAAC,CAClD,CACD,MAAO,KACR,EACD,iBAAkB,UAA4B,CAC5C,IAAI68C,EACApgF,EAAK,SAAS,iBAAiB,SAAWA,EAAK,SAAS,iBAAiB,QAAQ,SAAWA,EAAK,SAAS,iBAAiB,QAAQ,QAAQ,UAAYA,EAAK,SAAS,iBAAiB,QAAQ,QAAQ,SAAS,QAAQ,UAAU,EAAI,EACvOogF,EAAc,uBAEdA,EAAcpgF,EAAK,SAAS,iBAAiB,QAAUA,EAAK,SAAS,iBAAiB,QAAQ,YAAY,KAAO,oBAEnH,IAAI2W,EAAO,CACT,YAAaypE,EACb,UAAWlE,EAAK,aAAc,EAC9B,WAAYl8E,EAAK,QAAQ,oBAAsB,KAAO,aAAe,aACrE,cAAe,UACf,WAAYA,EAAK,QAAQ,WACzB,UAAWA,EAAK,QAAQ,SAChC,EACM,GAAI,CAACA,EAAK,QAAQ,SAAW,CAACA,EAAK,QAAQ,OAAQ,OAAO2W,EAC1D,IAAI0pE,EAAWrgF,EAAK,QAAQ,SAAWA,EAAK,QAAQ,OACpD,OAAOjsD,GAAcA,GAAc,CAAE,EAAE4iE,CAAI,EAAG,GAAI,CAChD,UAAW0pE,EAAS,UACpB,QAASA,EAAS,OAC1B,CAAO,CACF,EACD,mBAAoB,SAA4B5rP,EAAI,CAClDurK,EAAK,GAAG,kBAAmBvrK,CAAE,CAC9B,EACD,sBAAuB,SAA+BA,EAAI,CACxDurK,EAAK,QAAQ,kBAAoB,SAAUK,EAAKF,EAAInwK,EAAG00E,EAAK8lK,EAAU7zD,EAAM,CACrE6zD,GAAU/1O,EAAG4rK,EAAKF,EAAInwK,EAAG00E,CAAG,CACzC,CACK,EACD,gBAAiB,UAA2B,CAC1Cs7F,EAAK,KAAK,aAAa,CACxB,CACL,EACE,OAAOk8E,CACT,CACA,IAAI8D,GACAM,IAAqB,UAA8B,CACrD,IAAI1X,EAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E,OAAAA,EAAI,OAASA,EAAI,QAAU,YACpB,CACL,KAAM,WACN,KAAM,SAAc5oE,EAAM,CACxB,IAAIv0H,EAAUu0H,EAAK,QACnBggF,GAAUhgF,EACV,IAAIugF,EAAgB3X,EAAI,MAAQ2P,IAAqB3P,EAAI,MAAM,IAAM,OACjE,CAACkX,IAAcS,GAAeR,IAAuBC,GAASv0M,CAAO,EACzE,IAAIywM,EAAOgE,IAAkBlgF,CAAI,EAC7B,CAAC8/E,IAAcS,EACjBv7L,IAAMk3L,CAAI,EACD4D,IACTH,GAAYzD,CAAI,CAEnB,CACL,CACA,EACIsE,IAAeF,IAAoB,EC/GvC,SAASG,KAAkB,CACzBd,GAAY,CACV,iBAAkB,UAA4B,CAC5C,MAAO,EACR,EACD,OAAQ,UAAkB,CAEzB,EACD,YAAa,UAAuB,CAAE,EACtC,gBAAiB,UAA2B,CAAE,EAC9C,kBAAmB,UAA6B,CAC9C,MAAO,EACR,EACD,sBAAuB,UAAiC,CAAE,EAC1D,mBAAoB,UAA8B,CAAE,CACxD,CAAG,CACH,CACI,OAAO,OAAW,MAAa,OAAO,sBAAwBc,KCVlE,MAAMC,IAAmB,CACvB,MAAO,CAAC,cAAe,eAAgB,WAAW,EAClD,kBAAmB,MACnB,mBAAoB,aACpB,OAAQ,CAAC,cAAc,EACvB,wBAA0BrgF,GACxBA,EAAI,QAAQ,GAAG,EAAI,GAAKA,EAAI,YAAW,EAAG,MAAM,GAAG,EAAE,CAAC,EAAIA,CAC9D,EAEMsgF,IAAgB,CACpB,UAAW,uCACX,UAAwB,oBACxB,aAAc,IAChB,EAEA3gF,GACG,IAAIwgF,GAAY,EAChB,IAAII,EAAO,EACX,IAAIC,EAAgB,EACpB,IAAIv/E,GAAgB,EACpB,KAAK,CACJ,YAAa,KACb,UAAWo/E,IACX,cAAe,CACb,YAAa,EACd,EACD,QAASC,IACT,YAAa,EACjB,CAAG,ECnCH,IAAIG,GAAc,GAClB,MAAMC,GAAe,GAGfC,IAAyBC,GAAkB,CAC/CA,EAAc,aAAa,QAAQ,IAAKx0N,GAAW,CACjD,MAAM6vK,EAAQ,aAAa,QAAQ,OAAO,EACpC6hC,EAAWn+D,GAAK,SAEtB,OAAIs8B,IACF7vK,EAAO,QAAQ,cAAgB,UAAU6vK,CAAK,IAE5C6hC,IACF1xM,EAAO,QAAQ,YAAY,EAAI0xM,GAGjC1xM,EAAO,QAAQ,WAAW,EAAI,aAAa,QAAQ,aAAa,GAAK,KAC9DA,CACX,CAAG,EAEDw0N,EAAc,aAAa,QAAQ,IAChCx0N,GACKq0N,GACK,IAAI,QAASv9E,GAClBw9E,GAAa,KAAK,IAAMx9E,EAAQ92I,CAAM,CAAC,CACjD,EAEaA,EAERs+C,GAAU,QAAQ,OAAOA,CAAK,CACnC,CACA,EAGam2K,GAAe,IAAM,CAChC,MAAMC,EAAiB,CAAC,GAAGJ,EAAY,EACvCA,GAAa,OAAS,EACtBI,EAAe,QAASrS,GAAYA,EAAS,EAC/C,EAGO,IAAIsS,GAAqBxzE,GAAW,CACzCkzE,GAAclzE,CAChB,EC7CA,SAASt/K,GAAE,EAAE,CAAC,IAAI,EAAE6B,EAAE,EAAE,GAAG,GAAa,OAAO,GAAjB,UAA8B,OAAO,GAAjB,SAAmB,GAAG,UAAoB,OAAO,GAAjB,SAAmB,GAAG,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,IAAIA,EAAE7B,GAAE,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG6B,OAAQ,KAAI,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,GAAG,OAAO,CAAC,CAAQ,SAASm8B,KAAM,CAAC,QAAQ,EAAE,EAAEn8B,EAAE,EAAE,EAAE,GAAGA,EAAE,UAAU,SAAS,EAAE,UAAUA,GAAG,KAAK,EAAE7B,GAAE,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,GAAG,OAAO,CAAC,CCSjW,SAASkjC,KAAS,CAKhB,QAJI/X,EAAQ,EACRgY,EACAC,EACA5G,EAAS,GACNrR,EAAQ,UAAU,SACnBgY,EAAW,UAAUhY,GAAO,KAC1BiY,EAAgBC,GAAQF,CAAQ,KAClC3G,IAAWA,GAAU,KACrBA,GAAU4G,GAIhB,OAAO5G,CACT,CACA,SAAS6G,GAAQC,EAAK,CACpB,GAAI,OAAOA,GAAQ,SACjB,OAAOA,EAIT,QAFIF,EACA5G,EAAS,GACJ96B,EAAI,EAAGA,EAAI4hC,EAAI,OAAQ5hC,IAC1B4hC,EAAI5hC,CAAC,IACH0hC,EAAgBC,GAAQC,EAAI5hC,CAAC,CAAC,KAChC86B,IAAWA,GAAU,KACrBA,GAAU4G,GAIhB,OAAO5G,CACT,CCvCA,IAAIyB,GAAuB,IAC3B,SAAS80N,IAAiB50N,EAAQ,CAChC,IAAIC,EAAWC,IAAeF,CAAM,EAChCG,EAAyBH,EAAO,uBAClC60N,EAAwB70N,EAAO,+BAC/BI,EAAiCy0N,IAA0B,OAAS,GAAKA,EAC3E,SAASzwN,EAAgBrF,EAAW,CAClC,IAAIsB,EAAatB,EAAU,MAAMe,EAAoB,EAErD,OAAIO,EAAW,CAAC,IAAM,IAAMA,EAAW,SAAW,GAChDA,EAAW,MAAK,EAEXC,GAAkBD,EAAYJ,CAAQ,GAAKM,IAA+BxB,CAAS,CAC3F,CACD,SAASsF,EAA4B7D,EAAcC,EAAoB,CACrE,IAAIC,EAAYP,EAAuBK,CAAY,GAAK,GACxD,OAAIC,GAAsBL,EAA+BI,CAAY,EAC5D,GAAG,OAAOE,EAAWN,EAA+BI,CAAY,CAAC,EAEnEE,CACR,CACD,MAAO,CACL,gBAAiB0D,EACjB,4BAA6BC,CACjC,CACA,CACA,SAAS/D,GAAkBD,EAAYM,EAAiB,OACtD,GAAIN,EAAW,SAAW,EACxB,OAAOM,EAAgB,aAEzB,IAAIC,EAAmBP,EAAW,CAAC,EAC/BQ,EAAsBF,EAAgB,SAAS,IAAIC,CAAgB,EACnEE,EAA8BD,EAAsBP,GAAkBD,EAAW,MAAM,CAAC,EAAGQ,CAAmB,EAAI,OACtH,GAAIC,EACF,OAAOA,EAET,GAAIH,EAAgB,WAAW,SAAW,EAG1C,KAAII,EAAYV,EAAW,KAAKP,EAAoB,EACpD,OAAO5S,EAAAyT,EAAgB,WAAW,KAAK,SAAU45B,EAAM,CACrD,IAAIv5B,EAAYu5B,EAAK,UACrB,OAAOv5B,EAAUD,CAAS,CAC3B,KAHM,YAAA7T,EAGH,aACN,CACA,IAAI+T,GAAyB,aAC7B,SAASV,IAA+BxB,EAAW,CACjD,GAAIkC,GAAuB,KAAKlC,CAAS,EAAG,CAC1C,IAAImC,EAA6BD,GAAuB,KAAKlC,CAAS,EAAE,CAAC,EACrEoC,EAAWD,GAAA,YAAAA,EAA4B,UAAU,EAAGA,EAA2B,QAAQ,GAAG,GAC9F,GAAIC,EAEF,MAAO,cAAgBA,CAE1B,CACH,CAIA,SAASjB,IAAeF,EAAQ,CAC9B,IAAIoB,EAAQpB,EAAO,MACjBqB,EAASrB,EAAO,OACdC,EAAW,CACb,SAAU,IAAI,IACd,WAAY,CAAE,CAClB,EACM60N,EAA4BxzN,IAA6B,OAAO,QAAQtB,EAAO,WAAW,EAAGqB,CAAM,EACvG,OAAAyzN,EAA0B,QAAQ,SAAUl6H,EAAO,CACjD,IAAIp6F,EAAeo6F,EAAM,CAAC,EACxBr5F,EAAaq5F,EAAM,CAAC,EACtBp5F,GAA0BD,EAAYtB,EAAUO,EAAcY,CAAK,CACvE,CAAG,EACMnB,CACT,CACA,SAASuB,GAA0BD,EAAYZ,EAAiBH,EAAcY,EAAO,CACnFG,EAAW,QAAQ,SAAUE,EAAiB,CAC5C,GAAI,OAAOA,GAAoB,SAAU,CACvC,IAAIC,EAAwBD,IAAoB,GAAKd,EAAkBgB,GAAQhB,EAAiBc,CAAe,EAC/GC,EAAsB,aAAelB,EACrC,MACD,CACD,GAAI,OAAOiB,GAAoB,WAAY,CACzC,GAAIG,IAAcH,CAAe,EAAG,CAClCD,GAA0BC,EAAgBL,CAAK,EAAGT,EAAiBH,EAAcY,CAAK,EACtF,MACD,CACDT,EAAgB,WAAW,KAAK,CAC9B,UAAWc,EACX,aAAcjB,CACtB,CAAO,EACD,MACD,CACD,OAAO,QAAQiB,CAAe,EAAE,QAAQ,SAAU26F,EAAO,CACvD,IAAIv6F,EAAMu6F,EAAM,CAAC,EACf76F,EAAa66F,EAAM,CAAC,EACtB56F,GAA0BD,EAAYI,GAAQhB,EAAiBkB,CAAG,EAAGrB,EAAcY,CAAK,CAC9F,CAAK,CACL,CAAG,CACH,CACA,SAASO,GAAQhB,EAAiBmB,EAAM,CACtC,IAAIC,EAAyBpB,EAC7B,OAAAmB,EAAK,MAAMhC,EAAoB,EAAE,QAAQ,SAAUkC,EAAU,CACtDD,EAAuB,SAAS,IAAIC,CAAQ,GAC/CD,EAAuB,SAAS,IAAIC,EAAU,CAC5C,SAAU,IAAI,IACd,WAAY,CAAE,CACtB,CAAO,EAEHD,EAAyBA,EAAuB,SAAS,IAAIC,CAAQ,CACzE,CAAG,EACMD,CACT,CACA,SAASH,IAAcK,EAAM,CAC3B,OAAOA,EAAK,aACd,CACA,SAASX,IAA6BY,EAAmBb,EAAQ,CAC/D,OAAKA,EAGEa,EAAkB,IAAI,SAAUs9F,EAAO,CAC5C,IAAIh/F,EAAeg/F,EAAM,CAAC,EACxBj+F,EAAai+F,EAAM,CAAC,EAClBr9F,EAAqBZ,EAAW,IAAI,SAAUE,EAAiB,CACjE,OAAI,OAAOA,GAAoB,SACtBJ,EAASI,EAEd,OAAOA,GAAoB,SACtB,OAAO,YAAY,OAAO,QAAQA,CAAe,EAAE,IAAI,SAAUs+F,EAAO,CAC7E,IAAIl+F,EAAMk+F,EAAM,CAAC,EACf3zG,EAAQ2zG,EAAM,CAAC,EACjB,MAAO,CAAC1+F,EAASQ,EAAKzV,CAAK,CAC5B,EAAC,EAEGqV,CACb,CAAK,EACD,MAAO,CAACjB,EAAc2B,CAAkB,CAC5C,CAAG,EAnBQD,CAoBX,CCxIA,SAASE,IAAeC,EAAc,CACpC,GAAIA,EAAe,EACjB,MAAO,CACL,IAAK,UAAe,CAEnB,EACD,IAAK,UAAe,CAAE,CAC5B,EAEE,IAAIC,EAAY,EACZC,EAAQ,IAAI,IACZC,EAAgB,IAAI,IACxB,SAASC,EAAOZ,EAAKzV,EAAO,CAC1BmW,EAAM,IAAIV,EAAKzV,CAAK,EACpBkW,IACIA,EAAYD,IACdC,EAAY,EACZE,EAAgBD,EAChBA,EAAQ,IAAI,IAEf,CACD,MAAO,CACL,IAAK,SAAaV,EAAK,CACrB,IAAIzV,EAAQmW,EAAM,IAAIV,CAAG,EACzB,GAAIzV,IAAU,OACZ,OAAOA,EAET,IAAKA,EAAQoW,EAAc,IAAIX,CAAG,KAAO,OACvC,OAAAY,EAAOZ,EAAKzV,CAAK,EACVA,CAEV,EACD,IAAK,SAAayV,EAAKzV,EAAO,CACxBmW,EAAM,IAAIV,CAAG,EACfU,EAAM,IAAIV,EAAKzV,CAAK,EAEpBqW,EAAOZ,EAAKzV,CAAK,CAEpB,CACL,CACA,CCzCA,IAAIsW,GAAqB,IACzB,SAASqyN,IAAqB/0N,EAAQ,CACpC,IAAI4C,EAAY5C,EAAO,WAAa,IAChC8C,EAA6BF,EAAU,SAAW,EAClDG,EAA0BH,EAAU,CAAC,EACrCI,EAAkBJ,EAAU,OAEhC,OAAO,SAAwB7D,EAAW,CAKxC,QAJImE,EAAY,GACZC,EAAe,EACfC,EAAgB,EAChBC,EACKrW,EAAQ,EAAGA,EAAQ+R,EAAU,OAAQ/R,IAAS,CACrD,IAAIsW,EAAmBvE,EAAU/R,CAAK,EACtC,GAAImW,IAAiB,EAAG,CACtB,GAAIG,IAAqBP,IAA4BD,GAA8B/D,EAAU,MAAM/R,EAAOA,EAAQgW,CAAe,IAAMJ,GAAY,CACjJM,EAAU,KAAKnE,EAAU,MAAMqE,EAAepW,CAAK,CAAC,EACpDoW,EAAgBpW,EAAQgW,EACxB,QACD,CACD,GAAIM,IAAqB,IAAK,CAC5BD,EAA0BrW,EAC1B,QACD,CACF,CACGsW,IAAqB,IACvBH,IACSG,IAAqB,KAC9BH,GAEH,CACD,IAAII,EAAqCL,EAAU,SAAW,EAAInE,EAAYA,EAAU,UAAUqE,CAAa,EAC3GI,EAAuBD,EAAmC,WAAWb,EAAkB,EACvFe,EAAgBD,EAAuBD,EAAmC,UAAU,CAAC,EAAIA,EACzFG,EAA+BL,GAA2BA,EAA0BD,EAAgBC,EAA0BD,EAAgB,OAClJ,MAAO,CACL,UAAWF,EACX,qBAAsBM,EACtB,cAAeC,EACf,6BAA8BC,CACpC,CACA,CACA,CAMA,SAASC,IAAcT,EAAW,CAChC,GAAIA,EAAU,QAAU,EACtB,OAAOA,EAET,IAAIU,EAAkB,GAClBC,EAAoB,GACxB,OAAAX,EAAU,QAAQ,SAAUY,EAAU,CACpC,IAAIkxN,EAAqBlxN,EAAS,CAAC,IAAM,IACrCkxN,GACFpxN,EAAgB,KAAK,MAAMA,EAAiBC,EAAkB,KAAM,EAAC,OAAO,CAACC,CAAQ,CAAC,CAAC,EACvFD,EAAoB,IAEpBA,EAAkB,KAAKC,CAAQ,CAErC,CAAG,EACDF,EAAgB,KAAK,MAAMA,EAAiBC,EAAkB,KAAI,CAAE,EAC7DD,CACT,CC7DA,SAASG,IAAkB/D,EAAQ,CACjC,MAAO,CACL,MAAOoC,IAAepC,EAAO,SAAS,EACtC,eAAgB+0N,IAAqB/0N,CAAM,EAC3C,GAAG40N,IAAiB50N,CAAM,CAC9B,CACA,CCRA,IAAIgE,IAAsB,MAC1B,SAASC,IAAeC,EAAWC,EAAa,CAC9C,IAAI8wN,EAAiB9wN,EAAY,eAC/BC,EAAkBD,EAAY,gBAC9BE,EAA8BF,EAAY,4BAQxCG,EAAwB,IAAI,IAChC,OAAOJ,EAAU,OAAO,MAAMF,GAAmB,EAAE,IAAI,SAAUS,EAAmB,CAClF,IAAIywN,EAAkBD,EAAexwN,CAAiB,EACpDvB,EAAYgyN,EAAgB,UAC5B1xN,EAAuB0xN,EAAgB,qBACvCzxN,EAAgByxN,EAAgB,cAChCxxN,EAA+BwxN,EAAgB,6BAC7C10N,EAAe4D,EAAgBV,EAA+BD,EAAc,UAAU,EAAGC,CAA4B,EAAID,CAAa,EACtIhD,EAAqB,EAAQiD,EACjC,GAAI,CAAClD,EAAc,CACjB,GAAI,CAACkD,EACH,MAAO,CACL,gBAAiB,GACjB,kBAAmBe,CAC7B,EAGM,GADAjE,EAAe4D,EAAgBX,CAAa,EACxC,CAACjD,EACH,MAAO,CACL,gBAAiB,GACjB,kBAAmBiE,CAC7B,EAEMhE,EAAqB,EACtB,CACD,IAAIiE,EAAkBf,IAAcT,CAAS,EAAE,KAAK,GAAG,EACnDyB,EAAanB,EAAuBkB,EAAkBhC,GAAqBgC,EAC/E,MAAO,CACL,gBAAiB,GACjB,WAAYC,EACZ,aAAcnE,EACd,kBAAmBiE,EACnB,mBAAoBhE,CAC1B,CACG,GAAE,QAAS,EAEX,OAAO,SAAU2lN,EAAQ,CACxB,GAAI,CAACA,EAAO,gBACV,MAAO,GAET,IAAIzhN,EAAayhN,EAAO,WACtB5lN,EAAe4lN,EAAO,aACtB3lN,EAAqB2lN,EAAO,mBAC1BxhN,EAAUD,EAAanE,EAC3B,OAAI8D,EAAsB,IAAIM,CAAO,EAC5B,IAETN,EAAsB,IAAIM,CAAO,EACjCP,EAA4B7D,EAAcC,CAAkB,EAAE,QAAQ,SAAUqE,EAAO,CACrF,OAAOR,EAAsB,IAAIK,EAAaG,CAAK,CACzD,CAAK,EACM,GACR,GAAE,QAAO,EAAG,IAAI,SAAUshN,EAAQ,CACjC,OAAOA,EAAO,iBAClB,CAAG,EAAE,KAAK,GAAG,CACb,CCjEA,SAAShhN,KAAsB,CAC7B,QAAS6tI,EAAO,UAAU,OAAQkiF,EAAe,IAAI,MAAMliF,CAAI,EAAG34F,EAAO,EAAGA,EAAO24F,EAAM34F,IACvF66K,EAAa76K,CAAI,EAAI,UAAUA,CAAI,EAErC,IAAIn2C,EACAoB,EACAC,EACAC,EAAiBC,EACrB,SAASA,EAAkBxB,EAAW,CACpC,IAAIkxN,EAAoBD,EAAa,CAAC,EACpCE,EAAmBF,EAAa,MAAM,CAAC,EACrCn1N,EAASq1N,EAAiB,OAAO,SAAU1vN,EAAgBC,EAAqB,CAClF,OAAOA,EAAoBD,CAAc,CAC/C,EAAOyvN,EAAmB,GACtB,OAAAjxN,EAAcJ,IAAkB/D,CAAM,EACtCuF,EAAWpB,EAAY,MAAM,IAC7BqB,EAAWrB,EAAY,MAAM,IAC7BsB,EAAiBI,EACVA,EAAc3B,CAAS,CAC/B,CACD,SAAS2B,EAAc3B,EAAW,CAChC,IAAI4B,EAAeP,EAASrB,CAAS,EACrC,GAAI4B,EACF,OAAOA,EAET,IAAItB,EAASP,IAAeC,EAAWC,CAAW,EAClD,OAAAqB,EAAStB,EAAWM,CAAM,EACnBA,CACR,CACD,OAAO,UAA6B,CAClC,OAAOiB,EAAeV,IAAO,MAAM,KAAM,SAAS,CAAC,CACvD,CACA,CCpCA,SAASgB,GAAUlE,EAAK,CACtB,IAAImE,EAAc,SAAqB5E,EAAO,CAC5C,OAAOA,EAAMS,CAAG,GAAK,EACzB,EACE,OAAAmE,EAAY,cAAgB,GACrBA,CACT,CCNA,IAAIC,GAAsB,6BACtBC,IAAgB,aAChBC,IAA6B,IAAI,IAAI,CAAC,KAAM,OAAQ,QAAQ,CAAC,EAC7DC,IAAkB,mCAClBC,IAAkB,4HAElBE,IAAc,yDAClB,SAASE,GAASra,EAAO,CACvB,OAAOsa,GAASta,CAAK,GAAK+Z,IAAc,IAAI/Z,CAAK,GAAK8Z,IAAc,KAAK9Z,CAAK,GAAKua,GAAkBva,CAAK,CAC5G,CACA,SAASua,GAAkBva,EAAO,CAChC,OAAOwa,GAAoBxa,EAAO,SAAUya,GAAY,CAC1D,CACA,SAASO,IAAgBhb,EAAO,CAC9B,OAAOwa,GAAoBxa,EAAO,OAAQib,EAAO,CACnD,CACA,SAASC,IAAoBlb,EAAO,CAClC,OAAOwa,GAAoBxa,EAAO,WAAYib,EAAO,CACvD,CACA,SAASiuN,IAAelpO,EAAO,CAC7B,OAAOwa,GAAoBxa,EAAO,MAAOmpO,GAAK,CAChD,CACA,SAASzuN,GAAkB1a,EAAO,CAChC,OAAOwa,GAAoBxa,EAAO,SAAUsa,EAAQ,CACtD,CAKA,SAASA,GAASta,EAAO,CACvB,MAAO,CAAC,OAAO,MAAM,OAAOA,CAAK,CAAC,CACpC,CACA,SAAS4a,IAAU5a,EAAO,CACxB,OAAOA,EAAM,SAAS,GAAG,GAAKsa,GAASta,EAAM,MAAM,EAAG,EAAE,CAAC,CAC3D,CACA,SAAS2a,GAAU3a,EAAO,CACxB,OAAOopO,GAAcppO,CAAK,GAAKwa,GAAoBxa,EAAO,SAAUopO,EAAa,CACnF,CACA,SAASvuN,GAAiB7a,EAAO,CAC/B,OAAO6Z,GAAoB,KAAK7Z,CAAK,CACvC,CACA,SAASwb,IAAQ,CACf,MAAO,EACT,CACA,SAASV,GAAa9a,EAAO,CAC3B,OAAOga,IAAgB,KAAKha,CAAK,CACnC,CACA,SAASsb,IAAkBtb,EAAO,CAChC,OAAOwa,GAAoBxa,EAAO,GAAIub,GAAQ,CAChD,CACA,SAASf,GAAoBxa,EAAOyb,EAAOC,EAAW,CACpD,IAAItD,EAASyB,GAAoB,KAAK7Z,CAAK,EAC3C,OAAIoY,EACEA,EAAO,CAAC,EACHA,EAAO,CAAC,IAAMqD,EAEhBC,EAAUtD,EAAO,CAAC,CAAC,EAErB,EACT,CACA,SAASqC,IAAaza,EAAO,CAC3B,OAAOia,IAAgB,KAAKja,CAAK,CACnC,CACA,SAASib,IAAU,CACjB,MAAO,EACT,CACA,SAASkuN,IAAMnpO,EAAO,CACpB,OAAOA,EAAM,WAAW,MAAM,CAChC,CACA,SAASopO,GAAcppO,EAAO,CAC5B,OAAO,OAAO,UAAU,OAAOA,CAAK,CAAC,CACvC,CACA,SAASub,IAASvb,EAAO,CACvB,OAAOma,IAAY,KAAKna,CAAK,CAC/B,CCvEA,SAAS2b,KAAmB,CAC1B,IAAIC,EAASjC,GAAU,QAAQ,EAC3BkC,EAAUlC,GAAU,SAAS,EAC7BmC,EAAOnC,GAAU,MAAM,EACvBoC,EAAapC,GAAU,YAAY,EACnCqC,EAAcrC,GAAU,aAAa,EACrCsC,EAAetC,GAAU,cAAc,EACvCuC,EAAgBvC,GAAU,eAAe,EACzCwC,EAAcxC,GAAU,aAAa,EACrCyC,EAAWzC,GAAU,UAAU,EAC/B0C,EAAY1C,GAAU,WAAW,EACjC2C,EAAY3C,GAAU,WAAW,EACjC4C,EAAS5C,GAAU,QAAQ,EAC3B6C,EAAM7C,GAAU,KAAK,EACrB8C,EAAqB9C,GAAU,oBAAoB,EACnD+C,EAA6B/C,GAAU,4BAA4B,EACnEgD,EAAQhD,GAAU,OAAO,EACzBiD,EAASjD,GAAU,QAAQ,EAC3BkD,EAAUlD,GAAU,SAAS,EAC7BmD,EAAUnD,GAAU,SAAS,EAC7BoD,EAAWpD,GAAU,UAAU,EAC/BqD,EAAQrD,GAAU,OAAO,EACzBsD,EAAQtD,GAAU,OAAO,EACzBuD,EAAOvD,GAAU,MAAM,EACvBwD,EAAQxD,GAAU,OAAO,EACzByD,EAAYzD,GAAU,WAAW,EACjC0D,EAAgB,UAAyB,CAC3C,MAAO,CAAC,OAAQ,UAAW,MAAM,CACrC,EACMC,EAAc,UAAuB,CACvC,MAAO,CAAC,OAAQ,SAAU,OAAQ,UAAW,QAAQ,CACzD,EACMC,EAAiC,UAA0C,CAC7E,MAAO,CAAC,OAAQ1C,GAAkBgB,CAAO,CAC7C,EACM2B,EAA0B,UAAmC,CAC/D,MAAO,CAAC3C,GAAkBgB,CAAO,CACrC,EACMwtN,EAAqB,UAA8B,CACrD,MAAO,CAAC,GAAIhvN,EAAQ,CACxB,EACMqD,EAAgC,UAAyC,CAC3E,MAAO,CAAC,OAAQpD,GAAUO,EAAgB,CAC9C,EACM8C,EAAe,UAAwB,CACzC,MAAO,CAAC,SAAU,SAAU,OAAQ,cAAe,WAAY,QAAS,eAAgB,YAAa,KAAK,CAC9G,EACMC,EAAgB,UAAyB,CAC3C,MAAO,CAAC,QAAS,SAAU,SAAU,SAAU,MAAM,CACzD,EACMC,EAAgB,UAAyB,CAC3C,MAAO,CAAC,SAAU,WAAY,SAAU,UAAW,SAAU,UAAW,cAAe,aAAc,aAAc,aAAc,aAAc,YAAa,MAAO,aAAc,QAAS,aAAc,cAAc,CAC1N,EACMC,EAAW,UAAoB,CACjC,MAAO,CAAC,QAAS,MAAO,SAAU,UAAW,SAAU,SAAU,SAAS,CAC9E,EACMC,EAAkB,UAA2B,CAC/C,MAAO,CAAC,GAAI,IAAKlD,EAAgB,CACrC,EACMmD,EAAY,UAAqB,CACnC,MAAO,CAAC,OAAQ,QAAS,MAAO,aAAc,OAAQ,OAAQ,QAAS,QAAQ,CACnF,EACMsrN,EAAY,UAAqB,CACnC,MAAO,CAAChvN,GAAUI,EAAiB,CACvC,EACMuD,EAAwB,UAAiC,CAC3D,MAAO,CAAC3D,GAAUO,EAAgB,CACtC,EACE,MAAO,CACL,UAAW,IACX,MAAO,CACL,OAAQ,CAACW,EAAK,EACd,QAAS,CAACnB,EAAQ,EAClB,KAAM,CAAC,OAAQ,GAAIS,GAAcD,EAAgB,EACjD,WAAYyuN,EAAW,EACvB,YAAa,CAAC1tN,CAAM,EACpB,aAAc,CAAC,OAAQ,GAAI,OAAQd,GAAcD,EAAgB,EACjE,cAAe2C,EAAyB,EACxC,YAAa6rN,EAAoB,EACjC,SAAUC,EAAW,EACrB,UAAWvrN,EAAiB,EAC5B,UAAWE,EAAuB,EAClC,OAAQF,EAAiB,EACzB,IAAKP,EAAyB,EAC9B,mBAAoB,CAAC5B,CAAM,EAC3B,2BAA4B,CAAChB,IAAWL,EAAiB,EACzD,MAAOgD,EAAgC,EACvC,OAAQA,EAAgC,EACxC,QAAS+rN,EAAW,EACpB,QAAS9rN,EAAyB,EAClC,SAAU8rN,EAAW,EACrB,MAAOA,EAAW,EAClB,MAAOvrN,EAAiB,EACxB,KAAME,EAAuB,EAC7B,MAAOT,EAAyB,EAChC,UAAWA,EAAyB,CACrC,EACD,YAAa,CAMX,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,SAAU,QAAS3C,EAAgB,CAC5D,CAAO,EAKD,UAAW,CAAC,WAAW,EAKvB,QAAS,CAAC,CACR,QAAS,CAACC,EAAY,CAC9B,CAAO,EAKD,cAAe,CAAC,CACd,cAAekD,EAAW,CAClC,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgBA,EAAW,CACnC,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQ,QAAS,aAAc,cAAc,CACtE,CAAO,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,QAAS,OAAO,CAC3C,CAAO,EAKD,IAAK,CAAC,CACJ,IAAK,CAAC,SAAU,SAAS,CACjC,CAAO,EAKD,QAAS,CAAC,QAAS,eAAgB,SAAU,OAAQ,cAAe,QAAS,eAAgB,gBAAiB,aAAc,eAAgB,qBAAsB,qBAAsB,qBAAsB,kBAAmB,YAAa,YAAa,OAAQ,cAAe,WAAY,YAAa,QAAQ,EAKnT,MAAS,CAAC,CACR,MAAS,CAAC,QAAS,OAAQ,MAAM,CACzC,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,OAAQ,QAAS,OAAQ,MAAM,CAC/C,CAAO,EAKD,UAAW,CAAC,UAAW,gBAAgB,EAKvC,aAAc,CAAC,CACb,OAAQ,CAAC,UAAW,QAAS,OAAQ,OAAQ,YAAY,CACjE,CAAO,EAKD,kBAAmB,CAAC,CAClB,OAAQ,CAAE,EAAC,OAAOL,EAAY,EAAI,CAAC9C,EAAgB,CAAC,CAC5D,CAAO,EAKD,SAAU,CAAC,CACT,SAAUyC,EAAa,CAC/B,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAa,CACnC,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAa,CACnC,CAAO,EAKD,WAAY,CAAC,CACX,WAAYD,EAAe,CACnC,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgBA,EAAe,CACvC,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgBA,EAAe,CACvC,CAAO,EAKD,SAAU,CAAC,SAAU,QAAS,WAAY,WAAY,QAAQ,EAK9D,MAAO,CAAC,CACN,MAAO,CAACV,CAAK,CACrB,CAAO,EAKD,UAAW,CAAC,CACV,UAAW,CAACA,CAAK,CACzB,CAAO,EAKD,UAAW,CAAC,CACV,UAAW,CAACA,CAAK,CACzB,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAACA,CAAK,CACrB,CAAO,EAKD,IAAK,CAAC,CACJ,IAAK,CAACA,CAAK,CACnB,CAAO,EAKD,IAAK,CAAC,CACJ,IAAK,CAACA,CAAK,CACnB,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAACA,CAAK,CACrB,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQ,CAACA,CAAK,CACtB,CAAO,EAKD,KAAM,CAAC,CACL,KAAM,CAACA,CAAK,CACpB,CAAO,EAKD,WAAY,CAAC,UAAW,YAAa,UAAU,EAK/C,EAAG,CAAC,CACF,EAAG,CAAC,OAAQhC,EAAS,CAC7B,CAAO,EAMD,MAAO,CAAC,CACN,MAAO4C,EAAgC,CAC/C,CAAO,EAKD,iBAAkB,CAAC,CACjB,KAAM,CAAC,MAAO,cAAe,MAAO,aAAa,CACzD,CAAO,EAKD,YAAa,CAAC,CACZ,KAAM,CAAC,OAAQ,eAAgB,QAAQ,CAC/C,CAAO,EAKD,KAAM,CAAC,CACL,KAAM,CAAC,IAAK,OAAQ,UAAW,OAAQ1C,EAAgB,CAC/D,CAAO,EAKD,KAAM,CAAC,CACL,KAAMkD,EAAiB,CAC/B,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQA,EAAiB,CACjC,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,QAAS,OAAQ,OAAQpD,EAAS,CAClD,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAACa,EAAK,CAC3B,CAAO,EAKD,gBAAiB,CAAC,CAChB,IAAK,CAAC,OAAQ,CACZ,KAAM,CAAC,OAAQb,EAAS,CACzB,EAAEE,EAAgB,CAC3B,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa6C,EAA+B,CACpD,CAAO,EAKD,UAAW,CAAC,CACV,UAAWA,EAA+B,CAClD,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAAClC,EAAK,CAC3B,CAAO,EAKD,gBAAiB,CAAC,CAChB,IAAK,CAAC,OAAQ,CACZ,KAAM,CAACb,EAAS,CACjB,EAAEE,EAAgB,CAC3B,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa6C,EAA+B,CACpD,CAAO,EAKD,UAAW,CAAC,CACV,UAAWA,EAA+B,CAClD,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,MAAO,MAAO,QAAS,YAAa,WAAW,CACrE,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,OAAQ,MAAO,MAAO,KAAM7C,EAAgB,CAClE,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,OAAQ,MAAO,MAAO,KAAMA,EAAgB,CAClE,CAAO,EAKD,IAAK,CAAC,CACJ,IAAK,CAAC2B,CAAG,CACjB,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAACA,CAAG,CACrB,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAACA,CAAG,CACrB,CAAO,EAKD,kBAAmB,CAAC,CAClB,QAAS,CAAC,QAAQ,EAAE,OAAOsB,EAAQ,CAAE,CAC7C,CAAO,EAKD,gBAAiB,CAAC,CAChB,gBAAiB,CAAC,QAAS,MAAO,SAAU,SAAS,CAC7D,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQ,QAAS,MAAO,SAAU,SAAS,CACpE,CAAO,EAKD,gBAAiB,CAAC,CAChB,QAAS,CAAC,QAAQ,EAAE,OAAOA,EAAU,EAAE,CAAC,UAAU,CAAC,CAC3D,CAAO,EAKD,cAAe,CAAC,CACd,MAAO,CAAC,QAAS,MAAO,SAAU,WAAY,SAAS,CAC/D,CAAO,EAKD,aAAc,CAAC,CACb,KAAM,CAAC,OAAQ,QAAS,MAAO,SAAU,UAAW,UAAU,CACtE,CAAO,EAKD,gBAAiB,CAAC,CAChB,gBAAiB,CAAE,EAAC,OAAOA,EAAQ,EAAI,CAAC,UAAU,CAAC,CAC3D,CAAO,EAKD,cAAe,CAAC,CACd,cAAe,CAAC,QAAS,MAAO,SAAU,WAAY,SAAS,CACvE,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAAC,OAAQ,QAAS,MAAO,SAAU,SAAS,CAClE,CAAO,EAMD,EAAG,CAAC,CACF,EAAG,CAAChB,CAAO,CACnB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAO,CACpB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAO,CACpB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAO,CACpB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAO,CACpB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAO,CACpB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAO,CACpB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAO,CACpB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAO,CACpB,CAAO,EAKD,EAAG,CAAC,CACF,EAAG,CAACF,CAAM,CAClB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAM,CACnB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAM,CACnB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAM,CACnB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAM,CACnB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAM,CACnB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAM,CACnB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAM,CACnB,CAAO,EAKD,GAAI,CAAC,CACH,GAAI,CAACA,CAAM,CACnB,CAAO,EAKD,UAAW,CAAC,CACV,UAAW,CAACO,CAAK,CACzB,CAAO,EAKD,kBAAmB,CAAC,iBAAiB,EAKrC,UAAW,CAAC,CACV,UAAW,CAACA,CAAK,CACzB,CAAO,EAKD,kBAAmB,CAAC,iBAAiB,EAMrC,EAAG,CAAC,CACF,EAAG,CAAC,OAAQ,MAAO,MAAO,MAAOtC,GAAkBgB,CAAO,CAClE,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,MAAO,MAAO,MAAOhB,GAAkBR,EAAQ,CACjE,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,IAAK,OAAQ,OAAQ,MAAO,MAAO,MAAO,QAAS,CAC3D,OAAQ,CAACS,EAAY,CAC/B,EAAWA,GAAcD,EAAgB,CACzC,CAAO,EAKD,EAAG,CAAC,CACF,EAAG,CAACA,GAAkBgB,EAAS,OAAQ,MAAO,MAAO,KAAK,CAClE,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,MAAO,MAAO,MAAOhB,GAAkBR,EAAQ,CACjE,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAACQ,GAAkBgB,EAAS,MAAO,MAAO,KAAK,CAChE,CAAO,EAMD,YAAa,CAAC,CACZ,KAAM,CAAC,OAAQf,GAAcP,EAAiB,CACtD,CAAO,EAKD,iBAAkB,CAAC,cAAe,sBAAsB,EAKxD,aAAc,CAAC,SAAU,YAAY,EAKrC,cAAe,CAAC,CACd,KAAM,CAAC,OAAQ,aAAc,QAAS,SAAU,SAAU,WAAY,OAAQ,YAAa,QAASG,EAAiB,CAC7H,CAAO,EAKD,cAAe,CAAC,CACd,KAAM,CAACc,EAAK,CACpB,CAAO,EAKD,aAAc,CAAC,aAAa,EAK5B,cAAe,CAAC,SAAS,EAKzB,mBAAoB,CAAC,cAAc,EAKnC,aAAc,CAAC,cAAe,eAAe,EAK7C,cAAe,CAAC,oBAAqB,cAAc,EAKnD,eAAgB,CAAC,qBAAsB,kBAAkB,EAKzD,SAAU,CAAC,CACT,SAAU,CAAC,UAAW,QAAS,SAAU,OAAQ,QAAS,SAAUX,EAAgB,CAC5F,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAAC,OAAQP,GAAUI,EAAiB,CAC1D,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,OAAQ,QAAS,OAAQ,SAAU,UAAW,QAASG,GAAkBR,EAAQ,CACnG,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAAC,OAAQQ,EAAgB,CAC/C,CAAO,EAKD,kBAAmB,CAAC,CAClB,KAAM,CAAC,OAAQ,OAAQ,UAAWA,EAAgB,CAC1D,CAAO,EAKD,sBAAuB,CAAC,CACtB,KAAM,CAAC,SAAU,SAAS,CAClC,CAAO,EAMD,oBAAqB,CAAC,CACpB,YAAa,CAACe,CAAM,CAC5B,CAAO,EAKD,sBAAuB,CAAC,CACtB,sBAAuB,CAACiB,CAAO,CACvC,CAAO,EAKD,iBAAkB,CAAC,CACjB,KAAM,CAAC,OAAQ,SAAU,QAAS,UAAW,QAAS,KAAK,CACnE,CAAO,EAKD,aAAc,CAAC,CACb,KAAM,CAACjB,CAAM,CACrB,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgB,CAACiB,CAAO,CAChC,CAAO,EAKD,kBAAmB,CAAC,YAAa,WAAY,eAAgB,cAAc,EAK3E,wBAAyB,CAAC,CACxB,WAAY,CAAE,EAAC,OAAOe,EAAa,EAAI,CAAC,MAAM,CAAC,CACvD,CAAO,EAKD,4BAA6B,CAAC,CAC5B,WAAY,CAAC,OAAQ,YAAavD,EAAQ,CAClD,CAAO,EAKD,mBAAoB,CAAC,CACnB,mBAAoB,CAAC,OAAQQ,GAAkBR,EAAQ,CAC/D,CAAO,EAKD,wBAAyB,CAAC,CACxB,WAAY,CAACuB,CAAM,CAC3B,CAAO,EAKD,iBAAkB,CAAC,YAAa,YAAa,aAAc,aAAa,EAKxE,gBAAiB,CAAC,WAAY,gBAAiB,WAAW,EAK1D,OAAQ,CAAC,CACP,OAAQ4B,EAAyB,CACzC,CAAO,EAKD,iBAAkB,CAAC,CACjB,MAAO,CAAC,WAAY,MAAO,SAAU,SAAU,WAAY,cAAe,MAAO,QAAS3C,EAAgB,CAClH,CAAO,EAKD,WAAY,CAAC,CACX,WAAY,CAAC,SAAU,SAAU,MAAO,WAAY,WAAY,cAAc,CACtF,CAAO,EAKD,MAAS,CAAC,CACR,MAAS,CAAC,SAAU,QAAS,MAAO,MAAM,CAClD,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,OAAQ,SAAU,MAAM,CAC1C,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,OAAQA,EAAgB,CAC1C,CAAO,EAMD,gBAAiB,CAAC,CAChB,GAAI,CAAC,QAAS,QAAS,QAAQ,CACvC,CAAO,EAKD,UAAW,CAAC,CACV,UAAW,CAAC,SAAU,UAAW,UAAW,MAAM,CAC1D,CAAO,EAMD,aAAc,CAAC,CACb,aAAc,CAACgC,CAAO,CAC9B,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,SAAU,UAAW,SAAS,CACpD,CAAO,EAKD,cAAe,CAAC,CACd,GAAI,CAAE,EAAC,OAAOc,EAAY,EAAI,CAACzC,GAAmB,CAAC,CAC3D,CAAO,EAKD,YAAa,CAAC,CACZ,GAAI,CAAC,YAAa,CAChB,OAAQ,CAAC,GAAI,IAAK,IAAK,QAAS,OAAO,CACjD,CAAS,CACT,CAAO,EAKD,UAAW,CAAC,CACV,GAAI,CAAC,OAAQ,QAAS,UAAWF,GAAe,CACxD,CAAO,EAKD,WAAY,CAAC,CACX,GAAI,CAAC,OAAQ,CACX,cAAe,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAI,CAC3D,EAAEkuN,GAAc,CACzB,CAAO,EAKD,WAAY,CAAC,CACX,GAAI,CAACttN,CAAM,CACnB,CAAO,EAKD,oBAAqB,CAAC,CACpB,KAAM,CAACc,CAA0B,CACzC,CAAO,EAKD,mBAAoB,CAAC,CACnB,IAAK,CAACA,CAA0B,CACxC,CAAO,EAKD,kBAAmB,CAAC,CAClB,GAAI,CAACA,CAA0B,CACvC,CAAO,EAKD,gBAAiB,CAAC,CAChB,KAAM,CAACD,CAAkB,CACjC,CAAO,EAKD,eAAgB,CAAC,CACf,IAAK,CAACA,CAAkB,CAChC,CAAO,EAKD,cAAe,CAAC,CACd,GAAI,CAACA,CAAkB,CAC/B,CAAO,EAMD,QAAS,CAAC,CACR,QAAS,CAACR,CAAY,CAC9B,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAACA,CAAY,CAClC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAACA,CAAY,CAClC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAACA,CAAY,CAClC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAACA,CAAY,CAClC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAACA,CAAY,CAClC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAACA,CAAY,CAClC,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAACA,CAAY,CACnC,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAACA,CAAY,CACnC,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAACA,CAAY,CACnC,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAACA,CAAY,CACnC,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAACA,CAAY,CACnC,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAACA,CAAY,CACnC,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAACA,CAAY,CACnC,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAACA,CAAY,CACnC,CAAO,EAKD,WAAY,CAAC,CACX,OAAQ,CAACE,CAAW,CAC5B,CAAO,EAKD,aAAc,CAAC,CACb,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,aAAc,CAAC,CACb,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,aAAc,CAAC,CACb,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,aAAc,CAAC,CACb,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,aAAc,CAAC,CACb,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,aAAc,CAAC,CACb,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,aAAc,CAAC,CACb,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,aAAc,CAAC,CACb,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAACU,CAAO,CAClC,CAAO,EAKD,eAAgB,CAAC,CACf,OAAQ,CAAE,EAAC,OAAOe,EAAa,EAAI,CAAC,QAAQ,CAAC,CACrD,CAAO,EAKD,WAAY,CAAC,CACX,WAAY,CAACzB,CAAW,CAChC,CAAO,EAKD,mBAAoB,CAAC,kBAAkB,EAKvC,WAAY,CAAC,CACX,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,mBAAoB,CAAC,kBAAkB,EAKvC,iBAAkB,CAAC,CACjB,iBAAkB,CAACU,CAAO,CAClC,CAAO,EAKD,eAAgB,CAAC,CACf,OAAQe,EAAe,CAC/B,CAAO,EAKD,eAAgB,CAAC,CACf,OAAQ,CAAC5B,CAAW,CAC5B,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAY,CAACA,CAAW,CAChC,CAAO,EAKD,eAAgB,CAAC,CACf,OAAQ,CAACA,CAAW,CAC5B,CAAO,EAKD,gBAAiB,CAAC,CAChB,QAAS,CAAC,EAAE,EAAE,OAAO4B,EAAa,CAAE,CAC5C,CAAO,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC/C,GAAkBR,EAAQ,CACrD,CAAO,EAKD,YAAa,CAAC,CACZ,QAAS,CAACA,EAAQ,CAC1B,CAAO,EAKD,gBAAiB,CAAC,CAChB,QAAS,CAACuB,CAAM,CACxB,CAAO,EAKD,SAAU,CAAC,CACT,KAAMytN,EAAoB,CAClC,CAAO,EAKD,eAAgB,CAAC,YAAY,EAK7B,aAAc,CAAC,CACb,KAAM,CAACztN,CAAM,CACrB,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgB,CAACiB,CAAO,CAChC,CAAO,EAKD,gBAAiB,CAAC,CAChB,cAAe,CAACxC,EAAQ,CAChC,CAAO,EAKD,oBAAqB,CAAC,CACpB,cAAe,CAACuB,CAAM,CAC9B,CAAO,EAMD,OAAQ,CAAC,CACP,OAAQ,CAAC,GAAI,QAAS,OAAQd,GAAcQ,GAAiB,CACrE,CAAO,EAKD,eAAgB,CAAC,CACf,OAAQ,CAACE,EAAK,CACtB,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAACqB,CAAO,CACzB,CAAO,EAKD,YAAa,CAAC,CACZ,YAAagB,EAAe,CACpC,CAAO,EAKD,WAAY,CAAC,CACX,WAAYA,EAAe,CACnC,CAAO,EAOD,OAAQ,CAAC,CACP,OAAQ,CAAC,GAAI,MAAM,CAC3B,CAAO,EAKD,KAAM,CAAC,CACL,KAAM,CAAC/B,CAAI,CACnB,CAAO,EAKD,WAAY,CAAC,CACX,WAAY,CAACC,CAAU,CAC/B,CAAO,EAKD,SAAU,CAAC,CACT,SAAU,CAACK,CAAQ,CAC3B,CAAO,EAKD,cAAe,CAAC,CACd,cAAe,CAAC,GAAI,OAAQtB,GAAcD,EAAgB,CAClE,CAAO,EAKD,UAAW,CAAC,CACV,UAAW,CAACwB,CAAS,CAC7B,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAACC,CAAS,CAChC,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQ,CAACC,CAAM,CACvB,CAAO,EAKD,SAAU,CAAC,CACT,SAAU,CAACQ,CAAQ,CAC3B,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAACE,CAAK,CACrB,CAAO,EAMD,kBAAmB,CAAC,CAClB,kBAAmB,CAAC,GAAI,MAAM,CACtC,CAAO,EAKD,gBAAiB,CAAC,CAChB,gBAAiB,CAACnB,CAAI,CAC9B,CAAO,EAKD,sBAAuB,CAAC,CACtB,sBAAuB,CAACC,CAAU,CAC1C,CAAO,EAKD,oBAAqB,CAAC,CACpB,oBAAqB,CAACK,CAAQ,CACtC,CAAO,EAKD,qBAAsB,CAAC,CACrB,qBAAsB,CAACC,CAAS,CACxC,CAAO,EAKD,sBAAuB,CAAC,CACtB,sBAAuB,CAACC,CAAS,CACzC,CAAO,EAKD,kBAAmB,CAAC,CAClB,kBAAmB,CAACC,CAAM,CAClC,CAAO,EAKD,mBAAoB,CAAC,CACnB,mBAAoB,CAACM,CAAO,CACpC,CAAO,EAKD,oBAAqB,CAAC,CACpB,oBAAqB,CAACE,CAAQ,CACtC,CAAO,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAACE,CAAK,CAChC,CAAO,EAMD,kBAAmB,CAAC,CAClB,OAAQ,CAAC,WAAY,UAAU,CACvC,CAAO,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAACf,CAAa,CACxC,CAAO,EAKD,mBAAoB,CAAC,CACnB,mBAAoB,CAACA,CAAa,CAC1C,CAAO,EAKD,mBAAoB,CAAC,CACnB,mBAAoB,CAACA,CAAa,CAC1C,CAAO,EAKD,eAAgB,CAAC,CACf,MAAO,CAAC,OAAQ,OAAO,CAC/B,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,MAAO,QAAQ,CACjC,CAAO,EAMD,WAAY,CAAC,CACX,WAAY,CAAC,OAAQ,MAAO,GAAI,SAAU,UAAW,SAAU,YAAarB,EAAgB,CACpG,CAAO,EAKD,SAAU,CAAC,CACT,SAAUoD,EAAuB,CACzC,CAAO,EAKD,KAAM,CAAC,CACL,KAAM,CAAC,SAAU,KAAM,MAAO,SAAUpD,EAAgB,CAChE,CAAO,EAKD,MAAO,CAAC,CACN,MAAOoD,EAAuB,CACtC,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,OAAQ,OAAQ,OAAQ,QAAS,SAAUpD,EAAgB,CAC7E,CAAO,EAMD,UAAW,CAAC,CACV,UAAW,CAAC,GAAI,MAAO,MAAM,CACrC,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAACmC,CAAK,CACrB,CAAO,EAKD,UAAW,CAAC,CACV,UAAW,CAACA,CAAK,CACzB,CAAO,EAKD,UAAW,CAAC,CACV,UAAW,CAACA,CAAK,CACzB,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQ,CAACrC,GAAWE,EAAgB,CAC5C,CAAO,EAKD,cAAe,CAAC,CACd,cAAe,CAACuC,CAAS,CACjC,CAAO,EAKD,cAAe,CAAC,CACd,cAAe,CAACA,CAAS,CACjC,CAAO,EAKD,SAAU,CAAC,CACT,SAAU,CAACF,CAAI,CACvB,CAAO,EAKD,SAAU,CAAC,CACT,SAAU,CAACA,CAAI,CACvB,CAAO,EAKD,mBAAoB,CAAC,CACnB,OAAQ,CAAC,SAAU,MAAO,YAAa,QAAS,eAAgB,SAAU,cAAe,OAAQ,WAAYrC,EAAgB,CACrI,CAAO,EAMD,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQe,CAAM,CAC/B,CAAO,EAKD,WAAY,CAAC,iBAAiB,EAK9B,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,UAAW,UAAW,OAAQ,OAAQ,OAAQ,OAAQ,cAAe,OAAQ,eAAgB,WAAY,OAAQ,YAAa,gBAAiB,QAAS,OAAQ,UAAW,OAAQ,WAAY,aAAc,aAAc,aAAc,WAAY,WAAY,WAAY,WAAY,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,cAAe,cAAe,UAAW,WAAYf,EAAgB,CACrc,CAAO,EAKD,cAAe,CAAC,CACd,MAAO,CAACe,CAAM,CACtB,CAAO,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,OAAQ,MAAM,CACzC,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,IAAK,IAAK,EAAE,CACrC,CAAO,EAKD,kBAAmB,CAAC,CAClB,OAAQ,CAAC,OAAQ,QAAQ,CACjC,CAAO,EAKD,WAAY,CAAC,CACX,WAAY4B,EAAyB,CAC7C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,WAAY,CAAC,CACX,WAAYA,EAAyB,CAC7C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAyB,CAC9C,CAAO,EAKD,aAAc,CAAC,CACb,KAAM,CAAC,QAAS,MAAO,SAAU,YAAY,CACrD,CAAO,EAKD,YAAa,CAAC,CACZ,KAAM,CAAC,SAAU,QAAQ,CACjC,CAAO,EAKD,YAAa,CAAC,CACZ,KAAM,CAAC,OAAQ,IAAK,IAAK,MAAM,CACvC,CAAO,EAKD,kBAAmB,CAAC,CAClB,KAAM,CAAC,YAAa,WAAW,CACvC,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,OAAQ,OAAQ,aAAc,eAAgB,CACpD,IAAK,CAAC,IAAK,OAAQ,QAAS,IAAK,KAAM,MAAM,CACvD,CAAS,CACT,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,OAAQ,MAAO,MAAM,CAC9C,CAAO,EAKD,cAAe,CAAC,CACd,cAAe,CAAC,OAAQ,SAAU,WAAY,YAAa3C,EAAgB,CACnF,CAAO,EAMD,KAAM,CAAC,CACL,KAAM,CAACe,EAAQ,MAAM,CAC7B,CAAO,EAKD,WAAY,CAAC,CACX,OAAQ,CAACvB,GAAUK,EAAiB,CAC5C,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQ,CAACkB,EAAQ,MAAM,CAC/B,CAAO,EAMD,GAAI,CAAC,UAAW,aAAa,CAC9B,EACD,uBAAwB,CACtB,SAAU,CAAC,aAAc,YAAY,EACrC,WAAY,CAAC,eAAgB,cAAc,EAC3C,MAAO,CAAC,UAAW,UAAW,QAAS,MAAO,MAAO,QAAS,SAAU,MAAM,EAC9E,UAAW,CAAC,QAAS,MAAM,EAC3B,UAAW,CAAC,MAAO,QAAQ,EAC3B,KAAM,CAAC,QAAS,OAAQ,QAAQ,EAChC,IAAK,CAAC,QAAS,OAAO,EACtB,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAClD,GAAI,CAAC,KAAM,IAAI,EACf,GAAI,CAAC,KAAM,IAAI,EACf,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAClD,GAAI,CAAC,KAAM,IAAI,EACf,GAAI,CAAC,KAAM,IAAI,EACf,YAAa,CAAC,SAAS,EACvB,aAAc,CAAC,cAAe,mBAAoB,aAAc,cAAe,cAAc,EAC7F,cAAe,CAAC,YAAY,EAC5B,mBAAoB,CAAC,YAAY,EACjC,aAAc,CAAC,YAAY,EAC3B,cAAe,CAAC,YAAY,EAC5B,eAAgB,CAAC,YAAY,EAC7B,QAAS,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,YAAY,EACtM,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,iBAAkB,CAAC,mBAAoB,kBAAkB,EACzD,WAAY,CAAC,aAAc,aAAc,aAAc,aAAc,aAAc,YAAY,EAC/F,aAAc,CAAC,aAAc,YAAY,EACzC,aAAc,CAAC,aAAc,YAAY,EACzC,eAAgB,CAAC,iBAAkB,iBAAkB,iBAAkB,gBAAgB,EACvF,iBAAkB,CAAC,iBAAkB,gBAAgB,EACrD,iBAAkB,CAAC,iBAAkB,gBAAgB,EACrD,WAAY,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,WAAW,EACnH,YAAa,CAAC,YAAa,WAAW,EACtC,YAAa,CAAC,YAAa,WAAW,EACtC,WAAY,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,WAAW,EACnH,YAAa,CAAC,YAAa,WAAW,EACtC,YAAa,CAAC,YAAa,WAAW,CACvC,EACD,+BAAgC,CAC9B,YAAa,CAAC,SAAS,CACxB,CACL,CACA,CCl/DA,IAAIsC,IAAuBlF,IAAoB2C,GAAgB,ECAxD,SAASwC,MAAMC,EAAsB,CACnCF,WAAQzK,IAAK2K,CAAM,CAAC,CAC7B,CAEgBmrN,YAAWp5K,EAAeq5K,EAAwB,CAC5Dr5K,SAAOv0B,OAAS,EACXu0B,EAAOltD,IAAeub,KAAA,KAAA1e,SAAuB,MAAGoyD,EAAMK,OAAO,GAA/BL,EAAMK,OAA6B,CAAC,EAEpEi3K,CACT,CAEA,eAAsBC,KAAY,CAGhC,OADa,MADI,MAAM3kB,MAAM,mCAAmC,GACpCC,QAChB2kB,EACd,CCPA,MAAMC,IAAqBA,CAAC,CAAEC,WAAUC,UAAS,IAAM,CAC/C,MAAE1iF,OAAMzxK,KAAMyzK,GAAe,EAC7B,CAAC2gF,EAAYC,CAAa,EAAIz4M,WAAS,EAAK,EAC5C,CAAC04M,EAAYC,CAAa,EAAI34M,WAAS,EAAK,EAE5C44M,EAAeA,IAAM,CAKzBN,EAJ2B,CACzBO,oBAAqBL,EACrBM,iCAAkCJ,EAET,GAG7B,SACGxiL,GAAW,CAAC77C,KAAW7L,WACrBuoD,GAAkB,CAAC11C,UAAU,mCAAkC7S,UAC9Dwe,EAAA,OAAK3L,UAAU,sBAAqB7S,WAClC,MAAI6S,UAAU,yBAAwB7S,SACnCpqB,EAAE,0BAA0B,EAC3B,EACD,EACL8oC,EAAA,OAAK7L,UAAU,yBAAwB7S,SAAA,CACrCwe,EAACmD,GAAQ,CACP9O,UAAU,OACV0P,QAASynN,EACThoN,gBAAiBioN,EAClB,EACDzrN,EAAC6kD,GAAK,CAACxwD,UAAU,qCAAoC7S,SAClDqnJ,EAAKm+D,WAAa,OACjB,QAAM3yM,UAAU,qCAAoC7S,UAClDwe,EAAA,KACE3L,UAAU,2BACV65I,KAAK,8CACLpkJ,OAAQ,SAAStI,SAClB,mBAEE,GAEL,8BAAM,GACJqnJ,EAAKm+D,WAAa,OACpB,QAAM3yM,UAAU,qCAAoC7S,SAAC,uBAC/B,MACpB,KACE0sJ,KAAK,8CACL75I,UAAU,2BACVvK,OAAQ,SAAStI,SAClB,oBAEE,CAAC,EACA,EAEN0e,EAAA,QAAM7L,UAAU,qCAAoC7S,SAAC,8BACxB,MAC3B,KACE0sJ,KAAK,8CACL75I,UAAU,2BACVvK,OAAQ,SAAStI,SAClB,wBAEE,CAAC,EACA,EAEH,CAAC,EACL,EACL0e,EAAA,OAAK7L,UAAU,yBAAwB7S,SAAA,CACrCwe,EAACmD,GAAQ,CACP9O,UAAU,OACV0P,QAAS2nN,EACTloN,gBAAiBmoN,EAClB,EACD3rN,EAAC6kD,GAAK,CAACxwD,UAAU,qCAAoC7S,SAClDqnJ,EAAKm+D,WAAa,OACjB,QAAM3yM,UAAU,qCAAoC7S,UAClDwe,EAAA,KACE3L,UAAU,2BACV65I,KAAK,yCACLpkJ,OAAQ,SAAStI,SAClB,+BAEE,GAEL,cAAM,GACJqnJ,EAAKm+D,WAAa,OACpB,QAAM3yM,UAAU,qCAAoC7S,SAAC,cACxC,MACX,KACE6S,UAAU,2BACV65I,KAAK,yCACLpkJ,OAAQ,SAAStI,SAClB,uCAEE,CAAC,EACA,EAEN0e,EAAA,QAAM7L,UAAU,qCAAoC7S,SAAC,iBACrC,MACd,KACE6S,UAAU,2BACV65I,KAAK,yCACLpkJ,OAAQ,SAAStI,SAClB,iCAEE,CAAC,EACA,EAEH,CAAC,EACL,EACL0e,EAAA,OAAK7L,UAAU,8BAA6B7S,SAAA,CAC1Cwe,EAAC8B,GAAM,CAACnB,QAAQ,gBAAgBylD,QAASmlK,EAAS/pO,SAC/CpqB,EAAE,2BAA2B,EACxB,EACR4oC,EAAC8B,GAAM,CAACskD,QAASwlK,EAAc1+N,SAAU,CAACs+N,EAAWhqO,SAClDpqB,EAAE,2BAA2B,EACxB,CAAC,EACN,CAAC,EACY,EACT,CAEjB,EC1HA,IAAIuyP,GAAc,GAIX,SAASoC,IAAoBn4K,EAAO,CACzC,OAAO,IAAI4N,QAAQ,CAAC4qF,EAASqqB,IAAW,CAClCkzD,KAOUA,GAAA,GACdM,GAAkB,EAAI,EACC79E,MAASqqB,EAAQ7iH,EAAMt+C,MAAM,GACrD,CACH,CAGA,SAAS02N,IAAuB5/E,EAASqqB,EAAQw1D,EAAgB,CAC/D,MAAMC,EAAYC,MACZruL,EAAO19C,GAAW8rO,CAAS,EAE5Br3K,WACFw2K,IAAkB,CACjBC,YACEM,IAAa9tL,EAAMouL,EAAW9/E,EAASqqB,EAAQw1D,EAAgBhqK,CAAO,EAExEspK,SAAUA,IAAMa,IAAatuL,EAAMouL,CAAS,CAC7C,EACH,CACF,CAGA,SAASN,IACP9tL,EACAouL,EACA9/E,EACAqqB,EACAw1D,EACAhqK,EACA,CACAoqK,GAAavuL,EAAMouL,CAAS,EAClBf,IAAA,EAAE7mK,KAAa8mK,GAAA,CACvB5tI,GACG8uI,KAAK,kCAAmC,CACvCT,oBAAqB5pK,EAAQ4pK,oBAC7BC,iCACE7pK,EAAQ6pK,iCACVV,KACD,EACA9mK,KAAc8nH,GAAA,CACbg6B,aAAaM,QAAQ,QAASt6B,EAAIp4J,KAAKu4M,SAAStgL,UAAU,CAAC,CAAC,EACpDuxC,KAASyuI,CAAc,CAAC,EACnBlC,KACbl9K,OAAOqrC,SAASs0I,QAAO,CACxB,EACAC,MAAiB74K,GAAA,CACRA,cAAM,kCAAmCA,CAAK,EACtD6iH,EAAO7iH,CAAK,EACb,EACJ,CACH,CAGA,SAASw4K,IAAatuL,EAAMouL,EAAW,CACrCG,GAAavuL,EAAMouL,CAAS,EAC5Br/K,OAAOqrC,SAASg2D,KAAO,QACzB,CAGA,SAASm+E,GAAavuL,EAAMouL,EAAW,CACrCpuL,EAAK4uL,QAAQ,EACJ1zM,cAAK2zM,YAAYT,CAAS,EACrBvC,GAAA,GACdM,GAAkB,EAAK,EACVF,IACf,CAGA,SAASoC,KAAqB,CACtBD,QAAYnzM,SAASxkB,cAAc,KAAK,EAC9C23N,SAAU5nP,GAAK,uBACN00C,cAAK4zM,YAAYV,CAAS,EAC5BA,CACT,CC3FA,MAAMW,IAA0B/C,GAAkB,CAChDA,EAAc,aAAa,SAAS,IACjCv8C,GAAaA,EACb35H,GAAU,CACT,KAAM,CAAE,OAAA6iG,CAAQ,EAAG7iG,EAAM,UAAY,GACrC,GAAI6iG,IAAW,IAAK,CAClB,GAAI,aAAa,QAAQ,OAAO,EAC9B,OAAOs1E,IAAoBn4K,CAAK,EAEhC,OAAO,SAAS,KAAO,QAE1B,CACD,OAAO,QAAQ,OAAOA,CAAK,CAC5B,CACL,CACA,sBCfAsE,GAAiB,SAAcpnB,EAAI0gI,EAAS,CAC1C,OAAO,UAAgB,CAErB,QADI1rK,EAAO,IAAI,MAAM,UAAU,MAAM,EAC5BtF,EAAI,EAAGA,EAAIsF,EAAK,OAAQtF,IAC/BsF,EAAKtF,CAAC,EAAI,UAAUA,CAAC,EAEvB,OAAOswC,EAAG,MAAM0gI,EAAS1rK,CAAI,CACjC,CACA,ECRIoyD,IAAOl+E,GAIPq/C,GAAW,OAAO,UAAU,SAG5ByzM,GAAU,SAASj1N,EAAO,CAE5B,OAAO,SAASk1N,EAAO,CACrB,IAAIzrE,EAAMjoI,GAAS,KAAK0zM,CAAK,EAC7B,OAAOl1N,EAAMypJ,CAAG,IAAMzpJ,EAAMypJ,CAAG,EAAIA,EAAI,MAAM,EAAG,EAAE,EAAE,YAAa,EACrE,CACA,EAAG,OAAO,OAAO,IAAI,CAAC,EAEtB,SAAS0rE,GAAW3nO,EAAM,CACxB,OAAAA,EAAOA,EAAK,cACL,SAAkB0nO,EAAO,CAC9B,OAAOD,GAAOC,CAAK,IAAM1nO,CAC7B,CACA,CAQA,SAASymD,GAAQyB,EAAK,CACpB,OAAO,MAAM,QAAQA,CAAG,CAC1B,CAQA,SAASD,GAAYC,EAAK,CACxB,OAAO,OAAOA,EAAQ,GACxB,CAQA,SAAS0/K,IAAS1/K,EAAK,CACrB,OAAOA,IAAQ,MAAQ,CAACD,GAAYC,CAAG,GAAKA,EAAI,cAAgB,MAAQ,CAACD,GAAYC,EAAI,WAAW,GAC/F,OAAOA,EAAI,YAAY,UAAa,YAAcA,EAAI,YAAY,SAASA,CAAG,CACrF,CASA,IAAI2/K,GAAgBF,GAAW,aAAa,EAS5C,SAASG,IAAkB5/K,EAAK,CAC9B,IAAIzzC,EACJ,OAAK,OAAO,YAAgB,KAAiB,YAAY,OACvDA,EAAS,YAAY,OAAOyzC,CAAG,EAE/BzzC,EAAUyzC,GAASA,EAAI,QAAY2/K,GAAc3/K,EAAI,MAAM,EAEtDzzC,CACT,CAQA,SAASq4C,IAAS5E,EAAK,CACrB,OAAO,OAAOA,GAAQ,QACxB,CAQA,SAASvxC,IAASuxC,EAAK,CACrB,OAAO,OAAOA,GAAQ,QACxB,CAQA,SAAS3B,GAAS2B,EAAK,CACrB,OAAOA,IAAQ,MAAQ,OAAOA,GAAQ,QACxC,CAQA,SAASjB,GAAciB,EAAK,CAC1B,GAAIu/K,GAAOv/K,CAAG,IAAM,SAClB,MAAO,GAGT,IAAIb,EAAY,OAAO,eAAea,CAAG,EACzC,OAAOb,IAAc,MAAQA,IAAc,OAAO,SACpD,CASA,IAAIs1I,IAASgrC,GAAW,MAAM,EAS1BI,IAASJ,GAAW,MAAM,EAS1BK,IAASL,GAAW,MAAM,EAS1BM,IAAaN,GAAW,UAAU,EAQtC,SAAS72K,GAAW5I,EAAK,CACvB,OAAOl0B,GAAS,KAAKk0B,CAAG,IAAM,mBAChC,CAQA,SAASggL,IAAShgL,EAAK,CACrB,OAAO3B,GAAS2B,CAAG,GAAK4I,GAAW5I,EAAI,IAAI,CAC7C,CAQA,SAASigL,IAAWT,EAAO,CACzB,IAAI/9K,EAAU,oBACd,OAAO+9K,IACJ,OAAO,UAAa,YAAcA,aAAiB,UACpD1zM,GAAS,KAAK0zM,CAAK,IAAM/9K,GACxBmH,GAAW42K,EAAM,QAAQ,GAAKA,EAAM,SAAU,IAAK/9K,EAExD,CAQA,IAAIy+K,IAAoBT,GAAW,iBAAiB,EAQpD,SAAS9qF,IAAKof,EAAK,CACjB,OAAOA,EAAI,KAAOA,EAAI,KAAI,EAAKA,EAAI,QAAQ,aAAc,EAAE,CAC7D,CAiBA,SAASosE,KAAuB,CAC9B,OAAI,OAAO,UAAc,MAAgB,UAAU,UAAY,eACtB,UAAU,UAAY,gBACtB,UAAU,UAAY,MACtD,GAGP,OAAO,OAAW,KAClB,OAAO,SAAa,GAExB,CAcA,SAASzwM,GAAQ48B,EAAK/oB,EAAI,CAExB,GAAI,EAAA+oB,IAAQ,MAAQ,OAAOA,EAAQ,KAUnC,GALI,OAAOA,GAAQ,WAEjBA,EAAM,CAACA,CAAG,GAGR/N,GAAQ+N,CAAG,EAEb,QAASr5D,EAAI,EAAGzpB,EAAI8iF,EAAI,OAAQr5D,EAAIzpB,EAAGypB,IACrCswC,EAAG,KAAK,KAAM+oB,EAAIr5D,CAAC,EAAGA,EAAGq5D,CAAG,MAI9B,SAAS1iD,KAAO0iD,EACV,OAAO,UAAU,eAAe,KAAKA,EAAK1iD,CAAG,GAC/C25B,EAAG,KAAK,KAAM+oB,EAAI1iD,CAAG,EAAGA,EAAK0iD,CAAG,CAIxC,CAmBA,SAASyrK,IAAmC,CAC1C,IAAIxrN,EAAS,GACb,SAAS6zN,EAAYpgL,EAAKp2C,EAAK,CACzBm1C,GAAcxyC,EAAO3C,CAAG,CAAC,GAAKm1C,GAAciB,CAAG,EACjDzzC,EAAO3C,CAAG,EAAImuN,GAAMxrN,EAAO3C,CAAG,EAAGo2C,CAAG,EAC3BjB,GAAciB,CAAG,EAC1BzzC,EAAO3C,CAAG,EAAImuN,GAAM,CAAE,EAAE/3K,CAAG,EAClBzB,GAAQyB,CAAG,EACpBzzC,EAAO3C,CAAG,EAAIo2C,EAAI,MAAK,EAEvBzzC,EAAO3C,CAAG,EAAIo2C,CAEjB,CAED,QAAS/sD,EAAI,EAAGzpB,EAAI,UAAU,OAAQypB,EAAIzpB,EAAGypB,IAC3Cy8B,GAAQ,UAAUz8B,CAAC,EAAGmtO,CAAW,EAEnC,OAAO7zN,CACT,CAUA,SAASooL,IAAOtqN,EAAGK,EAAGu5L,EAAS,CAC7Bv0I,UAAQhlD,EAAG,SAAqBs1E,EAAKp2C,EAAK,CACpCq6J,GAAW,OAAOjkH,GAAQ,WAC5B31E,EAAEu/B,CAAG,EAAI+gD,IAAK3K,EAAKikH,CAAO,EAE1B55L,EAAEu/B,CAAG,EAAIo2C,CAEf,CAAG,EACM31E,CACT,CAQA,SAASg2P,IAAStqM,EAAS,CACzB,OAAIA,EAAQ,WAAW,CAAC,IAAM,QAC5BA,EAAUA,EAAQ,MAAM,CAAC,GAEpBA,CACT,CAUA,SAASuqM,IAASphL,EAAaqhL,EAAkBvsO,EAAO+xK,EAAa,CACnE7mH,EAAY,UAAY,OAAO,OAAOqhL,EAAiB,UAAWx6D,CAAW,EAC7E7mH,EAAY,UAAU,YAAcA,EACpClrD,GAAS,OAAO,OAAOkrD,EAAY,UAAWlrD,CAAK,CACrD,CAUA,SAASwsO,IAAaC,EAAWC,EAASloO,EAAQ,CAChD,IAAIxE,EACA,EACAgH,EACA+9F,EAAS,GAEb2nI,EAAUA,GAAW,GAErB,EAAG,CAGD,IAFA1sO,EAAQ,OAAO,oBAAoBysO,CAAS,EAC5C,EAAIzsO,EAAM,OACH,KAAM,GACXgH,EAAOhH,EAAM,CAAC,EACT+kG,EAAO/9F,CAAI,IACd0lO,EAAQ1lO,CAAI,EAAIylO,EAAUzlO,CAAI,EAC9B+9F,EAAO/9F,CAAI,EAAI,IAGnBylO,EAAY,OAAO,eAAeA,CAAS,CAC/C,OAAWA,IAAc,CAACjoO,GAAUA,EAAOioO,EAAWC,CAAO,IAAMD,IAAc,OAAO,WAEtF,OAAOC,CACT,CASA,SAASzvE,IAAS8C,EAAK4sE,EAAcxyM,EAAU,CAC7C4lI,EAAM,OAAOA,CAAG,GACZ5lI,IAAa,QAAaA,EAAW4lI,EAAI,UAC3C5lI,EAAW4lI,EAAI,QAEjB5lI,GAAYwyM,EAAa,OACzB,IAAIjgL,EAAYqzG,EAAI,QAAQ4sE,EAAcxyM,CAAQ,EAClD,OAAOuyB,IAAc,IAAMA,IAAcvyB,CAC3C,CAQA,SAASr3B,IAAQ0oO,EAAO,CACtB,GAAI,CAACA,EAAO,OAAO,KACnB,IAAIvsO,EAAIusO,EAAM,OACd,GAAIz/K,GAAY9sD,CAAC,EAAG,OAAO,KAE3B,QADIq5F,EAAM,IAAI,MAAMr5F,CAAC,EACdA,KAAM,GACXq5F,EAAIr5F,CAAC,EAAIusO,EAAMvsO,CAAC,EAElB,OAAOq5F,CACT,CAGA,IAAIs0I,IAAgB,SAASC,EAAY,CAEvC,OAAO,SAASrB,EAAO,CACrB,OAAOqB,GAAcrB,aAAiBqB,CAC1C,CACA,EAAG,OAAO,WAAe,KAAe,OAAO,eAAe,UAAU,CAAC,EAEzEC,GAAiB,CACf,QAASviL,GACT,cAAeohL,GACf,SAAUD,IACV,WAAYO,IACZ,kBAAmBL,IACnB,SAAUh7K,IACV,SAAUn2C,IACV,SAAU4vC,GACV,cAAeU,GACf,YAAagB,GACb,OAAQ00I,IACR,OAAQorC,IACR,OAAQC,IACR,WAAYl3K,GACZ,SAAUo3K,IACV,kBAAmBE,IACnB,qBAAsBC,IACtB,QAASzwM,GACT,MAAOqoM,GACP,OAAQpjC,IACR,KAAMhgD,IACN,SAAU0rF,IACV,SAAUC,IACV,aAAcE,IACd,OAAQjB,GACR,WAAYE,GACZ,SAAUxuE,IACV,QAASn6J,IACT,aAAc8pO,IACd,WAAYb,GACd,ECndIe,GAAQr0P,GAEZ,SAAS88L,GAAOvpH,EAAK,CACnB,OAAO,mBAAmBA,CAAG,EAC3B,QAAQ,QAAS,GAAG,EACpB,QAAQ,OAAQ,GAAG,EACnB,QAAQ,QAAS,GAAG,EACpB,QAAQ,OAAQ,GAAG,EACnB,QAAQ,QAAS,GAAG,EACpB,QAAQ,QAAS,GAAG,CACxB,KASA+gL,GAAiB,SAAkBtgF,EAAKwD,EAAQ+8E,EAAkB,CAEhE,GAAI,CAAC/8E,EACH,OAAOxD,EAGT,IAAIwgF,EACJ,GAAID,EACFC,EAAmBD,EAAiB/8E,CAAM,UACjC68E,GAAM,kBAAkB78E,CAAM,EACvCg9E,EAAmBh9E,EAAO,eACrB,CACL,IAAI6R,EAAQ,GAEZgrE,GAAM,QAAQ78E,EAAQ,SAAmBjkG,EAAKp2C,EAAK,CAC7Co2C,IAAQ,MAAQ,OAAOA,EAAQ,MAI/B8gL,GAAM,QAAQ9gL,CAAG,EACnBp2C,EAAMA,EAAM,KAEZo2C,EAAM,CAACA,CAAG,EAGZ8gL,GAAM,QAAQ9gL,EAAK,SAAoBj2E,EAAG,CACpC+2P,GAAM,OAAO/2P,CAAC,EAChBA,EAAIA,EAAE,cACG+2P,GAAM,SAAS/2P,CAAC,IACzBA,EAAI,KAAK,UAAUA,CAAC,GAEtB+rL,EAAM,KAAKyT,GAAO3/J,CAAG,EAAI,IAAM2/J,GAAOx/L,CAAC,CAAC,CAChD,CAAO,EACP,CAAK,EAEDk3P,EAAmBnrE,EAAM,KAAK,GAAG,CAClC,CAED,GAAImrE,EAAkB,CACpB,IAAIC,EAAgBzgF,EAAI,QAAQ,GAAG,EAC/BygF,IAAkB,KACpBzgF,EAAMA,EAAI,MAAM,EAAGygF,CAAa,GAGlCzgF,IAAQA,EAAI,QAAQ,GAAG,IAAM,GAAK,IAAM,KAAOwgF,CAChD,CAED,OAAOxgF,CACT,ECnEIqgF,IAAQr0P,GAEZ,SAAS00P,IAAqB,CAC5B,KAAK,SAAW,EAClB,CAUAA,GAAmB,UAAU,IAAM,SAAah4D,EAAWE,EAAUtiJ,EAAS,CAC5E,YAAK,SAAS,KAAK,CACjB,UAAWoiJ,EACX,SAAUE,EACV,YAAatiJ,EAAUA,EAAQ,YAAc,GAC7C,QAASA,EAAUA,EAAQ,QAAU,IACzC,CAAG,EACM,KAAK,SAAS,OAAS,CAChC,EAOAo6M,GAAmB,UAAU,MAAQ,SAAepqP,EAAI,CAClD,KAAK,SAASA,CAAE,IAClB,KAAK,SAASA,CAAE,EAAI,KAExB,EAUAoqP,GAAmB,UAAU,QAAU,SAAiB59L,EAAI,CAC1Du9L,IAAM,QAAQ,KAAK,SAAU,SAAwBv1P,EAAG,CAClDA,IAAM,MACRg4D,EAAGh4D,CAAC,CAEV,CAAG,CACH,EAEA,IAAA61P,IAAiBD,GCnDbL,IAAQr0P,GAEZ40P,IAAiB,SAA6BpxC,EAASqxC,EAAgB,CACrER,IAAM,QAAQ7wC,EAAS,SAAuB97L,EAAOgF,EAAM,CACrDA,IAASmoO,GAAkBnoO,EAAK,YAAW,IAAOmoO,EAAe,gBACnErxC,EAAQqxC,CAAc,EAAIntO,EAC1B,OAAO87L,EAAQ92L,CAAI,EAEzB,CAAG,CACH,ECTI2nO,GAAQr0P,GAYZ,SAAS80P,GAAW76K,EAAS20B,EAAMtzE,EAAQqiN,EAASpqC,EAAU,CAC5D,MAAM,KAAK,IAAI,EACf,KAAK,QAAUt5H,EACf,KAAK,KAAO,aACZ20B,IAAS,KAAK,KAAOA,GACrBtzE,IAAW,KAAK,OAASA,GACzBqiN,IAAY,KAAK,QAAUA,GAC3BpqC,IAAa,KAAK,SAAWA,EAC/B,CAEA8gD,GAAM,SAASS,GAAY,MAAO,CAChC,OAAQ,UAAkB,CACxB,MAAO,CAEL,QAAS,KAAK,QACd,KAAM,KAAK,KAEX,YAAa,KAAK,YAClB,OAAQ,KAAK,OAEb,SAAU,KAAK,SACf,WAAY,KAAK,WACjB,aAAc,KAAK,aACnB,MAAO,KAAK,MAEZ,OAAQ,KAAK,OACb,KAAM,KAAK,KACX,OAAQ,KAAK,UAAY,KAAK,SAAS,OAAS,KAAK,SAAS,OAAS,IAC7E,CACG,CACH,CAAC,EAED,IAAIpiL,GAAYoiL,GAAW,UACvBx7D,GAAc,GAElB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,cAEF,EAAE,QAAQ,SAAS1qF,EAAM,CACvB0qF,GAAY1qF,CAAI,EAAI,CAAC,MAAOA,CAAI,CAClC,CAAC,EAED,OAAO,iBAAiBkmJ,GAAYx7D,EAAW,EAC/C,OAAO,eAAe5mH,GAAW,eAAgB,CAAC,MAAO,EAAI,CAAC,EAG9DoiL,GAAW,KAAO,SAASl7K,EAAOg1B,EAAMtzE,EAAQqiN,EAASpqC,EAAUwhD,EAAa,CAC9E,IAAIC,EAAa,OAAO,OAAOtiL,EAAS,EAExC2hL,UAAM,aAAaz6K,EAAOo7K,EAAY,SAAgBn1K,EAAK,CACzD,OAAOA,IAAQ,MAAM,SACzB,CAAG,EAEDi1K,GAAW,KAAKE,EAAYp7K,EAAM,QAASg1B,EAAMtzE,EAAQqiN,EAASpqC,CAAQ,EAE1EyhD,EAAW,KAAOp7K,EAAM,KAExBm7K,GAAe,OAAO,OAAOC,EAAYD,CAAW,EAE7CC,CACT,EAEA,IAAAC,GAAiBH,GCnFjBI,GAAiB,CACf,kBAAmB,GACnB,kBAAmB,GACnB,oBAAqB,EACvB,ECJIb,GAAQr0P,GASZ,SAASm1P,IAAWt1K,EAAKu1K,EAAU,CAEjCA,EAAWA,GAAY,IAAI,SAE3B,IAAI/+M,EAAQ,GAEZ,SAASg/M,EAAa3tO,EAAO,CAC3B,OAAIA,IAAU,KAAa,GAEvB2sO,GAAM,OAAO3sO,CAAK,EACbA,EAAM,cAGX2sO,GAAM,cAAc3sO,CAAK,GAAK2sO,GAAM,aAAa3sO,CAAK,EACjD,OAAO,MAAS,WAAa,IAAI,KAAK,CAACA,CAAK,CAAC,EAAI,OAAO,KAAKA,CAAK,EAGpEA,CACR,CAED,SAAS4tO,EAAMt7M,EAAMu7M,EAAW,CAC9B,GAAIlB,GAAM,cAAcr6M,CAAI,GAAKq6M,GAAM,QAAQr6M,CAAI,EAAG,CACpD,GAAI3D,EAAM,QAAQ2D,CAAI,IAAM,GAC1B,MAAM,MAAM,kCAAoCu7M,CAAS,EAG3Dl/M,EAAM,KAAK2D,CAAI,EAEfq6M,GAAM,QAAQr6M,EAAM,SAActyB,EAAOyV,EAAK,CAC5C,GAAIk3N,IAAM,YAAY3sO,CAAK,EAC3B,KAAI8tO,EAAUD,EAAYA,EAAY,IAAMp4N,EAAMA,EAC9C0iF,EAEJ,GAAIn4F,GAAS,CAAC6tO,GAAa,OAAO7tO,GAAU,UAC1C,GAAI2sO,GAAM,SAASl3N,EAAK,IAAI,EAE1BzV,EAAQ,KAAK,UAAUA,CAAK,UACnB2sO,GAAM,SAASl3N,EAAK,IAAI,IAAM0iF,EAAMw0I,GAAM,QAAQ3sO,CAAK,GAAI,CAEpEm4F,EAAI,QAAQ,SAAS/6F,EAAI,CACvB,CAACuvO,GAAM,YAAYvvO,CAAE,GAAKswO,EAAS,OAAOI,EAASH,EAAavwO,CAAE,CAAC,CACjF,CAAa,EACD,MACD,EAGHwwO,EAAM5tO,EAAO8tO,CAAO,EAC5B,CAAO,EAEDn/M,EAAM,IAAG,CACf,MACM++M,EAAS,OAAOG,EAAWF,EAAar7M,CAAI,CAAC,CAEhD,CAED,OAAAs7M,EAAMz1K,CAAG,EAEFu1K,CACT,CAEA,IAAAK,GAAiBN,8CCrEjB,IAAIL,EAAa90P,GASH,OAAA01P,GAAG,SAAgBtjF,EAASqqB,EAAQ8W,EAAU,CAC1D,IAAIoiD,EAAiBpiD,EAAS,OAAO,eACjC,CAACA,EAAS,QAAU,CAACoiD,GAAkBA,EAAepiD,EAAS,MAAM,EACvEnhC,EAAQmhC,CAAQ,EAEhB9W,EAAO,IAAIq4D,EACT,mCAAqCvhD,EAAS,OAC9C,CAACuhD,EAAW,gBAAiBA,EAAW,gBAAgB,EAAE,KAAK,MAAMvhD,EAAS,OAAS,GAAG,EAAI,CAAC,EAC/FA,EAAS,OACTA,EAAS,QACTA,CACN,CAAK,oDCpBL,IAAI8gD,EAAQr0P,GAEE,OAAA41P,GACZvB,EAAM,qBAAsB,EAGzB,UAA8B,CAC7B,MAAO,CACL,MAAO,SAAe3nO,EAAMhF,EAAO0hL,EAAShsK,EAAMksK,EAAQD,EAAQ,CAChE,IAAIR,EAAS,GACbA,EAAO,KAAKn8K,EAAO,IAAM,mBAAmBhF,CAAK,CAAC,EAE9C2sO,EAAM,SAASjrD,CAAO,GACxBP,EAAO,KAAK,WAAa,IAAI,KAAKO,CAAO,EAAE,YAAW,CAAE,EAGtDirD,EAAM,SAASj3N,CAAI,GACrByrK,EAAO,KAAK,QAAUzrK,CAAI,EAGxBi3N,EAAM,SAAS/qD,CAAM,GACvBT,EAAO,KAAK,UAAYS,CAAM,EAG5BD,IAAW,IACbR,EAAO,KAAK,QAAQ,EAGtB,SAAS,OAASA,EAAO,KAAK,IAAI,CACnC,EAED,KAAM,SAAcn8K,EAAM,CACxB,IAAI6yD,EAAQ,SAAS,OAAO,MAAM,IAAI,OAAO,aAAe7yD,EAAO,WAAW,CAAC,EAC/E,OAAQ6yD,EAAQ,mBAAmBA,EAAM,CAAC,CAAC,EAAI,IAChD,EAED,OAAQ,SAAgB7yD,EAAM,CAC5B,KAAK,MAAMA,EAAM,GAAI,KAAK,IAAG,EAAK,KAAQ,CAC3C,CACT,CACA,EAAQ,EAGH,UAAiC,CAChC,MAAO,CACL,MAAO,UAAiB,CAAE,EAC1B,KAAM,UAAgB,CAAE,OAAO,IAAO,EACtC,OAAQ,UAAkB,CAAE,CACpC,CACA,EAAQ,KC3CR,IAAAmpO,IAAiB,SAAuB7hF,EAAK,CAI3C,MAAO,8BAA8B,KAAKA,CAAG,CAC/C,ECJA8hF,IAAiB,SAAqB9tE,EAAS+tE,EAAa,CAC1D,OAAOA,EACH/tE,EAAQ,QAAQ,OAAQ,EAAE,EAAI,IAAM+tE,EAAY,QAAQ,OAAQ,EAAE,EAClE/tE,CACN,ECXI6tE,IAAgB71P,IAChB81P,IAAcz1P,IAWlB21P,GAAiB,SAAuBhuE,EAASiuE,EAAc,CAC7D,OAAIjuE,GAAW,CAAC6tE,IAAcI,CAAY,EACjCH,IAAY9tE,EAASiuE,CAAY,EAEnCA,CACT,4CCjBA,IAAI5B,EAAQr0P,GAIRk2P,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,YAC5B,EAeA,OAAAC,GAAiB,SAAsB3yC,EAAS,CAC9C,IAAIk+B,EAAS,GACTvkN,EACAo2C,EACA/sD,EAEJ,OAAKg9L,GAEL6wC,EAAM,QAAQ7wC,EAAQ,MAAM;AAAA,CAAI,EAAG,SAAgB4yC,EAAM,CAKvD,GAJA5vO,EAAI4vO,EAAK,QAAQ,GAAG,EACpBj5N,EAAMk3N,EAAM,KAAK+B,EAAK,OAAO,EAAG5vO,CAAC,CAAC,EAAE,cACpC+sD,EAAM8gL,EAAM,KAAK+B,EAAK,OAAO5vO,EAAI,CAAC,CAAC,EAE/B2W,EAAK,CACP,GAAIukN,EAAOvkN,CAAG,GAAK+4N,EAAkB,QAAQ/4N,CAAG,GAAK,EACnD,OAEEA,IAAQ,aACVukN,EAAOvkN,CAAG,GAAKukN,EAAOvkN,CAAG,EAAIukN,EAAOvkN,CAAG,EAAI,IAAI,OAAO,CAACo2C,CAAG,CAAC,EAE3DmuK,EAAOvkN,CAAG,EAAIukN,EAAOvkN,CAAG,EAAIukN,EAAOvkN,CAAG,EAAI,KAAOo2C,EAAMA,CAE1D,CACL,CAAG,EAEMmuK,oDCjDT,IAAI2S,EAAQr0P,GAEE,OAAAq2P,GACZhC,EAAM,qBAAsB,EAIzB,UAA8B,CAC7B,IAAIiC,EAAO,kBAAkB,KAAK,UAAU,SAAS,EACjDC,EAAiB,SAAS,cAAc,GAAG,EAC3CC,EAQJ,SAASC,EAAWziF,EAAK,CACvB,IAAIE,EAAOF,EAEX,OAAIsiF,IAEFC,EAAe,aAAa,OAAQriF,CAAI,EACxCA,EAAOqiF,EAAe,MAGxBA,EAAe,aAAa,OAAQriF,CAAI,EAGjC,CACL,KAAMqiF,EAAe,KACrB,SAAUA,EAAe,SAAWA,EAAe,SAAS,QAAQ,KAAM,EAAE,EAAI,GAChF,KAAMA,EAAe,KACrB,OAAQA,EAAe,OAASA,EAAe,OAAO,QAAQ,MAAO,EAAE,EAAI,GAC3E,KAAMA,EAAe,KAAOA,EAAe,KAAK,QAAQ,KAAM,EAAE,EAAI,GACpE,SAAUA,EAAe,SACzB,KAAMA,EAAe,KACrB,SAAWA,EAAe,SAAS,OAAO,CAAC,IAAM,IAC/CA,EAAe,SACf,IAAMA,EAAe,QACjC,CACO,CAED,OAAAC,EAAYC,EAAW,OAAO,SAAS,IAAI,EAQpC,SAAyBC,EAAY,CAC1C,IAAIhV,EAAU2S,EAAM,SAASqC,CAAU,EAAKD,EAAWC,CAAU,EAAIA,EACrE,OAAQhV,EAAO,WAAa8U,EAAU,UAClC9U,EAAO,OAAS8U,EAAU,IACtC,CACA,EAAQ,EAGH,UAAiC,CAChC,OAAO,UAA2B,CAChC,MAAO,EACf,CACA,EAAQ,kDChER,IAAI1B,EAAa90P,GACbq0P,EAAQh0P,GAQZ,SAASs2P,EAAc18K,EAAS,CAE9B66K,EAAW,KAAK,KAAM76K,GAAkB,WAAsB66K,EAAW,YAAY,EACrF,KAAK,KAAO,eACb,CAED,OAAAT,EAAM,SAASsC,EAAe7B,EAAY,CACxC,WAAY,EACd,CAAC,EAED8B,GAAiBD,+CCnBjBE,GAAiB,SAAuB7iF,EAAK,CAC3C,IAAIz0F,EAAQ,4BAA4B,KAAKy0F,CAAG,EAChD,OAAOz0F,GAASA,EAAM,CAAC,GAAK,qDCF9B,IAAI80K,EAAQr0P,GACR01P,EAASr1P,MACTu1P,EAAUkB,MACVxC,EAAWyC,GACXf,EAAgBgB,GAChBb,EAAec,MACfZ,EAAkBa,MAClBC,EAAuBC,GACvBtC,EAAauC,GACbV,EAAgBW,KAChBT,EAAgBU,MAEpB,OAAAC,GAAiB,SAAoBl8N,EAAQ,CAC3C,OAAO,IAAI,QAAQ,SAA4B82I,EAASqqB,EAAQ,CAC9D,IAAIg7D,EAAcn8N,EAAO,KACrBo8N,EAAiBp8N,EAAO,QACxBq8N,EAAer8N,EAAO,aACtBs8N,EACJ,SAASt4H,GAAO,CACVhkG,EAAO,aACTA,EAAO,YAAY,YAAYs8N,CAAU,EAGvCt8N,EAAO,QACTA,EAAO,OAAO,oBAAoB,QAASs8N,CAAU,CAExD,CAEGvD,EAAM,WAAWoD,CAAW,GAAKpD,EAAM,qBAAoB,GAC7D,OAAOqD,EAAe,cAAc,EAGtC,IAAI/Z,EAAU,IAAI,eAGlB,GAAIriN,EAAO,KAAM,CACf,IAAIu8N,EAAWv8N,EAAO,KAAK,UAAY,GACnCw8N,EAAWx8N,EAAO,KAAK,SAAW,SAAS,mBAAmBA,EAAO,KAAK,QAAQ,CAAC,EAAI,GAC3Fo8N,EAAe,cAAgB,SAAW,KAAKG,EAAW,IAAMC,CAAQ,CACzE,CAED,IAAIC,EAAW/B,EAAc16N,EAAO,QAASA,EAAO,GAAG,EAEvDqiN,EAAQ,KAAKriN,EAAO,OAAO,YAAa,EAAEg5N,EAASyD,EAAUz8N,EAAO,OAAQA,EAAO,gBAAgB,EAAG,EAAI,EAG1GqiN,EAAQ,QAAUriN,EAAO,QAEzB,SAAS08N,GAAY,CACnB,GAAKra,EAIL,KAAIsa,EAAkB,0BAA2Bta,EAAUwY,EAAaxY,EAAQ,sBAAqB,CAAE,EAAI,KACvGua,EAAe,CAACP,GAAgBA,IAAiB,QAAWA,IAAiB,OAC/Eha,EAAQ,aAAeA,EAAQ,SAC7BpqC,EAAW,CACb,KAAM2kD,EACN,OAAQva,EAAQ,OAChB,WAAYA,EAAQ,WACpB,QAASsa,EACT,OAAQ38N,EACR,QAASqiN,CACjB,EAEM+X,EAAO,SAAkBhuO,EAAO,CAC9B0qJ,EAAQ1qJ,CAAK,EACb43G,GACR,EAAS,SAAiBp5G,EAAK,CACvBu2K,EAAOv2K,CAAG,EACVo5G,GACD,EAAEi0E,CAAQ,EAGXoqC,EAAU,KACX,CAmED,GAjEI,cAAeA,EAEjBA,EAAQ,UAAYqa,EAGpBra,EAAQ,mBAAqB,UAAsB,CAC7C,CAACA,GAAWA,EAAQ,aAAe,GAQnCA,EAAQ,SAAW,GAAK,EAAEA,EAAQ,aAAeA,EAAQ,YAAY,QAAQ,OAAO,IAAM,IAK9F,WAAWqa,CAAS,CAC5B,EAIIra,EAAQ,QAAU,UAAuB,CAClCA,IAILlhD,EAAO,IAAIq4D,EAAW,kBAAmBA,EAAW,aAAcx5N,EAAQqiN,CAAO,CAAC,EAGlFA,EAAU,KAChB,EAGIA,EAAQ,QAAU,UAAuB,CAGvClhD,EAAO,IAAIq4D,EAAW,gBAAiBA,EAAW,YAAax5N,EAAQqiN,EAASA,CAAO,CAAC,EAGxFA,EAAU,IAChB,EAGIA,EAAQ,UAAY,UAAyB,CAC3C,IAAIwa,EAAsB78N,EAAO,QAAU,cAAgBA,EAAO,QAAU,cAAgB,mBACxF45N,EAAe55N,EAAO,cAAgB67N,EACtC77N,EAAO,sBACT68N,EAAsB78N,EAAO,qBAE/BmhK,EAAO,IAAIq4D,EACTqD,EACAjD,EAAa,oBAAsBJ,EAAW,UAAYA,EAAW,aACrEx5N,EACAqiN,CAAO,CAAC,EAGVA,EAAU,IAChB,EAKQ0W,EAAM,uBAAwB,CAEhC,IAAI+D,GAAa98N,EAAO,iBAAmB+6N,EAAgB0B,CAAQ,IAAMz8N,EAAO,eAC9Es6N,EAAQ,KAAKt6N,EAAO,cAAc,EAClC,OAEE88N,IACFV,EAAep8N,EAAO,cAAc,EAAI88N,EAE3C,CAGG,qBAAsBza,GACxB0W,EAAM,QAAQqD,EAAgB,SAA0BnkL,EAAKp2C,EAAK,CAC5D,OAAOs6N,EAAgB,KAAet6N,EAAI,YAAW,IAAO,eAE9D,OAAOu6N,EAAev6N,CAAG,EAGzBwgN,EAAQ,iBAAiBxgN,EAAKo2C,CAAG,CAE3C,CAAO,EAIE8gL,EAAM,YAAY/4N,EAAO,eAAe,IAC3CqiN,EAAQ,gBAAkB,CAAC,CAACriN,EAAO,iBAIjCq8N,GAAgBA,IAAiB,SACnCha,EAAQ,aAAeriN,EAAO,cAI5B,OAAOA,EAAO,oBAAuB,YACvCqiN,EAAQ,iBAAiB,WAAYriN,EAAO,kBAAkB,EAI5D,OAAOA,EAAO,kBAAqB,YAAcqiN,EAAQ,QAC3DA,EAAQ,OAAO,iBAAiB,WAAYriN,EAAO,gBAAgB,GAGjEA,EAAO,aAAeA,EAAO,UAG/Bs8N,EAAa,SAASS,EAAQ,CACvB1a,IAGLlhD,EAAO,CAAC47D,GAAWA,GAAUA,EAAO,KAAQ,IAAI1B,EAAkB0B,CAAM,EACxE1a,EAAQ,MAAK,EACbA,EAAU,KAClB,EAEMriN,EAAO,aAAeA,EAAO,YAAY,UAAUs8N,CAAU,EACzDt8N,EAAO,SACTA,EAAO,OAAO,QAAUs8N,EAAY,EAAGt8N,EAAO,OAAO,iBAAiB,QAASs8N,CAAU,IAIxFH,IACHA,EAAc,MAGhB,IAAIh0E,EAAWozE,EAAckB,CAAQ,EAErC,GAAIt0E,GAAY,CAAE,OAAQ,QAAS,MAAQ,EAAC,QAAQA,CAAQ,IAAM,GAAI,CACpEgZ,EAAO,IAAIq4D,EAAW,wBAA0BrxE,EAAW,IAAKqxE,EAAW,gBAAiBx5N,CAAM,CAAC,EACnG,MACD,CAIDqiN,EAAQ,KAAK8Z,CAAW,CAC5B,CAAG,gDC3NHa,GAAiB,SCCjB,IAAIjE,GAAQr0P,GACR40P,GAAsBv0P,IACtBy0P,GAAagC,GACbK,IAAuBJ,GACvB5B,IAAa6B,GAEbuB,IAAuB,CACzB,eAAgB,mCAClB,EAEA,SAASC,GAAsBh1C,EAAS97L,EAAO,CACzC,CAAC2sO,GAAM,YAAY7wC,CAAO,GAAK6wC,GAAM,YAAY7wC,EAAQ,cAAc,CAAC,IAC1EA,EAAQ,cAAc,EAAI97L,EAE9B,CAEA,SAAS+wO,KAAoB,CAC3B,IAAIC,EACJ,OAAI,OAAO,eAAmB,KAGnB,OAAO,QAAY,KAAe,OAAO,UAAU,SAAS,KAAK,OAAO,IAAM,sBAEvFA,EAAUxB,GAAA,GAELwB,CACT,CAEA,SAASC,IAAgB/9L,EAAUg+L,EAAQC,EAAS,CAClD,GAAIxE,GAAM,SAASz5L,CAAQ,EACzB,GAAI,CACF,OAACg+L,GAAU,KAAK,OAAOh+L,CAAQ,EACxBy5L,GAAM,KAAKz5L,CAAQ,CAC3B,OAAQ18D,EAAG,CACV,GAAIA,EAAE,OAAS,cACb,MAAMA,CAET,CAGH,OAAQ26P,GAAW,KAAK,WAAWj+L,CAAQ,CAC7C,CAEA,IAAIjhB,GAAW,CAEb,aAAcw9M,IAEd,QAASsB,IAAmB,EAE5B,iBAAkB,CAAC,SAA0Bz+M,EAAMwpK,EAAS,CAI1D,GAHAoxC,GAAoBpxC,EAAS,QAAQ,EACrCoxC,GAAoBpxC,EAAS,cAAc,EAEvC6wC,GAAM,WAAWr6M,CAAI,GACvBq6M,GAAM,cAAcr6M,CAAI,GACxBq6M,GAAM,SAASr6M,CAAI,GACnBq6M,GAAM,SAASr6M,CAAI,GACnBq6M,GAAM,OAAOr6M,CAAI,GACjBq6M,GAAM,OAAOr6M,CAAI,EAEjB,OAAOA,EAET,GAAIq6M,GAAM,kBAAkBr6M,CAAI,EAC9B,OAAOA,EAAK,OAEd,GAAIq6M,GAAM,kBAAkBr6M,CAAI,EAC9B,OAAAw+M,GAAsBh1C,EAAS,iDAAiD,EACzExpK,EAAK,WAGd,IAAI8+M,EAAkBzE,GAAM,SAASr6M,CAAI,EACrC++M,EAAcv1C,GAAWA,EAAQ,cAAc,EAE/C8vC,EAEJ,IAAKA,EAAae,GAAM,WAAWr6M,CAAI,IAAO8+M,GAAmBC,IAAgB,sBAAwB,CACvG,IAAIC,EAAY,KAAK,KAAO,KAAK,IAAI,SACrC,OAAO7D,IAAW7B,EAAa,CAAC,UAAWt5M,CAAI,EAAIA,EAAMg/M,GAAa,IAAIA,CAAW,CAC3F,SAAeF,GAAmBC,IAAgB,mBAC5C,OAAAP,GAAsBh1C,EAAS,kBAAkB,EAC1Cm1C,IAAgB3+M,CAAI,EAG7B,OAAOA,CACX,CAAG,EAED,kBAAmB,CAAC,SAA2BA,EAAM,CACnD,IAAIk7M,EAAe,KAAK,cAAgBv7M,GAAS,aAC7Cs/M,EAAoB/D,GAAgBA,EAAa,kBACjDgE,EAAoBhE,GAAgBA,EAAa,kBACjDiE,EAAoB,CAACF,GAAqB,KAAK,eAAiB,OAEpE,GAAIE,GAAsBD,GAAqB7E,GAAM,SAASr6M,CAAI,GAAKA,EAAK,OAC1E,GAAI,CACF,OAAO,KAAK,MAAMA,CAAI,CACvB,OAAQ97C,EAAG,CACV,GAAIi7P,EACF,MAAIj7P,EAAE,OAAS,cACP42P,GAAW,KAAK52P,EAAG42P,GAAW,iBAAkB,KAAM,KAAM,KAAK,QAAQ,EAE3E52P,CAET,CAGH,OAAO87C,CACX,CAAG,EAMD,QAAS,EAET,eAAgB,aAChB,eAAgB,eAEhB,iBAAkB,GAClB,cAAe,GAEf,IAAK,CACH,SAAUo9M,IAAyB,CACpC,EAED,eAAgB,SAAwB36E,EAAQ,CAC9C,OAAOA,GAAU,KAAOA,EAAS,GAClC,EAED,QAAS,CACP,OAAQ,CACN,OAAU,mCACX,CACF,CACH,EAEA43E,GAAM,QAAQ,CAAC,SAAU,MAAO,MAAM,EAAG,SAA6BlwK,EAAQ,CAC5ExqC,GAAS,QAAQwqC,CAAM,EAAI,EAC7B,CAAC,EAEDkwK,GAAM,QAAQ,CAAC,OAAQ,MAAO,OAAO,EAAG,SAA+BlwK,EAAQ,CAC7ExqC,GAAS,QAAQwqC,CAAM,EAAIkwK,GAAM,MAAMkE,GAAoB,CAC7D,CAAC,EAED,IAAAa,GAAiBz/M,GC/Ib06M,IAAQr0P,GACR25C,IAAWt5C,GAUfg5P,IAAiB,SAAuBr/M,EAAMwpK,EAAS9xG,EAAK,CAC1D,IAAIjqF,EAAU,MAAQkyB,IAEtB06M,WAAM,QAAQ3iJ,EAAK,SAAmB56C,EAAI,CACxC9c,EAAO8c,EAAG,KAAKrvC,EAASuyB,EAAMwpK,CAAO,CACzC,CAAG,EAEMxpK,CACT,uCCnBAs/M,GAAiB,SAAkB5xO,EAAO,CACxC,MAAO,CAAC,EAAEA,GAASA,EAAM,iBCD3B,IAAI2sO,GAAQr0P,GACRq5P,GAAgBh5P,IAChBi5P,IAAWxC,GAAA,EACXn9M,IAAWo9M,GACXJ,IAAgBK,GAAA,EAKpB,SAASuC,GAA6Bj+N,EAAQ,CAK5C,GAJIA,EAAO,aACTA,EAAO,YAAY,mBAGjBA,EAAO,QAAUA,EAAO,OAAO,QACjC,MAAM,IAAIq7N,GAEd,CAQA,IAAA6C,IAAiB,SAAyBl+N,EAAQ,CAChDi+N,GAA6Bj+N,CAAM,EAGnCA,EAAO,QAAUA,EAAO,SAAW,GAGnCA,EAAO,KAAO+9N,GAAc,KAC1B/9N,EACAA,EAAO,KACPA,EAAO,QACPA,EAAO,gBACX,EAGEA,EAAO,QAAU+4N,GAAM,MACrB/4N,EAAO,QAAQ,QAAU,CAAE,EAC3BA,EAAO,QAAQA,EAAO,MAAM,GAAK,CAAE,EACnCA,EAAO,OACX,EAEE+4N,GAAM,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,QAAQ,EAC1D,SAA2BlwK,EAAQ,CACjC,OAAO7oD,EAAO,QAAQ6oD,CAAM,CAC7B,CACL,EAEE,IAAIu0K,EAAUp9N,EAAO,SAAWqe,IAAS,QAEzC,OAAO++M,EAAQp9N,CAAM,EAAE,KAAK,SAA6Bi4K,EAAU,CACjE,OAAAgmD,GAA6Bj+N,CAAM,EAGnCi4K,EAAS,KAAO8lD,GAAc,KAC5B/9N,EACAi4K,EAAS,KACTA,EAAS,QACTj4K,EAAO,iBACb,EAEWi4K,CACX,EAAK,SAA4BkmD,EAAQ,CACrC,OAAKH,IAASG,CAAM,IAClBF,GAA6Bj+N,CAAM,EAG/Bm+N,GAAUA,EAAO,WACnBA,EAAO,SAAS,KAAOJ,GAAc,KACnC/9N,EACAm+N,EAAO,SAAS,KAChBA,EAAO,SAAS,QAChBn+N,EAAO,iBACjB,IAIW,QAAQ,OAAOm+N,CAAM,CAChC,CAAG,CACH,ECpFIpF,GAAQr0P,GAUZ05P,GAAiB,SAAqBC,EAASC,EAAS,CAEtDA,EAAUA,GAAW,GACrB,IAAIt+N,EAAS,GAEb,SAASu+N,EAAe/pO,EAAQmyD,EAAQ,CACtC,OAAIoyK,GAAM,cAAcvkO,CAAM,GAAKukO,GAAM,cAAcpyK,CAAM,EACpDoyK,GAAM,MAAMvkO,EAAQmyD,CAAM,EACxBoyK,GAAM,cAAcpyK,CAAM,EAC5BoyK,GAAM,MAAM,CAAE,EAAEpyK,CAAM,EACpBoyK,GAAM,QAAQpyK,CAAM,EACtBA,EAAO,QAETA,CACR,CAGD,SAAS63K,EAAoBvrO,EAAM,CACjC,GAAK8lO,GAAM,YAAYuF,EAAQrrO,CAAI,CAAC,GAE7B,GAAI,CAAC8lO,GAAM,YAAYsF,EAAQprO,CAAI,CAAC,EACzC,OAAOsrO,EAAe,OAAWF,EAAQprO,CAAI,CAAC,MAF9C,QAAOsrO,EAAeF,EAAQprO,CAAI,EAAGqrO,EAAQrrO,CAAI,CAAC,CAIrD,CAGD,SAASwrO,EAAiBxrO,EAAM,CAC9B,GAAI,CAAC8lO,GAAM,YAAYuF,EAAQrrO,CAAI,CAAC,EAClC,OAAOsrO,EAAe,OAAWD,EAAQrrO,CAAI,CAAC,CAEjD,CAGD,SAASyrO,EAAiBzrO,EAAM,CAC9B,GAAK8lO,GAAM,YAAYuF,EAAQrrO,CAAI,CAAC,GAE7B,GAAI,CAAC8lO,GAAM,YAAYsF,EAAQprO,CAAI,CAAC,EACzC,OAAOsrO,EAAe,OAAWF,EAAQprO,CAAI,CAAC,MAF9C,QAAOsrO,EAAe,OAAWD,EAAQrrO,CAAI,CAAC,CAIjD,CAGD,SAAS0rO,EAAgB1rO,EAAM,CAC7B,GAAIA,KAAQqrO,EACV,OAAOC,EAAeF,EAAQprO,CAAI,EAAGqrO,EAAQrrO,CAAI,CAAC,EAC7C,GAAIA,KAAQorO,EACjB,OAAOE,EAAe,OAAWF,EAAQprO,CAAI,CAAC,CAEjD,CAED,IAAI2rO,EAAW,CACb,IAAOH,EACP,OAAUA,EACV,KAAQA,EACR,QAAWC,EACX,iBAAoBA,EACpB,kBAAqBA,EACrB,iBAAoBA,EACpB,QAAWA,EACX,eAAkBA,EAClB,gBAAmBA,EACnB,QAAWA,EACX,aAAgBA,EAChB,eAAkBA,EAClB,eAAkBA,EAClB,iBAAoBA,EACpB,mBAAsBA,EACtB,WAAcA,EACd,iBAAoBA,EACpB,cAAiBA,EACjB,eAAkBA,EAClB,UAAaA,EACb,UAAaA,EACb,WAAcA,EACd,YAAeA,EACf,WAAcA,EACd,iBAAoBA,EACpB,eAAkBC,CACtB,EAEE5F,UAAM,QAAQ,OAAO,KAAKsF,CAAO,EAAE,OAAO,OAAO,KAAKC,CAAO,CAAC,EAAG,SAA4BrrO,EAAM,CACjG,IAAI+8N,EAAQ4O,EAAS3rO,CAAI,GAAKurO,EAC1BK,EAAc7O,EAAM/8N,CAAI,EAC3B8lO,GAAM,YAAY8F,CAAW,GAAK7O,IAAU2O,IAAqB3+N,EAAO/M,CAAI,EAAI4rO,EACrF,CAAG,EAEM7+N,CACT,uCCnGA0e,GAAiB,CACf,QAAW,cCCb,IAAIogN,IAAUp6P,GAAsB,EAAC,QACjC80P,GAAaz0P,GAEbg6P,GAAa,GAGjB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,QAAQ,EAAE,QAAQ,SAAShvO,EAAM7E,EAAG,CACxF6zO,GAAWhvO,CAAI,EAAI,SAAmB0nO,EAAO,CAC3C,OAAO,OAAOA,IAAU1nO,GAAQ,KAAO7E,EAAI,EAAI,KAAO,KAAO6E,CACjE,CACA,CAAC,EAED,IAAIivO,GAAqB,GASzBD,GAAW,aAAe,SAAsB/9N,EAAWotF,EAASzvC,EAAS,CAC3E,SAASsgL,EAAc9iB,EAAK+iB,EAAM,CAChC,MAAO,WAAaJ,IAAU,0BAA6B3iB,EAAM,IAAO+iB,GAAQvgL,EAAU,KAAOA,EAAU,GAC5G,CAGD,OAAO,SAASvyD,EAAO+vN,EAAKjyD,EAAM,CAChC,GAAIlpJ,IAAc,GAChB,MAAM,IAAIw4N,GACRyF,EAAc9iB,EAAK,qBAAuB/tH,EAAU,OAASA,EAAU,GAAG,EAC1EorI,GAAW,cACnB,EAGI,OAAIprI,GAAW,CAAC4wI,GAAmB7iB,CAAG,IACpC6iB,GAAmB7iB,CAAG,EAAI,GAE1B,QAAQ,KACN8iB,EACE9iB,EACA,+BAAiC/tH,EAAU,yCAC5C,CACT,GAGWptF,EAAYA,EAAU5U,EAAO+vN,EAAKjyD,CAAI,EAAI,EACrD,CACA,EASA,SAASi1E,IAAcngN,EAASogN,EAAQC,EAAc,CACpD,GAAI,OAAOrgN,GAAY,SACrB,MAAM,IAAIw6M,GAAW,4BAA6BA,GAAW,oBAAoB,EAInF,QAFItuL,EAAO,OAAO,KAAKlsB,CAAO,EAC1B,EAAIksB,EAAK,OACN,KAAM,GAAG,CACd,IAAIixK,EAAMjxK,EAAK,CAAC,EACZlqC,EAAYo+N,EAAOjjB,CAAG,EAC1B,GAAIn7M,EAAW,CACb,IAAI5U,EAAQ4yB,EAAQm9L,CAAG,EACnB33M,EAASpY,IAAU,QAAa4U,EAAU5U,EAAO+vN,EAAKn9L,CAAO,EACjE,GAAIxa,IAAW,GACb,MAAM,IAAIg1N,GAAW,UAAYrd,EAAM,YAAc33M,EAAQg1N,GAAW,oBAAoB,EAE9F,QACD,CACD,GAAI6F,IAAiB,GACnB,MAAM,IAAI7F,GAAW,kBAAoBrd,EAAKqd,GAAW,cAAc,CAE1E,CACH,CAEA,IAAAx4N,IAAiB,CACf,cAAem+N,IACf,WAAYJ,EACd,ECnFIhG,GAAQr0P,GACRs0P,IAAWj0P,GACXq0P,GAAqBoC,IACrB0C,GAAkBzC,IAClB2C,GAAc1C,GACdhB,IAAgBiB,GAChB36N,GAAY46N,IAEZmD,GAAa/9N,GAAU,WAM3B,SAASs+N,GAAMC,EAAgB,CAC7B,KAAK,SAAWA,EAChB,KAAK,aAAe,CAClB,QAAS,IAAInG,GACb,SAAU,IAAIA,EAClB,CACA,CAOAkG,GAAM,UAAU,QAAU,SAAiBE,EAAax/N,EAAQ,CAG1D,OAAOw/N,GAAgB,UACzBx/N,EAASA,GAAU,GACnBA,EAAO,IAAMw/N,GAEbx/N,EAASw/N,GAAe,GAG1Bx/N,EAASo+N,GAAY,KAAK,SAAUp+N,CAAM,EAGtCA,EAAO,OACTA,EAAO,OAASA,EAAO,OAAO,YAAW,EAChC,KAAK,SAAS,OACvBA,EAAO,OAAS,KAAK,SAAS,OAAO,YAAW,EAEhDA,EAAO,OAAS,MAGlB,IAAI45N,EAAe55N,EAAO,aAEtB45N,IAAiB,QACnB54N,GAAU,cAAc44N,EAAc,CACpC,kBAAmBmF,GAAW,aAAaA,GAAW,OAAO,EAC7D,kBAAmBA,GAAW,aAAaA,GAAW,OAAO,EAC7D,oBAAqBA,GAAW,aAAaA,GAAW,OAAO,CAChE,EAAE,EAAK,EAIV,IAAIU,EAA0B,GAC1BC,EAAiC,GACrC,KAAK,aAAa,QAAQ,QAAQ,SAAoCC,EAAa,CAC7E,OAAOA,EAAY,SAAY,YAAcA,EAAY,QAAQ3/N,CAAM,IAAM,KAIjF0/N,EAAiCA,GAAkCC,EAAY,YAE/EF,EAAwB,QAAQE,EAAY,UAAWA,EAAY,QAAQ,EAC/E,CAAG,EAED,IAAIC,EAA2B,GAC/B,KAAK,aAAa,SAAS,QAAQ,SAAkCD,EAAa,CAChFC,EAAyB,KAAKD,EAAY,UAAWA,EAAY,QAAQ,CAC7E,CAAG,EAED,IAAIvsB,EAEJ,GAAI,CAACssB,EAAgC,CACnC,IAAIvpJ,EAAQ,CAAC+nJ,GAAiB,MAAS,EAMvC,IAJA,MAAM,UAAU,QAAQ,MAAM/nJ,EAAOspJ,CAAuB,EAC5DtpJ,EAAQA,EAAM,OAAOypJ,CAAwB,EAE7CxsB,EAAU,QAAQ,QAAQpzM,CAAM,EACzBm2E,EAAM,QACXi9H,EAAUA,EAAQ,KAAKj9H,EAAM,MAAK,EAAIA,EAAM,MAAK,CAAE,EAGrD,OAAOi9H,CACR,CAID,QADIysB,EAAY7/N,EACTy/N,EAAwB,QAAQ,CACrC,IAAIK,EAAcL,EAAwB,QACtCM,EAAaN,EAAwB,QACzC,GAAI,CACFI,EAAYC,EAAYD,CAAS,CAClC,OAAQvhL,EAAO,CACdyhL,EAAWzhL,CAAK,EAChB,KACD,CACF,CAED,GAAI,CACF80J,EAAU8qB,GAAgB2B,CAAS,CACpC,OAAQvhL,EAAO,CACd,OAAO,QAAQ,OAAOA,CAAK,CAC5B,CAED,KAAOshL,EAAyB,QAC9BxsB,EAAUA,EAAQ,KAAKwsB,EAAyB,MAAK,EAAIA,EAAyB,MAAK,CAAE,EAG3F,OAAOxsB,CACT,EAEAksB,GAAM,UAAU,OAAS,SAAgBt/N,EAAQ,CAC/CA,EAASo+N,GAAY,KAAK,SAAUp+N,CAAM,EAC1C,IAAIy8N,EAAW/B,IAAc16N,EAAO,QAASA,EAAO,GAAG,EACvD,OAAOg5N,IAASyD,EAAUz8N,EAAO,OAAQA,EAAO,gBAAgB,CAClE,EAGA+4N,GAAM,QAAQ,CAAC,SAAU,MAAO,OAAQ,SAAS,EAAG,SAA6BlwK,EAAQ,CAEvFy2K,GAAM,UAAUz2K,CAAM,EAAI,SAAS6vF,EAAK14I,EAAQ,CAC9C,OAAO,KAAK,QAAQo+N,GAAYp+N,GAAU,GAAI,CAC5C,OAAQ6oD,EACR,IAAK6vF,EACL,MAAO14I,GAAU,IAAI,IACtB,EAAC,CACN,CACA,CAAC,EAED+4N,GAAM,QAAQ,CAAC,OAAQ,MAAO,OAAO,EAAG,SAA+BlwK,EAAQ,CAG7E,SAASm3K,EAAmBC,EAAQ,CAClC,OAAO,SAAoBvnF,EAAKh6H,EAAM1e,EAAQ,CAC5C,OAAO,KAAK,QAAQo+N,GAAYp+N,GAAU,GAAI,CAC5C,OAAQ6oD,EACR,QAASo3K,EAAS,CAChB,eAAgB,qBAC1B,EAAY,CAAE,EACN,IAAKvnF,EACL,KAAMh6H,CACP,EAAC,CACR,CACG,CAED4gN,GAAM,UAAUz2K,CAAM,EAAIm3K,EAAkB,EAE5CV,GAAM,UAAUz2K,EAAS,MAAM,EAAIm3K,EAAmB,EAAI,CAC5D,CAAC,EAED,IAAAE,IAAiBZ,6CC7JjB,IAAIjE,EAAgB32P,KAQpB,SAASy7P,EAAYt3D,EAAU,CAC7B,GAAI,OAAOA,GAAa,WACtB,MAAM,IAAI,UAAU,8BAA8B,EAGpD,IAAIu3D,EAEJ,KAAK,QAAU,IAAI,QAAQ,SAAyBtpF,EAAS,CAC3DspF,EAAiBtpF,CACrB,CAAG,EAED,IAAI+4B,EAAQ,KAGZ,KAAK,QAAQ,KAAK,SAASktD,EAAQ,CACjC,GAAKltD,EAAM,WAEX,KAAI3kL,EACA,EAAI2kL,EAAM,WAAW,OAEzB,IAAK3kL,EAAI,EAAGA,EAAI,EAAGA,IACjB2kL,EAAM,WAAW3kL,CAAC,EAAE6xO,CAAM,EAE5BltD,EAAM,WAAa,KACvB,CAAG,EAGD,KAAK,QAAQ,KAAO,SAASwwD,EAAa,CACxC,IAAIC,EAEAltB,EAAU,IAAI,QAAQ,SAASt8D,EAAS,CAC1C+4B,EAAM,UAAU/4B,CAAO,EACvBwpF,EAAWxpF,CACjB,CAAK,EAAE,KAAKupF,CAAW,EAEnB,OAAAjtB,EAAQ,OAAS,UAAkB,CACjCvjC,EAAM,YAAYywD,CAAQ,CAChC,EAEWltB,CACX,EAEEvqC,EAAS,SAAgBlqH,EAAS,CAC5BkxH,EAAM,SAKVA,EAAM,OAAS,IAAIwrD,EAAc18K,CAAO,EACxCyhL,EAAevwD,EAAM,MAAM,EAC/B,CAAG,CACF,CAKD,OAAAswD,EAAY,UAAU,iBAAmB,UAA4B,CACnE,GAAI,KAAK,OACP,MAAM,KAAK,MAEf,EAMAA,EAAY,UAAU,UAAY,SAAmBttJ,EAAU,CAC7D,GAAI,KAAK,OAAQ,CACfA,EAAS,KAAK,MAAM,EACpB,MACD,CAEG,KAAK,WACP,KAAK,WAAW,KAAKA,CAAQ,EAE7B,KAAK,WAAa,CAACA,CAAQ,CAE/B,EAMAstJ,EAAY,UAAU,YAAc,SAAqBttJ,EAAU,CACjE,GAAK,KAAK,WAGV,KAAI7lF,EAAQ,KAAK,WAAW,QAAQ6lF,CAAQ,EACxC7lF,IAAU,IACZ,KAAK,WAAW,OAAOA,EAAO,CAAC,EAEnC,EAMAmzO,EAAY,OAAS,UAAkB,CACrC,IAAIpD,EACAltD,EAAQ,IAAIswD,EAAY,SAAkB78P,EAAG,CAC/Cy5P,EAASz5P,CACb,CAAG,EACD,MAAO,CACL,MAAOusM,EACP,OAAQktD,CACZ,CACA,EAEAwD,GAAiBJ,+CChGjBK,GAAiB,SAAgB5tO,EAAU,CACzC,OAAO,SAAc2xF,EAAK,CACxB,OAAO3xF,EAAS,MAAM,KAAM2xF,CAAG,CACnC,qDCvBA,IAAIw0I,EAAQr0P,GAQZ,OAAA+7P,GAAiB,SAAsB9zK,EAAS,CAC9C,OAAOosK,EAAM,SAASpsK,CAAO,GAAMA,EAAQ,eAAiB,OCT9D,IAAIosK,GAAQr0P,GACRk+E,IAAO79E,GACPu6P,GAAQ9D,IACR4C,IAAc3C,GACdp9M,IAAWq9M,GAQf,SAASgF,GAAeC,EAAe,CACrC,IAAIx0O,EAAU,IAAImzO,GAAMqB,CAAa,EACjCz4I,EAAWtlC,IAAK08K,GAAM,UAAU,QAASnzO,CAAO,EAGpD,OAAA4sO,GAAM,OAAO7wI,EAAUo3I,GAAM,UAAWnzO,CAAO,EAG/C4sO,GAAM,OAAO7wI,EAAU/7F,CAAO,EAG9B+7F,EAAS,OAAS,SAAgBq3I,EAAgB,CAChD,OAAOmB,GAAetC,IAAYuC,EAAepB,CAAc,CAAC,CACpE,EAESr3I,CACT,CAGA,IAAI04I,GAAQF,GAAeriN,GAAQ,EAGnCuiN,GAAM,MAAQtB,GAGdsB,GAAM,cAAgBjF,KACtBiF,GAAM,YAAchF,MACpBgF,GAAM,SAAW9E,KACjB8E,GAAM,QAAU7E,GAAqB,EAAC,QACtC6E,GAAM,WAAa5E,GAGnB4E,GAAM,WAAa3E,GAGnB2E,GAAM,OAASA,GAAM,cAGrBA,GAAM,IAAM,SAAaC,EAAU,CACjC,OAAO,QAAQ,IAAIA,CAAQ,CAC7B,EACAD,GAAM,OAASE,MAGfF,GAAM,aAAeG,MAErBC,GAAc,QAAGJ,GAGjBI,GAAA,gBAAyBJ,sBC/DzBA,IAAiBl8P,sBCKXwjH,GAAW04I,IAAMp0H,OAAO,CAC5BkgD,QAASu0E,uCACT/4C,QAAS,CACP,eAAgB,mBAChBg5C,OAAQ,mBACR,SAAU,KACZ,CACF,CAAC,EAEDh5I,GAAS7pE,SAAS46M,iBAAoB/8E,GACpC,IAAIkK,gBAAgBlK,CAAM,EAAEn4H,WAE9BwwM,IAAsBrsI,EAAQ,EAC9BqvI,IAAuBrvI,EAAQ,ECjB/B,MAAMi5I,GAAoBl1O,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,EAAG,EAAG,EAAG,MAAO,GAAI,OAAQ,GAAI,GAAI,GAAI,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,+IAAgJ,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,GAAmBA,gBAAoB,OAAQ,CAAE,EAAG,EAAG,EAAG,EAAG,MAAO,GAAI,OAAQ,GAAI,GAAI,GAAI,OAAQ,UAAW,YAAa,CAAC,CAAE,CAAC,ECC/rB,SAAwBuvB,GAAQ,CAAEC,YAAW,EAAG,CAC9C,SACE,OACEtiO,UAAW,uDACTsiO,EAAa,WAAa,EAAE,GAC3Bn1O,WAEH,OACEwlE,KAAK,SACL3yD,UAAU,8DAA6D7S,UAEvE0e,EAAA,OACE,cAAY,OACZ7L,UAAU,8EACViR,QAAQ,cACRD,KAAK,OACLD,MAAM,6BAA4B5jB,UAElCwe,EAAA,QACErnC,EAAE,+WACF0sC,KAAK,eACN,EACDrF,EAAA,QACErnC,EAAE,glBACF0sC,KAAK,cACN,CAAC,EACC,EACLrF,EAAA,QAAM3L,UAAU,UAAS7S,SAAC,aAAgB,CAAC,EACxC,EACF,CAET,CC/BA,MAAMo1O,GAAoBA,CAACrzO,EAAK2E,IAAa,CAC3C,MAAM21J,EAAqB3lL,GAAA,CACrBqrB,EAAI02B,SAAW,CAAC12B,EAAI02B,QAAQoE,SAASnmD,EAAE4xB,MAAM,GACtC5B,GACX,EAGFo4C,YAAU,KACCxhB,0BAAiB,QAAS++H,CAAW,EAEvC,IAAM,CACF7+H,6BAAoB,QAAS6+H,CAAW,GAEpD,CACH,ECfMg5E,IAAYt1O,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,uEAAwE,OAAQ,UAAW,YAAa,QAAS,cAAe,QAAS,eAAgB,OAAS,EAAC,ECDzY;AACA;AACA;AACA;AACA;AAEA,IAAIvlB,GAEJ,SAASttB,IAAQ,CACb,OAAOstB,GAAa,MAAM,KAAM,SAAS,CAC7C,CAIA,SAASC,IAAgB35L,EAAU,CAC/B05L,GAAe15L,CACnB,CAEA,SAAS4jD,GAAQ/mC,EAAO,CACpB,OACIA,aAAiB,OACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,gBAElD,CAEA,SAAS6mC,GAAS7mC,EAAO,CAGrB,OACIA,GAAS,MACT,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,iBAElD,CAEA,SAAS+8K,GAAWlqN,EAAGK,EAAG,CACtB,OAAO,OAAO,UAAU,eAAe,KAAKL,EAAGK,CAAC,CACpD,CAEA,SAAS8pN,GAAcloI,EAAK,CACxB,GAAI,OAAO,oBACP,OAAO,OAAO,oBAAoBA,CAAG,EAAE,SAAW,EAElD,IAAIhhF,EACJ,IAAKA,KAAKghF,EACN,GAAIioI,GAAWjoI,EAAKhhF,CAAC,EACjB,MAAO,GAGf,MAAO,EAEf,CAEA,SAASy0E,GAAYvoC,EAAO,CACxB,OAAOA,IAAU,MACrB,CAEA,SAAS/I,GAAS+I,EAAO,CACrB,OACI,OAAOA,GAAU,UACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,iBAElD,CAEA,SAASi9K,GAAOj9K,EAAO,CACnB,OACIA,aAAiB,MACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAElD,CAEA,SAASpgB,GAAIk1F,EAAK/oD,EAAI,CAClB,IAAIs7I,EAAM,CAAE,EACR5rL,EACAyhM,EAASpoG,EAAI,OACjB,IAAKr5F,EAAI,EAAGA,EAAIyhM,EAAQ,EAAEzhM,EACtB4rL,EAAI,KAAKt7I,EAAG+oD,EAAIr5F,CAAC,EAAGA,CAAC,CAAC,EAE1B,OAAO4rL,CACX,CAEA,SAAS8V,GAAOtqN,EAAGK,EAAG,CAClB,QAASuoB,KAAKvoB,EACN6pN,GAAW7pN,EAAGuoB,CAAC,IACf5oB,EAAE4oB,CAAC,EAAIvoB,EAAEuoB,CAAC,GAIlB,OAAIshM,GAAW7pN,EAAG,UAAU,IACxBL,EAAE,SAAWK,EAAE,UAGf6pN,GAAW7pN,EAAG,SAAS,IACvBL,EAAE,QAAUK,EAAE,SAGXL,CACX,CAEA,SAASuqN,GAAUp9K,EAAOk2E,EAAQmnG,EAAQC,EAAQ,CAC9C,OAAOC,GAAiBv9K,EAAOk2E,EAAQmnG,EAAQC,EAAQ,EAAI,EAAE,KACjE,CAEA,SAASE,KAAsB,CAE3B,MAAO,CACH,MAAO,GACP,aAAc,CAAE,EAChB,YAAa,CAAE,EACf,SAAU,GACV,cAAe,EACf,UAAW,GACX,WAAY,KACZ,aAAc,KACd,cAAe,GACf,gBAAiB,GACjB,IAAK,GACL,gBAAiB,CAAE,EACnB,IAAK,KACL,SAAU,KACV,QAAS,GACT,gBAAiB,EACzB,CACA,CAEA,SAASC,GAAgBvpN,EAAG,CACxB,OAAIA,EAAE,KAAO,OACTA,EAAE,IAAMspN,OAELtpN,EAAE,GACb,CAEA,IAAIq3E,GACA,MAAM,UAAU,KAChBA,GAAO,MAAM,UAAU,KAEvBA,GAAO,SAAUmyI,EAAK,CAClB,IAAI,EAAI,OAAO,IAAI,EACf9sJ,EAAM,EAAE,SAAW,EACnBn1C,EAEJ,IAAKA,EAAI,EAAGA,EAAIm1C,EAAKn1C,IACjB,GAAIA,KAAK,GAAKiiM,EAAI,KAAK,KAAM,EAAEjiM,CAAC,EAAGA,EAAG,CAAC,EACnC,MAAO,GAIf,MAAO,EACf,EAGA,SAASoxD,GAAQ34E,EAAG,CAChB,IAAI8hI,EAAQ,KACR2nF,EAAc,GACdC,EAAa1pN,EAAE,IAAM,CAAC,MAAMA,EAAE,GAAG,QAAO,CAAE,EAyB9C,GAxBI0pN,IACA5nF,EAAQynF,GAAgBvpN,CAAC,EACzBypN,EAAcpyI,GAAK,KAAKyqD,EAAM,gBAAiB,SAAU,EAAG,CACxD,OAAO,GAAK,IACxB,CAAS,EACD4nF,EACI5nF,EAAM,SAAW,GACjB,CAACA,EAAM,OACP,CAACA,EAAM,YACP,CAACA,EAAM,cACP,CAACA,EAAM,gBACP,CAACA,EAAM,iBACP,CAACA,EAAM,WACP,CAACA,EAAM,eACP,CAACA,EAAM,kBACN,CAACA,EAAM,UAAaA,EAAM,UAAY2nF,GACvCzpN,EAAE,UACF0pN,EACIA,GACA5nF,EAAM,gBAAkB,GACxBA,EAAM,aAAa,SAAW,GAC9BA,EAAM,UAAY,SAG1B,OAAO,UAAY,MAAQ,CAAC,OAAO,SAAS9hI,CAAC,EAC7CA,EAAE,SAAW0pN,MAEb,QAAOA,EAEX,OAAO1pN,EAAE,QACb,CAEA,SAAS2pN,GAAc7nF,EAAO,CAC1B,IAAI9hI,EAAIkpN,GAAU,GAAG,EACrB,OAAIpnF,GAAS,KACTmnF,GAAOM,GAAgBvpN,CAAC,EAAG8hI,CAAK,EAEhCynF,GAAgBvpN,CAAC,EAAE,gBAAkB,GAGlCA,CACX,CAIA,IAAI4pN,GAAoBvuB,GAAM,iBAAmB,GAC7CwuB,GAAmB,GAEvB,SAASC,GAAWpiM,EAAIC,EAAM,CAC1B,IAAIJ,EACA+H,EACAglD,EACAy1I,EAAsBH,GAAiB,OAiC3C,GA/BKv1I,GAAY1sD,EAAK,gBAAgB,IAClCD,EAAG,iBAAmBC,EAAK,kBAE1B0sD,GAAY1sD,EAAK,EAAE,IACpBD,EAAG,GAAKC,EAAK,IAEZ0sD,GAAY1sD,EAAK,EAAE,IACpBD,EAAG,GAAKC,EAAK,IAEZ0sD,GAAY1sD,EAAK,EAAE,IACpBD,EAAG,GAAKC,EAAK,IAEZ0sD,GAAY1sD,EAAK,OAAO,IACzBD,EAAG,QAAUC,EAAK,SAEjB0sD,GAAY1sD,EAAK,IAAI,IACtBD,EAAG,KAAOC,EAAK,MAEd0sD,GAAY1sD,EAAK,MAAM,IACxBD,EAAG,OAASC,EAAK,QAEhB0sD,GAAY1sD,EAAK,OAAO,IACzBD,EAAG,QAAUC,EAAK,SAEjB0sD,GAAY1sD,EAAK,GAAG,IACrBD,EAAG,IAAM6hM,GAAgB5hM,CAAI,GAE5B0sD,GAAY1sD,EAAK,OAAO,IACzBD,EAAG,QAAUC,EAAK,SAGlBoiM,EAAsB,EACtB,IAAKxiM,EAAI,EAAGA,EAAIwiM,EAAqBxiM,IACjC+H,EAAOs6L,GAAiBriM,CAAC,EACzB+sD,EAAM3sD,EAAK2H,CAAI,EACV+kD,GAAYC,CAAG,IAChB5sD,EAAG4H,CAAI,EAAIglD,GAKvB,OAAO5sD,CACX,CAGA,SAASsiM,GAAO3tL,EAAQ,CACpBytL,GAAW,KAAMztL,CAAM,EACvB,KAAK,GAAK,IAAI,KAAKA,EAAO,IAAM,KAAOA,EAAO,GAAG,QAAS,EAAG,GAAG,EAC3D,KAAK,YACN,KAAK,GAAK,IAAI,KAAK,GAAG,GAItBwtL,KAAqB,KACrBA,GAAmB,GACnBxuB,GAAM,aAAa,IAAI,EACvBwuB,GAAmB,GAE3B,CAEA,SAASI,GAASrpI,EAAK,CACnB,OACIA,aAAeopI,IAAWppI,GAAO,MAAQA,EAAI,kBAAoB,IAEzE,CAEA,SAASwuF,GAAKu1B,EAAK,CAEXtJ,GAAM,8BAAgC,IACtC,OAAO,QAAY,KACnB,QAAQ,MAER,QAAQ,KAAK,wBAA0BsJ,CAAG,CAElD,CAEA,SAASulB,GAAUvlB,EAAK9sI,EAAI,CACxB,IAAIsyJ,EAAY,GAEhB,OAAOlB,GAAO,UAAY,CAItB,GAHI5tB,GAAM,oBAAsB,MAC5BA,GAAM,mBAAmB,KAAMsJ,CAAG,EAElCwlB,EAAW,CACX,IAAIt9L,EAAO,CAAE,EACT4yF,EACAl4F,EACA2W,EACAksL,EAAS,UAAU,OACvB,IAAK7iM,EAAI,EAAGA,EAAI6iM,EAAQ7iM,IAAK,CAEzB,GADAk4F,EAAM,GACF,OAAO,UAAUl4F,CAAC,GAAM,SAAU,CAClCk4F,GAAO;AAAA,GAAQl4F,EAAI,KACnB,IAAK2W,KAAO,UAAU,CAAC,EACf2qL,GAAW,UAAU,CAAC,EAAG3qL,CAAG,IAC5BuhF,GAAOvhF,EAAM,KAAO,UAAU,CAAC,EAAEA,CAAG,EAAI,MAGhDuhF,EAAMA,EAAI,MAAM,EAAG,EAAE,CACzC,MACoBA,EAAM,UAAUl4F,CAAC,EAErBsF,EAAK,KAAK4yF,CAAG,CAChB,CACD2vD,GACIu1B,EACI;AAAA,aACA,MAAM,UAAU,MAAM,KAAK93K,CAAI,EAAE,KAAK,EAAE,EACxC;AAAA,EACA,IAAI,MAAO,EAAC,KAChC,EACYs9L,EAAY,EACf,CACD,OAAOtyJ,EAAG,MAAM,KAAM,SAAS,CAClC,EAAEA,CAAE,CACT,CAEA,IAAIwyJ,GAAe,GAEnB,SAASC,GAAgB78L,EAAMk3K,EAAK,CAC5BtJ,GAAM,oBAAsB,MAC5BA,GAAM,mBAAmB5tK,EAAMk3K,CAAG,EAEjC0lB,GAAa58L,CAAI,IAClB2hJ,GAAKu1B,CAAG,EACR0lB,GAAa58L,CAAI,EAAI,GAE7B,CAEA4tK,GAAM,4BAA8B,GACpCA,GAAM,mBAAqB,KAE3B,SAASn+G,GAAWpxC,EAAO,CACvB,OACK,OAAO,SAAa,KAAeA,aAAiB,UACrD,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,mBAElD,CAEA,SAASgpC,IAAIz4C,EAAQ,CACjB,IAAI/M,EAAM/H,EACV,IAAKA,KAAK8U,EACFwsL,GAAWxsL,EAAQ9U,CAAC,IACpB+H,EAAO+M,EAAO9U,CAAC,EACX21D,GAAW5tD,CAAI,EACf,KAAK/H,CAAC,EAAI+H,EAEV,KAAK,IAAM/H,CAAC,EAAI+H,GAI5B,KAAK,QAAU+M,EAIf,KAAK,+BAAiC,IAAI,QACrC,KAAK,wBAAwB,QAAU,KAAK,cAAc,QACvD,IACA,UAAU,MACtB,CACA,CAEA,SAASkuL,GAAaC,EAAcC,EAAa,CAC7C,IAAItX,EAAM8V,GAAO,CAAE,EAAEuB,CAAY,EAC7Bl7L,EACJ,IAAKA,KAAQm7L,EACL5B,GAAW4B,EAAan7L,CAAI,IACxBqjD,GAAS63I,EAAal7L,CAAI,CAAC,GAAKqjD,GAAS83I,EAAYn7L,CAAI,CAAC,GAC1D6jL,EAAI7jL,CAAI,EAAI,GACZ25L,GAAO9V,EAAI7jL,CAAI,EAAGk7L,EAAal7L,CAAI,CAAC,EACpC25L,GAAO9V,EAAI7jL,CAAI,EAAGm7L,EAAYn7L,CAAI,CAAC,GAC5Bm7L,EAAYn7L,CAAI,GAAK,KAC5B6jL,EAAI7jL,CAAI,EAAIm7L,EAAYn7L,CAAI,EAE5B,OAAO6jL,EAAI7jL,CAAI,GAI3B,IAAKA,KAAQk7L,EAEL3B,GAAW2B,EAAcl7L,CAAI,GAC7B,CAACu5L,GAAW4B,EAAan7L,CAAI,GAC7BqjD,GAAS63I,EAAal7L,CAAI,CAAC,IAG3B6jL,EAAI7jL,CAAI,EAAI25L,GAAO,CAAE,EAAE9V,EAAI7jL,CAAI,CAAC,GAGxC,OAAO6jL,CACX,CAEA,SAASuX,GAAOruL,EAAQ,CAChBA,GAAU,MACV,KAAK,IAAIA,CAAM,CAEvB,CAEA,IAAIkrC,GAEA,OAAO,KACPA,GAAO,OAAO,KAEdA,GAAO,SAAUqZ,EAAK,CAClB,IAAIr5D,EACA4rL,EAAM,GACV,IAAK5rL,KAAKq5D,EACFioI,GAAWjoI,EAAKr5D,CAAC,GACjB4rL,EAAI,KAAK5rL,CAAC,EAGlB,OAAO4rL,CACf,EAGA,IAAIwX,IAAkB,CAClB,QAAS,gBACT,QAAS,mBACT,SAAU,eACV,QAAS,oBACT,SAAU,sBACV,SAAU,GACd,EAEA,SAASC,IAAS1sL,EAAK2sL,EAAK96B,EAAK,CAC7B,IAAI3pG,EAAS,KAAK,UAAUloD,CAAG,GAAK,KAAK,UAAU,SACnD,OAAOg/C,GAAWkJ,CAAM,EAAIA,EAAO,KAAKykI,EAAK96B,CAAG,EAAI3pG,CACxD,CAEA,SAAS0kI,GAASx+F,EAAQy+F,EAAcC,EAAW,CAC/C,IAAIC,EAAY,GAAK,KAAK,IAAI3+F,CAAM,EAChC4+F,EAAcH,EAAeE,EAAU,OACvCE,EAAO7+F,GAAU,EACrB,OACK6+F,EAAQH,EAAY,IAAM,GAAM,KACjC,KAAK,IAAI,GAAI,KAAK,IAAI,EAAGE,CAAW,CAAC,EAAE,WAAW,OAAO,CAAC,EAC1DD,CAER,CAEA,IAAIG,GACI,yMACJC,GAAwB,6CACxBC,GAAkB,CAAE,EACpBC,GAAuB,GAM3B,SAASC,GAAetf,EAAOuf,EAAQC,EAASz8L,EAAU,CACtD,IAAIqP,EAAOrP,EACP,OAAOA,GAAa,WACpBqP,EAAO,UAAY,CACf,OAAO,KAAKrP,CAAQ,GAChC,GAEQi9K,IACAqf,GAAqBrf,CAAK,EAAI5tK,GAE9BmtL,IACAF,GAAqBE,EAAO,CAAC,CAAC,EAAI,UAAY,CAC1C,OAAOX,GAASxsL,EAAK,MAAM,KAAM,SAAS,EAAGmtL,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,CAC7E,GAEQC,IACAH,GAAqBG,CAAO,EAAI,UAAY,CACxC,OAAO,KAAK,WAAU,EAAG,QACrBptL,EAAK,MAAM,KAAM,SAAS,EAC1B4tK,CAChB,CACA,EAEA,CAEA,SAASyf,IAAuB7/K,EAAO,CACnC,OAAIA,EAAM,MAAM,UAAU,EACfA,EAAM,QAAQ,WAAY,EAAE,EAEhCA,EAAM,QAAQ,MAAO,EAAE,CAClC,CAEA,SAAS8/K,IAAmB5pG,EAAQ,CAChC,IAAIxqE,EAAQwqE,EAAO,MAAMopG,EAAgB,EACrC7jM,EACA88B,EAEJ,IAAK98B,EAAI,EAAG88B,EAAS7M,EAAM,OAAQjwB,EAAI88B,EAAQ98B,IACvCgkM,GAAqB/zK,EAAMjwB,CAAC,CAAC,EAC7BiwB,EAAMjwB,CAAC,EAAIgkM,GAAqB/zK,EAAMjwB,CAAC,CAAC,EAExCiwB,EAAMjwB,CAAC,EAAIokM,IAAuBn0K,EAAMjwB,CAAC,CAAC,EAIlD,OAAO,SAAUsjM,EAAK,CAClB,IAAIzkI,EAAS,GACT7+D,EACJ,IAAKA,EAAI,EAAGA,EAAI88B,EAAQ98B,IACpB6+D,GAAUlJ,GAAW1lC,EAAMjwB,CAAC,CAAC,EACvBiwB,EAAMjwB,CAAC,EAAE,KAAKsjM,EAAK7oG,CAAM,EACzBxqE,EAAMjwB,CAAC,EAEjB,OAAO6+D,CACf,CACA,CAGA,SAASylI,GAAa7rN,EAAGgiH,EAAQ,CAC7B,OAAKhiH,EAAE,WAIPgiH,EAAS8pG,GAAa9pG,EAAQhiH,EAAE,WAAY,GAC5CsrN,GAAgBtpG,CAAM,EAClBspG,GAAgBtpG,CAAM,GAAK4pG,IAAmB5pG,CAAM,EAEjDspG,GAAgBtpG,CAAM,EAAEhiH,CAAC,GAPrBA,EAAE,aAAa,aAQ9B,CAEA,SAAS8rN,GAAa9pG,EAAQmnG,EAAQ,CAClC,IAAI5hM,EAAI,EAER,SAASwkM,EAA4BjgL,EAAO,CACxC,OAAOq9K,EAAO,eAAer9K,CAAK,GAAKA,CAC1C,CAGD,IADAu/K,GAAsB,UAAY,EAC3B9jM,GAAK,GAAK8jM,GAAsB,KAAKrpG,CAAM,GAC9CA,EAASA,EAAO,QACZqpG,GACAU,CACZ,EACQV,GAAsB,UAAY,EAClC9jM,GAAK,EAGT,OAAOy6F,CACX,CAEA,IAAIgqG,IAAwB,CACxB,IAAK,YACL,GAAI,SACJ,EAAG,aACH,GAAI,eACJ,IAAK,sBACL,KAAM,2BACV,EAEA,SAASC,IAAe/tL,EAAK,CACzB,IAAI8jF,EAAS,KAAK,gBAAgB9jF,CAAG,EACjCguL,EAAc,KAAK,gBAAgBhuL,EAAI,YAAa,GAExD,OAAI8jF,GAAU,CAACkqG,EACJlqG,GAGX,KAAK,gBAAgB9jF,CAAG,EAAIguL,EACvB,MAAMd,EAAgB,EACtB,IAAI,SAAUe,EAAK,CAChB,OACIA,IAAQ,QACRA,IAAQ,MACRA,IAAQ,MACRA,IAAQ,OAEDA,EAAI,MAAM,CAAC,EAEfA,CACnB,CAAS,EACA,KAAK,EAAE,EAEL,KAAK,gBAAgBjuL,CAAG,EACnC,CAEA,IAAIkuL,IAAqB,eAEzB,SAASC,KAAc,CACnB,OAAO,KAAK,YAChB,CAEA,IAAIC,IAAiB,KACjBC,IAAgC,UAEpC,SAASb,IAAQp/F,EAAQ,CACrB,OAAO,KAAK,SAAS,QAAQ,KAAMA,CAAM,CAC7C,CAEA,IAAIkgG,IAAsB,CACtB,OAAQ,QACR,KAAM,SACN,EAAG,gBACH,GAAI,aACJ,EAAG,WACH,GAAI,aACJ,EAAG,UACH,GAAI,WACJ,EAAG,QACH,GAAI,UACJ,EAAG,SACH,GAAI,WACJ,EAAG,UACH,GAAI,YACJ,EAAG,SACH,GAAI,UACR,EAEA,SAASC,IAAangG,EAAQogG,EAAehyL,EAAQiyL,EAAU,CAC3D,IAAIvmI,EAAS,KAAK,cAAc1rD,CAAM,EACtC,OAAOwiD,GAAWkJ,CAAM,EAClBA,EAAOkmC,EAAQogG,EAAehyL,EAAQiyL,CAAQ,EAC9CvmI,EAAO,QAAQ,MAAOkmC,CAAM,CACtC,CAEA,SAASsgG,IAAWC,EAAMzmI,EAAQ,CAC9B,IAAI47B,EAAS,KAAK,cAAc6qG,EAAO,EAAI,SAAW,MAAM,EAC5D,OAAO3vI,GAAW8kC,CAAM,EAAIA,EAAO57B,CAAM,EAAI47B,EAAO,QAAQ,MAAO57B,CAAM,CAC7E,CAEA,IAAI0mI,GAAU,CACV,EAAG,OACH,MAAO,OACP,KAAM,OACN,EAAG,MACH,KAAM,MACN,IAAK,MACL,EAAG,UACH,SAAU,UACV,QAAS,UACT,EAAG,aACH,YAAa,aACb,WAAY,aACZ,IAAK,YACL,WAAY,YACZ,UAAW,YACX,EAAG,OACH,MAAO,OACP,KAAM,OACN,GAAI,cACJ,aAAc,cACd,YAAa,cACb,EAAG,SACH,QAAS,SACT,OAAQ,SACR,EAAG,QACH,OAAQ,QACR,MAAO,QACP,EAAG,UACH,SAAU,UACV,QAAS,UACT,EAAG,SACH,QAAS,SACT,OAAQ,SACR,GAAI,WACJ,UAAW,WACX,SAAU,WACV,GAAI,cACJ,aAAc,cACd,YAAa,cACb,EAAG,OACH,MAAO,OACP,KAAM,OACN,EAAG,UACH,SAAU,UACV,QAAS,UACT,EAAG,OACH,MAAO,OACP,KAAM,MACV,EAEA,SAASC,GAAeC,EAAO,CAC3B,OAAO,OAAOA,GAAU,SAClBF,GAAQE,CAAK,GAAKF,GAAQE,EAAM,YAAW,CAAE,EAC7C,MACV,CAEA,SAASC,GAAqBC,EAAa,CACvC,IAAIC,EAAkB,CAAE,EACpBC,EACA99L,EAEJ,IAAKA,KAAQ49L,EACLrE,GAAWqE,EAAa59L,CAAI,IAC5B89L,EAAiBL,GAAez9L,CAAI,EAChC89L,IACAD,EAAgBC,CAAc,EAAIF,EAAY59L,CAAI,IAK9D,OAAO69L,CACX,CAEA,IAAIE,IAAa,CACb,KAAM,EACN,IAAK,GACL,QAAS,GACT,WAAY,GACZ,UAAW,EACX,KAAM,GACN,YAAa,GACb,OAAQ,GACR,MAAO,EACP,QAAS,EACT,OAAQ,GACR,SAAU,EACV,YAAa,EACb,KAAM,EACN,QAAS,EACT,KAAM,CACV,EAEA,SAASC,IAAoBC,EAAU,CACnC,IAAIP,EAAQ,CAAE,EACV5uN,EACJ,IAAKA,KAAKmvN,EACF1E,GAAW0E,EAAUnvN,CAAC,GACtB4uN,EAAM,KAAK,CAAE,KAAM5uN,EAAG,SAAUivN,IAAWjvN,CAAC,CAAC,CAAE,EAGvD,OAAA4uN,EAAM,KAAK,SAAUruN,EAAGK,EAAG,CACvB,OAAOL,EAAE,SAAWK,EAAE,QAC9B,CAAK,EACMguN,CACX,CAEA,IAAIQ,GAAS,KACTC,GAAS,OACTC,GAAS,QACTC,GAAS,QACTC,GAAS,aACTC,GAAY,QACZC,GAAY,YACZC,GAAY,gBACZC,GAAY,UACZC,GAAY,UACZC,GAAY,eACZC,GAAgB,MAChBC,GAAc,WACdC,IAAc,qBACdC,GAAmB,0BACnBC,IAAiB,uBAGjBC,GACI,wJACJC,GAAyB,YACzBC,GAAmB,gBACnBC,GAEJA,GAAU,GAEV,SAASC,GAAc1iB,EAAOvkB,EAAOknC,EAAa,CAC9CF,GAAQziB,CAAK,EAAIhvH,GAAWyqG,CAAK,EAC3BA,EACA,SAAUmnC,EAAUC,EAAY,CAC5B,OAAOD,GAAYD,EAAcA,EAAclnC,CAC7D,CACA,CAEA,SAASqnC,IAAsB9iB,EAAO7vK,EAAQ,CAC1C,OAAKwsL,GAAW8F,GAASziB,CAAK,EAIvByiB,GAAQziB,CAAK,EAAE7vK,EAAO,QAASA,EAAO,OAAO,EAHzC,IAAI,OAAO4yL,IAAe/iB,CAAK,CAAC,CAI/C,CAGA,SAAS+iB,IAAe3nM,EAAG,CACvB,OAAO4nM,GACH5nM,EACK,QAAQ,KAAM,EAAE,EAChB,QACG,sCACA,SAAU6nM,EAASC,EAAIC,EAAIC,EAAIC,EAAI,CAC/B,OAAOH,GAAMC,GAAMC,GAAMC,CAC5B,CACJ,CACb,CACA,CAEA,SAASL,GAAY5nM,EAAG,CACpB,OAAOA,EAAE,QAAQ,yBAA0B,MAAM,CACrD,CAEA,SAASkoM,GAASljG,EAAQ,CACtB,OAAIA,EAAS,EAEF,KAAK,KAAKA,CAAM,GAAK,EAErB,KAAK,MAAMA,CAAM,CAEhC,CAEA,SAASm0C,GAAMgvD,EAAqB,CAChC,IAAIC,EAAgB,CAACD,EACjBhnM,EAAQ,EAEZ,OAAIinM,IAAkB,GAAK,SAASA,CAAa,IAC7CjnM,EAAQ+mM,GAASE,CAAa,GAG3BjnM,CACX,CAEA,IAAIwjL,GAAS,GAEb,SAAS0jB,GAAczjB,EAAOj9K,EAAU,CACpC,IAAI1H,EACA+W,EAAOrP,EACP2gM,EAUJ,IATI,OAAO1jB,GAAU,WACjBA,EAAQ,CAACA,CAAK,GAEdnpK,GAAS9T,CAAQ,IACjBqP,EAAO,SAAUwN,EAAO0L,EAAO,CAC3BA,EAAMvoB,CAAQ,EAAIwxI,GAAM30H,CAAK,CACzC,GAEI8jL,EAAW1jB,EAAM,OACZ3kL,EAAI,EAAGA,EAAIqoM,EAAUroM,IACtB0kL,GAAOC,EAAM3kL,CAAC,CAAC,EAAI+W,CAE3B,CAEA,SAASuxL,GAAkB3jB,EAAOj9K,EAAU,CACxC0gM,GAAczjB,EAAO,SAAUpgK,EAAO0L,EAAOnb,EAAQ6vK,EAAO,CACxD7vK,EAAO,GAAKA,EAAO,IAAM,GACzBpN,EAAS6c,EAAOzP,EAAO,GAAIA,EAAQ6vK,CAAK,CAChD,CAAK,CACL,CAEA,SAAS4jB,IAAwB5jB,EAAOpgK,EAAOzP,EAAQ,CAC/CyP,GAAS,MAAQ+8K,GAAW5c,GAAQC,CAAK,GACzCD,GAAOC,CAAK,EAAEpgK,EAAOzP,EAAO,GAAIA,EAAQ6vK,CAAK,CAErD,CAEA,SAAS6jB,GAAWC,EAAM,CACtB,OAAQA,EAAO,IAAM,GAAKA,EAAO,MAAQ,GAAMA,EAAO,MAAQ,CAClE,CAEA,IAAIC,GAAO,EACPC,GAAQ,EACRC,GAAO,EACPC,GAAO,EACPC,GAAS,EACTC,GAAS,EACTC,GAAc,EACdC,IAAO,EACPC,IAAU,EAIdjF,GAAe,IAAK,EAAG,EAAG,UAAY,CAClC,IAAIhtN,EAAI,KAAK,OACb,OAAOA,GAAK,KAAOssN,GAAStsN,EAAG,CAAC,EAAI,IAAMA,CAC9C,CAAC,EAEDgtN,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,KAAM,EAAG,GACzB,CAAC,EAEDA,GAAe,EAAG,CAAC,OAAQ,CAAC,EAAG,EAAG,MAAM,EACxCA,GAAe,EAAG,CAAC,QAAS,CAAC,EAAG,EAAG,MAAM,EACzCA,GAAe,EAAG,CAAC,SAAU,EAAG,EAAI,EAAG,EAAG,MAAM,EAIhDoD,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,OAAQX,GAAWN,EAAM,EACvCiB,GAAc,QAASV,GAAWN,EAAM,EACxCgB,GAAc,SAAUV,GAAWN,EAAM,EAEzC+B,GAAc,CAAC,QAAS,QAAQ,EAAGM,EAAI,EACvCN,GAAc,OAAQ,SAAU7jL,EAAO0L,EAAO,CAC1CA,EAAMy4K,EAAI,EACNnkL,EAAM,SAAW,EAAIuvJ,GAAM,kBAAkBvvJ,CAAK,EAAI20H,GAAM30H,CAAK,CACzE,CAAC,EACD6jL,GAAc,KAAM,SAAU7jL,EAAO0L,EAAO,CACxCA,EAAMy4K,EAAI,EAAI50B,GAAM,kBAAkBvvJ,CAAK,CAC/C,CAAC,EACD6jL,GAAc,IAAK,SAAU7jL,EAAO0L,EAAO,CACvCA,EAAMy4K,EAAI,EAAI,SAASnkL,EAAO,EAAE,CACpC,CAAC,EAID,SAAS4kL,GAAWV,EAAM,CACtB,OAAOD,GAAWC,CAAI,EAAI,IAAM,GACpC,CAIA30B,GAAM,kBAAoB,SAAUvvJ,EAAO,CACvC,OAAO20H,GAAM30H,CAAK,GAAK20H,GAAM30H,CAAK,EAAI,GAAK,KAAO,IACtD,EAIA,IAAI6kL,GAAaC,GAAW,WAAY,EAAI,EAE5C,SAASC,KAAgB,CACrB,OAAOd,GAAW,KAAK,KAAI,CAAE,CACjC,CAEA,SAASa,GAAWE,EAAMC,EAAU,CAChC,OAAO,SAAUtoM,EAAO,CACpB,OAAIA,GAAS,MACTuoM,GAAM,KAAMF,EAAMroM,CAAK,EACvB4yK,GAAM,aAAa,KAAM01B,CAAQ,EAC1B,MAEA1jM,GAAI,KAAMyjM,CAAI,CAEjC,CACA,CAEA,SAASzjM,GAAIw9L,EAAKiG,EAAM,CACpB,GAAI,CAACjG,EAAI,UACL,MAAO,KAGX,IAAInrN,EAAImrN,EAAI,GACRoG,EAAQpG,EAAI,OAEhB,OAAQiG,EAAI,CACR,IAAK,eACD,OAAOG,EAAQvxN,EAAE,mBAAoB,EAAGA,EAAE,gBAAe,EAC7D,IAAK,UACD,OAAOuxN,EAAQvxN,EAAE,cAAe,EAAGA,EAAE,WAAU,EACnD,IAAK,UACD,OAAOuxN,EAAQvxN,EAAE,cAAe,EAAGA,EAAE,WAAU,EACnD,IAAK,QACD,OAAOuxN,EAAQvxN,EAAE,YAAa,EAAGA,EAAE,SAAQ,EAC/C,IAAK,OACD,OAAOuxN,EAAQvxN,EAAE,WAAY,EAAGA,EAAE,QAAO,EAC7C,IAAK,MACD,OAAOuxN,EAAQvxN,EAAE,UAAW,EAAGA,EAAE,OAAM,EAC3C,IAAK,QACD,OAAOuxN,EAAQvxN,EAAE,YAAa,EAAGA,EAAE,SAAQ,EAC/C,IAAK,WACD,OAAOuxN,EAAQvxN,EAAE,eAAgB,EAAGA,EAAE,YAAW,EACrD,QACI,MAAO,IACd,CACL,CAEA,SAASsxN,GAAMnG,EAAKiG,EAAMroM,EAAO,CAC7B,IAAI/oB,EAAGuxN,EAAOjB,EAAMkB,EAAOh3G,EAE3B,GAAI,GAAC2wG,EAAI,QAAS,GAAI,MAAMpiM,CAAK,GAOjC,QAHA/oB,EAAImrN,EAAI,GACRoG,EAAQpG,EAAI,OAEJiG,EAAI,CACR,IAAK,eACD,OAAO,KAAMG,EACPvxN,EAAE,mBAAmB+oB,CAAK,EAC1B/oB,EAAE,gBAAgB+oB,CAAK,GACjC,IAAK,UACD,OAAO,KAAMwoM,EAAQvxN,EAAE,cAAc+oB,CAAK,EAAI/oB,EAAE,WAAW+oB,CAAK,GACpE,IAAK,UACD,OAAO,KAAMwoM,EAAQvxN,EAAE,cAAc+oB,CAAK,EAAI/oB,EAAE,WAAW+oB,CAAK,GACpE,IAAK,QACD,OAAO,KAAMwoM,EAAQvxN,EAAE,YAAY+oB,CAAK,EAAI/oB,EAAE,SAAS+oB,CAAK,GAChE,IAAK,OACD,OAAO,KAAMwoM,EAAQvxN,EAAE,WAAW+oB,CAAK,EAAI/oB,EAAE,QAAQ+oB,CAAK,GAK9D,IAAK,WACD,MACJ,QACI,MACP,CAEDunM,EAAOvnM,EACPyoM,EAAQrG,EAAI,QACZ3wG,EAAO2wG,EAAI,OACX3wG,EAAOA,IAAS,IAAMg3G,IAAU,GAAK,CAACnB,GAAWC,CAAI,EAAI,GAAK91G,EACxD+2G,EACAvxN,EAAE,eAAeswN,EAAMkB,EAAOh3G,CAAI,EAClCx6G,EAAE,YAAYswN,EAAMkB,EAAOh3G,CAAI,EACzC,CAIA,SAASi3G,IAAUnE,EAAO,CAEtB,OADAA,EAAQD,GAAeC,CAAK,EACxB9vI,GAAW,KAAK8vI,CAAK,CAAC,EACf,KAAKA,CAAK,IAEd,IACX,CAEA,SAASoE,IAAUpE,EAAOvkM,EAAO,CAC7B,GAAI,OAAOukM,GAAU,SAAU,CAC3BA,EAAQC,GAAqBD,CAAK,EAClC,IAAIqE,EAAc/D,IAAoBN,CAAK,EACvCzlM,EACA+pM,EAAiBD,EAAY,OACjC,IAAK9pM,EAAI,EAAGA,EAAI+pM,EAAgB/pM,IAC5B,KAAK8pM,EAAY9pM,CAAC,EAAE,IAAI,EAAEylM,EAAMqE,EAAY9pM,CAAC,EAAE,IAAI,CAAC,CAEhE,SACQylM,EAAQD,GAAeC,CAAK,EACxB9vI,GAAW,KAAK8vI,CAAK,CAAC,EACtB,OAAO,KAAKA,CAAK,EAAEvkM,CAAK,EAGhC,OAAO,IACX,CAEA,SAAS8oM,IAAIxzN,EAAGQ,EAAG,CACf,OAASR,EAAIQ,EAAKA,GAAKA,CAC3B,CAEA,IAAI4mH,GAEA,MAAM,UAAU,QAChBA,GAAU,MAAM,UAAU,QAE1BA,GAAU,SAAUlpF,EAAG,CAEnB,IAAI1U,EACJ,IAAKA,EAAI,EAAGA,EAAI,KAAK,OAAQ,EAAEA,EAC3B,GAAI,KAAKA,CAAC,IAAM0U,EACZ,OAAO1U,EAGf,MAAO,EACf,EAGA,SAASiqM,GAAYxB,EAAMkB,EAAO,CAC9B,GAAI,MAAMlB,CAAI,GAAK,MAAMkB,CAAK,EAC1B,MAAO,KAEX,IAAIO,EAAWF,IAAIL,EAAO,EAAE,EAC5B,OAAAlB,IAASkB,EAAQO,GAAY,GACtBA,IAAa,EACd1B,GAAWC,CAAI,EACX,GACA,GACJ,GAAOyB,EAAW,EAAK,CACjC,CAIAjG,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,UAAY,CAC7C,OAAO,KAAK,MAAO,EAAG,CAC1B,CAAC,EAEDA,GAAe,MAAO,EAAG,EAAG,SAAUxpG,EAAQ,CAC1C,OAAO,KAAK,WAAY,EAAC,YAAY,KAAMA,CAAM,CACrD,CAAC,EAEDwpG,GAAe,OAAQ,EAAG,EAAG,SAAUxpG,EAAQ,CAC3C,OAAO,KAAK,WAAY,EAAC,OAAO,KAAMA,CAAM,CAChD,CAAC,EAID4sG,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,MAAO,SAAUE,EAAU3F,EAAQ,CAC7C,OAAOA,EAAO,iBAAiB2F,CAAQ,CAC3C,CAAC,EACDF,GAAc,OAAQ,SAAUE,EAAU3F,EAAQ,CAC9C,OAAOA,EAAO,YAAY2F,CAAQ,CACtC,CAAC,EAEDa,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU7jL,EAAO0L,EAAO,CAC/CA,EAAM04K,EAAK,EAAIzvD,GAAM30H,CAAK,EAAI,CAClC,CAAC,EAED6jL,GAAc,CAAC,MAAO,MAAM,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ6vK,EAAO,CAClE,IAAIglB,EAAQ70L,EAAO,QAAQ,YAAYyP,EAAOogK,EAAO7vK,EAAO,OAAO,EAE/D60L,GAAS,KACT15K,EAAM04K,EAAK,EAAIgB,EAEf3H,GAAgBltL,CAAM,EAAE,aAAeyP,CAE/C,CAAC,EAID,IAAI4lL,IACI,wFAAwF,MACpF,GACH,EACLC,GACI,kDAAkD,MAAM,GAAG,EAC/DC,GAAmB,gCACnBC,IAA0BrD,GAC1BsD,IAAqBtD,GAEzB,SAASuD,IAAa/xN,EAAGgiH,EAAQ,CAC7B,OAAKhiH,EAKE6yE,GAAQ,KAAK,OAAO,EACrB,KAAK,QAAQ7yE,EAAE,OAAO,EACtB,KAAK,SACA,KAAK,QAAQ,UAAY4xN,IAAkB,KAAK5vG,CAAM,EACjD,SACA,YACpB,EAAYhiH,EAAE,MAAK,CAAE,EAVN6yE,GAAQ,KAAK,OAAO,EACrB,KAAK,QACL,KAAK,QAAQ,UAS3B,CAEA,SAASm/I,IAAkBhyN,EAAGgiH,EAAQ,CAClC,OAAKhiH,EAKE6yE,GAAQ,KAAK,YAAY,EAC1B,KAAK,aAAa7yE,EAAE,OAAO,EAC3B,KAAK,aACD4xN,GAAiB,KAAK5vG,CAAM,EAAI,SAAW,YACzD,EAAYhiH,EAAE,MAAK,CAAE,EARN6yE,GAAQ,KAAK,YAAY,EAC1B,KAAK,aACL,KAAK,aAAa,UAOhC,CAEA,SAASo/I,IAAkBC,EAAWlwG,EAAQonG,EAAQ,CAClD,IAAI7hM,EACAtL,EACA4uM,EACAsH,EAAMD,EAAU,oBACpB,GAAI,CAAC,KAAK,aAKN,IAHA,KAAK,aAAe,GACpB,KAAK,iBAAmB,GACxB,KAAK,kBAAoB,GACpB3qM,EAAI,EAAGA,EAAI,GAAI,EAAEA,EAClBsjM,EAAM3B,GAAU,CAAC,IAAM3hM,CAAC,CAAC,EACzB,KAAK,kBAAkBA,CAAC,EAAI,KAAK,YAC7BsjM,EACA,EACH,EAAC,kBAAiB,EACnB,KAAK,iBAAiBtjM,CAAC,EAAI,KAAK,OAAOsjM,EAAK,EAAE,EAAE,oBAIxD,OAAIzB,EACIpnG,IAAW,OACX/lG,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,CAAG,EACtCl2M,IAAO,GAAKA,EAAK,OAExBA,EAAKkpG,GAAQ,KAAK,KAAK,iBAAkBgtG,CAAG,EACrCl2M,IAAO,GAAKA,EAAK,MAGxB+lG,IAAW,OACX/lG,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,CAAG,EACzCl2M,IAAO,GACAA,GAEXA,EAAKkpG,GAAQ,KAAK,KAAK,iBAAkBgtG,CAAG,EACrCl2M,IAAO,GAAKA,EAAK,QAExBA,EAAKkpG,GAAQ,KAAK,KAAK,iBAAkBgtG,CAAG,EACxCl2M,IAAO,GACAA,GAEXA,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,CAAG,EACtCl2M,IAAO,GAAKA,EAAK,MAGpC,CAEA,SAASm2M,IAAkBF,EAAWlwG,EAAQonG,EAAQ,CAClD,IAAI7hM,EAAGsjM,EAAKljC,EAEZ,GAAI,KAAK,kBACL,OAAOsqC,IAAkB,KAAK,KAAMC,EAAWlwG,EAAQonG,CAAM,EAYjE,IATK,KAAK,eACN,KAAK,aAAe,GACpB,KAAK,iBAAmB,GACxB,KAAK,kBAAoB,IAMxB7hM,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAmBrB,GAjBAsjM,EAAM3B,GAAU,CAAC,IAAM3hM,CAAC,CAAC,EACrB6hM,GAAU,CAAC,KAAK,iBAAiB7hM,CAAC,IAClC,KAAK,iBAAiBA,CAAC,EAAI,IAAI,OAC3B,IAAM,KAAK,OAAOsjM,EAAK,EAAE,EAAE,QAAQ,IAAK,EAAE,EAAI,IAC9C,GAChB,EACY,KAAK,kBAAkBtjM,CAAC,EAAI,IAAI,OAC5B,IAAM,KAAK,YAAYsjM,EAAK,EAAE,EAAE,QAAQ,IAAK,EAAE,EAAI,IACnD,GAChB,GAEY,CAACzB,GAAU,CAAC,KAAK,aAAa7hM,CAAC,IAC/BogK,EACI,IAAM,KAAK,OAAOkjC,EAAK,EAAE,EAAI,KAAO,KAAK,YAAYA,EAAK,EAAE,EAChE,KAAK,aAAatjM,CAAC,EAAI,IAAI,OAAOogK,EAAM,QAAQ,IAAK,EAAE,EAAG,GAAG,GAI7DyhC,GACApnG,IAAW,QACX,KAAK,iBAAiBz6F,CAAC,EAAE,KAAK2qM,CAAS,EAEvC,OAAO3qM,EACJ,GACH6hM,GACApnG,IAAW,OACX,KAAK,kBAAkBz6F,CAAC,EAAE,KAAK2qM,CAAS,EAExC,OAAO3qM,EACJ,GAAI,CAAC6hM,GAAU,KAAK,aAAa7hM,CAAC,EAAE,KAAK2qM,CAAS,EACrD,OAAO3qM,CAEd,CACL,CAIA,SAAS8qM,GAASxH,EAAKpiM,EAAO,CAC1B,GAAI,CAACoiM,EAAI,UAEL,OAAOA,EAGX,GAAI,OAAOpiM,GAAU,UACjB,GAAI,QAAQ,KAAKA,CAAK,EAClBA,EAAQg4I,GAAMh4I,CAAK,UAEnBA,EAAQoiM,EAAI,WAAY,EAAC,YAAYpiM,CAAK,EAEtC,CAACsa,GAASta,CAAK,EACf,OAAOoiM,EAKnB,IAAIqG,EAAQzoM,EACRyxF,EAAO2wG,EAAI,OAEf,OAAA3wG,EAAOA,EAAO,GAAKA,EAAO,KAAK,IAAIA,EAAMs3G,GAAY3G,EAAI,OAAQqG,CAAK,CAAC,EACjErG,EAAI,OACJA,EAAI,GAAG,YAAYqG,EAAOh3G,CAAI,EAC9B2wG,EAAI,GAAG,SAASqG,EAAOh3G,CAAI,EAC1B2wG,CACX,CAEA,SAASyH,GAAY7pM,EAAO,CACxB,OAAIA,GAAS,MACT4pM,GAAS,KAAM5pM,CAAK,EACpB4yK,GAAM,aAAa,KAAM,EAAI,EACtB,MAEAhuK,GAAI,KAAM,OAAO,CAEhC,CAEA,SAASklM,KAAiB,CACtB,OAAOf,GAAY,KAAK,KAAM,EAAE,KAAK,MAAK,CAAE,CAChD,CAEA,SAASgB,IAAiB1D,EAAU,CAChC,OAAI,KAAK,mBACAjG,GAAW,KAAM,cAAc,GAChC4J,GAAmB,KAAK,IAAI,EAE5B3D,EACO,KAAK,wBAEL,KAAK,oBAGXjG,GAAW,KAAM,mBAAmB,IACrC,KAAK,kBAAoBgJ,KAEtB,KAAK,yBAA2B/C,EACjC,KAAK,wBACL,KAAK,kBAEnB,CAEA,SAAS4D,IAAY5D,EAAU,CAC3B,OAAI,KAAK,mBACAjG,GAAW,KAAM,cAAc,GAChC4J,GAAmB,KAAK,IAAI,EAE5B3D,EACO,KAAK,mBAEL,KAAK,eAGXjG,GAAW,KAAM,cAAc,IAChC,KAAK,aAAeiJ,KAEjB,KAAK,oBAAsBhD,EAC5B,KAAK,mBACL,KAAK,aAEnB,CAEA,SAAS2D,IAAqB,CAC1B,SAASE,EAAUh0N,EAAGK,EAAG,CACrB,OAAOA,EAAE,OAASL,EAAE,MACvB,CAED,IAAIi0N,EAAc,CAAE,EAChBC,EAAa,CAAE,EACfC,EAAc,CAAE,EAChB,EACAjI,EACAkI,EACAC,EACJ,IAAK,EAAI,EAAG,EAAI,GAAI,IAEhBnI,EAAM3B,GAAU,CAAC,IAAM,CAAC,CAAC,EACzB6J,EAAS7D,GAAY,KAAK,YAAYrE,EAAK,EAAE,CAAC,EAC9CmI,EAAQ9D,GAAY,KAAK,OAAOrE,EAAK,EAAE,CAAC,EACxC+H,EAAY,KAAKG,CAAM,EACvBF,EAAW,KAAKG,CAAK,EACrBF,EAAY,KAAKE,CAAK,EACtBF,EAAY,KAAKC,CAAM,EAI3BH,EAAY,KAAKD,CAAS,EAC1BE,EAAW,KAAKF,CAAS,EACzBG,EAAY,KAAKH,CAAS,EAE1B,KAAK,aAAe,IAAI,OAAO,KAAOG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACtE,KAAK,kBAAoB,KAAK,aAC9B,KAAK,mBAAqB,IAAI,OAC1B,KAAOD,EAAW,KAAK,GAAG,EAAI,IAC9B,GACR,EACI,KAAK,wBAA0B,IAAI,OAC/B,KAAOD,EAAY,KAAK,GAAG,EAAI,IAC/B,GACR,CACA,CAEA,SAASK,IAAWz0N,EAAGwB,EAAGN,EAAGG,EAAGJ,EAAG6nB,EAAG4rM,EAAI,CAGtC,IAAIh5G,EAEJ,OAAI17G,EAAI,KAAOA,GAAK,GAEhB07G,EAAO,IAAI,KAAK17G,EAAI,IAAKwB,EAAGN,EAAGG,EAAGJ,EAAG6nB,EAAG4rM,CAAE,EACtC,SAASh5G,EAAK,YAAW,CAAE,GAC3BA,EAAK,YAAY17G,CAAC,GAGtB07G,EAAO,IAAI,KAAK17G,EAAGwB,EAAGN,EAAGG,EAAGJ,EAAG6nB,EAAG4rM,CAAE,EAGjCh5G,CACX,CAEA,SAASi5G,GAAc30N,EAAG,CACtB,IAAI07G,EAAMrtF,EAEV,OAAIruB,EAAI,KAAOA,GAAK,GAChBquB,EAAO,MAAM,UAAU,MAAM,KAAK,SAAS,EAE3CA,EAAK,CAAC,EAAIruB,EAAI,IACd07G,EAAO,IAAI,KAAK,KAAK,IAAI,MAAM,KAAMrtF,CAAI,CAAC,EACtC,SAASqtF,EAAK,eAAc,CAAE,GAC9BA,EAAK,eAAe17G,CAAC,GAGzB07G,EAAO,IAAI,KAAK,KAAK,IAAI,MAAM,KAAM,SAAS,CAAC,EAG5CA,CACX,CAGA,SAASk5G,GAAgBpD,EAAMqD,EAAKC,EAAK,CACrC,IACIC,EAAM,EAAIF,EAAMC,EAEhBE,GAAS,EAAIL,GAAcnD,EAAM,EAAGuD,CAAG,EAAE,UAAS,EAAKF,GAAO,EAElE,MAAO,CAACG,EAAQD,EAAM,CAC1B,CAGA,SAASE,GAAmBzD,EAAM0D,EAAMC,EAASN,EAAKC,EAAK,CACvD,IAAIM,GAAgB,EAAID,EAAUN,GAAO,EACrCQ,EAAaT,GAAgBpD,EAAMqD,EAAKC,CAAG,EAC3CQ,EAAY,EAAI,GAAKJ,EAAO,GAAKE,EAAeC,EAChDE,EACAC,EAEJ,OAAIF,GAAa,GACbC,EAAU/D,EAAO,EACjBgE,EAAetD,GAAWqD,CAAO,EAAID,GAC9BA,EAAYpD,GAAWV,CAAI,GAClC+D,EAAU/D,EAAO,EACjBgE,EAAeF,EAAYpD,GAAWV,CAAI,IAE1C+D,EAAU/D,EACVgE,EAAeF,GAGZ,CACH,KAAMC,EACN,UAAWC,CACnB,CACA,CAEA,SAASC,GAAWpJ,EAAKwI,EAAKC,EAAK,CAC/B,IAAIO,EAAaT,GAAgBvI,EAAI,KAAM,EAAEwI,EAAKC,CAAG,EACjDI,EAAO,KAAK,OAAO7I,EAAI,UAAW,EAAGgJ,EAAa,GAAK,CAAC,EAAI,EAC5DK,EACAH,EAEJ,OAAIL,EAAO,GACPK,EAAUlJ,EAAI,KAAM,EAAG,EACvBqJ,EAAUR,EAAOS,GAAYJ,EAASV,EAAKC,CAAG,GACvCI,EAAOS,GAAYtJ,EAAI,OAAQwI,EAAKC,CAAG,GAC9CY,EAAUR,EAAOS,GAAYtJ,EAAI,OAAQwI,EAAKC,CAAG,EACjDS,EAAUlJ,EAAI,KAAM,EAAG,IAEvBkJ,EAAUlJ,EAAI,OACdqJ,EAAUR,GAGP,CACH,KAAMQ,EACN,KAAMH,CACd,CACA,CAEA,SAASI,GAAYnE,EAAMqD,EAAKC,EAAK,CACjC,IAAIO,EAAaT,GAAgBpD,EAAMqD,EAAKC,CAAG,EAC3Cc,EAAiBhB,GAAgBpD,EAAO,EAAGqD,EAAKC,CAAG,EACvD,OAAQ5C,GAAWV,CAAI,EAAI6D,EAAaO,GAAkB,CAC9D,CAIA5I,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,MAAM,EAC3CA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,SAAS,EAI9CoD,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EAErCoC,GACI,CAAC,IAAK,KAAM,IAAK,IAAI,EACrB,SAAU/jL,EAAO4nL,EAAMr3L,EAAQ6vK,EAAO,CAClCwnB,EAAKxnB,EAAM,OAAO,EAAG,CAAC,CAAC,EAAIzrC,GAAM30H,CAAK,CACzC,CACL,EAMA,SAASuoL,IAAWxJ,EAAK,CACrB,OAAOoJ,GAAWpJ,EAAK,KAAK,MAAM,IAAK,KAAK,MAAM,GAAG,EAAE,IAC3D,CAEA,IAAIyJ,IAAoB,CACpB,IAAK,EACL,IAAK,CACT,EAEA,SAASC,KAAuB,CAC5B,OAAO,KAAK,MAAM,GACtB,CAEA,SAASC,KAAuB,CAC5B,OAAO,KAAK,MAAM,GACtB,CAIA,SAASC,IAAW3oL,EAAO,CACvB,IAAI4nL,EAAO,KAAK,WAAY,EAAC,KAAK,IAAI,EACtC,OAAO5nL,GAAS,KAAO4nL,EAAO,KAAK,KAAK5nL,EAAQ4nL,GAAQ,EAAG,GAAG,CAClE,CAEA,SAASgB,IAAc5oL,EAAO,CAC1B,IAAI4nL,EAAOO,GAAW,KAAM,EAAG,CAAC,EAAE,KAClC,OAAOnoL,GAAS,KAAO4nL,EAAO,KAAK,KAAK5nL,EAAQ4nL,GAAQ,EAAG,GAAG,CAClE,CAIAlI,GAAe,IAAK,EAAG,KAAM,KAAK,EAElCA,GAAe,KAAM,EAAG,EAAG,SAAUxpG,EAAQ,CACzC,OAAO,KAAK,WAAY,EAAC,YAAY,KAAMA,CAAM,CACrD,CAAC,EAEDwpG,GAAe,MAAO,EAAG,EAAG,SAAUxpG,EAAQ,CAC1C,OAAO,KAAK,WAAY,EAAC,cAAc,KAAMA,CAAM,CACvD,CAAC,EAEDwpG,GAAe,OAAQ,EAAG,EAAG,SAAUxpG,EAAQ,CAC3C,OAAO,KAAK,WAAY,EAAC,SAAS,KAAMA,CAAM,CAClD,CAAC,EAEDwpG,GAAe,IAAK,EAAG,EAAG,SAAS,EACnCA,GAAe,IAAK,EAAG,EAAG,YAAY,EAItCoD,GAAc,IAAKf,EAAS,EAC5Be,GAAc,IAAKf,EAAS,EAC5Be,GAAc,IAAKf,EAAS,EAC5Be,GAAc,KAAM,SAAUE,EAAU3F,EAAQ,CAC5C,OAAOA,EAAO,iBAAiB2F,CAAQ,CAC3C,CAAC,EACDF,GAAc,MAAO,SAAUE,EAAU3F,EAAQ,CAC7C,OAAOA,EAAO,mBAAmB2F,CAAQ,CAC7C,CAAC,EACDF,GAAc,OAAQ,SAAUE,EAAU3F,EAAQ,CAC9C,OAAOA,EAAO,cAAc2F,CAAQ,CACxC,CAAC,EAEDe,GAAkB,CAAC,KAAM,MAAO,MAAM,EAAG,SAAU/jL,EAAO4nL,EAAMr3L,EAAQ6vK,EAAO,CAC3E,IAAIynB,EAAUt3L,EAAO,QAAQ,cAAcyP,EAAOogK,EAAO7vK,EAAO,OAAO,EAEnEs3L,GAAW,KACXD,EAAK,EAAIC,EAETpK,GAAgBltL,CAAM,EAAE,eAAiByP,CAEjD,CAAC,EAED+jL,GAAkB,CAAC,IAAK,IAAK,GAAG,EAAG,SAAU/jL,EAAO4nL,EAAMr3L,EAAQ6vK,EAAO,CACrEwnB,EAAKxnB,CAAK,EAAIzrC,GAAM30H,CAAK,CAC7B,CAAC,EAID,SAAS6oL,IAAa7oL,EAAOq9K,EAAQ,CACjC,OAAI,OAAOr9K,GAAU,SACVA,EAGN,MAAMA,CAAK,GAIhBA,EAAQq9K,EAAO,cAAcr9K,CAAK,EAC9B,OAAOA,GAAU,SACVA,EAGJ,MARI,SAASA,EAAO,EAAE,CASjC,CAEA,SAAS8oL,IAAgB9oL,EAAOq9K,EAAQ,CACpC,OAAI,OAAOr9K,GAAU,SACVq9K,EAAO,cAAcr9K,CAAK,EAAI,GAAK,EAEvC,MAAMA,CAAK,EAAI,KAAOA,CACjC,CAGA,SAAS+oL,GAAcC,EAAI/2N,EAAG,CAC1B,OAAO+2N,EAAG,MAAM/2N,EAAG,CAAC,EAAE,OAAO+2N,EAAG,MAAM,EAAG/2N,CAAC,CAAC,CAC/C,CAEA,IAAIg3N,IACI,2DAA2D,MAAM,GAAG,EACxEC,GAA6B,8BAA8B,MAAM,GAAG,EACpEC,IAA2B,uBAAuB,MAAM,GAAG,EAC3DC,IAAuB1G,GACvB2G,IAA4B3G,GAC5B4G,IAA0B5G,GAE9B,SAAS6G,IAAer1N,EAAGgiH,EAAQ,CAC/B,IAAIszG,EAAWziJ,GAAQ,KAAK,SAAS,EAC/B,KAAK,UACL,KAAK,UACD7yE,GAAKA,IAAM,IAAQ,KAAK,UAAU,SAAS,KAAKgiH,CAAM,EAChD,SACA,YACpB,EACI,OAAOhiH,IAAM,GACP60N,GAAcS,EAAU,KAAK,MAAM,GAAG,EACtCt1N,EACEs1N,EAASt1N,EAAE,KAAK,EAChBs1N,CACZ,CAEA,SAASC,IAAoBv1N,EAAG,CAC5B,OAAOA,IAAM,GACP60N,GAAc,KAAK,eAAgB,KAAK,MAAM,GAAG,EACjD70N,EACE,KAAK,eAAeA,EAAE,KAAK,EAC3B,KAAK,cACjB,CAEA,SAASw1N,IAAkBx1N,EAAG,CAC1B,OAAOA,IAAM,GACP60N,GAAc,KAAK,aAAc,KAAK,MAAM,GAAG,EAC/C70N,EACE,KAAK,aAAaA,EAAE,KAAK,EACzB,KAAK,YACjB,CAEA,SAASy1N,IAAoBC,EAAa1zG,EAAQonG,EAAQ,CACtD,IAAI7hM,EACAtL,EACA4uM,EACAsH,EAAMuD,EAAY,oBACtB,GAAI,CAAC,KAAK,eAKN,IAJA,KAAK,eAAiB,GACtB,KAAK,oBAAsB,GAC3B,KAAK,kBAAoB,GAEpBnuM,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACjBsjM,EAAM3B,GAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAI3hM,CAAC,EAChC,KAAK,kBAAkBA,CAAC,EAAI,KAAK,YAC7BsjM,EACA,EACH,EAAC,kBAAiB,EACnB,KAAK,oBAAoBtjM,CAAC,EAAI,KAAK,cAC/BsjM,EACA,EACH,EAAC,kBAAiB,EACnB,KAAK,eAAetjM,CAAC,EAAI,KAAK,SAASsjM,EAAK,EAAE,EAAE,oBAIxD,OAAIzB,EACIpnG,IAAW,QACX/lG,EAAKkpG,GAAQ,KAAK,KAAK,eAAgBgtG,CAAG,EACnCl2M,IAAO,GAAKA,EAAK,MACjB+lG,IAAW,OAClB/lG,EAAKkpG,GAAQ,KAAK,KAAK,oBAAqBgtG,CAAG,EACxCl2M,IAAO,GAAKA,EAAK,OAExBA,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,CAAG,EACtCl2M,IAAO,GAAKA,EAAK,MAGxB+lG,IAAW,QACX/lG,EAAKkpG,GAAQ,KAAK,KAAK,eAAgBgtG,CAAG,EACtCl2M,IAAO,KAGXA,EAAKkpG,GAAQ,KAAK,KAAK,oBAAqBgtG,CAAG,EAC3Cl2M,IAAO,IACAA,GAEXA,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,CAAG,EACtCl2M,IAAO,GAAKA,EAAK,OACjB+lG,IAAW,OAClB/lG,EAAKkpG,GAAQ,KAAK,KAAK,oBAAqBgtG,CAAG,EAC3Cl2M,IAAO,KAGXA,EAAKkpG,GAAQ,KAAK,KAAK,eAAgBgtG,CAAG,EACtCl2M,IAAO,IACAA,GAEXA,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,CAAG,EACtCl2M,IAAO,GAAKA,EAAK,QAExBA,EAAKkpG,GAAQ,KAAK,KAAK,kBAAmBgtG,CAAG,EACzCl2M,IAAO,KAGXA,EAAKkpG,GAAQ,KAAK,KAAK,eAAgBgtG,CAAG,EACtCl2M,IAAO,IACAA,GAEXA,EAAKkpG,GAAQ,KAAK,KAAK,oBAAqBgtG,CAAG,EACxCl2M,IAAO,GAAKA,EAAK,MAGpC,CAEA,SAAS05M,IAAoBD,EAAa1zG,EAAQonG,EAAQ,CACtD,IAAI7hM,EAAGsjM,EAAKljC,EAEZ,GAAI,KAAK,oBACL,OAAO8tC,IAAoB,KAAK,KAAMC,EAAa1zG,EAAQonG,CAAM,EAUrE,IAPK,KAAK,iBACN,KAAK,eAAiB,GACtB,KAAK,kBAAoB,GACzB,KAAK,oBAAsB,GAC3B,KAAK,mBAAqB,IAGzB7hM,EAAI,EAAGA,EAAI,EAAGA,IAAK,CA6BpB,GA1BAsjM,EAAM3B,GAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAI3hM,CAAC,EAC5B6hM,GAAU,CAAC,KAAK,mBAAmB7hM,CAAC,IACpC,KAAK,mBAAmBA,CAAC,EAAI,IAAI,OAC7B,IAAM,KAAK,SAASsjM,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACpD,GAChB,EACY,KAAK,oBAAoBtjM,CAAC,EAAI,IAAI,OAC9B,IAAM,KAAK,cAAcsjM,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACzD,GAChB,EACY,KAAK,kBAAkBtjM,CAAC,EAAI,IAAI,OAC5B,IAAM,KAAK,YAAYsjM,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACvD,GAChB,GAEa,KAAK,eAAetjM,CAAC,IACtBogK,EACI,IACA,KAAK,SAASkjC,EAAK,EAAE,EACrB,KACA,KAAK,cAAcA,EAAK,EAAE,EAC1B,KACA,KAAK,YAAYA,EAAK,EAAE,EAC5B,KAAK,eAAetjM,CAAC,EAAI,IAAI,OAAOogK,EAAM,QAAQ,IAAK,EAAE,EAAG,GAAG,GAI/DyhC,GACApnG,IAAW,QACX,KAAK,mBAAmBz6F,CAAC,EAAE,KAAKmuM,CAAW,EAE3C,OAAOnuM,EACJ,GACH6hM,GACApnG,IAAW,OACX,KAAK,oBAAoBz6F,CAAC,EAAE,KAAKmuM,CAAW,EAE5C,OAAOnuM,EACJ,GACH6hM,GACApnG,IAAW,MACX,KAAK,kBAAkBz6F,CAAC,EAAE,KAAKmuM,CAAW,EAE1C,OAAOnuM,EACJ,GAAI,CAAC6hM,GAAU,KAAK,eAAe7hM,CAAC,EAAE,KAAKmuM,CAAW,EACzD,OAAOnuM,CAEd,CACL,CAIA,SAASquM,IAAgB9pL,EAAO,CAC5B,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAGlC,IAAI+pL,EAAMxoM,GAAI,KAAM,KAAK,EACzB,OAAIye,GAAS,MACTA,EAAQ6oL,IAAa7oL,EAAO,KAAK,WAAY,GACtC,KAAK,IAAIA,EAAQ+pL,EAAK,GAAG,GAEzBA,CAEf,CAEA,SAASC,IAAsBhqL,EAAO,CAClC,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAElC,IAAI6nL,GAAW,KAAK,MAAQ,EAAI,KAAK,WAAY,EAAC,MAAM,KAAO,EAC/D,OAAO7nL,GAAS,KAAO6nL,EAAU,KAAK,IAAI7nL,EAAQ6nL,EAAS,GAAG,CAClE,CAEA,SAASoC,IAAmBjqL,EAAO,CAC/B,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAOlC,GAAIA,GAAS,KAAM,CACf,IAAI6nL,EAAUiB,IAAgB9oL,EAAO,KAAK,WAAY,GACtD,OAAO,KAAK,IAAI,KAAK,IAAG,EAAK,EAAI6nL,EAAUA,EAAU,CAAC,CAC9D,KACQ,QAAO,KAAK,IAAK,GAAI,CAE7B,CAEA,SAASqC,IAAclH,EAAU,CAC7B,OAAI,KAAK,qBACAjG,GAAW,KAAM,gBAAgB,GAClCoN,GAAqB,KAAK,IAAI,EAE9BnH,EACO,KAAK,qBAEL,KAAK,iBAGXjG,GAAW,KAAM,gBAAgB,IAClC,KAAK,eAAiBqM,KAEnB,KAAK,sBAAwBpG,EAC9B,KAAK,qBACL,KAAK,eAEnB,CAEA,SAASoH,IAAmBpH,EAAU,CAClC,OAAI,KAAK,qBACAjG,GAAW,KAAM,gBAAgB,GAClCoN,GAAqB,KAAK,IAAI,EAE9BnH,EACO,KAAK,0BAEL,KAAK,sBAGXjG,GAAW,KAAM,qBAAqB,IACvC,KAAK,oBAAsBsM,KAExB,KAAK,2BAA6BrG,EACnC,KAAK,0BACL,KAAK,oBAEnB,CAEA,SAASqH,IAAiBrH,EAAU,CAChC,OAAI,KAAK,qBACAjG,GAAW,KAAM,gBAAgB,GAClCoN,GAAqB,KAAK,IAAI,EAE9BnH,EACO,KAAK,wBAEL,KAAK,oBAGXjG,GAAW,KAAM,mBAAmB,IACrC,KAAK,kBAAoBuM,KAEtB,KAAK,yBAA2BtG,EACjC,KAAK,wBACL,KAAK,kBAEnB,CAEA,SAASmH,IAAuB,CAC5B,SAAStD,EAAUh0N,EAAGK,EAAG,CACrB,OAAOA,EAAE,OAASL,EAAE,MACvB,CAED,IAAIy3N,EAAY,CAAE,EACdxD,EAAc,CAAE,EAChBC,EAAa,CAAE,EACfC,EAAc,CAAE,EAChBvrM,EACAsjM,EACAwL,EACAC,EACAC,EACJ,IAAKhvM,EAAI,EAAGA,EAAI,EAAGA,IAEfsjM,EAAM3B,GAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAI3hM,CAAC,EAChC8uM,EAAOnH,GAAY,KAAK,YAAYrE,EAAK,EAAE,CAAC,EAC5CyL,EAASpH,GAAY,KAAK,cAAcrE,EAAK,EAAE,CAAC,EAChD0L,EAAQrH,GAAY,KAAK,SAASrE,EAAK,EAAE,CAAC,EAC1CuL,EAAU,KAAKC,CAAI,EACnBzD,EAAY,KAAK0D,CAAM,EACvBzD,EAAW,KAAK0D,CAAK,EACrBzD,EAAY,KAAKuD,CAAI,EACrBvD,EAAY,KAAKwD,CAAM,EACvBxD,EAAY,KAAKyD,CAAK,EAI1BH,EAAU,KAAKzD,CAAS,EACxBC,EAAY,KAAKD,CAAS,EAC1BE,EAAW,KAAKF,CAAS,EACzBG,EAAY,KAAKH,CAAS,EAE1B,KAAK,eAAiB,IAAI,OAAO,KAAOG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACxE,KAAK,oBAAsB,KAAK,eAChC,KAAK,kBAAoB,KAAK,eAE9B,KAAK,qBAAuB,IAAI,OAC5B,KAAOD,EAAW,KAAK,GAAG,EAAI,IAC9B,GACR,EACI,KAAK,0BAA4B,IAAI,OACjC,KAAOD,EAAY,KAAK,GAAG,EAAI,IAC/B,GACR,EACI,KAAK,wBAA0B,IAAI,OAC/B,KAAOwD,EAAU,KAAK,GAAG,EAAI,IAC7B,GACR,CACA,CAIA,SAASI,IAAU,CACf,OAAO,KAAK,QAAU,IAAM,EAChC,CAEA,SAASC,KAAU,CACf,OAAO,KAAK,MAAO,GAAI,EAC3B,CAEAjL,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,MAAM,EACxCA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAGgL,EAAO,EACzChL,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAGiL,GAAO,EAEzCjL,GAAe,MAAO,EAAG,EAAG,UAAY,CACpC,MAAO,GAAKgL,GAAQ,MAAM,IAAI,EAAI1L,GAAS,KAAK,UAAW,CAAC,CAChE,CAAC,EAEDU,GAAe,QAAS,EAAG,EAAG,UAAY,CACtC,MACI,GACAgL,GAAQ,MAAM,IAAI,EAClB1L,GAAS,KAAK,QAAS,EAAE,CAAC,EAC1BA,GAAS,KAAK,QAAS,EAAE,CAAC,CAElC,CAAC,EAEDU,GAAe,MAAO,EAAG,EAAG,UAAY,CACpC,MAAO,GAAK,KAAK,MAAO,EAAGV,GAAS,KAAK,UAAW,CAAC,CACzD,CAAC,EAEDU,GAAe,QAAS,EAAG,EAAG,UAAY,CACtC,MACI,GACA,KAAK,MAAO,EACZV,GAAS,KAAK,QAAS,EAAE,CAAC,EAC1BA,GAAS,KAAK,QAAS,EAAE,CAAC,CAElC,CAAC,EAED,SAAS4L,GAASxqB,EAAOyqB,EAAW,CAChCnL,GAAetf,EAAO,EAAG,EAAG,UAAY,CACpC,OAAO,KAAK,WAAU,EAAG,SACrB,KAAK,MAAO,EACZ,KAAK,QAAS,EACdyqB,CACZ,CACA,CAAK,CACL,CAEAD,GAAS,IAAK,EAAI,EAClBA,GAAS,IAAK,EAAK,EAInB,SAASE,GAAc9H,EAAU3F,EAAQ,CACrC,OAAOA,EAAO,cAClB,CAEAyF,GAAc,IAAKgI,EAAa,EAChChI,GAAc,IAAKgI,EAAa,EAChChI,GAAc,IAAKf,GAAWa,EAAgB,EAC9CE,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAMf,GAAWJ,EAAM,EAErCmB,GAAc,MAAOd,EAAS,EAC9Bc,GAAc,QAASb,EAAS,EAChCa,GAAc,MAAOd,EAAS,EAC9Bc,GAAc,QAASb,EAAS,EAEhC4B,GAAc,CAAC,IAAK,IAAI,EAAGS,EAAI,EAC/BT,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACvD,IAAIw6L,EAASp2D,GAAM30H,CAAK,EACxB0L,EAAM44K,EAAI,EAAIyG,IAAW,GAAK,EAAIA,CACtC,CAAC,EACDlH,GAAc,CAAC,IAAK,GAAG,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACtDA,EAAO,MAAQA,EAAO,QAAQ,KAAKyP,CAAK,EACxCzP,EAAO,UAAYyP,CACvB,CAAC,EACD6jL,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACvDmb,EAAM44K,EAAI,EAAI3vD,GAAM30H,CAAK,EACzBy9K,GAAgBltL,CAAM,EAAE,QAAU,EACtC,CAAC,EACDszL,GAAc,MAAO,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACjD,IAAIsuJ,EAAM7+I,EAAM,OAAS,EACzB0L,EAAM44K,EAAI,EAAI3vD,GAAM30H,EAAM,OAAO,EAAG6+I,CAAG,CAAC,EACxCnzI,EAAM64K,EAAM,EAAI5vD,GAAM30H,EAAM,OAAO6+I,CAAG,CAAC,EACvC4+B,GAAgBltL,CAAM,EAAE,QAAU,EACtC,CAAC,EACDszL,GAAc,QAAS,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACnD,IAAIy6L,EAAOhrL,EAAM,OAAS,EACtBirL,EAAOjrL,EAAM,OAAS,EAC1B0L,EAAM44K,EAAI,EAAI3vD,GAAM30H,EAAM,OAAO,EAAGgrL,CAAI,CAAC,EACzCt/K,EAAM64K,EAAM,EAAI5vD,GAAM30H,EAAM,OAAOgrL,EAAM,CAAC,CAAC,EAC3Ct/K,EAAM84K,EAAM,EAAI7vD,GAAM30H,EAAM,OAAOirL,CAAI,CAAC,EACxCxN,GAAgBltL,CAAM,EAAE,QAAU,EACtC,CAAC,EACDszL,GAAc,MAAO,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACjD,IAAIsuJ,EAAM7+I,EAAM,OAAS,EACzB0L,EAAM44K,EAAI,EAAI3vD,GAAM30H,EAAM,OAAO,EAAG6+I,CAAG,CAAC,EACxCnzI,EAAM64K,EAAM,EAAI5vD,GAAM30H,EAAM,OAAO6+I,CAAG,CAAC,CAC3C,CAAC,EACDglC,GAAc,QAAS,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACnD,IAAIy6L,EAAOhrL,EAAM,OAAS,EACtBirL,EAAOjrL,EAAM,OAAS,EAC1B0L,EAAM44K,EAAI,EAAI3vD,GAAM30H,EAAM,OAAO,EAAGgrL,CAAI,CAAC,EACzCt/K,EAAM64K,EAAM,EAAI5vD,GAAM30H,EAAM,OAAOgrL,EAAM,CAAC,CAAC,EAC3Ct/K,EAAM84K,EAAM,EAAI7vD,GAAM30H,EAAM,OAAOirL,CAAI,CAAC,CAC5C,CAAC,EAID,SAASC,IAAWlrL,EAAO,CAGvB,OAAQA,EAAQ,IAAI,YAAa,EAAC,OAAO,CAAC,IAAM,GACpD,CAEA,IAAImrL,IAA6B,gBAK7BC,IAAatG,GAAW,QAAS,EAAI,EAEzC,SAASuG,IAAeC,EAAOC,EAASC,EAAS,CAC7C,OAAIF,EAAQ,GACDE,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,CAEA,IAAIC,GAAa,CACb,SAAU5M,IACV,eAAgBqB,IAChB,YAAaI,IACb,QAASE,IACT,uBAAwBC,IACxB,aAAcC,IAEd,OAAQkF,IACR,YAAaC,GAEb,KAAM2C,IAEN,SAAUS,IACV,YAAaE,IACb,cAAeD,GAEf,cAAeiC,GACnB,EAGIvwF,GAAU,CAAE,EACZ8wF,GAAiB,CAAE,EACnBC,GAEJ,SAASC,IAAaC,EAAM92G,EAAM,CAC9B,IAAIt5F,EACAqwM,EAAO,KAAK,IAAID,EAAK,OAAQ92G,EAAK,MAAM,EAC5C,IAAKt5F,EAAI,EAAGA,EAAIqwM,EAAMrwM,GAAK,EACvB,GAAIowM,EAAKpwM,CAAC,IAAMs5F,EAAKt5F,CAAC,EAClB,OAAOA,EAGf,OAAOqwM,CACX,CAEA,SAASC,GAAgB35L,EAAK,CAC1B,OAAOA,GAAMA,EAAI,YAAa,EAAC,QAAQ,IAAK,GAAG,CACnD,CAKA,SAAS45L,IAAa3kJ,EAAO,CAOzB,QANI5rD,EAAI,EACJ4kC,EACA2rB,EACAqxI,EACA30I,EAEGjtD,EAAI4rD,EAAM,QAAQ,CAKrB,IAJAqB,EAAQqjJ,GAAgB1kJ,EAAM5rD,CAAC,CAAC,EAAE,MAAM,GAAG,EAC3C4kC,EAAIqoB,EAAM,OACVsD,EAAO+/I,GAAgB1kJ,EAAM5rD,EAAI,CAAC,CAAC,EACnCuwD,EAAOA,EAAOA,EAAK,MAAM,GAAG,EAAI,KACzB3rB,EAAI,GAAG,CAEV,GADAg9J,EAAS4O,GAAWvjJ,EAAM,MAAM,EAAGroB,CAAC,EAAE,KAAK,GAAG,CAAC,EAC3Cg9J,EACA,OAAOA,EAEX,GACIrxI,GACAA,EAAK,QAAU3rB,GACfurK,IAAaljJ,EAAOsD,CAAI,GAAK3rB,EAAI,EAGjC,MAEJA,GACH,CACD5kC,GACH,CACD,OAAOkwM,EACX,CAEA,SAASO,IAAiBvqM,EAAM,CAG5B,MAAO,CAAC,EAAEA,GAAQA,EAAK,MAAM,aAAa,EAC9C,CAEA,SAASsqM,GAAWtqM,EAAM,CACtB,IAAIwqM,EAAY,KACZC,EAEJ,GACIxxF,GAAQj5G,CAAI,IAAM,QAClB,OAAO,OAAW,KAClB,QACA,OAAO,SACPuqM,IAAiBvqM,CAAI,EAErB,GAAI,CACAwqM,EAAYR,GAAa,MACzBS,EAAiB,QACjBA,EAAe,YAAczqM,CAAI,EACjC2qM,GAAmBH,CAAS,CAC/B,MAAW,CAGRvxF,GAAQj5G,CAAI,EAAI,IACnB,CAEL,OAAOi5G,GAAQj5G,CAAI,CACvB,CAKA,SAAS2qM,GAAmBl6L,EAAKy7C,EAAQ,CACrC,IAAI5+B,EACJ,OAAI7c,IACIm2C,GAAYsF,CAAM,EAClB5+B,EAAOs9K,GAAUn6L,CAAG,EAEpB6c,EAAOu9K,GAAap6L,EAAKy7C,CAAM,EAG/B5+B,EAEA08K,GAAe18K,EAEX,OAAO,QAAY,KAAe,QAAQ,MAE1C,QAAQ,KACJ,UAAY7c,EAAM,wCACtC,GAKWu5L,GAAa,KACxB,CAEA,SAASa,GAAa7qM,EAAM4O,EAAQ,CAChC,GAAIA,IAAW,KAAM,CACjB,IAAI8sL,EACAqB,EAAe+M,GAEnB,GADAl7L,EAAO,KAAO5O,EACVi5G,GAAQj5G,CAAI,GAAK,KACjB68L,GACI,uBACA,yOAIhB,EACYE,EAAe9jF,GAAQj5G,CAAI,EAAE,gBACtB4O,EAAO,cAAgB,KAC9B,GAAIqqG,GAAQrqG,EAAO,YAAY,GAAK,KAChCmuL,EAAe9jF,GAAQrqG,EAAO,YAAY,EAAE,gBAE5C8sL,EAAS4O,GAAW17L,EAAO,YAAY,EACnC8sL,GAAU,KACVqB,EAAerB,EAAO,YAEtB,QAAKqO,GAAen7L,EAAO,YAAY,IACnCm7L,GAAen7L,EAAO,YAAY,EAAI,IAE1Cm7L,GAAen7L,EAAO,YAAY,EAAE,KAAK,CACrC,KAAM5O,EACN,OAAQ4O,CAChC,CAAqB,EACM,KAInB,OAAAqqG,GAAQj5G,CAAI,EAAI,IAAIi9L,GAAOH,GAAaC,EAAcnuL,CAAM,CAAC,EAEzDm7L,GAAe/pM,CAAI,GACnB+pM,GAAe/pM,CAAI,EAAE,QAAQ,SAAUlvB,EAAG,CACtC+5N,GAAa/5N,EAAE,KAAMA,EAAE,MAAM,CAC7C,CAAa,EAML65N,GAAmB3qM,CAAI,EAEhBi5G,GAAQj5G,CAAI,CAC3B,KAEQ,eAAOi5G,GAAQj5G,CAAI,EACZ,IAEf,CAEA,SAAS8qM,IAAa9qM,EAAM4O,EAAQ,CAChC,GAAIA,GAAU,KAAM,CAChB,IAAI8sL,EACAqP,EACAhO,EAAe+M,GAEf7wF,GAAQj5G,CAAI,GAAK,MAAQi5G,GAAQj5G,CAAI,EAAE,cAAgB,KAEvDi5G,GAAQj5G,CAAI,EAAE,IAAI88L,GAAa7jF,GAAQj5G,CAAI,EAAE,QAAS4O,CAAM,CAAC,GAG7Dm8L,EAAYT,GAAWtqM,CAAI,EACvB+qM,GAAa,OACbhO,EAAegO,EAAU,SAE7Bn8L,EAASkuL,GAAaC,EAAcnuL,CAAM,EACtCm8L,GAAa,OAIbn8L,EAAO,KAAO5O,GAElB07L,EAAS,IAAIuB,GAAOruL,CAAM,EAC1B8sL,EAAO,aAAeziF,GAAQj5G,CAAI,EAClCi5G,GAAQj5G,CAAI,EAAI07L,GAIpBiP,GAAmB3qM,CAAI,CAC/B,MAEYi5G,GAAQj5G,CAAI,GAAK,OACbi5G,GAAQj5G,CAAI,EAAE,cAAgB,MAC9Bi5G,GAAQj5G,CAAI,EAAIi5G,GAAQj5G,CAAI,EAAE,aAC1BA,IAAS2qM,MACTA,GAAmB3qM,CAAI,GAEpBi5G,GAAQj5G,CAAI,GAAK,MACxB,OAAOi5G,GAAQj5G,CAAI,GAI/B,OAAOi5G,GAAQj5G,CAAI,CACvB,CAGA,SAAS4qM,GAAUn6L,EAAK,CACpB,IAAIirL,EAMJ,GAJIjrL,GAAOA,EAAI,SAAWA,EAAI,QAAQ,QAClCA,EAAMA,EAAI,QAAQ,OAGlB,CAACA,EACD,OAAOu5L,GAGX,GAAI,CAAC5kJ,GAAQ30C,CAAG,EAAG,CAGf,GADAirL,EAAS4O,GAAW75L,CAAG,EACnBirL,EACA,OAAOA,EAEXjrL,EAAM,CAACA,CAAG,CACb,CAED,OAAO45L,IAAa55L,CAAG,CAC3B,CAEA,SAASu6L,KAAc,CACnB,OAAOlxJ,GAAKm/D,EAAO,CACvB,CAEA,SAASgyF,GAAc14N,EAAG,CACtB,IAAIgwD,EACArxD,EAAIqB,EAAE,GAEV,OAAIrB,GAAK4qN,GAAgBvpN,CAAC,EAAE,WAAa,KACrCgwD,EACIrxD,EAAEuxN,EAAK,EAAI,GAAKvxN,EAAEuxN,EAAK,EAAI,GACrBA,GACAvxN,EAAEwxN,EAAI,EAAI,GAAKxxN,EAAEwxN,EAAI,EAAIqB,GAAY7yN,EAAEsxN,EAAI,EAAGtxN,EAAEuxN,EAAK,CAAC,EACpDC,GACAxxN,EAAEyxN,EAAI,EAAI,GACRzxN,EAAEyxN,EAAI,EAAI,IACTzxN,EAAEyxN,EAAI,IAAM,KACRzxN,EAAE0xN,EAAM,IAAM,GACX1xN,EAAE2xN,EAAM,IAAM,GACd3xN,EAAE4xN,EAAW,IAAM,GAC3BH,GACAzxN,EAAE0xN,EAAM,EAAI,GAAK1xN,EAAE0xN,EAAM,EAAI,GAC3BA,GACA1xN,EAAE2xN,EAAM,EAAI,GAAK3xN,EAAE2xN,EAAM,EAAI,GAC3BA,GACA3xN,EAAE4xN,EAAW,EAAI,GAAK5xN,EAAE4xN,EAAW,EAAI,IACrCA,GACA,GAGhBhH,GAAgBvpN,CAAC,EAAE,qBAClBgwD,EAAWigK,IAAQjgK,EAAWmgK,MAE/BngK,EAAWmgK,IAEX5G,GAAgBvpN,CAAC,EAAE,gBAAkBgwD,IAAa,KAClDA,EAAWwgK,KAEXjH,GAAgBvpN,CAAC,EAAE,kBAAoBgwD,IAAa,KACpDA,EAAWygK,KAGflH,GAAgBvpN,CAAC,EAAE,SAAWgwD,GAG3BhwD,CACX,CAIA,IAAI24N,IACI,iJACJC,IACI,6IACJC,IAAU,wBACVC,GAAW,CACP,CAAC,eAAgB,qBAAqB,EACtC,CAAC,aAAc,iBAAiB,EAChC,CAAC,eAAgB,gBAAgB,EACjC,CAAC,aAAc,cAAe,EAAK,EACnC,CAAC,WAAY,aAAa,EAC1B,CAAC,UAAW,aAAc,EAAK,EAC/B,CAAC,aAAc,YAAY,EAC3B,CAAC,WAAY,OAAO,EACpB,CAAC,aAAc,aAAa,EAC5B,CAAC,YAAa,cAAe,EAAK,EAClC,CAAC,UAAW,OAAO,EACnB,CAAC,SAAU,QAAS,EAAK,EACzB,CAAC,OAAQ,QAAS,EAAK,CAC1B,EAEDC,GAAW,CACP,CAAC,gBAAiB,qBAAqB,EACvC,CAAC,gBAAiB,oBAAoB,EACtC,CAAC,WAAY,gBAAgB,EAC7B,CAAC,QAAS,WAAW,EACrB,CAAC,cAAe,mBAAmB,EACnC,CAAC,cAAe,kBAAkB,EAClC,CAAC,SAAU,cAAc,EACzB,CAAC,OAAQ,UAAU,EACnB,CAAC,KAAM,MAAM,CAChB,EACDC,IAAkB,qBAElBC,IACI,0LACJC,IAAa,CACT,GAAI,EACJ,IAAK,EACL,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,EAClB,EAGA,SAASC,GAAc98L,EAAQ,CAC3B,IAAI9U,EACAzpB,EACA48B,EAAS2B,EAAO,GAChBikD,EAAQq4I,IAAiB,KAAKj+L,CAAM,GAAKk+L,IAAc,KAAKl+L,CAAM,EAClE0+L,EACAC,EACAC,EACAC,EACAC,EAAcV,GAAS,OACvBW,EAAcV,GAAS,OAE3B,GAAIz4I,EAAO,CAEP,IADAipI,GAAgBltL,CAAM,EAAE,IAAM,GACzB9U,EAAI,EAAGzpB,EAAI07N,EAAajyM,EAAIzpB,EAAGypB,IAChC,GAAIuxM,GAASvxM,CAAC,EAAE,CAAC,EAAE,KAAK+4D,EAAM,CAAC,CAAC,EAAG,CAC/B+4I,EAAaP,GAASvxM,CAAC,EAAE,CAAC,EAC1B6xM,EAAYN,GAASvxM,CAAC,EAAE,CAAC,IAAM,GAC/B,KACH,CAEL,GAAI8xM,GAAc,KAAM,CACpBh9L,EAAO,SAAW,GAClB,MACH,CACD,GAAIikD,EAAM,CAAC,EAAG,CACV,IAAK/4D,EAAI,EAAGzpB,EAAI27N,EAAalyM,EAAIzpB,EAAGypB,IAChC,GAAIwxM,GAASxxM,CAAC,EAAE,CAAC,EAAE,KAAK+4D,EAAM,CAAC,CAAC,EAAG,CAE/Bg5I,GAAch5I,EAAM,CAAC,GAAK,KAAOy4I,GAASxxM,CAAC,EAAE,CAAC,EAC9C,KACH,CAEL,GAAI+xM,GAAc,KAAM,CACpBj9L,EAAO,SAAW,GAClB,MACH,CACJ,CACD,GAAI,CAAC+8L,GAAaE,GAAc,KAAM,CAClCj9L,EAAO,SAAW,GAClB,MACH,CACD,GAAIikD,EAAM,CAAC,EACP,GAAIu4I,IAAQ,KAAKv4I,EAAM,CAAC,CAAC,EACrBi5I,EAAW,QACR,CACHl9L,EAAO,SAAW,GAClB,MACH,CAELA,EAAO,GAAKg9L,GAAcC,GAAc,KAAOC,GAAY,IAC3DG,GAA0Br9L,CAAM,CACxC,MACQA,EAAO,SAAW,EAE1B,CAEA,SAASs9L,IACLC,EACAC,EACAC,EACAC,EACAC,EACAC,EACF,CACE,IAAIp5L,EAAS,CACTq5L,IAAeN,CAAO,EACtBjI,GAAyB,QAAQkI,CAAQ,EACzC,SAASC,EAAQ,EAAE,EACnB,SAASC,EAAS,EAAE,EACpB,SAASC,EAAW,EAAE,CAC9B,EAEI,OAAIC,GACAp5L,EAAO,KAAK,SAASo5L,EAAW,EAAE,CAAC,EAGhCp5L,CACX,CAEA,SAASq5L,IAAeN,EAAS,CAC7B,IAAI5J,EAAO,SAAS4J,EAAS,EAAE,EAC/B,OAAI5J,GAAQ,GACD,IAAOA,EACPA,GAAQ,IACR,KAAOA,EAEXA,CACX,CAEA,SAASmK,IAAkB7yM,EAAG,CAE1B,OAAOA,EACF,QAAQ,qBAAsB,GAAG,EACjC,QAAQ,WAAY,GAAG,EACvB,QAAQ,SAAU,EAAE,EACpB,QAAQ,SAAU,EAAE,CAC7B,CAEA,SAAS8yM,IAAaC,EAAYC,EAAaj+L,EAAQ,CACnD,GAAIg+L,EAAY,CAEZ,IAAIE,EAAkBvF,GAA2B,QAAQqF,CAAU,EAC/DG,EAAgB,IAAI,KAChBF,EAAY,CAAC,EACbA,EAAY,CAAC,EACbA,EAAY,CAAC,CAChB,EAAC,OAAM,EACZ,GAAIC,IAAoBC,EACpB,OAAAjR,GAAgBltL,CAAM,EAAE,gBAAkB,GAC1CA,EAAO,SAAW,GACX,EAEd,CACD,MAAO,EACX,CAEA,SAASo+L,IAAgBC,EAAWC,EAAgBC,EAAW,CAC3D,GAAIF,EACA,OAAOxB,IAAWwB,CAAS,EACxB,GAAIC,EAEP,MAAO,GAEP,IAAIE,EAAK,SAASD,EAAW,EAAE,EAC3B56N,EAAI66N,EAAK,IACTh7N,GAAKg7N,EAAK76N,GAAK,IACnB,OAAOH,EAAI,GAAKG,CAExB,CAGA,SAAS86N,GAAkBz+L,EAAQ,CAC/B,IAAIikD,EAAQ24I,IAAQ,KAAKkB,IAAkB99L,EAAO,EAAE,CAAC,EACjD0+L,EACJ,GAAIz6I,EAAO,CASP,GARAy6I,EAAcpB,IACVr5I,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,CACnB,EACY,CAAC85I,IAAa95I,EAAM,CAAC,EAAGy6I,EAAa1+L,CAAM,EAC3C,OAGJA,EAAO,GAAK0+L,EACZ1+L,EAAO,KAAOo+L,IAAgBn6I,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAGA,EAAM,EAAE,CAAC,EAE3DjkD,EAAO,GAAK82L,GAAc,MAAM,KAAM92L,EAAO,EAAE,EAC/CA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAe,EAAGA,EAAO,IAAI,EAE/DktL,GAAgBltL,CAAM,EAAE,QAAU,EAC1C,MACQA,EAAO,SAAW,EAE1B,CAGA,SAAS2+L,IAAiB3+L,EAAQ,CAC9B,IAAI8yL,EAAU6J,IAAgB,KAAK38L,EAAO,EAAE,EAC5C,GAAI8yL,IAAY,KAAM,CAClB9yL,EAAO,GAAK,IAAI,KAAK,CAAC8yL,EAAQ,CAAC,CAAC,EAChC,MACH,CAGD,GADAgK,GAAc98L,CAAM,EAChBA,EAAO,WAAa,GACpB,OAAOA,EAAO,aAEd,QAIJ,GADAy+L,GAAkBz+L,CAAM,EACpBA,EAAO,WAAa,GACpB,OAAOA,EAAO,aAEd,QAGAA,EAAO,QACPA,EAAO,SAAW,GAGlBg/J,GAAM,wBAAwBh/J,CAAM,CAE5C,CAEAg/J,GAAM,wBAA0B6uB,GAC5B,gSAGA,SAAU7tL,EAAQ,CACdA,EAAO,GAAK,IAAI,KAAKA,EAAO,IAAMA,EAAO,QAAU,OAAS,GAAG,CAClE,CACL,EAGA,SAASqe,GAAS/7C,EAAGK,EAAGW,EAAG,CACvB,OAAIhB,GAGAK,GAGGW,CACX,CAEA,SAASs7N,IAAiB5+L,EAAQ,CAE9B,IAAI6+L,EAAW,IAAI,KAAK7/B,GAAM,IAAK,GACnC,OAAIh/J,EAAO,QACA,CACH6+L,EAAS,eAAgB,EACzBA,EAAS,YAAa,EACtBA,EAAS,WAAY,CACjC,EAEW,CAACA,EAAS,cAAeA,EAAS,WAAYA,EAAS,QAAO,CAAE,CAC3E,CAMA,SAASC,GAAgB9+L,EAAQ,CAC7B,IAAI9U,EACA2yF,EACApuE,EAAQ,CAAE,EACVsvL,EACAC,EACAC,EAEJ,GAAI,CAAAj/L,EAAO,GAgCX,KA5BA++L,EAAcH,IAAiB5+L,CAAM,EAGjCA,EAAO,IAAMA,EAAO,GAAG8zL,EAAI,GAAK,MAAQ9zL,EAAO,GAAG6zL,EAAK,GAAK,MAC5DqL,IAAsBl/L,CAAM,EAI5BA,EAAO,YAAc,OACrBi/L,EAAY5gL,GAASre,EAAO,GAAG4zL,EAAI,EAAGmL,EAAYnL,EAAI,CAAC,GAGnD5zL,EAAO,WAAaq0L,GAAW4K,CAAS,GACxCj/L,EAAO,aAAe,KAEtBktL,GAAgBltL,CAAM,EAAE,mBAAqB,IAGjD69E,EAAOi5G,GAAcmI,EAAW,EAAGj/L,EAAO,UAAU,EACpDA,EAAO,GAAG6zL,EAAK,EAAIh2G,EAAK,YAAW,EACnC79E,EAAO,GAAG8zL,EAAI,EAAIj2G,EAAK,WAAU,GAQhC3yF,EAAI,EAAGA,EAAI,GAAK8U,EAAO,GAAG9U,CAAC,GAAK,KAAM,EAAEA,EACzC8U,EAAO,GAAG9U,CAAC,EAAIukB,EAAMvkB,CAAC,EAAI6zM,EAAY7zM,CAAC,EAI3C,KAAOA,EAAI,EAAGA,IACV8U,EAAO,GAAG9U,CAAC,EAAIukB,EAAMvkB,CAAC,EAClB8U,EAAO,GAAG9U,CAAC,GAAK,KAAQA,IAAM,EAAI,EAAI,EAAK8U,EAAO,GAAG9U,CAAC,EAK1D8U,EAAO,GAAG+zL,EAAI,IAAM,IACpB/zL,EAAO,GAAGg0L,EAAM,IAAM,GACtBh0L,EAAO,GAAGi0L,EAAM,IAAM,GACtBj0L,EAAO,GAAGk0L,EAAW,IAAM,IAE3Bl0L,EAAO,SAAW,GAClBA,EAAO,GAAG+zL,EAAI,EAAI,GAGtB/zL,EAAO,IAAMA,EAAO,QAAU82L,GAAgBF,KAAY,MACtD,KACAnnL,CACR,EACIuvL,EAAkBh/L,EAAO,QACnBA,EAAO,GAAG,UAAW,EACrBA,EAAO,GAAG,SAIZA,EAAO,MAAQ,MACfA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAe,EAAGA,EAAO,IAAI,EAG/DA,EAAO,WACPA,EAAO,GAAG+zL,EAAI,EAAI,IAKlB/zL,EAAO,IACP,OAAOA,EAAO,GAAG,EAAM,KACvBA,EAAO,GAAG,IAAMg/L,IAEhB9R,GAAgBltL,CAAM,EAAE,gBAAkB,IAElD,CAEA,SAASk/L,IAAsBl/L,EAAQ,CACnC,IAAI/9B,EAAGk9N,EAAU9H,EAAMC,EAASN,EAAKC,EAAKmI,EAAMC,EAAiBC,EAEjEr9N,EAAI+9B,EAAO,GACP/9B,EAAE,IAAM,MAAQA,EAAE,GAAK,MAAQA,EAAE,GAAK,MACtC+0N,EAAM,EACNC,EAAM,EAMNkI,EAAW9gL,GACPp8C,EAAE,GACF+9B,EAAO,GAAG4zL,EAAI,EACdgE,GAAW2H,GAAa,EAAE,EAAG,CAAC,EAAE,IAC5C,EACQlI,EAAOh5K,GAASp8C,EAAE,EAAG,CAAC,EACtBq1N,EAAUj5K,GAASp8C,EAAE,EAAG,CAAC,GACrBq1N,EAAU,GAAKA,EAAU,KACzB+H,EAAkB,MAGtBrI,EAAMh3L,EAAO,QAAQ,MAAM,IAC3Bi3L,EAAMj3L,EAAO,QAAQ,MAAM,IAE3Bs/L,EAAU1H,GAAW2H,GAAa,EAAEvI,EAAKC,CAAG,EAE5CkI,EAAW9gL,GAASp8C,EAAE,GAAI+9B,EAAO,GAAG4zL,EAAI,EAAG0L,EAAQ,IAAI,EAGvDjI,EAAOh5K,GAASp8C,EAAE,EAAGq9N,EAAQ,IAAI,EAE7Br9N,EAAE,GAAK,MAEPq1N,EAAUr1N,EAAE,GACRq1N,EAAU,GAAKA,EAAU,KACzB+H,EAAkB,KAEfp9N,EAAE,GAAK,MAEdq1N,EAAUr1N,EAAE,EAAI+0N,GACZ/0N,EAAE,EAAI,GAAKA,EAAE,EAAI,KACjBo9N,EAAkB,KAItB/H,EAAUN,GAGdK,EAAO,GAAKA,EAAOS,GAAYqH,EAAUnI,EAAKC,CAAG,EACjD/J,GAAgBltL,CAAM,EAAE,eAAiB,GAClCq/L,GAAmB,KAC1BnS,GAAgBltL,CAAM,EAAE,iBAAmB,IAE3Co/L,EAAOhI,GAAmB+H,EAAU9H,EAAMC,EAASN,EAAKC,CAAG,EAC3Dj3L,EAAO,GAAG4zL,EAAI,EAAIwL,EAAK,KACvBp/L,EAAO,WAAao/L,EAAK,UAEjC,CAGApgC,GAAM,SAAW,UAAY,GAG7BA,GAAM,SAAW,UAAY,GAG7B,SAASq+B,GAA0Br9L,EAAQ,CAEvC,GAAIA,EAAO,KAAOg/J,GAAM,SAAU,CAC9B89B,GAAc98L,CAAM,EACpB,MACH,CACD,GAAIA,EAAO,KAAOg/J,GAAM,SAAU,CAC9By/B,GAAkBz+L,CAAM,EACxB,MACH,CACDA,EAAO,GAAK,GACZktL,GAAgBltL,CAAM,EAAE,MAAQ,GAGhC,IAAI3B,EAAS,GAAK2B,EAAO,GACrB9U,EACA+yM,EACAruB,EACAC,EACA2vB,EACAC,EAAephM,EAAO,OACtBqhM,EAAyB,EACzBC,EACApM,EAKJ,IAHA3jB,EACI6f,GAAazvL,EAAO,GAAIA,EAAO,OAAO,EAAE,MAAM+uL,EAAgB,GAAK,GACvEwE,EAAW3jB,EAAO,OACb1kL,EAAI,EAAGA,EAAIqoM,EAAUroM,IACtB2kL,EAAQD,EAAO1kL,CAAC,EAChB+yM,GAAe5/L,EAAO,MAAMs0L,IAAsB9iB,EAAO7vK,CAAM,CAAC,GAC5D,CAAE,GAAE,CAAC,EACLi+L,IACAuB,EAAUnhM,EAAO,OAAO,EAAGA,EAAO,QAAQ4/L,CAAW,CAAC,EAClDuB,EAAQ,OAAS,GACjBtS,GAAgBltL,CAAM,EAAE,YAAY,KAAKw/L,CAAO,EAEpDnhM,EAASA,EAAO,MACZA,EAAO,QAAQ4/L,CAAW,EAAIA,EAAY,MAC1D,EACYyB,GAA0BzB,EAAY,QAGtC/O,GAAqBrf,CAAK,GACtBouB,EACA/Q,GAAgBltL,CAAM,EAAE,MAAQ,GAEhCktL,GAAgBltL,CAAM,EAAE,aAAa,KAAK6vK,CAAK,EAEnD4jB,IAAwB5jB,EAAOouB,EAAaj+L,CAAM,GAC3CA,EAAO,SAAW,CAACi+L,GAC1B/Q,GAAgBltL,CAAM,EAAE,aAAa,KAAK6vK,CAAK,EAKvDqd,GAAgBltL,CAAM,EAAE,cACpBy/L,EAAeC,EACfrhM,EAAO,OAAS,GAChB6uL,GAAgBltL,CAAM,EAAE,YAAY,KAAK3B,CAAM,EAK/C2B,EAAO,GAAG+zL,EAAI,GAAK,IACnB7G,GAAgBltL,CAAM,EAAE,UAAY,IACpCA,EAAO,GAAG+zL,EAAI,EAAI,IAElB7G,GAAgBltL,CAAM,EAAE,QAAU,QAGtCktL,GAAgBltL,CAAM,EAAE,gBAAkBA,EAAO,GAAG,MAAM,CAAC,EAC3DktL,GAAgBltL,CAAM,EAAE,SAAWA,EAAO,UAE1CA,EAAO,GAAG+zL,EAAI,EAAI6L,IACd5/L,EAAO,QACPA,EAAO,GAAG+zL,EAAI,EACd/zL,EAAO,SACf,EAGI2/L,EAAMzS,GAAgBltL,CAAM,EAAE,IAC1B2/L,IAAQ,OACR3/L,EAAO,GAAG4zL,EAAI,EAAI5zL,EAAO,QAAQ,gBAAgB2/L,EAAK3/L,EAAO,GAAG4zL,EAAI,CAAC,GAGzEkL,GAAgB9+L,CAAM,EACtBq8L,GAAcr8L,CAAM,CACxB,CAEA,SAAS4/L,IAAgB9S,EAAQ+S,EAAMxF,EAAU,CAC7C,IAAIyF,EAEJ,OAAIzF,GAAY,KAELwF,EAEP/S,EAAO,cAAgB,KAChBA,EAAO,aAAa+S,EAAMxF,CAAQ,GAClCvN,EAAO,MAAQ,OAEtBgT,EAAOhT,EAAO,KAAKuN,CAAQ,EACvByF,GAAQD,EAAO,KACfA,GAAQ,IAER,CAACC,GAAQD,IAAS,KAClBA,EAAO,IAEJA,EAKf,CAGA,SAASE,IAAyB//L,EAAQ,CACtC,IAAIggM,EACAC,EACAC,EACA,EACAC,EACAC,EACAC,EAAoB,GACpBC,EAAatgM,EAAO,GAAG,OAE3B,GAAIsgM,IAAe,EAAG,CAClBpT,GAAgBltL,CAAM,EAAE,cAAgB,GACxCA,EAAO,GAAK,IAAI,KAAK,GAAG,EACxB,MACH,CAED,IAAK,EAAI,EAAG,EAAIsgM,EAAY,IACxBH,EAAe,EACfC,EAAmB,GACnBJ,EAAavS,GAAW,GAAIztL,CAAM,EAC9BA,EAAO,SAAW,OAClBggM,EAAW,QAAUhgM,EAAO,SAEhCggM,EAAW,GAAKhgM,EAAO,GAAG,CAAC,EAC3Bq9L,GAA0B2C,CAAU,EAEhC1jJ,GAAQ0jJ,CAAU,IAClBI,EAAmB,IAIvBD,GAAgBjT,GAAgB8S,CAAU,EAAE,cAG5CG,GAAgBjT,GAAgB8S,CAAU,EAAE,aAAa,OAAS,GAElE9S,GAAgB8S,CAAU,EAAE,MAAQG,EAE/BE,EAaGF,EAAeD,IACfA,EAAcC,EACdF,EAAaD,IAbbE,GAAe,MACfC,EAAeD,GACfE,KAEAF,EAAcC,EACdF,EAAaD,EACTI,IACAC,EAAoB,KAWpCzT,GAAO5sL,EAAQigM,GAAcD,CAAU,CAC3C,CAEA,SAASO,IAAiBvgM,EAAQ,CAC9B,GAAI,CAAAA,EAAO,GAIX,KAAI9U,EAAI0lM,GAAqB5wL,EAAO,EAAE,EAClCwgM,EAAYt1M,EAAE,MAAQ,OAAYA,EAAE,KAAOA,EAAE,IACjD8U,EAAO,GAAK3Q,GACR,CAACnE,EAAE,KAAMA,EAAE,MAAOs1M,EAAWt1M,EAAE,KAAMA,EAAE,OAAQA,EAAE,OAAQA,EAAE,WAAW,EACtE,SAAUq5D,EAAK,CACX,OAAOA,GAAO,SAASA,EAAK,EAAE,CACjC,CACT,EAEIu6I,GAAgB9+L,CAAM,EAC1B,CAEA,SAASygM,IAAiBzgM,EAAQ,CAC9B,IAAI82K,EAAM,IAAI6W,GAAO0O,GAAcqE,GAAc1gM,CAAM,CAAC,CAAC,EACzD,OAAI82K,EAAI,WAEJA,EAAI,IAAI,EAAG,GAAG,EACdA,EAAI,SAAW,QAGZA,CACX,CAEA,SAAS4pB,GAAc1gM,EAAQ,CAC3B,IAAIyP,EAAQzP,EAAO,GACf2lF,EAAS3lF,EAAO,GAIpB,OAFAA,EAAO,QAAUA,EAAO,SAAWg8L,GAAUh8L,EAAO,EAAE,EAElDyP,IAAU,MAASk2E,IAAW,QAAal2E,IAAU,GAC9C69K,GAAc,CAAE,UAAW,EAAM,IAGxC,OAAO79K,GAAU,WACjBzP,EAAO,GAAKyP,EAAQzP,EAAO,QAAQ,SAASyP,CAAK,GAGjDm+K,GAASn+K,CAAK,EACP,IAAIk+K,GAAO0O,GAAc5sL,CAAK,CAAC,GAC/Bi9K,GAAOj9K,CAAK,EACnBzP,EAAO,GAAKyP,EACL+mC,GAAQmvC,CAAM,EACrBo6G,IAAyB//L,CAAM,EACxB2lF,EACP03G,GAA0Br9L,CAAM,EAEhC2gM,IAAgB3gM,CAAM,EAGrBs8C,GAAQt8C,CAAM,IACfA,EAAO,GAAK,MAGTA,GACX,CAEA,SAAS2gM,IAAgB3gM,EAAQ,CAC7B,IAAIyP,EAAQzP,EAAO,GACfg4C,GAAYvoC,CAAK,EACjBzP,EAAO,GAAK,IAAI,KAAKg/J,GAAM,IAAK,GACzB0tB,GAAOj9K,CAAK,EACnBzP,EAAO,GAAK,IAAI,KAAKyP,EAAM,QAAS,GAC7B,OAAOA,GAAU,SACxBkvL,IAAiB3+L,CAAM,EAChBw2C,GAAQ/mC,CAAK,GACpBzP,EAAO,GAAK3Q,GAAIogB,EAAM,MAAM,CAAC,EAAG,SAAU80C,EAAK,CAC3C,OAAO,SAASA,EAAK,EAAE,CACnC,CAAS,EACDu6I,GAAgB9+L,CAAM,GACfs2C,GAAS7mC,CAAK,EACrB8wL,IAAiBvgM,CAAM,EAChB0G,GAAS+I,CAAK,EAErBzP,EAAO,GAAK,IAAI,KAAKyP,CAAK,EAE1BuvJ,GAAM,wBAAwBh/J,CAAM,CAE5C,CAEA,SAASgtL,GAAiBv9K,EAAOk2E,EAAQmnG,EAAQC,EAAQ6H,EAAO,CAC5D,IAAItxN,EAAI,GAER,OAAIqiH,IAAW,IAAQA,IAAW,MAC9BonG,EAASpnG,EACTA,EAAS,SAGTmnG,IAAW,IAAQA,IAAW,MAC9BC,EAASD,EACTA,EAAS,SAIRx2I,GAAS7mC,CAAK,GAAKg9K,GAAch9K,CAAK,GACtC+mC,GAAQ/mC,CAAK,GAAKA,EAAM,SAAW,KAEpCA,EAAQ,QAIZnsC,EAAE,iBAAmB,GACrBA,EAAE,QAAUA,EAAE,OAASsxN,EACvBtxN,EAAE,GAAKwpN,EACPxpN,EAAE,GAAKmsC,EACPnsC,EAAE,GAAKqiH,EACPriH,EAAE,QAAUypN,EAEL0T,IAAiBn9N,CAAC,CAC7B,CAEA,SAASi8N,GAAY9vL,EAAOk2E,EAAQmnG,EAAQC,EAAQ,CAChD,OAAOC,GAAiBv9K,EAAOk2E,EAAQmnG,EAAQC,EAAQ,EAAK,CAChE,CAEA,IAAI6T,IAAe/S,GACX,qGACA,UAAY,CACR,IAAIgT,EAAQtB,GAAY,MAAM,KAAM,SAAS,EAC7C,OAAI,KAAK,QAAO,GAAMsB,EAAM,QAAO,EACxBA,EAAQ,KAAO,KAAOA,EAEtBvT,GAAa,CAE3B,CACJ,EACDwT,IAAejT,GACX,qGACA,UAAY,CACR,IAAIgT,EAAQtB,GAAY,MAAM,KAAM,SAAS,EAC7C,OAAI,KAAK,QAAO,GAAMsB,EAAM,QAAO,EACxBA,EAAQ,KAAO,KAAOA,EAEtBvT,GAAa,CAE3B,CACT,EAOA,SAASyT,GAAOvlK,EAAIwlK,EAAS,CACzB,IAAIlqB,EAAK5rL,EAIT,GAHI81M,EAAQ,SAAW,GAAKxqJ,GAAQwqJ,EAAQ,CAAC,CAAC,IAC1CA,EAAUA,EAAQ,CAAC,GAEnB,CAACA,EAAQ,OACT,OAAOzB,GAAW,EAGtB,IADAzoB,EAAMkqB,EAAQ,CAAC,EACV91M,EAAI,EAAGA,EAAI81M,EAAQ,OAAQ,EAAE91M,GAC1B,CAAC81M,EAAQ91M,CAAC,EAAE,QAAS,GAAI81M,EAAQ91M,CAAC,EAAEswC,CAAE,EAAEs7I,CAAG,KAC3CA,EAAMkqB,EAAQ91M,CAAC,GAGvB,OAAO4rL,CACX,CAGA,SAAS/+I,KAAM,CACX,IAAIvnC,EAAO,GAAG,MAAM,KAAK,UAAW,CAAC,EAErC,OAAOuwM,GAAO,WAAYvwM,CAAI,CAClC,CAEA,SAASwnC,KAAM,CACX,IAAIxnC,EAAO,GAAG,MAAM,KAAK,UAAW,CAAC,EAErC,OAAOuwM,GAAO,UAAWvwM,CAAI,CACjC,CAEA,IAAIkjK,IAAM,UAAY,CAClB,OAAO,KAAK,IAAM,KAAK,IAAG,EAAK,CAAC,IAAI,IACxC,EAEIutC,GAAW,CACX,OACA,UACA,QACA,OACA,MACA,OACA,SACA,SACA,aACJ,EAEA,SAASC,IAAgBv9N,EAAG,CACxB,IAAIk+B,EACAs/L,EAAiB,GACjBj2M,EACAk2M,EAAWH,GAAS,OACxB,IAAKp/L,KAAOl+B,EACR,GACI6oN,GAAW7oN,EAAGk+B,CAAG,GACjB,EACIinF,GAAQ,KAAKm4G,GAAUp/L,CAAG,IAAM,KAC/Bl+B,EAAEk+B,CAAG,GAAK,MAAQ,CAAC,MAAMl+B,EAAEk+B,CAAG,CAAC,IAGpC,MAAO,GAIf,IAAK3W,EAAI,EAAGA,EAAIk2M,EAAU,EAAEl2M,EACxB,GAAIvnB,EAAEs9N,GAAS/1M,CAAC,CAAC,EAAG,CAChB,GAAIi2M,EACA,MAAO,GAEP,WAAWx9N,EAAEs9N,GAAS/1M,CAAC,CAAC,CAAC,IAAMk5I,GAAMzgK,EAAEs9N,GAAS/1M,CAAC,CAAC,CAAC,IACnDi2M,EAAiB,GAExB,CAGL,MAAO,EACX,CAEA,SAASE,KAAY,CACjB,OAAO,KAAK,QAChB,CAEA,SAASC,KAAkB,CACvB,OAAOC,GAAe,GAAG,CAC7B,CAEA,SAASC,GAAS31H,EAAU,CACxB,IAAIilH,EAAkBF,GAAqB/kH,CAAQ,EAC/C41H,EAAQ3Q,EAAgB,MAAQ,EAChC4Q,EAAW5Q,EAAgB,SAAW,EACtC6Q,EAAS7Q,EAAgB,OAAS,EAClC8Q,EAAQ9Q,EAAgB,MAAQA,EAAgB,SAAW,EAC3D5iB,EAAO4iB,EAAgB,KAAO,EAC9BiK,EAAQjK,EAAgB,MAAQ,EAChCkK,EAAUlK,EAAgB,QAAU,EACpCtjB,EAAUsjB,EAAgB,QAAU,EACpC+Q,EAAe/Q,EAAgB,aAAe,EAElD,KAAK,SAAWoQ,IAAgBpQ,CAAe,EAG/C,KAAK,cACD,CAAC+Q,EACDr0B,EAAU,IACVwtB,EAAU,IACVD,EAAQ,IAAO,GAAK,GAGxB,KAAK,MAAQ,CAAC7sB,EAAO0zB,EAAQ,EAI7B,KAAK,QAAU,CAACD,EAASD,EAAW,EAAID,EAAQ,GAEhD,KAAK,MAAQ,GAEb,KAAK,QAAUzF,KAEf,KAAK,QAAO,CAChB,CAEA,SAAS8F,GAAWv9I,EAAK,CACrB,OAAOA,aAAei9I,EAC1B,CAEA,SAASO,GAAS9xG,EAAQ,CACtB,OAAIA,EAAS,EACF,KAAK,MAAM,GAAKA,CAAM,EAAI,GAE1B,KAAK,MAAMA,CAAM,CAEhC,CAGA,SAAS+xG,IAAcC,EAAQC,EAAQC,EAAa,CAChD,IAAI9hK,EAAM,KAAK,IAAI4hK,EAAO,OAAQC,EAAO,MAAM,EAC3CE,EAAa,KAAK,IAAIH,EAAO,OAASC,EAAO,MAAM,EACnDG,EAAQ,EACRn3M,EACJ,IAAKA,EAAI,EAAGA,EAAIm1C,EAAKn1C,KAEZi3M,GAAeF,EAAO/2M,CAAC,IAAMg3M,EAAOh3M,CAAC,GACrC,CAACi3M,GAAe/9D,GAAM69D,EAAO/2M,CAAC,CAAC,IAAMk5I,GAAM89D,EAAOh3M,CAAC,CAAC,IAErDm3M,IAGR,OAAOA,EAAQD,CACnB,CAIA,SAAS9kK,GAAOuyI,EAAOjtK,EAAW,CAC9BusL,GAAetf,EAAO,EAAG,EAAG,UAAY,CACpC,IAAIvyI,EAAS,KAAK,UAAW,EACzBwxJ,EAAO,IACX,OAAIxxJ,EAAS,IACTA,EAAS,CAACA,EACVwxJ,EAAO,KAGPA,EACAL,GAAS,CAAC,EAAEnxJ,EAAS,IAAK,CAAC,EAC3B16B,EACA6rL,GAAS,CAAC,CAACnxJ,EAAS,GAAI,CAAC,CAErC,CAAK,CACL,CAEAA,GAAO,IAAK,GAAG,EACfA,GAAO,KAAM,EAAE,EAIfi1J,GAAc,IAAKN,EAAgB,EACnCM,GAAc,KAAMN,EAAgB,EACpCqB,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CACvDA,EAAO,QAAU,GACjBA,EAAO,KAAOsiM,GAAiBrQ,GAAkBxiL,CAAK,CAC1D,CAAC,EAOD,IAAI8yL,IAAc,kBAElB,SAASD,GAAiBtmG,EAAS39F,EAAQ,CACvC,IAAIiyF,GAAWjyF,GAAU,IAAI,MAAM29F,CAAO,EACtCwmG,EACAz0C,EACAitC,EAEJ,OAAI1qG,IAAY,KACL,MAGXkyG,EAAQlyG,EAAQA,EAAQ,OAAS,CAAC,GAAK,GACvCy9D,GAASy0C,EAAQ,IAAI,MAAMD,GAAW,GAAK,CAAC,IAAK,EAAG,CAAC,EACrDvH,EAAU,EAAEjtC,EAAM,CAAC,EAAI,IAAM3pB,GAAM2pB,EAAM,CAAC,CAAC,EAEpCitC,IAAY,EAAI,EAAIjtC,EAAM,CAAC,IAAM,IAAMitC,EAAU,CAACA,EAC7D,CAGA,SAASyH,GAAgBhzL,EAAOizL,EAAO,CACnC,IAAI5rB,EAAK0Z,EACT,OAAIkS,EAAM,QACN5rB,EAAM4rB,EAAM,QACZlS,GACK5C,GAASn+K,CAAK,GAAKi9K,GAAOj9K,CAAK,EAC1BA,EAAM,QAAS,EACf8vL,GAAY9vL,CAAK,EAAE,QAAS,GAAIqnK,EAAI,QAAO,EAErDA,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAO,EAAK0Z,CAAI,EACtCxxB,GAAM,aAAa8X,EAAK,EAAK,EACtBA,GAEAyoB,GAAY9vL,CAAK,EAAE,OAElC,CAEA,SAASkzL,GAAch/N,EAAG,CAGtB,MAAO,CAAC,KAAK,MAAMA,EAAE,GAAG,kBAAiB,CAAE,CAC/C,CAMAq7L,GAAM,aAAe,UAAY,GAcjC,SAAS4jC,IAAanzL,EAAOozL,EAAeC,EAAa,CACrD,IAAIxlK,EAAS,KAAK,SAAW,EACzBylK,EACJ,GAAI,CAAC,KAAK,UACN,OAAOtzL,GAAS,KAAO,KAAO,IAElC,GAAIA,GAAS,KAAM,CACf,GAAI,OAAOA,GAAU,UAEjB,GADAA,EAAQ6yL,GAAiBrQ,GAAkBxiL,CAAK,EAC5CA,IAAU,KACV,OAAO,UAEJ,KAAK,IAAIA,CAAK,EAAI,IAAM,CAACqzL,IAChCrzL,EAAQA,EAAQ,IAEpB,MAAI,CAAC,KAAK,QAAUozL,IAChBE,EAAcJ,GAAc,IAAI,GAEpC,KAAK,QAAUlzL,EACf,KAAK,OAAS,GACVszL,GAAe,MACf,KAAK,IAAIA,EAAa,GAAG,EAEzBzlK,IAAW7tB,IACP,CAACozL,GAAiB,KAAK,kBACvBG,GACI,KACAzB,GAAe9xL,EAAQ6tB,EAAQ,GAAG,EAClC,EACA,EACpB,EACwB,KAAK,oBACb,KAAK,kBAAoB,GACzB0hI,GAAM,aAAa,KAAM,EAAI,EAC7B,KAAK,kBAAoB,OAG1B,IACf,KACQ,QAAO,KAAK,OAAS1hI,EAASqlK,GAAc,IAAI,CAExD,CAEA,SAASM,IAAWxzL,EAAOozL,EAAe,CACtC,OAAIpzL,GAAS,MACL,OAAOA,GAAU,WACjBA,EAAQ,CAACA,GAGb,KAAK,UAAUA,EAAOozL,CAAa,EAE5B,MAEA,CAAC,KAAK,WAErB,CAEA,SAASK,IAAeL,EAAe,CACnC,OAAO,KAAK,UAAU,EAAGA,CAAa,CAC1C,CAEA,SAASM,IAAiBN,EAAe,CACrC,OAAI,KAAK,SACL,KAAK,UAAU,EAAGA,CAAa,EAC/B,KAAK,OAAS,GAEVA,GACA,KAAK,SAASF,GAAc,IAAI,EAAG,GAAG,GAGvC,IACX,CAEA,SAASS,KAA0B,CAC/B,GAAI,KAAK,MAAQ,KACb,KAAK,UAAU,KAAK,KAAM,GAAO,EAAI,UAC9B,OAAO,KAAK,IAAO,SAAU,CACpC,IAAIC,EAAQf,GAAiBtQ,IAAa,KAAK,EAAE,EAC7CqR,GAAS,KACT,KAAK,UAAUA,CAAK,EAEpB,KAAK,UAAU,EAAG,EAAI,CAE7B,CACD,OAAO,IACX,CAEA,SAASC,IAAqB7zL,EAAO,CACjC,OAAK,KAAK,WAGVA,EAAQA,EAAQ8vL,GAAY9vL,CAAK,EAAE,UAAW,EAAG,GAEzC,KAAK,UAAS,EAAKA,GAAS,KAAO,GAJhC,EAKf,CAEA,SAAS8zL,KAAuB,CAC5B,OACI,KAAK,UAAW,EAAG,KAAK,MAAO,EAAC,MAAM,CAAC,EAAE,UAAW,GACpD,KAAK,UAAW,EAAG,KAAK,MAAO,EAAC,MAAM,CAAC,EAAE,UAAW,CAE5D,CAEA,SAASC,KAA8B,CACnC,GAAI,CAACxrJ,GAAY,KAAK,aAAa,EAC/B,OAAO,KAAK,cAGhB,IAAI10E,EAAI,CAAE,EACNu9N,EAEJ,OAAApT,GAAWnqN,EAAG,IAAI,EAClBA,EAAIo9N,GAAcp9N,CAAC,EAEfA,EAAE,IACFu9N,EAAQv9N,EAAE,OAASupN,GAAUvpN,EAAE,EAAE,EAAIi8N,GAAYj8N,EAAE,EAAE,EACrD,KAAK,cACD,KAAK,WAAa0+N,IAAc1+N,EAAE,GAAIu9N,EAAM,SAAS,EAAI,GAE7D,KAAK,cAAgB,GAGlB,KAAK,aAChB,CAEA,SAAS4C,KAAU,CACf,OAAO,KAAK,QAAS,EAAG,CAAC,KAAK,OAAS,EAC3C,CAEA,SAASC,KAAc,CACnB,OAAO,KAAK,QAAO,EAAK,KAAK,OAAS,EAC1C,CAEA,SAASC,IAAQ,CACb,OAAO,KAAK,QAAO,EAAK,KAAK,QAAU,KAAK,UAAY,EAAI,EAChE,CAGA,IAAIC,IAAc,wDAIdC,IACI,sKAER,SAAStC,GAAe9xL,EAAO5N,EAAK,CAChC,IAAIgqE,EAAWp8D,EAEXw0C,EAAQ,KACR6qI,EACAj4C,EACAitD,EAEJ,OAAIhC,GAAWryL,CAAK,EAChBo8D,EAAW,CACP,GAAIp8D,EAAM,cACV,EAAGA,EAAM,MACT,EAAGA,EAAM,OACrB,EACe/I,GAAS+I,CAAK,GAAK,CAAC,MAAM,CAACA,CAAK,GACvCo8D,EAAW,GACPhqE,EACAgqE,EAAShqE,CAAG,EAAI,CAAC4N,EAEjBo8D,EAAS,aAAe,CAACp8D,IAErBw0C,EAAQ2/I,IAAY,KAAKn0L,CAAK,IACtCq/K,EAAO7qI,EAAM,CAAC,IAAM,IAAM,GAAK,EAC/B4nB,EAAW,CACP,EAAG,EACH,EAAGu4D,GAAMngF,EAAM6vI,EAAI,CAAC,EAAIhF,EACxB,EAAG1qD,GAAMngF,EAAM8vI,EAAI,CAAC,EAAIjF,EACxB,EAAG1qD,GAAMngF,EAAM+vI,EAAM,CAAC,EAAIlF,EAC1B,EAAG1qD,GAAMngF,EAAMgwI,EAAM,CAAC,EAAInF,EAC1B,GAAI1qD,GAAM29D,GAAS99I,EAAMiwI,EAAW,EAAI,GAAI,CAAC,EAAIpF,CAC7D,IACgB7qI,EAAQ4/I,IAAS,KAAKp0L,CAAK,IACnCq/K,EAAO7qI,EAAM,CAAC,IAAM,IAAM,GAAK,EAC/B4nB,EAAW,CACP,EAAGk4H,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,EAC1B,EAAGiV,GAAS9/I,EAAM,CAAC,EAAG6qI,CAAI,CACtC,GACejjH,GAAY,KAEnBA,EAAW,GAEX,OAAOA,GAAa,WACnB,SAAUA,GAAY,OAAQA,KAE/Bi4H,EAAUE,IACNzE,GAAY1zH,EAAS,IAAI,EACzB0zH,GAAY1zH,EAAS,EAAE,CACnC,EAEQA,EAAW,GACXA,EAAS,GAAKi4H,EAAQ,aACtBj4H,EAAS,EAAIi4H,EAAQ,QAGzBjtD,EAAM,IAAI2qD,GAAS31H,CAAQ,EAEvBi2H,GAAWryL,CAAK,GAAK+8K,GAAW/8K,EAAO,SAAS,IAChDonI,EAAI,QAAUpnI,EAAM,SAGpBqyL,GAAWryL,CAAK,GAAK+8K,GAAW/8K,EAAO,UAAU,IACjDonI,EAAI,SAAWpnI,EAAM,UAGlBonI,CACX,CAEA0qD,GAAe,GAAKC,GAAS,UAC7BD,GAAe,QAAUD,IAEzB,SAASyC,GAASE,EAAKnV,EAAM,CAIzB,IAAIhY,EAAMmtB,GAAO,WAAWA,EAAI,QAAQ,IAAK,GAAG,CAAC,EAEjD,OAAQ,MAAMntB,CAAG,EAAI,EAAIA,GAAOgY,CACpC,CAEA,SAASoV,GAA0Bl5L,EAAM61L,EAAO,CAC5C,IAAI/pB,EAAM,GAEV,OAAAA,EAAI,OACA+pB,EAAM,MAAK,EAAK71L,EAAK,MAAK,GAAM61L,EAAM,OAAS71L,EAAK,KAAI,GAAM,GAC9DA,EAAK,MAAO,EAAC,IAAI8rK,EAAI,OAAQ,GAAG,EAAE,QAAQ+pB,CAAK,GAC/C,EAAE/pB,EAAI,OAGVA,EAAI,aAAe,CAAC+pB,EAAQ,CAAC71L,EAAK,MAAO,EAAC,IAAI8rK,EAAI,OAAQ,GAAG,EAEtDA,CACX,CAEA,SAASktB,IAAkBh5L,EAAM61L,EAAO,CACpC,IAAI/pB,EACJ,OAAM9rK,EAAK,QAAO,GAAM61L,EAAM,QAAS,GAIvCA,EAAQ4B,GAAgB5B,EAAO71L,CAAI,EAC/BA,EAAK,SAAS61L,CAAK,EACnB/pB,EAAMotB,GAA0Bl5L,EAAM61L,CAAK,GAE3C/pB,EAAMotB,GAA0BrD,EAAO71L,CAAI,EAC3C8rK,EAAI,aAAe,CAACA,EAAI,aACxBA,EAAI,OAAS,CAACA,EAAI,QAGfA,GAZI,CAAE,aAAc,EAAG,OAAQ,CAAC,CAa3C,CAGA,SAASqtB,GAAY3+K,EAAWp0B,EAAM,CAClC,OAAO,SAAU6mD,EAAKmsJ,EAAQ,CAC1B,IAAIC,EAAKt3B,EAET,OAAIq3B,IAAW,MAAQ,CAAC,MAAM,CAACA,CAAM,IACjCnW,GACI78L,EACA,YACIA,EACA,uDACAA,EACA,gGAEpB,EACY27K,EAAM90H,EACNA,EAAMmsJ,EACNA,EAASr3B,GAGbs3B,EAAM9C,GAAetpJ,EAAKmsJ,CAAM,EAChCpB,GAAY,KAAMqB,EAAK7+K,CAAS,EACzB,IACf,CACA,CAEA,SAASw9K,GAAYxU,EAAK3iH,EAAUy4H,EAAUC,EAAc,CACxD,IAAI1C,EAAeh2H,EAAS,cACxBqiG,EAAO6zB,GAASl2H,EAAS,KAAK,EAC9B81H,EAASI,GAASl2H,EAAS,OAAO,EAEjC2iH,EAAI,YAKT+V,EAAeA,GAAuB,GAElC5C,GACA3L,GAASxH,EAAKx9L,GAAIw9L,EAAK,OAAO,EAAImT,EAAS2C,CAAQ,EAEnDp2B,GACAymB,GAAMnG,EAAK,OAAQx9L,GAAIw9L,EAAK,MAAM,EAAItgB,EAAOo2B,CAAQ,EAErDzC,GACArT,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAS,EAAGqT,EAAeyC,CAAQ,EAEzDC,GACAvlC,GAAM,aAAawvB,EAAKtgB,GAAQyzB,CAAM,EAE9C,CAEA,IAAIl6K,IAAM08K,GAAY,EAAG,KAAK,EAC1BK,IAAWL,GAAY,GAAI,UAAU,EAEzC,SAAStnJ,GAASptC,EAAO,CACrB,OAAO,OAAOA,GAAU,UAAYA,aAAiB,MACzD,CAGA,SAASg1L,IAAch1L,EAAO,CAC1B,OACIm+K,GAASn+K,CAAK,GACdi9K,GAAOj9K,CAAK,GACZotC,GAASptC,CAAK,GACd/I,GAAS+I,CAAK,GACdi1L,IAAsBj1L,CAAK,GAC3Bk1L,IAAoBl1L,CAAK,GACzBA,IAAU,MACVA,IAAU,MAElB,CAEA,SAASk1L,IAAoBl1L,EAAO,CAChC,IAAIm1L,EAAatuJ,GAAS7mC,CAAK,GAAK,CAACg9K,GAAch9K,CAAK,EACpDo1L,EAAe,GACfhqG,EAAa,CACT,QACA,OACA,IACA,SACA,QACA,IACA,OACA,MACA,IACA,QACA,OACA,IACA,QACA,OACA,IACA,UACA,SACA,IACA,UACA,SACA,IACA,eACA,cACA,IACH,EACD,EACA15F,EACA2jM,EAAcjqG,EAAW,OAE7B,IAAK,EAAI,EAAG,EAAIiqG,EAAa,GAAK,EAC9B3jM,EAAW05F,EAAW,CAAC,EACvBgqG,EAAeA,GAAgBrY,GAAW/8K,EAAOtO,CAAQ,EAG7D,OAAOyjM,GAAcC,CACzB,CAEA,SAASH,IAAsBj1L,EAAO,CAClC,IAAIs1L,EAAYvuJ,GAAQ/mC,CAAK,EACzBu1L,EAAe,GACnB,OAAID,IACAC,EACIv1L,EAAM,OAAO,SAAUvT,EAAM,CACzB,MAAO,CAACwK,GAASxK,CAAI,GAAK2gD,GAASptC,CAAK,CACxD,CAAa,EAAE,SAAW,GAEfs1L,GAAaC,CACxB,CAEA,SAASC,IAAex1L,EAAO,CAC3B,IAAIm1L,EAAatuJ,GAAS7mC,CAAK,GAAK,CAACg9K,GAAch9K,CAAK,EACpDo1L,EAAe,GACfhqG,EAAa,CACT,UACA,UACA,UACA,WACA,WACA,UACH,EACD,EACA15F,EAEJ,IAAK,EAAI,EAAG,EAAI05F,EAAW,OAAQ,GAAK,EACpC15F,EAAW05F,EAAW,CAAC,EACvBgqG,EAAeA,GAAgBrY,GAAW/8K,EAAOtO,CAAQ,EAG7D,OAAOyjM,GAAcC,CACzB,CAEA,SAASK,IAAkBC,EAAUzxC,EAAK,CACtC,IAAI88B,EAAO2U,EAAS,KAAKzxC,EAAK,OAAQ,EAAI,EAC1C,OAAO88B,EAAO,GACR,WACAA,EAAO,GACL,WACAA,EAAO,EACL,UACAA,EAAO,EACL,UACAA,EAAO,EACL,UACAA,EAAO,EACL,WACA,UACpB,CAEA,SAAS4U,IAAW1hJ,EAAMiqC,EAAS,CAE3B,UAAU,SAAW,IAChB,UAAU,CAAC,EAGL82G,IAAc,UAAU,CAAC,CAAC,GACjC/gJ,EAAO,UAAU,CAAC,EAClBiqC,EAAU,QACHs3G,IAAe,UAAU,CAAC,CAAC,IAClCt3G,EAAU,UAAU,CAAC,EACrBjqC,EAAO,SAPPA,EAAO,OACPiqC,EAAU,SAWlB,IAAI+lE,EAAMhwG,GAAQ67I,GAAa,EAC3B8F,EAAM5C,GAAgB/uC,EAAK,IAAI,EAAE,QAAQ,KAAK,EAC9C/tE,EAASq5E,GAAM,eAAe,KAAMqmC,CAAG,GAAK,WAC5Ct7I,EACI4jC,IACC9sC,GAAW8sC,EAAQhI,CAAM,CAAC,EACrBgI,EAAQhI,CAAM,EAAE,KAAK,KAAM+tE,CAAG,EAC9B/lE,EAAQhI,CAAM,GAE5B,OAAO,KAAK,OACR57B,GAAU,KAAK,aAAa,SAAS47B,EAAQ,KAAM45G,GAAY7rC,CAAG,CAAC,CAC3E,CACA,CAEA,SAAS4xC,KAAQ,CACb,OAAO,IAAI3X,GAAO,IAAI,CAC1B,CAEA,SAAS4X,IAAQ91L,EAAOkhL,EAAO,CAC3B,IAAI6U,EAAa5X,GAASn+K,CAAK,EAAIA,EAAQ8vL,GAAY9vL,CAAK,EAC5D,OAAM,KAAK,QAAO,GAAM+1L,EAAW,QAAS,GAG5C7U,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,EAAK6U,EAAW,QAAO,EAEnCA,EAAW,QAAS,EAAG,KAAK,MAAO,EAAC,QAAQ7U,CAAK,EAAE,WANnD,EAQf,CAEA,SAAS8U,IAASh2L,EAAOkhL,EAAO,CAC5B,IAAI6U,EAAa5X,GAASn+K,CAAK,EAAIA,EAAQ8vL,GAAY9vL,CAAK,EAC5D,OAAM,KAAK,QAAO,GAAM+1L,EAAW,QAAS,GAG5C7U,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,EAAK6U,EAAW,QAAO,EAEnC,KAAK,MAAO,EAAC,MAAM7U,CAAK,EAAE,QAAS,EAAG6U,EAAW,WANjD,EAQf,CAEA,SAASE,IAAUp6M,EAAMD,EAAIslM,EAAOgV,EAAa,CAC7C,IAAIC,EAAYhY,GAAStiM,CAAI,EAAIA,EAAOi0M,GAAYj0M,CAAI,EACpDu6M,EAAUjY,GAASviM,CAAE,EAAIA,EAAKk0M,GAAYl0M,CAAE,EAChD,OAAM,KAAK,WAAau6M,EAAU,WAAaC,EAAQ,QAAO,GAG9DF,EAAcA,GAAe,MAExBA,EAAY,CAAC,IAAM,IACd,KAAK,QAAQC,EAAWjV,CAAK,EAC7B,CAAC,KAAK,SAASiV,EAAWjV,CAAK,KACpCgV,EAAY,CAAC,IAAM,IACd,KAAK,SAASE,EAASlV,CAAK,EAC5B,CAAC,KAAK,QAAQkV,EAASlV,CAAK,IAT3B,EAWf,CAEA,SAASmV,IAAOr2L,EAAOkhL,EAAO,CAC1B,IAAI6U,EAAa5X,GAASn+K,CAAK,EAAIA,EAAQ8vL,GAAY9vL,CAAK,EACxDs2L,EACJ,OAAM,KAAK,QAAO,GAAMP,EAAW,QAAS,GAG5C7U,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,IAAO6U,EAAW,QAAO,GAE5CO,EAAUP,EAAW,UAEjB,KAAK,MAAK,EAAG,QAAQ7U,CAAK,EAAE,QAAO,GAAMoV,GACzCA,GAAW,KAAK,MAAK,EAAG,MAAMpV,CAAK,EAAE,QAAS,IAT3C,EAYf,CAEA,SAASqV,IAAcv2L,EAAOkhL,EAAO,CACjC,OAAO,KAAK,OAAOlhL,EAAOkhL,CAAK,GAAK,KAAK,QAAQlhL,EAAOkhL,CAAK,CACjE,CAEA,SAASsV,IAAex2L,EAAOkhL,EAAO,CAClC,OAAO,KAAK,OAAOlhL,EAAOkhL,CAAK,GAAK,KAAK,SAASlhL,EAAOkhL,CAAK,CAClE,CAEA,SAASH,IAAK/gL,EAAOkhL,EAAOuV,EAAS,CACjC,IAAIlmB,EAAMmmB,EAAWp8I,EAErB,GAAI,CAAC,KAAK,UACN,MAAO,KAKX,GAFAi2H,EAAOyiB,GAAgBhzL,EAAO,IAAI,EAE9B,CAACuwK,EAAK,UACN,MAAO,KAOX,OAJAmmB,GAAanmB,EAAK,UAAS,EAAK,KAAK,UAAW,GAAI,IAEpD2Q,EAAQD,GAAeC,CAAK,EAEpBA,EAAK,CACT,IAAK,OACD5mI,EAASq8I,GAAU,KAAMpmB,CAAI,EAAI,GACjC,MACJ,IAAK,QACDj2H,EAASq8I,GAAU,KAAMpmB,CAAI,EAC7B,MACJ,IAAK,UACDj2H,EAASq8I,GAAU,KAAMpmB,CAAI,EAAI,EACjC,MACJ,IAAK,SACDj2H,GAAU,KAAOi2H,GAAQ,IACzB,MACJ,IAAK,SACDj2H,GAAU,KAAOi2H,GAAQ,IACzB,MACJ,IAAK,OACDj2H,GAAU,KAAOi2H,GAAQ,KACzB,MACJ,IAAK,MACDj2H,GAAU,KAAOi2H,EAAOmmB,GAAa,MACrC,MACJ,IAAK,OACDp8I,GAAU,KAAOi2H,EAAOmmB,GAAa,OACrC,MACJ,QACIp8I,EAAS,KAAOi2H,CACvB,CAED,OAAOkmB,EAAUn8I,EAASopI,GAASppI,CAAM,CAC7C,CAEA,SAASq8I,GAAU9jO,EAAGK,EAAG,CACrB,GAAIL,EAAE,KAAI,EAAKK,EAAE,KAAI,EAGjB,MAAO,CAACyjO,GAAUzjO,EAAGL,CAAC,EAG1B,IAAI+jO,GAAkB1jO,EAAE,KAAI,EAAKL,EAAE,QAAU,IAAMK,EAAE,MAAO,EAAGL,EAAE,MAAK,GAElEwrE,EAASxrE,EAAE,MAAK,EAAG,IAAI+jO,EAAgB,QAAQ,EAC/CC,EACAC,EAEJ,OAAI5jO,EAAImrE,EAAS,GACbw4J,EAAUhkO,EAAE,MAAO,EAAC,IAAI+jO,EAAiB,EAAG,QAAQ,EAEpDE,GAAU5jO,EAAImrE,IAAWA,EAASw4J,KAElCA,EAAUhkO,EAAE,MAAO,EAAC,IAAI+jO,EAAiB,EAAG,QAAQ,EAEpDE,GAAU5jO,EAAImrE,IAAWw4J,EAAUx4J,IAIhC,EAAEu4J,EAAiBE,IAAW,CACzC,CAEAvnC,GAAM,cAAgB,uBACtBA,GAAM,iBAAmB,yBAEzB,SAASj7I,KAAW,CAChB,OAAO,KAAK,QAAQ,OAAO,IAAI,EAAE,OAAO,kCAAkC,CAC9E,CAEA,SAASyiL,IAAYC,EAAY,CAC7B,GAAI,CAAC,KAAK,UACN,OAAO,KAEX,IAAIC,EAAMD,IAAe,GACrB9iO,EAAI+iO,EAAM,KAAK,MAAK,EAAG,IAAK,EAAG,KACnC,OAAI/iO,EAAE,OAAS,GAAKA,EAAE,KAAM,EAAG,KACpB6rN,GACH7rN,EACA+iO,EACM,iCACA,8BAClB,EAEQ7lJ,GAAW,KAAK,UAAU,WAAW,EAEjC6lJ,EACO,KAAK,SAAS,cAEd,IAAI,KAAK,KAAK,QAAO,EAAK,KAAK,UAAS,EAAK,GAAK,GAAI,EACxD,YAAa,EACb,QAAQ,IAAKlX,GAAa7rN,EAAG,GAAG,CAAC,EAGvC6rN,GACH7rN,EACA+iO,EAAM,+BAAiC,4BAC/C,CACA,CAQA,SAASC,KAAU,CACf,GAAI,CAAC,KAAK,UACN,MAAO,qBAAuB,KAAK,GAAK,OAE5C,IAAI1kM,EAAO,SACP2kM,EAAO,GACPvlM,EACAsyL,EACAkT,EACAC,EACJ,OAAK,KAAK,YACN7kM,EAAO,KAAK,UAAS,IAAO,EAAI,aAAe,mBAC/C2kM,EAAO,KAEXvlM,EAAS,IAAMY,EAAO,MACtB0xL,EAAO,GAAK,KAAK,KAAM,GAAI,KAAK,QAAU,KAAO,OAAS,SAC1DkT,EAAW,wBACXC,EAASF,EAAO,OAET,KAAK,OAAOvlM,EAASsyL,EAAOkT,EAAWC,CAAM,CACxD,CAEA,SAASnhH,IAAOohH,EAAa,CACpBA,IACDA,EAAc,KAAK,MAAO,EACpB/nC,GAAM,iBACNA,GAAM,eAEhB,IAAIj1G,EAASylI,GAAa,KAAMuX,CAAW,EAC3C,OAAO,KAAK,WAAU,EAAG,WAAWh9I,CAAM,CAC9C,CAEA,SAASz+D,IAAKo4D,EAAM2sI,EAAe,CAC/B,OACI,KAAK,QAAS,IACZzC,GAASlqI,CAAI,GAAKA,EAAK,QAAS,GAAK67I,GAAY77I,CAAI,EAAE,WAElD69I,GAAe,CAAE,GAAI,KAAM,KAAM79I,CAAI,CAAE,EACzC,OAAO,KAAK,QAAQ,EACpB,SAAS,CAAC2sI,CAAa,EAErB,KAAK,aAAa,aAEjC,CAEA,SAAS2W,IAAQ3W,EAAe,CAC5B,OAAO,KAAK,KAAKkP,GAAa,EAAElP,CAAa,CACjD,CAEA,SAAShlM,IAAGq4D,EAAM2sI,EAAe,CAC7B,OACI,KAAK,QAAS,IACZzC,GAASlqI,CAAI,GAAKA,EAAK,QAAS,GAAK67I,GAAY77I,CAAI,EAAE,WAElD69I,GAAe,CAAE,KAAM,KAAM,GAAI79I,CAAI,CAAE,EACzC,OAAO,KAAK,QAAQ,EACpB,SAAS,CAAC2sI,CAAa,EAErB,KAAK,aAAa,aAEjC,CAEA,SAAS4W,IAAM5W,EAAe,CAC1B,OAAO,KAAK,GAAGkP,GAAa,EAAElP,CAAa,CAC/C,CAKA,SAASvD,GAAOjrL,EAAK,CACjB,IAAIqlM,EAEJ,OAAIrlM,IAAQ,OACD,KAAK,QAAQ,OAEpBqlM,EAAgBlL,GAAUn6L,CAAG,EACzBqlM,GAAiB,OACjB,KAAK,QAAUA,GAEZ,KAEf,CAEA,IAAIC,GAAOtZ,GACP,kJACA,SAAUhsL,EAAK,CACX,OAAIA,IAAQ,OACD,KAAK,aAEL,KAAK,OAAOA,CAAG,CAE7B,CACL,EAEA,SAAS6wL,IAAa,CAClB,OAAO,KAAK,OAChB,CAEA,IAAI0U,GAAgB,IAChBC,GAAgB,GAAKD,GACrBE,GAAc,GAAKD,GACnBE,IAAoB,IAAM,IAAM,IAAM,GAAKD,GAG/C,SAASE,GAAMC,EAAUC,EAAS,CAC9B,OAASD,EAAWC,EAAWA,GAAWA,CAC9C,CAEA,SAASC,GAAiBxlO,EAAGwB,EAAGN,EAAG,CAE/B,OAAIlB,EAAI,KAAOA,GAAK,EAET,IAAI,KAAKA,EAAI,IAAKwB,EAAGN,CAAC,EAAIkkO,GAE1B,IAAI,KAAKplO,EAAGwB,EAAGN,CAAC,EAAE,SAEjC,CAEA,SAASukO,GAAezlO,EAAGwB,EAAGN,EAAG,CAE7B,OAAIlB,EAAI,KAAOA,GAAK,EAET,KAAK,IAAIA,EAAI,IAAKwB,EAAGN,CAAC,EAAIkkO,GAE1B,KAAK,IAAIplO,EAAGwB,EAAGN,CAAC,CAE/B,CAEA,SAASwkO,IAAQlX,EAAO,CACpB,IAAIjtI,EAAMokJ,EAEV,GADAnX,EAAQD,GAAeC,CAAK,EACxBA,IAAU,QAAaA,IAAU,eAAiB,CAAC,KAAK,UACxD,OAAO,KAKX,OAFAmX,EAAc,KAAK,OAASF,GAAiBD,GAErChX,EAAK,CACT,IAAK,OACDjtI,EAAOokJ,EAAY,KAAK,KAAI,EAAI,EAAG,CAAC,EACpC,MACJ,IAAK,UACDpkJ,EAAOokJ,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EAAI,KAAK,MAAK,EAAK,EAC/B,CAChB,EACY,MACJ,IAAK,QACDpkJ,EAAOokJ,EAAY,KAAK,KAAI,EAAI,KAAK,MAAK,EAAI,CAAC,EAC/C,MACJ,IAAK,OACDpkJ,EAAOokJ,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAI,EAAK,KAAK,QAAS,CAC5C,EACY,MACJ,IAAK,UACDpkJ,EAAOokJ,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAM,GAAI,KAAK,WAAU,EAAK,EACnD,EACY,MACJ,IAAK,MACL,IAAK,OACDpkJ,EAAOokJ,EAAY,KAAK,KAAM,EAAE,KAAK,QAAS,KAAK,KAAI,CAAE,EACzD,MACJ,IAAK,OACDpkJ,EAAO,KAAK,GAAG,UACfA,GAAQ8jJ,GACJ9jJ,GAAQ,KAAK,OAAS,EAAI,KAAK,UAAW,EAAG2jJ,IAC7CC,EAChB,EACY,MACJ,IAAK,SACD5jJ,EAAO,KAAK,GAAG,UACfA,GAAQ8jJ,GAAM9jJ,EAAM2jJ,EAAa,EACjC,MACJ,IAAK,SACD3jJ,EAAO,KAAK,GAAG,UACfA,GAAQ8jJ,GAAM9jJ,EAAM0jJ,EAAa,EACjC,KACP,CAED,YAAK,GAAG,QAAQ1jJ,CAAI,EACpBs7G,GAAM,aAAa,KAAM,EAAI,EACtB,IACX,CAEA,SAAS+oC,IAAMpX,EAAO,CAClB,IAAIjtI,EAAMokJ,EAEV,GADAnX,EAAQD,GAAeC,CAAK,EACxBA,IAAU,QAAaA,IAAU,eAAiB,CAAC,KAAK,UACxD,OAAO,KAKX,OAFAmX,EAAc,KAAK,OAASF,GAAiBD,GAErChX,EAAK,CACT,IAAK,OACDjtI,EAAOokJ,EAAY,KAAK,KAAI,EAAK,EAAG,EAAG,CAAC,EAAI,EAC5C,MACJ,IAAK,UACDpkJ,EACIokJ,EACI,KAAK,KAAM,EACX,KAAK,MAAK,EAAM,KAAK,MAAO,EAAG,EAAK,EACpC,CACH,EAAG,EACR,MACJ,IAAK,QACDpkJ,EAAOokJ,EAAY,KAAK,OAAQ,KAAK,MAAK,EAAK,EAAG,CAAC,EAAI,EACvD,MACJ,IAAK,OACDpkJ,EACIokJ,EACI,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAM,EAAG,KAAK,QAAS,EAAG,CAClC,EAAG,EACR,MACJ,IAAK,UACDpkJ,EACIokJ,EACI,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAI,GAAM,KAAK,WAAY,EAAG,GAAK,CAC3C,EAAG,EACR,MACJ,IAAK,MACL,IAAK,OACDpkJ,EAAOokJ,EAAY,KAAK,KAAM,EAAE,KAAK,MAAO,EAAE,KAAK,KAAI,EAAK,CAAC,EAAI,EACjE,MACJ,IAAK,OACDpkJ,EAAO,KAAK,GAAG,UACfA,GACI4jJ,GACAE,GACI9jJ,GAAQ,KAAK,OAAS,EAAI,KAAK,UAAW,EAAG2jJ,IAC7CC,EACH,EACD,EACJ,MACJ,IAAK,SACD5jJ,EAAO,KAAK,GAAG,UACfA,GAAQ2jJ,GAAgBG,GAAM9jJ,EAAM2jJ,EAAa,EAAI,EACrD,MACJ,IAAK,SACD3jJ,EAAO,KAAK,GAAG,UACfA,GAAQ0jJ,GAAgBI,GAAM9jJ,EAAM0jJ,EAAa,EAAI,EACrD,KACP,CAED,YAAK,GAAG,QAAQ1jJ,CAAI,EACpBs7G,GAAM,aAAa,KAAM,EAAI,EACtB,IACX,CAEA,SAAS5yD,KAAU,CACf,OAAO,KAAK,GAAG,QAAS,GAAI,KAAK,SAAW,GAAK,GACrD,CAEA,SAAS47F,KAAO,CACZ,OAAO,KAAK,MAAM,KAAK,QAAS,EAAG,GAAI,CAC3C,CAEA,SAASC,KAAS,CACd,OAAO,IAAI,KAAK,KAAK,QAAS,EAClC,CAEA,SAASl5M,KAAU,CACf,IAAIprB,EAAI,KACR,MAAO,CACHA,EAAE,KAAM,EACRA,EAAE,MAAO,EACTA,EAAE,KAAM,EACRA,EAAE,KAAM,EACRA,EAAE,OAAQ,EACVA,EAAE,OAAQ,EACVA,EAAE,YAAa,CACvB,CACA,CAEA,SAASukO,KAAW,CAChB,IAAIvkO,EAAI,KACR,MAAO,CACH,MAAOA,EAAE,KAAM,EACf,OAAQA,EAAE,MAAO,EACjB,KAAMA,EAAE,KAAM,EACd,MAAOA,EAAE,MAAO,EAChB,QAASA,EAAE,QAAS,EACpB,QAASA,EAAE,QAAS,EACpB,aAAcA,EAAE,aAAc,CACtC,CACA,CAEA,SAASwkO,KAAS,CAEd,OAAO,KAAK,QAAS,EAAG,KAAK,YAAW,EAAK,IACjD,CAEA,SAASC,KAAY,CACjB,OAAO9rJ,GAAQ,IAAI,CACvB,CAEA,SAAS+rJ,KAAe,CACpB,OAAOzb,GAAO,CAAE,EAAEM,GAAgB,IAAI,CAAC,CAC3C,CAEA,SAASob,KAAY,CACjB,OAAOpb,GAAgB,IAAI,EAAE,QACjC,CAEA,SAASqb,KAAe,CACpB,MAAO,CACH,MAAO,KAAK,GACZ,OAAQ,KAAK,GACb,OAAQ,KAAK,QACb,MAAO,KAAK,OACZ,OAAQ,KAAK,OACrB,CACA,CAEApZ,GAAe,IAAK,EAAG,EAAG,SAAS,EACnCA,GAAe,KAAM,EAAG,EAAG,SAAS,EACpCA,GAAe,MAAO,EAAG,EAAG,SAAS,EACrCA,GAAe,OAAQ,EAAG,EAAG,SAAS,EACtCA,GAAe,QAAS,EAAG,EAAG,WAAW,EAEzCA,GAAe,IAAK,CAAC,IAAK,CAAC,EAAG,KAAM,SAAS,EAC7CA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,SAAS,EAC3CA,GAAe,IAAK,CAAC,MAAO,CAAC,EAAG,EAAG,SAAS,EAC5CA,GAAe,IAAK,CAAC,OAAQ,CAAC,EAAG,EAAG,SAAS,EAE7CoD,GAAc,IAAKiW,EAAY,EAC/BjW,GAAc,KAAMiW,EAAY,EAChCjW,GAAc,MAAOiW,EAAY,EACjCjW,GAAc,OAAQkW,GAAY,EAClClW,GAAc,QAASmW,GAAc,EAErCpV,GACI,CAAC,IAAK,KAAM,MAAO,OAAQ,OAAO,EAClC,SAAU7jL,EAAO0L,EAAOnb,EAAQ6vK,EAAO,CACnC,IAAI8vB,EAAM3/L,EAAO,QAAQ,UAAUyP,EAAOogK,EAAO7vK,EAAO,OAAO,EAC3D2/L,EACAzS,GAAgBltL,CAAM,EAAE,IAAM2/L,EAE9BzS,GAAgBltL,CAAM,EAAE,WAAayP,CAE5C,CACL,EAEA8iL,GAAc,IAAKT,EAAa,EAChCS,GAAc,KAAMT,EAAa,EACjCS,GAAc,MAAOT,EAAa,EAClCS,GAAc,OAAQT,EAAa,EACnCS,GAAc,KAAMoW,GAAmB,EAEvCrV,GAAc,CAAC,IAAK,KAAM,MAAO,MAAM,EAAGM,EAAI,EAC9CN,GAAc,CAAC,IAAI,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ6vK,EAAO,CACzD,IAAI5rH,EACAjkD,EAAO,QAAQ,uBACfikD,EAAQx0C,EAAM,MAAMzP,EAAO,QAAQ,oBAAoB,GAGvDA,EAAO,QAAQ,oBACfmb,EAAMy4K,EAAI,EAAI5zL,EAAO,QAAQ,oBAAoByP,EAAOw0C,CAAK,EAE7D9oC,EAAMy4K,EAAI,EAAI,SAASnkL,EAAO,EAAE,CAExC,CAAC,EAED,SAASm5L,IAAWjlO,EAAGgiH,EAAQ,CAC3B,IAAIz6F,EACAzpB,EACAo8G,EACAgrH,EAAO,KAAK,OAAS7M,GAAU,IAAI,EAAE,MACzC,IAAK9wM,EAAI,EAAGzpB,EAAIonO,EAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAAG,CACrC,OAAQ,OAAO29M,EAAK39M,CAAC,EAAE,MAAK,CACxB,IAAK,SAED2yF,EAAOmhF,GAAM6pC,EAAK39M,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,EACzC29M,EAAK39M,CAAC,EAAE,MAAQ2yF,EAAK,QAAO,EAC5B,KACP,CAED,OAAQ,OAAOgrH,EAAK39M,CAAC,EAAE,MAAK,CACxB,IAAK,YACD29M,EAAK39M,CAAC,EAAE,MAAQ,IAChB,MACJ,IAAK,SAED2yF,EAAOmhF,GAAM6pC,EAAK39M,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,EAAE,UAC3C29M,EAAK39M,CAAC,EAAE,MAAQ2yF,EAAK,QAAO,EAC5B,KACP,CACJ,CACD,OAAOgrH,CACX,CAEA,SAASC,IAAgBC,EAASpjH,EAAQonG,EAAQ,CAC9C,IAAI7hM,EACAzpB,EACAonO,EAAO,KAAK,KAAM,EAClBz3M,EACA43M,EACAC,EAGJ,IAFAF,EAAUA,EAAQ,cAEb79M,EAAI,EAAGzpB,EAAIonO,EAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAKlC,GAJAkG,EAAOy3M,EAAK39M,CAAC,EAAE,KAAK,YAAW,EAC/B89M,EAAOH,EAAK39M,CAAC,EAAE,KAAK,YAAW,EAC/B+9M,EAASJ,EAAK39M,CAAC,EAAE,OAAO,YAAW,EAE/B6hM,EACA,OAAQpnG,EAAM,CACV,IAAK,IACL,IAAK,KACL,IAAK,MACD,GAAIqjH,IAASD,EACT,OAAOF,EAAK39M,CAAC,EAEjB,MAEJ,IAAK,OACD,GAAIkG,IAAS23M,EACT,OAAOF,EAAK39M,CAAC,EAEjB,MAEJ,IAAK,QACD,GAAI+9M,IAAWF,EACX,OAAOF,EAAK39M,CAAC,EAEjB,KACP,SACM,CAACkG,EAAM43M,EAAMC,CAAM,EAAE,QAAQF,CAAO,GAAK,EAChD,OAAOF,EAAK39M,CAAC,CAGzB,CAEA,SAASg+M,IAAsBvJ,EAAKhM,EAAM,CACtC,IAAIh4L,EAAMgkM,EAAI,OAASA,EAAI,MAAQ,EAAK,GACxC,OAAIhM,IAAS,OACF30B,GAAM2gC,EAAI,KAAK,EAAE,KAAI,EAErB3gC,GAAM2gC,EAAI,KAAK,EAAE,QAAUhM,EAAOgM,EAAI,QAAUhkM,CAE/D,CAEA,SAASwtM,KAAa,CAClB,IAAIj+M,EACAzpB,EACAw2E,EACA4wJ,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK39M,EAAI,EAAGzpB,EAAIonO,EAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAOlC,GALA+sD,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9B4wJ,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,OAGvC29M,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,MACvC,OAAO29M,EAAK39M,CAAC,EAAE,KAIvB,MAAO,EACX,CAEA,SAASk+M,KAAe,CACpB,IAAIl+M,EACAzpB,EACAw2E,EACA4wJ,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK39M,EAAI,EAAGzpB,EAAIonO,EAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAOlC,GALA+sD,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9B4wJ,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,OAGvC29M,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,MACvC,OAAO29M,EAAK39M,CAAC,EAAE,OAIvB,MAAO,EACX,CAEA,SAASm+M,KAAa,CAClB,IAAIn+M,EACAzpB,EACAw2E,EACA4wJ,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK39M,EAAI,EAAGzpB,EAAIonO,EAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAOlC,GALA+sD,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9B4wJ,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,OAGvC29M,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,MACvC,OAAO29M,EAAK39M,CAAC,EAAE,KAIvB,MAAO,EACX,CAEA,SAASo+M,KAAa,CAClB,IAAIp+M,EACAzpB,EACAk6B,EACAs8C,EACA4wJ,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK39M,EAAI,EAAGzpB,EAAIonO,EAAK,OAAQ39M,EAAIzpB,EAAG,EAAEypB,EAMlC,GALAyQ,EAAMktM,EAAK39M,CAAC,EAAE,OAAS29M,EAAK39M,CAAC,EAAE,MAAQ,EAAK,GAG5C+sD,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAG7B4wJ,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,OACvC29M,EAAK39M,CAAC,EAAE,OAAS+sD,GAAOA,GAAO4wJ,EAAK39M,CAAC,EAAE,MAExC,OACK,KAAK,KAAM,EAAG8zK,GAAM6pC,EAAK39M,CAAC,EAAE,KAAK,EAAE,KAAI,GAAMyQ,EAC9CktM,EAAK39M,CAAC,EAAE,OAKpB,OAAO,KAAK,MAChB,CAEA,SAASq+M,IAAc9W,EAAU,CAC7B,OAAKjG,GAAW,KAAM,gBAAgB,GAClCgd,GAAiB,KAAK,IAAI,EAEvB/W,EAAW,KAAK,eAAiB,KAAK,UACjD,CAEA,SAASgX,IAAchX,EAAU,CAC7B,OAAKjG,GAAW,KAAM,gBAAgB,GAClCgd,GAAiB,KAAK,IAAI,EAEvB/W,EAAW,KAAK,eAAiB,KAAK,UACjD,CAEA,SAASiX,IAAgBjX,EAAU,CAC/B,OAAKjG,GAAW,KAAM,kBAAkB,GACpCgd,GAAiB,KAAK,IAAI,EAEvB/W,EAAW,KAAK,iBAAmB,KAAK,UACnD,CAEA,SAAS+V,GAAa/V,EAAU3F,EAAQ,CACpC,OAAOA,EAAO,cAAc2F,CAAQ,CACxC,CAEA,SAASgW,IAAahW,EAAU3F,EAAQ,CACpC,OAAOA,EAAO,cAAc2F,CAAQ,CACxC,CAEA,SAASiW,IAAejW,EAAU3F,EAAQ,CACtC,OAAOA,EAAO,gBAAgB2F,CAAQ,CAC1C,CAEA,SAASkW,IAAoBlW,EAAU3F,EAAQ,CAC3C,OAAOA,EAAO,sBAAwBgF,EAC1C,CAEA,SAAS0X,IAAmB,CACxB,IAAIG,EAAa,CAAE,EACfC,EAAa,CAAE,EACfC,EAAe,CAAE,EACjBpT,EAAc,CAAE,EAChB,EACAh1N,EACAqoO,EACAC,EACAC,EACAnB,EAAO,KAAK,OAEhB,IAAK,EAAI,EAAGpnO,EAAIonO,EAAK,OAAQ,EAAIpnO,EAAG,EAAE,EAClCqoO,EAAWjX,GAAYgW,EAAK,CAAC,EAAE,IAAI,EACnCkB,EAAWlX,GAAYgW,EAAK,CAAC,EAAE,IAAI,EACnCmB,EAAanX,GAAYgW,EAAK,CAAC,EAAE,MAAM,EAEvCe,EAAW,KAAKE,CAAQ,EACxBH,EAAW,KAAKI,CAAQ,EACxBF,EAAa,KAAKG,CAAU,EAC5BvT,EAAY,KAAKqT,CAAQ,EACzBrT,EAAY,KAAKsT,CAAQ,EACzBtT,EAAY,KAAKuT,CAAU,EAG/B,KAAK,WAAa,IAAI,OAAO,KAAOvT,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACpE,KAAK,eAAiB,IAAI,OAAO,KAAOmT,EAAW,KAAK,GAAG,EAAI,IAAK,GAAG,EACvE,KAAK,eAAiB,IAAI,OAAO,KAAOD,EAAW,KAAK,GAAG,EAAI,IAAK,GAAG,EACvE,KAAK,iBAAmB,IAAI,OACxB,KAAOE,EAAa,KAAK,GAAG,EAAI,IAChC,GACR,CACA,CAIA1a,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,SAAU,EAAG,GAC7B,CAAC,EAEDA,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EAED,SAAS8a,GAAuBp6B,EAAOh/K,EAAQ,CAC3Cs+L,GAAe,EAAG,CAACtf,EAAOA,EAAM,MAAM,EAAG,EAAGh/K,CAAM,CACtD,CAEAo5M,GAAuB,OAAQ,UAAU,EACzCA,GAAuB,QAAS,UAAU,EAC1CA,GAAuB,OAAQ,aAAa,EAC5CA,GAAuB,QAAS,aAAa,EAM7C1X,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,OAAQX,GAAWN,EAAM,EACvCiB,GAAc,OAAQX,GAAWN,EAAM,EACvCiB,GAAc,QAASV,GAAWN,EAAM,EACxCgB,GAAc,QAASV,GAAWN,EAAM,EAExCiC,GACI,CAAC,OAAQ,QAAS,OAAQ,OAAO,EACjC,SAAU/jL,EAAO4nL,EAAMr3L,EAAQ6vK,EAAO,CAClCwnB,EAAKxnB,EAAM,OAAO,EAAG,CAAC,CAAC,EAAIzrC,GAAM30H,CAAK,CACzC,CACL,EAEA+jL,GAAkB,CAAC,KAAM,IAAI,EAAG,SAAU/jL,EAAO4nL,EAAMr3L,EAAQ6vK,EAAO,CAClEwnB,EAAKxnB,CAAK,EAAI7Q,GAAM,kBAAkBvvJ,CAAK,CAC/C,CAAC,EAID,SAASy6L,IAAez6L,EAAO,CAC3B,OAAO06L,GAAqB,KACxB,KACA16L,EACA,KAAK,KAAM,EACX,KAAK,QAAO,EAAK,KAAK,WAAY,EAAC,MAAM,IACzC,KAAK,aAAa,MAAM,IACxB,KAAK,aAAa,MAAM,GAChC,CACA,CAEA,SAAS26L,IAAkB36L,EAAO,CAC9B,OAAO06L,GAAqB,KACxB,KACA16L,EACA,KAAK,QAAS,EACd,KAAK,WAAY,EACjB,EACA,CACR,CACA,CAEA,SAAS46L,KAAoB,CACzB,OAAOvS,GAAY,KAAK,KAAM,EAAE,EAAG,CAAC,CACxC,CAEA,SAASwS,KAA2B,CAChC,OAAOxS,GAAY,KAAK,YAAa,EAAE,EAAG,CAAC,CAC/C,CAEA,SAASyS,KAAiB,CACtB,IAAIC,EAAW,KAAK,WAAU,EAAG,MACjC,OAAO1S,GAAY,KAAK,KAAM,EAAE0S,EAAS,IAAKA,EAAS,GAAG,CAC9D,CAEA,SAASC,KAAqB,CAC1B,IAAID,EAAW,KAAK,WAAU,EAAG,MACjC,OAAO1S,GAAY,KAAK,SAAU,EAAE0S,EAAS,IAAKA,EAAS,GAAG,CAClE,CAEA,SAASL,GAAqB16L,EAAO4nL,EAAMC,EAASN,EAAKC,EAAK,CAC1D,IAAIyT,EACJ,OAAIj7L,GAAS,KACFmoL,GAAW,KAAMZ,EAAKC,CAAG,EAAE,MAElCyT,EAAc5S,GAAYroL,EAAOunL,EAAKC,CAAG,EACrCI,EAAOqT,IACPrT,EAAOqT,GAEJC,IAAW,KAAK,KAAMl7L,EAAO4nL,EAAMC,EAASN,EAAKC,CAAG,EAEnE,CAEA,SAAS0T,IAAWxL,EAAU9H,EAAMC,EAASN,EAAKC,EAAK,CACnD,IAAI2T,EAAgBxT,GAAmB+H,EAAU9H,EAAMC,EAASN,EAAKC,CAAG,EACpEp5G,EAAOi5G,GAAc8T,EAAc,KAAM,EAAGA,EAAc,SAAS,EAEvE,YAAK,KAAK/sH,EAAK,eAAgB,GAC/B,KAAK,MAAMA,EAAK,YAAa,GAC7B,KAAK,KAAKA,EAAK,WAAY,GACpB,IACX,CAIAsxG,GAAe,IAAK,EAAG,KAAM,SAAS,EAItCoD,GAAc,IAAKpB,EAAM,EACzBmC,GAAc,IAAK,SAAU7jL,EAAO0L,EAAO,CACvCA,EAAM04K,EAAK,GAAKzvD,GAAM30H,CAAK,EAAI,GAAK,CACxC,CAAC,EAID,SAASo7L,IAAcp7L,EAAO,CAC1B,OAAOA,GAAS,KACV,KAAK,MAAM,KAAK,MAAO,EAAG,GAAK,CAAC,EAChC,KAAK,OAAOA,EAAQ,GAAK,EAAK,KAAK,MAAK,EAAK,CAAE,CACzD,CAIA0/K,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,MAAM,EAI3CoD,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAM,SAAUE,EAAU3F,EAAQ,CAE5C,OAAO2F,EACD3F,EAAO,yBAA2BA,EAAO,cACzCA,EAAO,8BACjB,CAAC,EAEDwG,GAAc,CAAC,IAAK,IAAI,EAAGQ,EAAI,EAC/BR,GAAc,KAAM,SAAU7jL,EAAO0L,EAAO,CACxCA,EAAM24K,EAAI,EAAI1vD,GAAM30H,EAAM,MAAM+hL,EAAS,EAAE,CAAC,CAAC,CACjD,CAAC,EAID,IAAIsZ,GAAmBvW,GAAW,OAAQ,EAAI,EAI9CpF,GAAe,MAAO,CAAC,OAAQ,CAAC,EAAG,OAAQ,WAAW,EAItDoD,GAAc,MAAOZ,EAAS,EAC9BY,GAAc,OAAQlB,EAAM,EAC5BiC,GAAc,CAAC,MAAO,MAAM,EAAG,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CAC3DA,EAAO,WAAaokI,GAAM30H,CAAK,CACnC,CAAC,EAMD,SAASs7L,IAAgBt7L,EAAO,CAC5B,IAAIgoL,EACA,KAAK,OACA,KAAK,QAAQ,QAAQ,KAAK,EAAI,KAAK,MAAO,EAAC,QAAQ,MAAM,GAAK,KAClE,EAAG,EACR,OAAOhoL,GAAS,KAAOgoL,EAAY,KAAK,IAAIhoL,EAAQgoL,EAAW,GAAG,CACtE,CAIAtI,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,QAAQ,EAI1CoD,GAAc,IAAKf,GAAWa,EAAgB,EAC9CE,GAAc,KAAMf,GAAWJ,EAAM,EACrCkC,GAAc,CAAC,IAAK,IAAI,EAAGU,EAAM,EAIjC,IAAIgX,IAAezW,GAAW,UAAW,EAAK,EAI9CpF,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,QAAQ,EAI1CoD,GAAc,IAAKf,GAAWa,EAAgB,EAC9CE,GAAc,KAAMf,GAAWJ,EAAM,EACrCkC,GAAc,CAAC,IAAK,IAAI,EAAGW,EAAM,EAIjC,IAAIgX,IAAe1W,GAAW,UAAW,EAAK,EAI9CpF,GAAe,IAAK,EAAG,EAAG,UAAY,CAClC,MAAO,CAAC,EAAE,KAAK,YAAa,EAAG,IACnC,CAAC,EAEDA,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,MAAO,CAAC,EAAE,KAAK,YAAa,EAAG,GACnC,CAAC,EAEDA,GAAe,EAAG,CAAC,MAAO,CAAC,EAAG,EAAG,aAAa,EAC9CA,GAAe,EAAG,CAAC,OAAQ,CAAC,EAAG,EAAG,UAAY,CAC1C,OAAO,KAAK,YAAa,EAAG,EAChC,CAAC,EACDA,GAAe,EAAG,CAAC,QAAS,CAAC,EAAG,EAAG,UAAY,CAC3C,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,SAAU,CAAC,EAAG,EAAG,UAAY,CAC5C,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,UAAW,CAAC,EAAG,EAAG,UAAY,CAC7C,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,WAAY,CAAC,EAAG,EAAG,UAAY,CAC9C,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,YAAa,CAAC,EAAG,EAAG,UAAY,CAC/C,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EAIDoD,GAAc,IAAKZ,GAAWR,EAAM,EACpCoB,GAAc,KAAMZ,GAAWP,EAAM,EACrCmB,GAAc,MAAOZ,GAAWN,EAAM,EAEtC,IAAIxhB,GAAOq7B,GACX,IAAKr7B,GAAQ,OAAQA,GAAM,QAAU,EAAGA,IAAS,IAC7C0iB,GAAc1iB,GAAOiiB,EAAa,EAGtC,SAASqZ,IAAQ17L,EAAO0L,EAAO,CAC3BA,EAAM+4K,EAAW,EAAI9vD,IAAO,KAAO30H,GAAS,GAAI,CACpD,CAEA,IAAKogK,GAAQ,IAAKA,GAAM,QAAU,EAAGA,IAAS,IAC1CyjB,GAAczjB,GAAOs7B,GAAO,EAGhCD,GAAoB3W,GAAW,eAAgB,EAAK,EAIpDpF,GAAe,IAAK,EAAG,EAAG,UAAU,EACpCA,GAAe,KAAM,EAAG,EAAG,UAAU,EAIrC,SAASic,KAAc,CACnB,OAAO,KAAK,OAAS,MAAQ,EACjC,CAEA,SAASC,KAAc,CACnB,OAAO,KAAK,OAAS,6BAA+B,EACxD,CAEA,IAAI5gC,GAAQkjB,GAAO,UAEnBljB,GAAM,IAAMhjJ,IACZgjJ,GAAM,SAAW26B,IACjB36B,GAAM,MAAQ66B,IACd76B,GAAM,KAAO+lB,IACb/lB,GAAM,MAAQs9B,IACdt9B,GAAM,OAAS9kF,IACf8kF,GAAM,KAAOn/K,IACbm/K,GAAM,QAAUu8B,IAChBv8B,GAAM,GAAKp/K,IACXo/K,GAAM,MAAQw8B,IACdx8B,GAAM,IAAMqqB,IACZrqB,GAAM,UAAY69B,IAClB79B,GAAM,QAAU86B,IAChB96B,GAAM,SAAWg7B,IACjBh7B,GAAM,UAAYi7B,IAClBj7B,GAAM,OAASq7B,IACfr7B,GAAM,cAAgBu7B,IACtBv7B,GAAM,eAAiBw7B,IACvBx7B,GAAM,QAAU29B,IAChB39B,GAAM,KAAO08B,GACb18B,GAAM,OAASqiB,GACfriB,GAAM,WAAaioB,GACnBjoB,GAAM,IAAMq2B,IACZr2B,GAAM,IAAMm2B,IACZn2B,GAAM,aAAe49B,IACrB59B,GAAM,IAAMsqB,IACZtqB,GAAM,QAAUo9B,IAChBp9B,GAAM,SAAW+5B,IACjB/5B,GAAM,QAAU17K,IAChB07K,GAAM,SAAWy9B,IACjBz9B,GAAM,OAASw9B,IACfx9B,GAAM,YAAc+7B,IACpB/7B,GAAM,QAAUk8B,IACZ,OAAO,OAAW,KAAe,OAAO,KAAO,OAC/Cl8B,GAAM,OAAO,IAAI,4BAA4B,CAAC,EAAI,UAAY,CAC1D,MAAO,UAAY,KAAK,OAAM,EAAK,GAC3C,GAEAA,GAAM,OAAS09B,IACf19B,GAAM,SAAW1mJ,IACjB0mJ,GAAM,KAAOu9B,IACbv9B,GAAM,QAAUr+D,IAChBq+D,GAAM,aAAe89B,IACrB99B,GAAM,QAAU0+B,IAChB1+B,GAAM,UAAY2+B,IAClB3+B,GAAM,QAAU4+B,IAChB5+B,GAAM,QAAU6+B,IAChB7+B,GAAM,KAAO6pB,GACb7pB,GAAM,WAAa+pB,IACnB/pB,GAAM,SAAWy/B,IACjBz/B,GAAM,YAAc2/B,IACpB3/B,GAAM,QAAUA,GAAM,SAAWogC,IACjCpgC,GAAM,MAAQwrB,GACdxrB,GAAM,YAAcyrB,IACpBzrB,GAAM,KAAOA,GAAM,MAAQ2tB,IAC3B3tB,GAAM,QAAUA,GAAM,SAAW4tB,IACjC5tB,GAAM,YAAc8/B,IACpB9/B,GAAM,gBAAkBggC,IACxBhgC,GAAM,eAAiB4/B,IACvB5/B,GAAM,sBAAwB6/B,IAC9B7/B,GAAM,KAAOqgC,GACbrgC,GAAM,IAAMA,GAAM,KAAO8uB,IACzB9uB,GAAM,QAAUgvB,IAChBhvB,GAAM,WAAaivB,IACnBjvB,GAAM,UAAYsgC,IAClBtgC,GAAM,KAAOA,GAAM,MAAQowB,IAC3BpwB,GAAM,OAASA,GAAM,QAAUugC,IAC/BvgC,GAAM,OAASA,GAAM,QAAUwgC,IAC/BxgC,GAAM,YAAcA,GAAM,aAAeygC,GACzCzgC,GAAM,UAAYm4B,IAClBn4B,GAAM,IAAMy4B,IACZz4B,GAAM,MAAQ04B,IACd14B,GAAM,UAAY24B,IAClB34B,GAAM,qBAAuB64B,IAC7B74B,GAAM,MAAQ84B,IACd94B,GAAM,QAAUg5B,IAChBh5B,GAAM,YAAci5B,IACpBj5B,GAAM,MAAQk5B,GACdl5B,GAAM,MAAQk5B,GACdl5B,GAAM,SAAW2gC,IACjB3gC,GAAM,SAAW4gC,IACjB5gC,GAAM,MAAQojB,GACV,kDACAid,EACJ,EACArgC,GAAM,OAASojB,GACX,mDACAoI,EACJ,EACAxrB,GAAM,MAAQojB,GACV,iDACAyG,EACJ,EACA7pB,GAAM,KAAOojB,GACT,2GACAoV,GACJ,EACAx4B,GAAM,aAAeojB,GACjB,0GACA2V,GACJ,EAEA,SAAS8H,IAAW77L,EAAO,CACvB,OAAO8vL,GAAY9vL,EAAQ,GAAI,CACnC,CAEA,SAAS87L,KAAe,CACpB,OAAOhM,GAAY,MAAM,KAAM,SAAS,EAAE,UAAS,CACvD,CAEA,SAASiM,GAAmBntM,EAAQ,CAChC,OAAOA,CACX,CAEA,IAAIotM,GAAUpd,GAAO,UAErBod,GAAQ,SAAWld,IACnBkd,GAAQ,eAAiB7b,IACzB6b,GAAQ,YAAczb,IACtByb,GAAQ,QAAUpc,IAClBoc,GAAQ,SAAWD,GACnBC,GAAQ,WAAaD,GACrBC,GAAQ,aAAerb,IACvBqb,GAAQ,WAAalb,IACrBkb,GAAQ,IAAMhzJ,IACdgzJ,GAAQ,KAAO7C,IACf6C,GAAQ,UAAY3C,IACpB2C,GAAQ,gBAAkBvC,IAC1BuC,GAAQ,cAAgBhC,IACxBgC,GAAQ,cAAgBlC,IACxBkC,GAAQ,gBAAkB/B,IAE1B+B,GAAQ,OAAS/V,IACjB+V,GAAQ,YAAc9V,IACtB8V,GAAQ,YAAc1V,IACtB0V,GAAQ,YAAcpV,IACtBoV,GAAQ,iBAAmBtV,IAC3BsV,GAAQ,KAAOzT,IACfyT,GAAQ,eAAiBtT,IACzBsT,GAAQ,eAAiBvT,IAEzBuT,GAAQ,SAAWzS,IACnByS,GAAQ,YAActS,IACtBsS,GAAQ,cAAgBvS,IACxBuS,GAAQ,cAAgBnS,IAExBmS,GAAQ,cAAgB9R,IACxB8R,GAAQ,mBAAqB5R,IAC7B4R,GAAQ,iBAAmB3R,IAE3B2R,GAAQ,KAAO9Q,IACf8Q,GAAQ,SAAW3Q,IAEnB,SAAS4Q,GAAM/lH,EAAQ34F,EAAOuxD,EAAOotJ,EAAQ,CACzC,IAAI7e,EAASkP,GAAW,EACpB0K,EAAM7Z,GAAW,EAAC,IAAI8e,EAAQ3+M,CAAK,EACvC,OAAO8/L,EAAOvuI,CAAK,EAAEmoJ,EAAK/gH,CAAM,CACpC,CAEA,SAASimH,GAAejmH,EAAQ34F,EAAOuxD,EAAO,CAQ1C,GAPI73C,GAASi/E,CAAM,IACf34F,EAAQ24F,EACRA,EAAS,QAGbA,EAASA,GAAU,GAEf34F,GAAS,KACT,OAAO0+M,GAAM/lH,EAAQ34F,EAAOuxD,EAAO,OAAO,EAG9C,IAAIrzD,EACA2gN,EAAM,GACV,IAAK3gN,EAAI,EAAGA,EAAI,GAAIA,IAChB2gN,EAAI3gN,CAAC,EAAIwgN,GAAM/lH,EAAQz6F,EAAGqzD,EAAO,OAAO,EAE5C,OAAOstJ,CACX,CAUA,SAASC,GAAiBC,EAAcpmH,EAAQ34F,EAAOuxD,EAAO,CACtD,OAAOwtJ,GAAiB,WACpBrlM,GAASi/E,CAAM,IACf34F,EAAQ24F,EACRA,EAAS,QAGbA,EAASA,GAAU,KAEnBA,EAASomH,EACT/+M,EAAQ24F,EACRomH,EAAe,GAEXrlM,GAASi/E,CAAM,IACf34F,EAAQ24F,EACRA,EAAS,QAGbA,EAASA,GAAU,IAGvB,IAAImnG,EAASkP,GAAW,EACpBr8J,EAAQosK,EAAejf,EAAO,MAAM,IAAM,EAC1C5hM,EACA2gN,EAAM,GAEV,GAAI7+M,GAAS,KACT,OAAO0+M,GAAM/lH,GAAS34F,EAAQ2yC,GAAS,EAAG4e,EAAO,KAAK,EAG1D,IAAKrzD,EAAI,EAAGA,EAAI,EAAGA,IACf2gN,EAAI3gN,CAAC,EAAIwgN,GAAM/lH,GAASz6F,EAAIy0C,GAAS,EAAG4e,EAAO,KAAK,EAExD,OAAOstJ,CACX,CAEA,SAASG,IAAWrmH,EAAQ34F,EAAO,CAC/B,OAAO4+M,GAAejmH,EAAQ34F,EAAO,QAAQ,CACjD,CAEA,SAASi/M,IAAgBtmH,EAAQ34F,EAAO,CACpC,OAAO4+M,GAAejmH,EAAQ34F,EAAO,aAAa,CACtD,CAEA,SAASk/M,IAAaH,EAAcpmH,EAAQ34F,EAAO,CAC/C,OAAO8+M,GAAiBC,EAAcpmH,EAAQ34F,EAAO,UAAU,CACnE,CAEA,SAASm/M,IAAkBJ,EAAcpmH,EAAQ34F,EAAO,CACpD,OAAO8+M,GAAiBC,EAAcpmH,EAAQ34F,EAAO,eAAe,CACxE,CAEA,SAASo/M,IAAgBL,EAAcpmH,EAAQ34F,EAAO,CAClD,OAAO8+M,GAAiBC,EAAcpmH,EAAQ34F,EAAO,aAAa,CACtE,CAEA+uM,GAAmB,KAAM,CACrB,KAAM,CACF,CACI,MAAO,aACP,MAAO,IACP,OAAQ,EACR,KAAM,cACN,OAAQ,KACR,KAAM,IACT,EACD,CACI,MAAO,aACP,MAAO,KACP,OAAQ,EACR,KAAM,gBACN,OAAQ,KACR,KAAM,IACT,CACJ,EACD,uBAAwB,uBACxB,QAAS,SAAU9rG,EAAQ,CACvB,IAAIttH,EAAIstH,EAAS,GACblmC,EACIq6E,GAAOn0C,EAAS,IAAO,EAAE,IAAM,EACzB,KACAttH,IAAM,EACJ,KACAA,IAAM,EACJ,KACAA,IAAM,EACJ,KACA,KACpB,OAAOstH,EAASlmC,CACnB,CACL,CAAC,EAIDi1G,GAAM,KAAO6uB,GACT,wDACAkO,EACJ,EACA/8B,GAAM,SAAW6uB,GACb,gEACAmO,EACJ,EAEA,IAAIqQ,GAAU,KAAK,IAEnB,SAAS/jL,KAAM,CACX,IAAI5J,EAAO,KAAK,MAEhB,YAAK,cAAgB2tL,GAAQ,KAAK,aAAa,EAC/C,KAAK,MAAQA,GAAQ,KAAK,KAAK,EAC/B,KAAK,QAAUA,GAAQ,KAAK,OAAO,EAEnC3tL,EAAK,aAAe2tL,GAAQ3tL,EAAK,YAAY,EAC7CA,EAAK,QAAU2tL,GAAQ3tL,EAAK,OAAO,EACnCA,EAAK,QAAU2tL,GAAQ3tL,EAAK,OAAO,EACnCA,EAAK,MAAQ2tL,GAAQ3tL,EAAK,KAAK,EAC/BA,EAAK,OAAS2tL,GAAQ3tL,EAAK,MAAM,EACjCA,EAAK,MAAQ2tL,GAAQ3tL,EAAK,KAAK,EAExB,IACX,CAEA,SAAS4tL,GAAczgI,EAAUp8D,EAAOrjB,EAAOo5B,EAAW,CACtD,IAAIq7K,EAAQU,GAAe9xL,EAAOrjB,CAAK,EAEvC,OAAAy/E,EAAS,eAAiBrmD,EAAYq7K,EAAM,cAC5Ch1H,EAAS,OAASrmD,EAAYq7K,EAAM,MACpCh1H,EAAS,SAAWrmD,EAAYq7K,EAAM,QAE/Bh1H,EAAS,SACpB,CAGA,SAAS0gI,IAAM98L,EAAOrjB,EAAO,CACzB,OAAOkgN,GAAc,KAAM78L,EAAOrjB,EAAO,CAAC,CAC9C,CAGA,SAASogN,IAAW/8L,EAAOrjB,EAAO,CAC9B,OAAOkgN,GAAc,KAAM78L,EAAOrjB,EAAO,EAAE,CAC/C,CAEA,SAASqgN,GAAQx8G,EAAQ,CACrB,OAAIA,EAAS,EACF,KAAK,MAAMA,CAAM,EAEjB,KAAK,KAAKA,CAAM,CAE/B,CAEA,SAASy8G,KAAS,CACd,IAAI7K,EAAe,KAAK,cACpB3zB,EAAO,KAAK,MACZyzB,EAAS,KAAK,QACdjjL,EAAO,KAAK,MACZ8uJ,EACAwtB,EACAD,EACA0G,EACAkL,EAIJ,OAES9K,GAAgB,GAAK3zB,GAAQ,GAAKyzB,GAAU,GAC5CE,GAAgB,GAAK3zB,GAAQ,GAAKyzB,GAAU,IAGjDE,GAAgB4K,GAAQG,GAAajL,CAAM,EAAIzzB,CAAI,EAAI,MACvDA,EAAO,EACPyzB,EAAS,GAKbjjL,EAAK,aAAemjL,EAAe,IAEnCr0B,EAAU2lB,GAAS0O,EAAe,GAAI,EACtCnjL,EAAK,QAAU8uJ,EAAU,GAEzBwtB,EAAU7H,GAAS3lB,EAAU,EAAE,EAC/B9uJ,EAAK,QAAUs8K,EAAU,GAEzBD,EAAQ5H,GAAS6H,EAAU,EAAE,EAC7Bt8K,EAAK,MAAQq8K,EAAQ,GAErB7sB,GAAQilB,GAAS4H,EAAQ,EAAE,EAG3B4R,EAAiBxZ,GAAS0Z,GAAa3+B,CAAI,CAAC,EAC5CyzB,GAAUgL,EACVz+B,GAAQu+B,GAAQG,GAAaD,CAAc,CAAC,EAG5ClL,EAAQtO,GAASwO,EAAS,EAAE,EAC5BA,GAAU,GAEVjjL,EAAK,KAAOwvJ,EACZxvJ,EAAK,OAASijL,EACdjjL,EAAK,MAAQ+iL,EAEN,IACX,CAEA,SAASoL,GAAa3+B,EAAM,CAGxB,OAAQA,EAAO,KAAQ,MAC3B,CAEA,SAAS0+B,GAAajL,EAAQ,CAE1B,OAAQA,EAAS,OAAU,IAC/B,CAEA,SAASjhL,IAAGiwK,EAAO,CACf,GAAI,CAAC,KAAK,UACN,MAAO,KAEX,IAAIziB,EACAyzB,EACAE,EAAe,KAAK,cAIxB,GAFAlR,EAAQD,GAAeC,CAAK,EAExBA,IAAU,SAAWA,IAAU,WAAaA,IAAU,OAGtD,OAFAziB,EAAO,KAAK,MAAQ2zB,EAAe,MACnCF,EAAS,KAAK,QAAUkL,GAAa3+B,CAAI,EACjCyiB,EAAK,CACT,IAAK,QACD,OAAOgR,EACX,IAAK,UACD,OAAOA,EAAS,EACpB,IAAK,OACD,OAAOA,EAAS,EACvB,KAID,QADAzzB,EAAO,KAAK,MAAQ,KAAK,MAAM0+B,GAAa,KAAK,OAAO,CAAC,EACjDjc,EAAK,CACT,IAAK,OACD,OAAOziB,EAAO,EAAI2zB,EAAe,OACrC,IAAK,MACD,OAAO3zB,EAAO2zB,EAAe,MACjC,IAAK,OACD,OAAO3zB,EAAO,GAAK2zB,EAAe,KACtC,IAAK,SACD,OAAO3zB,EAAO,KAAO2zB,EAAe,IACxC,IAAK,SACD,OAAO3zB,EAAO,MAAQ2zB,EAAe,IAEzC,IAAK,cACD,OAAO,KAAK,MAAM3zB,EAAO,KAAK,EAAI2zB,EACtC,QACI,MAAM,IAAI,MAAM,gBAAkBlR,CAAK,CAC9C,CAET,CAEA,SAASmc,GAAO/hB,EAAO,CACnB,OAAO,UAAY,CACf,OAAO,KAAK,GAAGA,CAAK,CAC5B,CACA,CAEA,IAAIgiB,GAAiBD,GAAO,IAAI,EAC5BE,IAAYF,GAAO,GAAG,EACtBG,IAAYH,GAAO,GAAG,EACtBI,IAAUJ,GAAO,GAAG,EACpBK,IAASL,GAAO,GAAG,EACnBM,IAAUN,GAAO,GAAG,EACpBO,IAAWP,GAAO,GAAG,EACrBQ,IAAaR,GAAO,GAAG,EACvBS,IAAUT,GAAO,GAAG,EACpBU,IAAYT,GAEhB,SAASU,KAAU,CACf,OAAOlM,GAAe,IAAI,CAC9B,CAEA,SAASmM,IAAM/c,EAAO,CAClB,OAAAA,EAAQD,GAAeC,CAAK,EACrB,KAAK,UAAY,KAAKA,EAAQ,GAAG,EAAG,EAAG,GAClD,CAEA,SAASgd,GAAWv8M,EAAM,CACtB,OAAO,UAAY,CACf,OAAO,KAAK,UAAY,KAAK,MAAMA,CAAI,EAAI,GACnD,CACA,CAEA,IAAIywM,IAAe8L,GAAW,cAAc,EACxCngC,IAAUmgC,GAAW,SAAS,EAC9B3S,IAAU2S,GAAW,SAAS,EAC9B5S,IAAQ4S,GAAW,OAAO,EAC1Bz/B,IAAOy/B,GAAW,MAAM,EACxBhM,IAASgM,GAAW,QAAQ,EAC5BlM,IAAQkM,GAAW,OAAO,EAE9B,SAAS/L,KAAQ,CACb,OAAOzO,GAAS,KAAK,KAAM,EAAG,CAAC,CACnC,CAEA,IAAIl7J,GAAQ,KAAK,MACb21K,GAAa,CACT,GAAI,GACJ,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,KACH,EAAG,EACX,EAGA,SAASC,IAAkBxvM,EAAQ4xF,EAAQogG,EAAeC,EAAUxD,EAAQ,CACxE,OAAOA,EAAO,aAAa78F,GAAU,EAAG,CAAC,CAACogG,EAAehyL,EAAQiyL,CAAQ,CAC7E,CAEA,SAASwd,IAAeC,EAAgB1d,EAAeud,EAAY9gB,EAAQ,CACvE,IAAIjhH,EAAW01H,GAAewM,CAAc,EAAE,IAAK,EAC/CvgC,EAAUv1I,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAChCmvH,EAAU/iK,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAChCkvH,EAAQ9iK,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAC9BqiG,EAAOj2I,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAC7B81H,EAAS1pK,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAC/B+1H,EAAQ3pK,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAC9B41H,EAAQxpK,GAAM4zC,EAAS,GAAG,GAAG,CAAC,EAC9BvpG,EACKkrM,GAAWogC,EAAW,IAAM,CAAC,IAAKpgC,CAAO,GACzCA,EAAUogC,EAAW,GAAK,CAAC,KAAMpgC,CAAO,GACxCwtB,GAAW,GAAK,CAAC,GAAG,GACpBA,EAAU4S,EAAW,GAAK,CAAC,KAAM5S,CAAO,GACxCD,GAAS,GAAK,CAAC,GAAG,GAClBA,EAAQ6S,EAAW,GAAK,CAAC,KAAM7S,CAAK,GACpC7sB,GAAQ,GAAK,CAAC,GAAG,GACjBA,EAAO0/B,EAAW,GAAK,CAAC,KAAM1/B,CAAI,EAE3C,OAAI0/B,EAAW,GAAK,OAChBtrO,EACIA,GACCs/N,GAAS,GAAK,CAAC,GAAG,GAClBA,EAAQgM,EAAW,GAAK,CAAC,KAAMhM,CAAK,GAE7Ct/N,EAAIA,GACCq/N,GAAU,GAAK,CAAC,GAAG,GACnBA,EAASiM,EAAW,GAAK,CAAC,KAAMjM,CAAM,GACtCF,GAAS,GAAK,CAAC,GAAG,GAAM,CAAC,KAAMA,CAAK,EAEzCn/N,EAAE,CAAC,EAAI+tN,EACP/tN,EAAE,CAAC,EAAI,CAACyrO,EAAiB,EACzBzrO,EAAE,CAAC,EAAIwqN,EACA+gB,IAAkB,MAAM,KAAMvrO,CAAC,CAC1C,CAGA,SAAS0rO,IAA2BC,EAAkB,CAClD,OAAIA,IAAqB,OACdh2K,GAEP,OAAOg2K,GAAqB,YAC5Bh2K,GAAQg2K,EACD,IAEJ,EACX,CAGA,SAASC,IAA4BtlK,EAAWulK,EAAO,CACnD,OAAIP,GAAWhlK,CAAS,IAAM,OACnB,GAEPulK,IAAU,OACHP,GAAWhlK,CAAS,GAE/BglK,GAAWhlK,CAAS,EAAIulK,EACpBvlK,IAAc,MACdglK,GAAW,GAAKO,EAAQ,GAErB,GACX,CAEA,SAASC,IAASC,EAAeC,EAAe,CAC5C,GAAI,CAAC,KAAK,UACN,OAAO,KAAK,aAAa,cAG7B,IAAIC,EAAa,GACbrxN,EAAK0wN,GACL9gB,EACA/iI,EAEJ,OAAI,OAAOskJ,GAAkB,WACzBC,EAAgBD,EAChBA,EAAgB,IAEhB,OAAOA,GAAkB,YACzBE,EAAaF,GAEb,OAAOC,GAAkB,WACzBpxN,EAAK,OAAO,OAAO,CAAE,EAAE0wN,GAAYU,CAAa,EAC5CA,EAAc,GAAK,MAAQA,EAAc,IAAM,OAC/CpxN,EAAG,GAAKoxN,EAAc,EAAI,IAIlCxhB,EAAS,KAAK,aACd/iI,EAAS+jJ,IAAe,KAAM,CAACS,EAAYrxN,EAAI4vM,CAAM,EAEjDyhB,IACAxkJ,EAAS+iI,EAAO,WAAW,CAAC,KAAM/iI,CAAM,GAGrC+iI,EAAO,WAAW/iI,CAAM,CACnC,CAEA,IAAIykJ,GAAQ,KAAK,IAEjB,SAAS1f,GAAK5sN,EAAG,CACb,OAAQA,EAAI,IAAMA,EAAI,IAAM,CAACA,CACjC,CAEA,SAASusO,IAAgB,CAQrB,GAAI,CAAC,KAAK,UACN,OAAO,KAAK,aAAa,cAG7B,IAAIjhC,EAAUghC,GAAM,KAAK,aAAa,EAAI,IACtCtgC,EAAOsgC,GAAM,KAAK,KAAK,EACvB7M,EAAS6M,GAAM,KAAK,OAAO,EAC3BxT,EACAD,EACA0G,EACAx2M,EACAyjN,EAAQ,KAAK,UAAW,EACxBC,EACAC,EACAC,EACAC,EAEJ,OAAKJ,GAOL1T,EAAU7H,GAAS3lB,EAAU,EAAE,EAC/ButB,EAAQ5H,GAAS6H,EAAU,EAAE,EAC7BxtB,GAAW,GACXwtB,GAAW,GAGXyG,EAAQtO,GAASwO,EAAS,EAAE,EAC5BA,GAAU,GAGV12M,EAAIuiL,EAAUA,EAAQ,QAAQ,CAAC,EAAE,QAAQ,SAAU,EAAE,EAAI,GAEzDmhC,EAAYD,EAAQ,EAAI,IAAM,GAC9BE,EAAS9f,GAAK,KAAK,OAAO,IAAMA,GAAK4f,CAAK,EAAI,IAAM,GACpDG,EAAW/f,GAAK,KAAK,KAAK,IAAMA,GAAK4f,CAAK,EAAI,IAAM,GACpDI,EAAUhgB,GAAK,KAAK,aAAa,IAAMA,GAAK4f,CAAK,EAAI,IAAM,GAGvDC,EACA,KACClN,EAAQmN,EAASnN,EAAQ,IAAM,KAC/BE,EAASiN,EAASjN,EAAS,IAAM,KACjCzzB,EAAO2gC,EAAW3gC,EAAO,IAAM,KAC/B6sB,GAASC,GAAWxtB,EAAU,IAAM,KACpCutB,EAAQ+T,EAAU/T,EAAQ,IAAM,KAChCC,EAAU8T,EAAU9T,EAAU,IAAM,KACpCxtB,EAAUshC,EAAU7jN,EAAI,IAAM,KA9BxB,KAgCf,CAEA,IAAI8jN,GAAUvN,GAAS,UAEvBuN,GAAQ,QAAU1N,IAClB0N,GAAQ,IAAMzmL,IACdymL,GAAQ,IAAMxC,IACdwC,GAAQ,SAAWvC,IACnBuC,GAAQ,GAAKruL,IACbquL,GAAQ,eAAiBhC,GACzBgC,GAAQ,UAAY/B,IACpB+B,GAAQ,UAAY9B,IACpB8B,GAAQ,QAAU7B,IAClB6B,GAAQ,OAAS5B,IACjB4B,GAAQ,QAAU3B,IAClB2B,GAAQ,SAAW1B,IACnB0B,GAAQ,WAAazB,IACrByB,GAAQ,QAAUxB,IAClBwB,GAAQ,QAAUvB,IAClBuB,GAAQ,QAAUrC,IAClBqC,GAAQ,MAAQtB,IAChBsB,GAAQ,IAAMrB,IACdqB,GAAQ,aAAelN,IACvBkN,GAAQ,QAAUvhC,IAClBuhC,GAAQ,QAAU/T,IAClB+T,GAAQ,MAAQhU,IAChBgU,GAAQ,KAAO7gC,IACf6gC,GAAQ,MAAQnN,IAChBmN,GAAQ,OAASpN,IACjBoN,GAAQ,MAAQtN,IAChBsN,GAAQ,SAAWX,IACnBW,GAAQ,YAAcN,GACtBM,GAAQ,SAAWN,GACnBM,GAAQ,OAASN,GACjBM,GAAQ,OAASjiB,GACjBiiB,GAAQ,WAAarc,GAErBqc,GAAQ,YAAclhB,GAClB,sFACA4gB,EACJ,EACAM,GAAQ,KAAO5H,GAIfhY,GAAe,IAAK,EAAG,EAAG,MAAM,EAChCA,GAAe,IAAK,EAAG,EAAG,SAAS,EAInCoD,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,IAAKL,GAAc,EACjCoB,GAAc,IAAK,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CAC/CA,EAAO,GAAK,IAAI,KAAK,WAAWyP,CAAK,EAAI,GAAI,CACjD,CAAC,EACD6jL,GAAc,IAAK,SAAU7jL,EAAO0L,EAAOnb,EAAQ,CAC/CA,EAAO,GAAK,IAAI,KAAKokI,GAAM30H,CAAK,CAAC,CACrC,CAAC,EAED;AAEAuvJ,GAAM,QAAU,SAEhButB,IAAgBgT,EAAW,EAE3BvgC,GAAM,GAAKyL,GACXzL,GAAM,IAAMjnI,IACZinI,GAAM,IAAMhnI,IACZgnI,GAAM,IAAMtL,IACZsL,GAAM,IAAM6tB,GACZ7tB,GAAM,KAAOssC,IACbtsC,GAAM,OAASgtC,IACfhtC,GAAM,OAAS0tB,GACf1tB,GAAM,OAAS+8B,GACf/8B,GAAM,QAAUsuB,GAChBtuB,GAAM,SAAWuiC,GACjBviC,GAAM,SAAW4uB,GACjB5uB,GAAM,SAAWktC,IACjBltC,GAAM,UAAYusC,IAClBvsC,GAAM,WAAag9B,GACnBh9B,GAAM,WAAa8iC,GACnB9iC,GAAM,YAAcitC,IACpBjtC,GAAM,YAAcotC,IACpBptC,GAAM,aAAei9B,GACrBj9B,GAAM,aAAek9B,IACrBl9B,GAAM,QAAUo9B,IAChBp9B,GAAM,cAAgBmtC,IACtBntC,GAAM,eAAiB0xB,GACvB1xB,GAAM,qBAAuBgvC,IAC7BhvC,GAAM,sBAAwBkvC,IAC9BlvC,GAAM,eAAiBkmC,IACvBlmC,GAAM,UAAYyL,GAGlBzL,GAAM,UAAY,CACd,eAAgB,mBAChB,uBAAwB,sBACxB,kBAAmB,0BACnB,KAAM,aACN,KAAM,QACN,aAAc,WACd,QAAS,eACT,KAAM,aACN,MAAO,SACX,ECriLA,MAAMwiE,IAAmBA,CAAC,CACxBC,eACAC,4BACAC,sBACAC,6BACF,IAAM,CACJ,MAAMC,EAAa3iF,KAEb4iF,EAA0BA,IAAM,CACpCJ,EAA0BD,EAAazyP,EAAE,GACrCyyP,iBAAc1xO,QAAS,gBACd8xO,EAAA,mBAAmBJ,iBAAcM,UAAU,EAAE,GAC/CN,iBAAc1xO,QAAS,cACrB8xO,EAAA,iBAAiBJ,iBAAcM,UAAU,EAAE,GAC7CN,iBAAc1xO,QAAS,kBACrB8xO,EAAA,0BAA0BJ,iBAAcM,UAAU,EAAE,CACjE,EAGIC,EAA2BA,IAAM,CACrCpB,GACGh0K,OAAO,sCAAsC60K,EAAazyP,EAAE,EAAE,EAC9DggF,KAAc8nH,GAAA,CACO6qD,IACQC,GAAA,CAC7B,GAGL,SACE9gN,GAAA,CAAA50B,WACE,OACE4kE,QAASA,IAAM,CACWgxK,GAC1B,EACA/iO,UAAW,0JACT0iO,EAAatgF,SAAW,SAAW,gBAAkB,EAAE,GACtDj1J,UAGHwe,EAAA,UACEomD,QAAgBluF,GAAA,CACdA,EAAEq/P,gBAAgB,EACOD,GAC3B,EACAjjO,UAAU,wFAAuF7S,WAEhGg2O,IAAK,CAACnjO,UAAU,UAAW,CACtB,GACP0iO,EAAatgF,SAAW,YACvB,QAAMpiJ,UAAU,sEAA4E,EAE9F6L,EAAA,OACE5R,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,UAElCwe,EAAA,UAAQI,GAAG,KAAKo1G,GAAG,KAAKr+I,EAAE,KAAKkuC,KAAK,UAAW,EAC/CrF,EAAA,QACErnC,EAAE,qzBACF4sC,OAAO,UACP,iBAAe,QACf,kBAAgB,QACjB,CAAC,EACC,EACLrF,EAAA,OAAK7L,UAAU,6CAA4C7S,UACzDwe,EAAA,MAAI3L,UAAU,6BAA4B7S,SAAEu1O,iBAActuJ,MAAU,EACpEzoE,EAAA,KAAG3L,UAAU,iBAAgB7S,SAAEu1O,iBAAc9iL,QAAW,EACxDj0C,EAAA,QAAM3L,UAAU,yBAAwB7S,SACrC8iN,GAAOyyB,iBAAcU,SAAS,EAAEr1C,OAAO,IAAI,EAAEka,QAAQ,EAClD,CAAC,EACJ,CAAC,EACH,EACL,CAEN,EC3EMo7B,IAAoBA,CAAC,CACzBC,6BACAC,2BACAV,6BACF,IAAM,CACE,MAAE9/P,KAAMyzK,GAAe,EACvBtnJ,EAAMotD,WACN,CAACknL,EAAeC,CAAgB,EAAI9kN,WAAS,CAAE,GAC/C,CAAC+kN,EAASC,CAAU,EAAIhlN,WAAS,EAAK,EACtC,CAACilN,EAAOC,CAAQ,EAAIllN,WAAS,CACjCy0C,KAAM,EACNvzD,KAAM,GACNikO,cAAe,EACfhxK,WAAY,EACb,EAEK6vK,EAA4B,MAAO1yP,GAAO,CAE9C4xP,GAAMkC,IAAI,sCAAsC9zP,CAAE,OAAO,EAAEggF,KAAc8nH,GAAA,CACnD6qD,GAAA,CACrB,GAGGoB,EAA6B,SAAY,CAE7CnC,GAAMkC,IAAI,6CAA6C,EAAE9zK,KAAc8nH,GAAA,CACjD6qD,IACQC,GAAA,CAC7B,GAGGD,EAAsB,SAAY,CACtCe,EAAW,EAAI,EACf9B,GACG5vO,IAAI,oCAAoC,EACxCg+D,KAAc8nH,GAAA,CACIA,IAAIp4J,KAAKsP,OAAO,EACxB40M,EAAA,CACPzwK,KAAM2kH,EAAIp4J,KAAKyzC,KACfvzD,KAAMk4K,EAAIp4J,KAAK9f,KACfikO,cAAe/rD,EAAIp4J,KAAKmkN,cACxBhxK,WAAYilH,EAAIp4J,KAAKmzC,WACtB,EACF,EACAmxK,QAAQ,IAAM,CACbN,EAAW,EAAK,EACjB,GAGCj9M,EAAsB7iD,GAAA,CACpB,MAAEoiD,YAAWE,eAAcD,gBAAiBriD,EAAE2mG,cAChDvkD,EAAYE,GAAgBD,GAE1B09M,EAAMxwK,KAAOwwK,EAAM9wK,aACrB6wK,EAAW,EAAI,EAEZ1xO,OAAI,2CAA2C2xO,EAAMxwK,KAAO,CAAC,EAAE,EAC/DnD,KAAc8nH,GAAA,CACb0rD,EAAiB,CAAC,GAAGD,EAAe,GAAGzrD,EAAIp4J,KAAKsP,OAAO,CAAC,EAC/C40M,EAAA,CACPzwK,KAAM2kH,EAAIp4J,KAAKyzC,KACfvzD,KAAMk4K,EAAIp4J,KAAK9f,KACfikO,cAAe/rD,EAAIp4J,KAAKmkN,cACxBhxK,WAAYilH,EAAIp4J,KAAKmzC,WACtB,EACD6wK,EAAW,EAAK,EACjB,EAEP,EAGF13L,mBAAU,IAAM,CACM22L,GACtB,EAAG,CAAE,GAELL,GAAkBrzO,EAAK,IAAMo0O,EAA2B,EAAK,CAAC,IAG5D,OAAKtjO,UAAU,kHAAiH7S,WAC9H,OACE+B,MACA8Q,UAAU,mLACVq8E,SAAU31D,EAAav5B,UAEvB0e,EAAA,UAAQ7L,UAAU,wCAAuC7S,UACvDwe,EAAA,MAAI3L,UAAU,uCAAsC7S,SACjDpqB,EAAE,sBAAsB,CACvB,GACHwgQ,EAA2B,KAC1B,UACExxK,QAASiyK,EACThkO,UAAU,yBAAwB7S,SAEjCpqB,EAAE,oBAAoB,EACjB,CACT,EACK,EACP,CAAC2gQ,IAAWF,iBAAev6M,UAAW,KACrC,OAAKjpB,UAAU,sDAAqD7S,SAAA,CAClEwe,EAACu4N,GAAgB,CAAClkO,UAAU,UAAW,EACvC2L,EAAA,KAAG3L,UAAU,qCAAoC7S,SAC9CpqB,EAAE,wBAAwB,EAC1B,CAAC,CACD,GAEN2gQ,GAAW/3N,EAAC02N,GAAS,IACrBmB,iBAAelzO,IACdqb,KAAC82N,IAAgB,CAEfC,eACAC,4BACAC,sBACAC,+BAJKH,EAAazyP,EAKnB,EACD,EACC,EACF,CAET,ECtHA,SAAwBk0P,IAAW,CAAE/vJ,OAAM,EAAG,CAC5C,KAAM,CAACgwJ,EAAyBd,CAA0B,EAAI3kN,WAAS,EAAK,EACtE,CAAC4kN,EAA0Bc,CAA2B,EAAI1lN,WAAS,CAAC,EAEpEkkN,EAA8B,SAAY,CAC9ChB,GAAM5vO,IAAI,2CAA2C,EAAEg+D,KAAc8nH,GAAA,CACvCA,IAAIp4J,KAAKnvB,KAAK,EAC3C,GAEHy7C,mBAAU,IAAM,CAEc42L,GAC9B,EAAG,CAAE,KAGH,UAAQ7iO,UAAU,sGAAqG7S,UACrHwe,EAAA,OAAK3L,UAAU,kBAAiB7S,WAC9B,MAAI6S,UAAU,sCAAqC7S,SAAEinF,EAAU,EAC5D,EACLzoE,EAAA,OAAK3L,UAAU,kBAAiB7S,WAC7Bu7J,GAAI,CAACp8J,GAAG,IAAGa,WACV,OACE6S,UAAU,qBACV6mG,IAAKy9H,GACL19H,IAAI,WACL,EACG,EACH,EACLj7F,EAAA,OAAK3L,UAAU,OAAM7S,WACnB,UACE4kE,QAAgBluF,GAAA,CAEdA,EAAEq/P,gBAAgB,EAClBr/P,EAAE0gQ,YAAYC,2BACdlB,EAA2B,CAACc,CAAuB,CACrD,EACA,aAAW,cACXpkO,UAAU,2DAA0D7S,SAAA,CAEpEwe,EAACu4N,IAAgB,EAAE,EAClBX,EAA2B,GAC1B13N,EAAA,QAAM7L,UAAU,uIAAsI7S,UACpJ0e,EAAA,QAAM7L,UAAU,UAAS7S,SAAA,CACtBo2O,EAAyB,yBAC5B,CAAM,GACLA,CAAwB,EACrB,CACP,EACK,EACL,EACJa,GACCz4N,EAAC03N,IAAiB,CAChBC,6BACAC,2BACAV,8BACD,CACF,EACK,CAEZ,CCnEA,MAAM4B,GAAkBv3O,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,6OAA8O,OAAQ,eAAgB,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,EAAC,ECA9iB4xB,GAAex3O,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,4xBAA6xB,OAAQ,eAAgB,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,EAAC,ECA1lC6xB,GAAiBz3O,GAA0B4lN,EAAmB,cAAC,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,GAAyB4lN,gBAAoB,OAAQ,CAAE,EAAG,2SAA4S,OAAQ,eAAgB,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,EAAC,ECArlB8xB,GAAmB13O,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,umDAAwmD,OAAQ,eAAgB,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,EAAC,ECQ/6D,SAAwB+xB,KAAY,OACd9yB,oBAAaC,QAAQ,aAAa,EAGpDD,aAAaC,QAAQ,gBAAgB,KACrCvxD,OAAKl9H,MAAMwuL,aAAaC,QAAQ,gBAAgB,CAAC,IAAjDvxD,QAAoDqkF,iBAIpD/iN,GAAA,CAAA50B,WACE,OAAK6S,UAAU,8FAA6F7S,SAAA,CAC1Gwe,EAACo5N,GAAY,CACXC,eAAe,IACfC,aAAa,IACb1V,KAAM2V,GACNp8N,MAAM,cACP,EACD6C,EAACo5N,GAAY,CACXC,eAAe,YACfC,aAAa,YACb1V,KAAM4V,GACNr8N,MAAM,kBACP,EACD6C,EAACo5N,GAAY,CACXC,eAAgB,YAChBC,aAAc,YACd1V,KAAM6V,GACNt8N,MAAM,kBACP,EACD6C,EAACo5N,GAAY,CACXC,eAAe,WACfC,aAAa,WACb1V,KAAM8V,GACNv8N,MAAM,iBACP,CAAC,EACC,EACL,CAEN,CAEA,MAAMi8N,GAAeA,CAAC,CAAEC,iBAAgBC,eAAc1V,KAAMhqJ,EAAMz8D,OAAM,IAAM,CACtE,MAAE/lC,KAAMyzK,GAAe,EACvBssF,EAAa3iF,KAYnB,SACE,UACEpuF,QAASA,IAAM+wK,EAAWkC,CAAc,EACxChlO,WAZgCkxJ,GAC9BA,IAAS,KAAO14G,OAAOqrC,SAASu0D,WAAa,KAEtC8Y,IAAS,KAAO14G,OAAOqrC,SAASu0D,SAAS7xF,SAAS2qG,CAAI,EADxD,kCAIA,IAOa+zE,CAAY,EAC9B,8EACD93O,UAEAo4E,IAAM,MACP,QAAAp4E,SAAOpqB,EAAE+lC,CAAK,EAAQ,CAAC,EACjB,CAEZ,EC1EMw8N,IAAsBp4O,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,EAAG,EAAG,EAAG,MAAO,GAAI,OAAQ,GAAI,GAAI,GAAI,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,miBAAoiB,OAAQ,UAAW,YAAa,IAAK,cAAe,QAAS,eAAgB,OAAS,GAAmBA,gBAAoB,OAAQ,CAAE,EAAG,EAAG,EAAG,EAAG,MAAO,GAAI,OAAQ,GAAI,GAAI,GAAI,OAAQ,UAAW,YAAa,CAAC,CAAE,CAAC,ECajlCyyB,GAAeA,CAAC,CAAEvsO,OAAMF,cAAa,IAAM,CACzC,MAAE/1B,KAAMyzK,GAAe,EACvBgvF,EAAeA,IAAM,CACzBzzB,aAAa0zB,WAAW,OAAO,EAE/Br7M,WAAW,IAAM,CACfouB,OAAOqrC,SAASg2D,KAAO,UACtB,GAAI,GAGT,SACGhlG,GAAW,CAAC/7C,eAA4BE,OAAW7L,WACjDuoD,GAAkB,CAAAvoD,SAAA,CACjBwe,EAACqrC,GAAiB,CAAA7pD,WACf2oD,GAAgB,CAAA3oD,WACf,OAAK6S,UAAU,mDAAkD7S,UAC9Du4O,MAAY,MACb,OAAK1lO,UAAU,kCAAiC7S,UAC9Cwe,EAAA,MAAI3L,UAAU,qCAAoC7S,SAC/CpqB,EAAE,eAAe,EAChB,EACJ4oC,EAAA,QAAM3L,UAAU,sDAAqD7S,SAClEpqB,EAAE,2BAA2B,EAC1B,CAAC,EACJ,CAAC,EACH,EACW,EACD,EACnB8oC,EAACorC,GAAiB,CAACj3C,UAAU,sBAAqB7S,SAAA,CAChDwe,EAAC4qC,GAAiB,CAAAppD,SAAEpqB,EAAE,eAAe,EAAqB,EAC1D4oC,EAACwqC,GAAiB,CAAC4b,QAASyzK,EAAar4O,SACtCpqB,EAAE,eAAe,EACD,CAAC,EACH,CAAC,EACF,EACT,CAEjB,EClDM4iQ,GAAmBz4O,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,IAAK,OAAQ,GAAI,QAAS,aAAc,KAAM,OAAQ,MAAO,6BAA8B,WAAY,+BAAgC,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,MAAO,IAAK,OAAQ,GAAI,KAAM,gBAAkB,GAAmBA,gBAAoB,OAAQ,KAAsBA,gBAAoB,UAAW,CAAE,GAAI,WAAY,oBAAqB,oBAAqB,MAAO,EAAG,OAAQ,CAAC,EAAoBA,gBAAoB,MAAO,CAAE,UAAW,mBAAoB,UAAW,qDAAqD,CAAE,CAAC,EAAmBA,gBAAoB,QAAS,CAAE,GAAI,kBAAmB,MAAO,IAAK,OAAQ,IAAK,UAAW,godAAgod,CAAE,CAAC,CAAC,ECAz3e8yB,IAAiB14O,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,krBAAmrB,OAAQ,eAAgB,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,EAAC,ECAl/B+yB,IAAkB34O,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,mBAAoB,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,EAAC,ECC/UgzB,GAA2Bv0D,GAAA,CAC/B,KAAM,CAAChgF,EAASw0I,CAAU,EAAIpnN,WAAS,EAAK,EAE5CstB,mBAAU,IAAM,CACR+5L,QAAQxtL,OAAOytL,WAAW10D,CAAK,EACjCy0D,EAAMz0I,UAAYA,GACpBw0I,EAAWC,EAAMz0I,OAAO,EAE1B,MAAMzd,EAAWA,IAAMiyJ,EAAWC,EAAMz0I,OAAO,EACxC9mE,+BAAiB,SAAUqpD,CAAQ,EACnC,IAAMt7B,OAAO7tB,oBAAoB,SAAUmpD,CAAQ,GACzD,CAACyd,EAASggF,CAAK,CAAC,EAEZhgF,CACT,ECEA,SAAwB20I,KAAU,CAC1B,MAAEnjQ,KAAMyzK,GAAe,EACvB2vF,EAAYL,GAAc,oBAAoB,EAC9C,CAACM,EAAcC,CAAe,EAAI1nN,WAAS,EAAK,EAChD,CAAC2nN,EAAaC,CAAc,EAAI5nN,WAAS,IAAI,EAE/BozL,aAAaC,QAAQ,aAAa,EAEtD,MAAMw0B,EAAW,CACf,CACEjX,KAAM5jN,EAACu5N,KAAU,EACjB9wJ,MAAOrxG,EAAE,aAAa,EACtBmuL,KAAM,IACNu1E,QAAS,IAEX,CACElX,KAAM5jN,EAACw5N,KAAgB,EACvB/wJ,MAAOrxG,EAAE,iBAAiB,EAC1BmuL,KAAM,YACNu1E,QAAS,IAEX,CACElX,KAAM5jN,EAACy5N,KAAmB,EAC1BhxJ,MAAOrxG,EAAE,iBAAiB,EAC1BmuL,KAAM,YACNu1E,QAAS,CACP,CAAEryJ,MAAOrxG,EAAE,iBAAiB,EAAGmuL,KAAM,aACrC,CAAE98E,MAAOrxG,EAAE,iBAAiB,EAAGmuL,KAAM,UAAW,GAGpD,CACEq+D,KAAM5jN,EAAC05N,KAAa,EACpBjxJ,MAAOrxG,EAAE,gBAAgB,EACzBmuL,KAAM,WACNu1E,QAAS,GACV,EAGGC,EACJ,0HAEIC,EACJ,oIAEIC,EAAiC34O,GAAA,CACtBq4O,MAAgBr4O,EAAQ,KAAOA,CAAK,GAG/C44O,EAAiC1pO,GAEnCA,EAAK+zJ,OAASrtE,SAASu0D,UACvBj7I,EAAKspO,QAAQxqL,KAAkB6qL,KAAQ51E,OAASrtE,SAASu0D,QAAQ,EAE/DsuF,EACA,sGAGN,OAAKP,IAID,OAAKnmO,UAAU,+EAA8E7S,UAC3Fwe,EAAA,OAAK3L,UAAU,kDAAiD7S,SAC9Dwe,EAAC24N,GAAc,IACZ,EACL34N,EAAA,OAAK3L,UAAU,cAAa7S,WAC1B,MAAI6S,UAAU,sCAAqC7S,SAAA,CAChDq5O,EAASl2O,IAAI,CAAC6M,EAAMlP,MACnB,MAAgB+R,UAAU,WAAU7S,SAAA,CAClC0e,EAAC49I,GAAO,CACNn9J,GAAI6Q,EAAK+zJ,KACTlxJ,UAAW6mO,EAAqB1pO,CAAI,EACpC40D,QAASA,IAAM60K,EAAoB34O,CAAK,EAAEd,SAEzCgQ,GAAKoyN,OACN,QAAApiO,SAAOgQ,EAAKi3E,MAAY,EACvBj3E,EAAKspO,QAAQx9M,OAAS,KACpB89M,IAAS,CACR/mO,UAAW,GACTsmO,IAAgBr4O,EAAQ,aAAe,EAAE,0CAE5C,CACF,EACM,EACRkP,EAAKspO,QAAQx9M,OAAS,GAAKq9M,IAAgBr4O,GAC1C0d,EAAA,MAAI3L,UAAU,gCAA+B7S,SAC1CgQ,EAAKspO,QAAQn2O,IAAI,CAACw2O,EAASE,MACzBv9E,GAAO,CACNn9J,GAAIw6O,EAAQ51E,KAEZlxJ,UAAWA,CAAC,CAAEoqJ,cACZA,EACIu8E,EACA,sGACLx5O,WAED,QAAAA,SAAO25O,EAAQ1yJ,MAAY,CAAC,EAPvB4yJ,CAQE,CACV,EACC,CACL,CAhCM/4O,GAiCL,CACL,IACD,UACE8jE,QAASA,IAAMs0K,EAAgB,EAAI,EACnCrmO,UAAU,+IAA8I7S,UAEvJu4O,MAAY,MACb,QAAAv4O,SAAOpqB,EAAE,eAAe,EAAQ,CAAC,EAC3B,CAAC,EACP,EACD,EACL4oC,EAAC45N,GAAY,CAACvsO,KAAMotO,EAActtO,aAAcutO,EAAkB,CAAC,EAChE,EAvDA16N,EAACk5N,IAAS,EAAE,CA0DvB,CCjIA,MAAMoC,GAAsBt5N,gBAAc,CACtC,mBAAqB/qC,GAAMA,EAC3B,SAAU,GACV,cAAe,OACnB,CAAC,ECPKskQ,GAAgBv5N,gBAAc,EAAE,EACtC,SAASw5N,KAA0B,CAC/B,OAAOt5N,EAAU,WAACq5N,EAAa,EAAE,aACrC,CCAA,MAAME,GAAkBz5N,EAAa,cAAC,IAAI,ECLpC66I,GAAY,OAAO,SAAa,ICGhC5pI,GAA4B4pI,GAAYtxJ,kBAAkB+0C,EAAS,UCDnEo7L,GAAc15N,EAAa,cAAC,CAAE,OAAQ,EAAK,CAAE,ECKnD,SAAS25N,IAAiB5nO,EAAW6nO,EAAar6O,EAAOs6O,EAAqB,CAC1E,MAAMz+M,EAASo+M,MACTM,EAAc55N,aAAWw5N,EAAW,EACpCK,EAAkB75N,aAAWu5N,EAAe,EAC5CO,EAAsB95N,aAAWo5N,EAAmB,EAAE,cACtDW,EAAmBtrL,WAIzBkrL,EAAsBA,GAAuBC,EAAY,SACrD,CAACG,EAAiB,SAAWJ,IAC7BI,EAAiB,QAAUJ,EAAoB9nO,EAAW,CACtD,YAAA6nO,EACA,OAAAx+M,EACA,MAAA77B,EACA,WAAYw6O,EAAkBA,EAAgB,GAAK,OACnD,sBAAuBA,EACjBA,EAAgB,UAAY,GAC5B,GACN,oBAAAC,CACZ,CAAS,GAEL,MAAME,EAAgBD,EAAiB,QACvChpN,UAA0B,IAAM,CAC5BipN,GAAiBA,EAAc,QACvC,CAAK,EAMDjpN,GAA0B,IAAM,CACxBipN,GAAiBA,EAAc,gBAC/BA,EAAc,eAAe,gBAEzC,CAAK,EACDjpN,GAA0B,IAAM,IAAMipN,GAAiBA,EAAc,OAAO,SAAS,EAAG,EAAE,EACnFA,CACX,CC7CA,SAASC,GAAY54O,EAAK,CACtB,OAAQ,OAAOA,GAAQ,UACnB,OAAO,UAAU,eAAe,KAAKA,EAAK,SAAS,CAC3D,CCIA,SAAS64O,IAAaR,EAAaM,EAAeG,EAAa,CAC3D,OAAO9+I,cAAaC,GAAa,CAC7BA,GAAYo+I,EAAY,OAASA,EAAY,MAAMp+I,CAAQ,EACvD0+I,IACA1+I,EACM0+I,EAAc,MAAM1+I,CAAQ,EAC5B0+I,EAAc,QAAO,GAE3BG,IACI,OAAOA,GAAgB,WACvBA,EAAY7+I,CAAQ,EAEf2+I,GAAYE,CAAW,IAC5BA,EAAY,QAAU7+I,GAGjC,EAMD,CAAC0+I,CAAa,CAAC,CACnB,CC3BA,SAASI,GAAehlQ,EAAG,CACvB,OAAO,OAAOA,GAAM,UAAY,MAAM,QAAQA,CAAC,CACnD,CCLA,SAASilQ,GAAoBjlQ,EAAG,CAC5B,OAAO,OAAOA,GAAM,UAAY,OAAOA,EAAE,OAAU,UACvD,CCCA,MAAMklQ,IAAe,CACjB,UACA,UACA,OACA,aACA,YACA,WACA,aACA,aACJ,EACA,SAASC,GAAsBl7O,EAAO,CAClC,OAAQg7O,GAAoBh7O,EAAM,OAAO,GACrCi7O,IAAa,KAAM91O,GAAS41O,GAAe/6O,EAAMmF,CAAI,CAAC,CAAC,CAC/D,CACA,SAASg2O,GAAcn7O,EAAO,CAC1B,MAAO,GAAQk7O,GAAsBl7O,CAAK,GAAKA,EAAM,SACzD,CChBA,SAASo7O,IAAuBp7O,EAAOE,EAAS,CAC5C,GAAIg7O,GAAsBl7O,CAAK,EAAG,CAC9B,KAAM,CAAE,QAAAq7O,EAAS,QAAAC,CAAS,EAAGt7O,EAC7B,MAAO,CACH,QAASq7O,IAAY,IAASN,GAAeM,CAAO,EAC9CA,EACA,OACN,QAASN,GAAeO,CAAO,EAAIA,EAAU,MACzD,CACK,CACD,OAAOt7O,EAAM,UAAY,GAAQE,EAAU,EAC/C,CCVA,SAASq7O,IAAuBv7O,EAAO,CACnC,KAAM,CAAE,QAAAq7O,EAAS,QAAAC,GAAYF,IAAuBp7O,EAAO2gB,EAAU,WAACq5N,EAAa,CAAC,EACpF,OAAOrpL,UAAQ,KAAO,CAAE,QAAA0qL,EAAS,QAAAC,CAAO,GAAK,CAACE,GAA0BH,CAAO,EAAGG,GAA0BF,CAAO,CAAC,CAAC,CACzH,CACA,SAASE,GAA0Bx0O,EAAM,CACrC,OAAO,MAAM,QAAQA,CAAI,EAAIA,EAAK,KAAK,GAAG,EAAIA,CAClD,CCVA,MAAMy0O,GAAoBC,IAAe,CACrC,UAAY17O,GAAU07O,EAAU,KAAMv2O,GAAS,CAAC,CAACnF,EAAMmF,CAAI,CAAC,CAChE,GACMw2O,GAAqB,CACvB,cAAeF,GAAiB,CAAC,SAAU,WAAY,MAAM,CAAC,EAC9D,UAAWA,GAAiB,CACxB,UACA,OACA,WACA,aACA,WACA,aACA,YACA,aACR,CAAK,EACD,KAAMA,GAAiB,CAAC,MAAM,CAAC,EAC/B,KAAMA,GAAiB,CAAC,OAAQ,cAAc,CAAC,EAC/C,MAAOA,GAAiB,CAAC,YAAY,CAAC,EACtC,MAAOA,GAAiB,CAAC,aAAc,eAAgB,YAAY,CAAC,EACpE,IAAKA,GAAiB,CAAC,WAAY,QAAS,aAAc,aAAa,CAAC,EACxE,IAAKA,GAAiB,CAClB,QACA,aACA,oBACA,UACR,CAAK,EACD,OAAQA,GAAiB,CACrB,cACA,kBACA,iBACR,CAAK,CACL,EC7BA,SAASG,IAAaC,EAAU,CAC5B,UAAWjmO,KAAOimO,EACVjmO,IAAQ,4BACR+lO,GAAmB,0BAA4BE,EAASjmO,CAAG,EAG3D+lO,GAAmB/lO,CAAG,EAAE,UAAYimO,EAASjmO,CAAG,CAG5D,CCFA,SAASkmO,GAAY5hF,EAAM,CACvB,MAAMl4J,EAAMotD,SAAO,IAAI,EACvB,OAAIptD,EAAI,UAAY,OAChBA,EAAI,QAAUk4J,KAEXl4J,EAAI,OACf,CCVA,MAAM+5O,GAAwB,CAK1B,uBAAwB,GAKxB,eAAgB,EACpB,ECbA,IAAIh5P,IAAK,EACT,SAASi5P,KAAkB,CACvB,OAAOF,GAAY,IAAM,CACrB,GAAIC,GAAsB,eACtB,OAAOh5P,KAEnB,CAAK,CACL,CCRA,MAAMk5P,GAAqBx7N,EAAa,cAAC,EAAE,ECA3C,MAAMy7N,YAA6B30J,GAAe,SAAU,CAIxD,yBAA0B,CACtB,KAAM,CAAE,cAAAozJ,EAAe,MAAA36O,GAAU,KAAK,MACtC,OAAI26O,GACAA,EAAc,SAAS36O,CAAK,EACzB,IACV,CACD,oBAAqB,CAAG,CACxB,QAAS,CACL,OAAO,KAAK,MAAM,QACrB,CACL,CCXA,MAAMm8O,GAA2B17N,EAAa,cAAC,EAAE,ECL3C27N,IAAwB,OAAO,IAAI,uBAAuB,EC0BhE,SAASC,IAAsB,CAAEC,oBAAmBhC,sBAAqBiC,4BAA2BC,YAAWC,iBAAgBjqO,WAAW,EAAG,CACzI8pO,GAAqBV,IAAaU,CAAiB,EACnD,SAASI,EAAgB18O,EAAO86O,EAAa,CACzC,MAAM6B,EAAiB,CACnB,GAAGh8N,aAAWo5N,EAAmB,EACjC,GAAG/5O,EACH48O,SAAUC,IAAY78O,CAAK,GAEzB,CAAEk0J,UAAU,EAAGyoF,EACrB,IAAId,EAAW,KACf,MAAM37O,EAAUq7O,IAAuBv7O,CAAK,EAYtC88O,EAAe5oF,EAAW92H,OAAY4+M,IAAe,EAIrD3B,EAAcoC,EAAez8O,EAAOk0J,CAAQ,EAClD,GAAI,CAACA,GAAYoH,GAAW,CAOxBp7J,EAAQy6O,cAAgBP,IAAiB5nO,EAAW6nO,EAAasC,EAAgBrC,CAAmB,EAKpG,MAAMyC,EAAiBp8N,aAAWw5N,EAAW,EAAEr5C,OACzCk8C,EAA2Br8N,aAAWw7N,EAAwB,EAChEj8O,EAAQy6O,gBACRkB,EAAW37O,EAAQy6O,cAAciB,aAEjCe,EAAgBI,EAAgBT,EAAmBQ,EAAcP,GAC7DZ,GAAmBY,0BAA2BS,CAAwB,EAElF,CAKA,OAAAr+N,EAAAu9N,IAAA,CAAAvB,cAAmEz6O,EAAQy6O,cAAa36O,MAAS28O,EAAc18O,UAC3G47O,EAAQp9N,EAAAu7N,GAAAj6O,SAAA,CAAAI,MAC6CD,EAAOD,SAAIu8O,EAAUhqO,EAAWxS,EAAO88O,EAAcjC,IAAaR,EAAan6O,EAAQy6O,cAAeG,CAAW,EAAGT,EAAanmF,EAAUh0J,EAAQy6O,aAAa,CAAC,KAC9N,CACA,MAAMsC,EAAsBxqO,aAAWiqO,CAAe,EACtDO,SAAoBb,GAAqB,EAAI5pO,EACtCyqO,CACX,CACA,SAASJ,IAAY,CAAED,UAAS,EAAG,CAC/B,MAAMM,EAAgBv8N,aAAWs7N,EAAkB,EAAEl5P,GACrD,OAAOm6P,GAAiBN,IAAax/M,OAC/B8/M,EAAgB,IAAMN,EACtBA,CACV,CC3EA,SAASO,IAAkBjU,EAAc,CACrC,SAASkU,EAAO5qO,EAAW6qO,EAA8B,GAAI,CACzD,OAAOhB,IAAsBnT,EAAa12N,EAAW6qO,CAA2B,CAAC,CACpF,CACD,GAAI,OAAO,MAAU,IACjB,OAAOD,EAMX,MAAME,EAAiB,IAAI,IAC3B,OAAO,IAAI,MAAMF,EAAQ,CAMrB,IAAK,CAACG,EAAS3nO,KAIN0nO,EAAe,IAAI1nO,CAAG,GACvB0nO,EAAe,IAAI1nO,EAAKwnO,EAAOxnO,CAAG,CAAC,EAEhC0nO,EAAe,IAAI1nO,CAAG,EAEzC,CAAK,CACL,CCxCA,MAAM4nO,IAAuB,CACzB,UACA,SACA,OACA,OACA,UACA,IACA,QACA,OACA,SACA,SACA,OACA,WACA,OACA,UACA,UACA,WACA,OACA,OACA,SACA,SACA,MACA,OACA,QACA,MACA,MACJ,EC5BA,SAASC,GAAejrO,EAAW,CAC/B,OAKA,OAAOA,GAAc,UAIjBA,EAAU,SAAS,GAAG,EACf,GAMX,GAAAgrO,IAAqB,QAAQhrO,CAAS,EAAI,IAItC,QAAQ,KAAKA,CAAS,EAI9B,CC3BA,MAAMkrO,GAAkB,GACxB,SAASC,IAAkBC,EAAY,CACnC,OAAO,OAAOF,GAAiBE,CAAU,CAC7C,CCAA,MAAMC,GAAqB,CACvB,uBACA,IACA,IACA,IACA,aACA,aACA,aACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,OACA,QACA,OACJ,EAIMC,GAAiB,IAAI,IAAID,EAAkB,ECtBjD,SAASE,GAAoBnoO,EAAK,CAAE,OAAAooO,EAAQ,SAAApB,CAAQ,EAAI,CACpD,OAAQkB,GAAe,IAAIloO,CAAG,GAC1BA,EAAI,WAAW,QAAQ,IACrBooO,GAAUpB,IAAa,UACpB,CAAC,CAACc,GAAgB9nO,CAAG,GAAKA,IAAQ,UAC/C,CCRA,MAAMqoO,GAAiB99O,GAAU,CAAC,EAAEA,GAAU,MAAoCA,EAAM,aCElF+9O,IAAiB,CACnB,EAAG,aACH,EAAG,aACH,EAAG,aACH,qBAAsB,aAC1B,EAIMC,IAAqB,CAAC9nQ,EAAGK,IAAMmnQ,GAAmB,QAAQxnQ,CAAC,EAAIwnQ,GAAmB,QAAQnnQ,CAAC,EAOjG,SAAS0nQ,IAAe,CAAE,UAAA3+L,EAAW,cAAA4+L,CAAa,EAAK,CAAE,2BAAAC,EAA6B,GAAM,mBAAAC,EAAqB,IAASC,EAAoBC,EAAmB,CAE7J,IAAIC,EAAkB,GAEtBL,EAAc,KAAKF,GAAkB,EAErC,UAAWvoO,KAAOyoO,EACdK,GAAmB,GAAGR,IAAetoO,CAAG,GAAKA,CAAG,IAAI6pC,EAAU7pC,CAAG,CAAC,KAEtE,OAAI0oO,GAA8B,CAAC7+L,EAAU,IACzCi/L,GAAmB,iBAEvBA,EAAkBA,EAAgB,OAG9BD,EACAC,EAAkBD,EAAkBh/L,EAAW++L,EAAqB,GAAKE,CAAe,EAEnFH,GAAsBC,IAC3BE,EAAkB,QAEfA,CACX,CCrCA,SAASC,GAAc/oO,EAAK,CACxB,OAAOA,EAAI,WAAW,IAAI,CAC9B,CCFA,MAAMgpO,IAAiB,CAACz+O,EAAO2D,IACpBA,GAAQ,OAAO3D,GAAU,SAC1B2D,EAAK,UAAU3D,CAAK,EACpBA,ECNJksC,GAAQ,CAACP,EAAKC,EAAKh2D,IAAM,KAAK,IAAI,KAAK,IAAIA,EAAG+1D,CAAG,EAAGC,CAAG,ECEvDi4D,GAAS,CACX,KAAOjuH,GAAM,OAAOA,GAAM,SAC1B,MAAO,WACP,UAAYA,GAAMA,CACtB,EACM8oQ,GAAQ,CACV,GAAG76I,GACH,UAAYjuH,GAAMs2D,GAAM,EAAG,EAAGt2D,CAAC,CACnC,EACMonC,GAAQ,CACV,GAAG6mF,GACH,QAAS,CACb,ECRM86I,GAAY/oQ,GAAM,KAAK,MAAMA,EAAI,GAAM,EAAI,IAC3CgpQ,GAAa,uBACbC,GAAa,+HACbC,IAAmB,mHACzB,SAASruL,GAAS76E,EAAG,CACjB,OAAO,OAAOA,GAAM,QACxB,CCVA,MAAMmpQ,GAAkB12C,IAAU,CAC9B,KAAOzyN,GAAM66E,GAAS76E,CAAC,GAAKA,EAAE,SAASyyN,CAAI,GAAKzyN,EAAE,MAAM,GAAG,EAAE,SAAW,EACxE,MAAO,WACP,UAAYA,GAAM,GAAGA,CAAC,GAAGyyN,CAAI,EACjC,GACM22C,GAAUD,GAAe,KAAK,EAC9BE,GAAUF,GAAe,GAAG,EAC5BG,GAAKH,GAAe,IAAI,EACxB/tP,IAAK+tP,GAAe,IAAI,EACxBI,IAAKJ,GAAe,IAAI,EACxBK,GAAqB,CACvB,GAAGH,GACH,MAAQrpQ,GAAMqpQ,GAAQ,MAAMrpQ,CAAC,EAAI,IACjC,UAAYA,GAAMqpQ,GAAQ,UAAUrpQ,EAAI,GAAG,CAC/C,ECdMypQ,GAAM,CACR,GAAGx7I,GACH,UAAW,KAAK,KACpB,ECDMy7I,GAAmB,CAErB,YAAaJ,GACb,eAAgBA,GAChB,iBAAkBA,GAClB,kBAAmBA,GACnB,gBAAiBA,GACjB,aAAcA,GACd,OAAQA,GACR,oBAAqBA,GACrB,qBAAsBA,GACtB,wBAAyBA,GACzB,uBAAwBA,GAExB,MAAOA,GACP,SAAUA,GACV,OAAQA,GACR,UAAWA,GACX,KAAMA,GACN,IAAKA,GACL,MAAOA,GACP,OAAQA,GACR,KAAMA,GAEN,QAASA,GACT,WAAYA,GACZ,aAAcA,GACd,cAAeA,GACf,YAAaA,GACb,OAAQA,GACR,UAAWA,GACX,YAAaA,GACb,aAAcA,GACd,WAAYA,GAEZ,OAAQF,GACR,QAASA,GACT,QAASA,GACT,QAASA,GACT,MAAAhiO,GACA,OAAQA,GACR,OAAQA,GACR,OAAQA,GACR,KAAMgiO,GACN,MAAOA,GACP,MAAOA,GACP,SAAUE,GACV,WAAYA,GACZ,WAAYA,GACZ,WAAYA,GACZ,EAAGA,GACH,EAAGA,GACH,EAAGA,GACH,YAAaA,GACb,qBAAsBA,GACtB,QAASR,GACT,QAASU,GACT,QAASA,GACT,QAASF,GAET,OAAQG,GAER,YAAaX,GACb,cAAeA,GACf,WAAYW,EAChB,EC/DA,SAASE,GAAgB32O,EAAO42O,EAAc5sN,EAAS0rN,EAAmB,CACtE,KAAM,CAAE,MAAA59N,EAAO,KAAA++N,EAAM,UAAAngM,EAAW,cAAA4+L,EAAe,gBAAAt6L,CAAiB,EAAGh7C,EACnEs1O,EAAc,OAAS,EAEvB,IAAIwB,EAAe,GACfC,EAAqB,GAErBC,EAAkB,GAOtB,UAAWnqO,KAAO+pO,EAAc,CAC5B,MAAMx/O,EAAQw/O,EAAa/pO,CAAG,EAI9B,GAAI+oO,GAAc/oO,CAAG,EAAG,CACpBgqO,EAAKhqO,CAAG,EAAIzV,EACZ,QACH,CAED,MAAM6/O,EAAYP,GAAiB7pO,CAAG,EAChCqqO,EAAcrB,IAAez+O,EAAO6/O,CAAS,EACnD,GAAIlC,GAAe,IAAIloO,CAAG,EAAG,CAMzB,GAJAiqO,EAAe,GACfpgM,EAAU7pC,CAAG,EAAIqqO,EACjB5B,EAAc,KAAKzoO,CAAG,EAElB,CAACmqO,EACD,SAEA5/O,KAAW6/O,EAAU,SAAW,KAChCD,EAAkB,GACzB,MACQnqO,EAAI,WAAW,QAAQ,GAE5BkqO,EAAqB,GACrB/7L,EAAgBnuC,CAAG,EAAIqqO,GAGvBp/N,EAAMjL,CAAG,EAAIqqO,CAEpB,CAiBD,GAhBKN,EAAa,YACVE,GAAgBpB,EAChB59N,EAAM,UAAYu9N,IAAer1O,EAAOgqB,EAASgtN,EAAiBtB,CAAiB,EAE9E59N,EAAM,YAKXA,EAAM,UAAY,SAOtBi/N,EAAoB,CACpB,KAAM,CAAE,QAAAI,EAAU,MAAO,QAAAC,EAAU,MAAO,QAAAC,EAAU,CAAI,EAAGr8L,EAC3DljC,EAAM,gBAAkB,GAAGq/N,CAAO,IAAIC,CAAO,IAAIC,CAAO,EAC3D,CACL,CCzEA,MAAMC,GAAwB,KAAO,CACjC,MAAO,CAAE,EACT,UAAW,CAAE,EACb,cAAe,CAAE,EACjB,gBAAiB,CAAE,EACnB,KAAM,CAAE,CACZ,GCAA,SAASC,GAAkB/3O,EAAQmyD,EAAQ16D,EAAO,CAC9C,UAAW4V,KAAO8kD,EACV,CAACujL,GAAcvjL,EAAO9kD,CAAG,CAAC,GAAK,CAACmoO,GAAoBnoO,EAAK5V,CAAK,IAC9DuI,EAAOqN,CAAG,EAAI8kD,EAAO9kD,CAAG,EAGpC,CACA,SAAS2qO,IAAuB,CAAE,kBAAA9B,GAAqBpE,EAAanmF,EAAU,CAC1E,OAAOvjG,EAAO,QAAC,IAAM,CACjB,MAAM5nD,EAAQs3O,KACd,OAAAX,GAAgB32O,EAAOsxO,EAAa,CAAE,2BAA4B,CAACnmF,CAAQ,EAAIuqF,CAAiB,EACzF,OAAO,OAAO,CAAE,EAAE11O,EAAM,KAAMA,EAAM,KAAK,CACxD,EAAO,CAACsxO,CAAW,CAAC,CACpB,CACA,SAASpkN,IAASj2B,EAAOq6O,EAAanmF,EAAU,CAC5C,MAAMwI,EAAY18J,EAAM,OAAS,GAC3B6gB,EAAQ,GAId,OAAAy/N,GAAkBz/N,EAAO67I,EAAW18J,CAAK,EACzC,OAAO,OAAO6gB,EAAO0/N,IAAuBvgP,EAAOq6O,EAAanmF,CAAQ,CAAC,EAClEl0J,EAAM,gBAAkBA,EAAM,gBAAgB6gB,CAAK,EAAIA,CAClE,CACA,SAAS2/N,IAAaxgP,EAAOq6O,EAAanmF,EAAU,CAEhD,MAAMusF,EAAY,GACZ5/N,EAAQoV,IAASj2B,EAAOq6O,EAAanmF,CAAQ,EACnD,OAAIl0J,EAAM,MAAQA,EAAM,eAAiB,KAErCygP,EAAU,UAAY,GAEtB5/N,EAAM,WACFA,EAAM,iBACFA,EAAM,mBACF,OAEZA,EAAM,YACF7gB,EAAM,OAAS,GACT,OACA,OAAOA,EAAM,OAAS,IAAM,IAAM,GAAG,IAEnDygP,EAAU,MAAQ5/N,EACX4/N,CACX,CClDA,MAAMC,IAAiB,CACnB,UACA,OACA,WACA,aACA,WACA,aACA,YACA,aACJ,EACMC,IAAW,CAAC,WAAY,QAAS,aAAc,aAAa,EAC5DC,IAAW,CAAC,QAAS,aAAc,oBAAqB,UAAU,EAClEC,IAAc,CAChB,cACA,kBACA,kBACA,UACJ,EAOMC,IAAmB,IAAI,IAAI,CAC7B,UACA,QACA,SACA,WACA,aACA,oBACA,kBACA,SACA,UACA,SACA,WACA,mBACA,yBACA,4BACA,kBACA,wBACA,mBACA,sBACA,WACA,cACA,SACA,YACA,2BACA,kBACA,sBACA,OACA,eACA,eACA,kBACA,oBACA,mBACA,SACA,SACA,cACA,eACA,kBACA,iBACA,eACA,aACA,eACA,GAAGD,IACH,GAAGF,IACH,GAAGD,IACH,GAAGE,GACP,CAAC,EASD,SAASG,GAAkBnrO,EAAK,CAC5B,OAAOkrO,IAAiB,IAAIlrO,CAAG,CACnC,CC9EA,IAAIorO,GAAiBprO,GAAQ,CAACmrO,GAAkBnrO,CAAG,EACnD,SAASqrO,IAAwBC,EAAa,CACrCA,IAGLF,GAAiBprO,GAAQA,EAAI,WAAW,IAAI,EAAI,CAACmrO,GAAkBnrO,CAAG,EAAIsrO,EAAYtrO,CAAG,EAC7F,CAcA,GAAI,CAMAqrO,IAAwB,QAAQ,wBAAwB,EAAE,OAAO,CACrE,MACW,CAEX,CACA,SAASE,IAAYnhP,EAAOohP,EAAOC,EAAoB,CACnD,MAAMC,EAAgB,GACtB,UAAW1rO,KAAO5V,GACVghP,GAAcprO,CAAG,GAChByrO,IAAuB,IAAQN,GAAkBnrO,CAAG,GACpD,CAACwrO,GAAS,CAACL,GAAkBnrO,CAAG,GAEhC5V,EAAM,WAAgB4V,EAAI,WAAW,QAAQ,KAC9C0rO,EAAc1rO,CAAG,EAAI5V,EAAM4V,CAAG,GAGtC,OAAO0rO,CACX,CC3CA,SAASC,GAAWplF,EAAQ9qH,EAAQ1+B,EAAM,CACtC,OAAO,OAAOwpJ,GAAW,SACnBA,EACAkjF,GAAG,UAAUhuM,EAAS1+B,EAAOwpJ,CAAM,CAC7C,CAKA,SAASqlF,IAAuBC,EAAYvB,EAASC,EAAS,CAC1D,MAAMuB,EAAYH,GAAWrB,EAASuB,EAAW,EAAGA,EAAW,KAAK,EAC9DE,EAAYJ,GAAWpB,EAASsB,EAAW,EAAGA,EAAW,MAAM,EACrE,MAAO,GAAGC,CAAS,IAAIC,CAAS,EACpC,CCbA,MAAMC,IAAW,CACb,OAAQ,oBACR,MAAO,kBACX,EACMC,IAAY,CACd,OAAQ,mBACR,MAAO,iBACX,EAQA,SAASC,IAAa5uO,EAAO6oB,EAAQ/f,EAAU,EAAGq1B,EAAS,EAAG0wM,EAAc,GAAM,CAE9E7uO,EAAM,WAAa,EAGnB,MAAM+rC,EAAO8iM,EAAcH,IAAWC,IAEtC3uO,EAAM+rC,EAAK,MAAM,EAAIogM,GAAG,UAAU,CAAChuM,CAAM,EAEzC,MAAM2wM,EAAa3C,GAAG,UAAUtjN,CAAM,EAChCkmN,EAAc5C,GAAG,UAAUrjO,CAAO,EACxC9I,EAAM+rC,EAAK,KAAK,EAAI,GAAG+iM,CAAU,IAAIC,CAAW,EACpD,CCtBA,SAASC,GAAcn5O,EAAO,CAAE,MAAAo5O,EAAO,MAAAC,EAAO,QAAAlC,EAAS,QAAAC,EAAS,WAAA6B,EAAY,YAAAC,EAAc,EAAG,WAAAI,EAAa,EAE1G,GAAGC,GAAUvvN,EAASwvN,EAAU9D,EAAmB,CAM/C,GALAiB,GAAgB32O,EAAOu5O,EAAQvvN,EAAS0rN,CAAiB,EAKrD8D,EAAU,CACNx5O,EAAM,MAAM,UACZA,EAAM,MAAM,QAAUA,EAAM,MAAM,SAEtC,MACH,CACDA,EAAM,MAAQA,EAAM,MACpBA,EAAM,MAAQ,GACd,KAAM,CAAE,MAAAmK,EAAO,MAAA2N,EAAO,WAAA4gO,CAAU,EAAK14O,EAKjCmK,EAAM,YACFuuO,IACA5gO,EAAM,UAAY3N,EAAM,WAC5B,OAAOA,EAAM,WAGbuuO,IACCvB,IAAY,QAAaC,IAAY,QAAat/N,EAAM,aACzDA,EAAM,gBAAkB2gO,IAAuBC,EAAYvB,IAAY,OAAYA,EAAU,GAAKC,IAAY,OAAYA,EAAU,EAAG,GAGvIgC,IAAU,SACVjvO,EAAM,EAAIivO,GACVC,IAAU,SACVlvO,EAAM,EAAIkvO,GAEVJ,IAAe,QACfF,IAAa5uO,EAAO8uO,EAAYC,EAAaI,EAAY,EAAK,CAEtE,CC7CA,MAAMG,GAAuB,KAAO,CAChC,GAAGnC,GAAuB,EAC1B,MAAO,CAAE,CACb,GCLMkC,GAAYtvO,GAAQ,OAAOA,GAAQ,UAAYA,EAAI,YAAW,IAAO,MCM3E,SAASwvO,IAAYziP,EAAOq6O,EAAaqI,EAAWlwO,EAAW,CAC3D,MAAMmwO,EAAchyL,UAAQ,IAAM,CAC9B,MAAM5nD,EAAQy5O,KACd,OAAAN,GAAcn5O,EAAOsxO,EAAa,CAAE,2BAA4B,IAASkI,GAAS/vO,CAAS,EAAGxS,EAAM,iBAAiB,EAC9G,CACH,GAAG+I,EAAM,MACT,MAAO,CAAE,GAAGA,EAAM,KAAO,CACrC,CACA,EAAO,CAACsxO,CAAW,CAAC,EAChB,GAAIr6O,EAAM,MAAO,CACb,MAAM4iP,EAAY,GAClBtC,GAAkBsC,EAAW5iP,EAAM,MAAOA,CAAK,EAC/C2iP,EAAY,MAAQ,CAAE,GAAGC,EAAW,GAAGD,EAAY,MACtD,CACD,OAAOA,CACX,CCfA,SAASE,IAAgBxB,EAAqB,GAAO,CAiBjD,MAhBkB,CAAC7uO,EAAWxS,EAAO88O,EAAc96O,EAAK,CAAE,aAAA29O,CAAc,EAAEzrF,IAAa,CAInF,MAAMyuF,GAHiBlF,GAAejrO,CAAS,EACzCiwO,IACAjC,KAC6BxgP,EAAO2/O,EAAczrF,EAAU1hJ,CAAS,EAErEswO,EAAe,CACjB,GAFkB3B,IAAYnhP,EAAO,OAAOwS,GAAc,SAAU6uO,CAAkB,EAGtF,GAAGsB,EACH,IAAA3gP,CACZ,EACQ,OAAI86O,IACAgG,EAAa,oBAAoB,EAAIhG,GAElC9pO,EAAa,cAACR,EAAWswO,CAAY,CACpD,CAEA,CCrBA,MAAMC,GAAehjF,GAAQA,EAAI,QAAQ,kBAAmB,OAAO,EAAE,YAAa,ECHlF,SAASijF,GAAWr+O,EAAS,CAAE,MAAAkc,EAAO,KAAA++N,CAAM,EAAEljF,EAAWumF,EAAY,CACjE,OAAO,OAAOt+O,EAAQ,MAAOkc,EAAOoiO,GAAcA,EAAW,oBAAoBvmF,CAAS,CAAC,EAE3F,UAAW9mJ,KAAOgqO,EACdj7O,EAAQ,MAAM,YAAYiR,EAAKgqO,EAAKhqO,CAAG,CAAC,CAEhD,CCHA,MAAMstO,GAAsB,IAAI,IAAI,CAChC,gBACA,kBACA,eACA,mBACA,aACA,WACA,oBACA,eACA,cACA,aACA,UACA,UACA,eACA,mBACA,mBACA,eACA,cACA,UACA,oBACA,aACA,cACA,aACA,cACJ,CAAC,ECvBD,SAASC,GAAUx+O,EAASy+O,EAAaC,EAAYJ,EAAY,CAC7DD,GAAWr+O,EAASy+O,EAAa,OAAWH,CAAU,EACtD,UAAWrtO,KAAOwtO,EAAY,MAC1Bz+O,EAAQ,aAAcu+O,GAAoB,IAAIttO,CAAG,EAAuBA,EAAnBmtO,GAAYntO,CAAG,EAASwtO,EAAY,MAAMxtO,CAAG,CAAC,CAE3G,CCNA,SAAS0tO,GAA4BtjP,EAAO,CACxC,KAAM,CAAE,MAAA6gB,CAAO,EAAG7gB,EACZujP,EAAY,GAClB,UAAW3tO,KAAOiL,GACVo9N,GAAcp9N,EAAMjL,CAAG,CAAC,GAAKmoO,GAAoBnoO,EAAK5V,CAAK,KAC3DujP,EAAU3tO,CAAG,EAAIiL,EAAMjL,CAAG,GAGlC,OAAO2tO,CACX,CCTA,SAASD,GAA4BtjP,EAAO,CACxC,MAAMujP,EAAYC,GAA8BxjP,CAAK,EACrD,UAAW4V,KAAO5V,EACd,GAAIi+O,GAAcj+O,EAAM4V,CAAG,CAAC,EAAG,CAC3B,MAAM6tO,EAAY7tO,IAAQ,KAAOA,IAAQ,IAAM,OAASA,EAAI,YAAa,EAAGA,EAC5E2tO,EAAUE,CAAS,EAAIzjP,EAAM4V,CAAG,CACnC,CAEL,OAAO2tO,CACX,CCZA,SAASG,GAAwB1jP,EAAO2jP,EAAYvG,EAAQzrN,EAAgB,CAAE,EAAEiyN,EAAkB,GAAI,CAIlG,OAAI,OAAOD,GAAe,aACtBA,EAAaA,EAAWvG,IAAW,OAAYA,EAASp9O,EAAM,OAAQ2xB,EAAeiyN,CAAe,GAMpG,OAAOD,GAAe,WACtBA,EAAa3jP,EAAM,UAAYA,EAAM,SAAS2jP,CAAU,GAOxD,OAAOA,GAAe,aACtBA,EAAaA,EAAWvG,IAAW,OAAYA,EAASp9O,EAAM,OAAQ2xB,EAAeiyN,CAAe,GAEjGD,CACX,CCvBA,MAAME,GAAqB9tQ,GAChB,MAAM,QAAQA,CAAC,ECCpB+tQ,IAAiB/tQ,GACZ,GAAQA,GAAK,OAAOA,GAAM,UAAYA,EAAE,KAAOA,EAAE,SAEtDguQ,IAAgChuQ,GAE3B8tQ,GAAkB9tQ,CAAC,EAAIA,EAAEA,EAAE,OAAS,CAAC,GAAK,EAAIA,ECCzD,SAASiuQ,GAAmB7jP,EAAO,CAC/B,MAAM8jP,EAAiBhG,GAAc99O,CAAK,EAAIA,EAAM,IAAK,EAAGA,EAC5D,OAAO2jP,IAAcG,CAAc,EAC7BA,EAAe,QAAS,EACxBA,CACV,CCJA,SAASC,IAAU,CAAE,4BAAAZ,EAA6B,kBAAAa,EAAmB,QAAAC,CAAO,EAAKpkP,EAAOE,EAASs6O,EAAiB,CAC9G,MAAMzxO,EAAQ,CACV,aAAcs7O,IAAiBrkP,EAAOE,EAASs6O,EAAiB8I,CAA2B,EAC3F,YAAaa,EAAmB,CACxC,EACI,OAAIC,IACAr7O,EAAM,MAASkzF,GAAamoJ,EAAQpkP,EAAOi8F,EAAUlzF,CAAK,GAEvDA,CACX,CACA,MAAMu7O,GAAsBvwO,GAAW,CAAC/T,EAAOk0J,IAAa,CACxD,MAAMh0J,EAAUygB,aAAWq5N,EAAa,EAClCQ,EAAkB75N,aAAWu5N,EAAe,EAC5CqK,EAAO,IAAML,IAAUnwO,EAAQ/T,EAAOE,EAASs6O,CAAe,EACpE,OAAOtmF,EAAWqwF,EAAI,EAAKzI,GAAYyI,CAAI,CAC/C,EACA,SAASF,IAAiBrkP,EAAOE,EAASs6O,EAAiBgK,EAAoB,CAC3E,MAAMnzL,EAAS,GACTozL,EAAeD,EAAmBxkP,CAAK,EAC7C,UAAW4V,KAAO6uO,EACdpzL,EAAOz7C,CAAG,EAAIouO,GAAmBS,EAAa7uO,CAAG,CAAC,EAEtD,GAAI,CAAE,QAAAylO,EAAS,QAAAC,CAAS,EAAGt7O,EAC3B,MAAM0kP,EAA0BxJ,GAAsBl7O,CAAK,EACrD2kP,EAAkBxJ,GAAcn7O,CAAK,EACvCE,GACAykP,GACA,CAACD,GACD1kP,EAAM,UAAY,KACdq7O,IAAY,SACZA,EAAUn7O,EAAQ,SAClBo7O,IAAY,SACZA,EAAUp7O,EAAQ,UAE1B,IAAI0kP,EAA4BpK,EAC1BA,EAAgB,UAAY,GAC5B,GACNoK,EAA4BA,GAA6BvJ,IAAY,GACrE,MAAMwJ,EAAeD,EAA4BtJ,EAAUD,EAC3D,OAAIwJ,GACA,OAAOA,GAAiB,WACxB,CAAC7J,GAAoB6J,CAAY,IACpB,MAAM,QAAQA,CAAY,EAAIA,EAAe,CAACA,CAAY,GAClE,QAASlB,GAAe,CACzB,MAAM95B,EAAW65B,GAAwB1jP,EAAO2jP,CAAU,EAC1D,GAAI,CAAC95B,EACD,OACJ,KAAM,CAAE,cAAAi7B,EAAe,WAAAC,EAAY,GAAGx8O,CAAM,EAAKshN,EACjD,UAAWj0M,KAAOrN,EAAQ,CACtB,IAAIy8O,EAAcz8O,EAAOqN,CAAG,EAC5B,GAAI,MAAM,QAAQovO,CAAW,EAAG,CAK5B,MAAMjkP,EAAQ6jP,EACRI,EAAY,OAAS,EACrB,EACNA,EAAcA,EAAYjkP,CAAK,CAClC,CACGikP,IAAgB,OAChB3zL,EAAOz7C,CAAG,EAAIovO,EAErB,CACD,UAAWpvO,KAAOkvO,EACdzzL,EAAOz7C,CAAG,EAAIkvO,EAAclvO,CAAG,CAC/C,CAAS,EAEEy7C,CACX,CCvEA,MAAM4zL,IAAkB,CACpB,eAAgBX,GAAmB,CAC/B,4BAA6BhB,GAC7B,kBAAmBd,GACnB,QAAS,CAACxiP,EAAOi8F,EAAU,CAAE,YAAAmnJ,EAAa,aAAAzD,CAAY,IAAO,CACzD,GAAI,CACAyD,EAAY,WACR,OAAOnnJ,EAAS,SACZ,WACEA,EAAS,QAAS,EAClBA,EAAS,sBAAqB,CAC3C,MACS,CAENmnJ,EAAY,WAAa,CACrB,EAAG,EACH,EAAG,EACH,MAAO,EACP,OAAQ,CAC5B,CACa,CACDlB,GAAckB,EAAazD,EAAc,CAAE,2BAA4B,EAAK,EAAI4C,GAAStmJ,EAAS,OAAO,EAAGj8F,EAAM,iBAAiB,EACnImjP,GAAUlnJ,EAAUmnJ,CAAW,CAClC,CACT,CAAK,CACL,EC5BM8B,IAAmB,CACrB,eAAgBZ,GAAmB,CACvC,4BAAQhB,GACA,kBAAmBjD,EAC3B,CAAK,CACL,ECJA,SAAS8E,IAAsB3yO,EAAW,CAAE,mBAAA6uO,EAAqB,EAAK,EAAI/E,EAAmBhC,EAAqBiC,EAA2B,CAIzI,MAAO,CACH,GAJekB,GAAejrO,CAAS,EACrCyyO,IACAC,IAGF,kBAAA5I,EACA,UAAWuG,IAAgBxB,CAAkB,EAC7C,oBAAA/G,EACA,0BAAAiC,EACA,UAAA/pO,CACR,CACA,CCjBA,IAAI4yO,IACH,SAAUA,EAAe,CACtBA,EAAc,QAAa,UAC3BA,EAAc,MAAW,aACzBA,EAAc,IAAS,WACvBA,EAAc,KAAU,YACxBA,EAAc,MAAW,aACzBA,EAAc,OAAY,cAC1BA,EAAc,KAAU,MAC5B,GAAGA,KAAkBA,GAAgB,GAAG,ECPxC,SAASC,GAAY98O,EAAQquG,EAAWvrF,EAAS0H,EAAU,CAAE,QAAS,IAAQ,CAC1E,OAAAxqB,EAAO,iBAAiBquG,EAAWvrF,EAAS0H,CAAO,EAC5C,IAAMxqB,EAAO,oBAAoBquG,EAAWvrF,CAAO,CAC9D,CAsBA,SAASi6N,GAAYtjP,EAAK40G,EAAWvrF,EAAS0H,EAAS,CACnDgsB,YAAU,IAAM,CACZ,MAAMp6C,EAAU3C,EAAI,QACpB,GAAIqpB,GAAW1mB,EACX,OAAO0gP,GAAY1gP,EAASiyG,EAAWvrF,EAAS0H,CAAO,CAE9D,EAAE,CAAC/wB,EAAK40G,EAAWvrF,EAAS0H,CAAO,CAAC,CACzC,CCzBA,SAASwyN,IAAgB,CAAE,WAAAC,EAAY,cAAA7K,GAAkB,CACrD,KAAM,CAAE,eAAA8K,CAAgB,EAAG9K,EACrB9xJ,EAAU,IAAM,CAClB48J,GAAkBA,EAAe,UAAUL,GAAc,MAAO,EAAI,CAC5E,EACUl4L,EAAS,IAAM,CACjBu4L,GAAkBA,EAAe,UAAUL,GAAc,MAAO,EAAK,CAC7E,EACIE,GAAY3K,EAAe,QAAS6K,EAAa38J,EAAU,MAAS,EACpEy8J,GAAY3K,EAAe,OAAQ6K,EAAat4L,EAAS,MAAS,CACtE,CCnBA,SAASw4L,GAAaj/O,EAAO,CAEzB,OAAI,OAAO,aAAiB,KAAeA,aAAiB,aAC9CA,EAAM,cAAgB,QAE7BA,aAAiB,UAC5B,CACA,SAASk/O,GAAal/O,EAAO,CAEzB,MADmB,CAAC,CAACA,EAAM,OAE/B,CCJA,SAASm/O,IAAqB92E,EAAc,CACxC,OAAQroK,GAAU,CACd,MAAMi/O,EAAej/O,aAAiB,YACb,CAACi/O,GACrBA,GAAgBj/O,EAAM,SAAW,IAElCqoK,EAAaroK,CAAK,CAE9B,CACA,CACA,MAAMo/O,IAAmB,CAAE,MAAO,EAAG,MAAO,CAAC,EAC7C,SAASC,IAAe,EAAGC,EAAY,OAAQ,CAE3C,MAAMnnK,EADe,EAAE,QAAQ,CAAC,GAAK,EAAE,eAAe,CAAC,GACzBinK,IAC9B,MAAO,CACH,EAAGjnK,EAAMmnK,EAAY,GAAG,EACxB,EAAGnnK,EAAMmnK,EAAY,GAAG,CAChC,CACA,CACA,SAASC,IAAepnK,EAAOmnK,EAAY,OAAQ,CAC/C,MAAO,CACH,EAAGnnK,EAAMmnK,EAAY,GAAG,EACxB,EAAGnnK,EAAMmnK,EAAY,GAAG,CAChC,CACA,CACA,SAASE,GAAiBx/O,EAAOs/O,EAAY,OAAQ,CACjD,MAAO,CACH,MAAOJ,GAAal/O,CAAK,EACnBq/O,IAAer/O,EAAOs/O,CAAS,EAC/BC,IAAev/O,EAAOs/O,CAAS,CAC7C,CACA,CACA,MAAMG,GAAc,CAAC76N,EAAS86N,EAA6B,KAAU,CACjE,MAAMv/J,EAAYngF,GAAU4kB,EAAQ5kB,EAAOw/O,GAAiBx/O,CAAK,CAAC,EAClE,OAAO0/O,EACDP,IAAqBh/J,CAAQ,EAC7BA,CACV,ECxCMw/J,IAAwB,IAAM9qF,IAAa,OAAO,gBAAkB,KACpE+qF,IAAsB,IAAM/qF,IAAa,OAAO,eAAiB,KACjEgrF,IAAsB,IAAMhrF,IAAa,OAAO,cAAgB,KCDhEirF,IAAkB,CACpB,YAAa,YACb,YAAa,YACb,UAAW,UACX,cAAe,cACf,YAAa,YACb,WAAY,WACZ,aAAc,aACd,aAAc,YAClB,EACMC,IAAkB,CACpB,YAAa,aACb,YAAa,YACb,UAAW,WACX,cAAe,aACnB,EACA,SAASC,GAAoBthP,EAAM,CAC/B,OAAIihP,IAAqB,EACdjhP,EAEFkhP,IAAmB,EACjBG,IAAgBrhP,CAAI,EAEtBmhP,IAAmB,EACjBC,IAAgBphP,CAAI,EAExBA,CACX,CACA,SAASuhP,GAAgBn+O,EAAQquG,EAAWvrF,EAAS0H,EAAS,CAC1D,OAAOsyN,GAAY98O,EAAQk+O,GAAoB7vI,CAAS,EAAGsvI,GAAY76N,EAASurF,IAAc,aAAa,EAAG7jF,CAAO,CACzH,CACA,SAAS4zN,GAAgB3kP,EAAK40G,EAAWvrF,EAAS0H,EAAS,CACvD,OAAOuyN,GAAYtjP,EAAKykP,GAAoB7vI,CAAS,EAAGvrF,GAAW66N,GAAY76N,EAASurF,IAAc,aAAa,EAAG7jF,CAAO,CACjI,CCrCA,SAAS6zN,GAAWzhP,EAAM,CACtB,IAAIqzN,EAAO,KACX,MAAO,IAAM,CACT,MAAMquB,EAAW,IAAM,CACnBruB,EAAO,IACnB,EACQ,OAAIA,IAAS,MACTA,EAAOrzN,EACA0hP,GAEJ,EACf,CACA,CACA,MAAMC,GAAuBF,GAAW,gBAAgB,EAClDG,GAAqBH,GAAW,cAAc,EACpD,SAASI,GAAcC,EAAM,CACzB,IAAIzuB,EAAO,GACX,GAAIyuB,IAAS,IACTzuB,EAAOuuB,GAAkB,UAEpBE,IAAS,IACdzuB,EAAOsuB,GAAoB,MAE1B,CACD,MAAMI,EAAiBJ,KACjBK,EAAeJ,KACjBG,GAAkBC,EAClB3uB,EAAO,IAAM,CACT0uB,IACAC,GAChB,GAIgBD,GACAA,IACAC,GACAA,IAEX,CACD,OAAO3uB,CACX,CACA,SAAS4uB,IAAe,CAGpB,MAAMC,EAAkBL,GAAc,EAAI,EAC1C,OAAKK,GAELA,IACO,IAFI,EAGf,CC7CA,SAASC,GAAiB3M,EAAez9E,EAAUv2J,EAAU,CACzD,MAAO,CAACF,EAAOmwN,IAAS,CAChB,CAAC8uB,GAAaj/O,CAAK,GAAK2gP,GAAc,IAKtCzM,EAAc,gBACdA,EAAc,eAAe,UAAUyK,GAAc,MAAOloF,CAAQ,EAExEv2J,GAAYA,EAASF,EAAOmwN,CAAI,EACxC,CACA,CACA,SAAS2wB,IAAgB,CAAE,aAAAC,EAAc,WAAAC,EAAY,WAAAC,EAAY,cAAA/M,CAAa,EAAK,CAC/EgM,GAAgBhM,EAAe,eAAgB6M,GAAgBE,EACzDJ,GAAiB3M,EAAe,GAAM6M,CAAY,EAClD,OAAW,CAAE,QAAS,CAACA,CAAc,GAC3Cb,GAAgBhM,EAAe,eAAgB8M,GAAcC,EACvDJ,GAAiB3M,EAAe,GAAO8M,CAAU,EACjD,OAAW,CAAE,QAAS,CAACA,CAAY,EAC7C,CClBA,MAAME,GAAgB,CAAC9rN,EAAQx4B,IACtBA,EAGIw4B,IAAWx4B,EACT,GAGAskP,GAAc9rN,EAAQx4B,EAAM,aAAa,EANzC,GCPf,SAASukP,GAAiBjhP,EAAU,CAChC,OAAOo4C,EAAS,UAAC,IAAM,IAAMp4C,EAAU,EAAE,CAAE,EAC/C,CCGA,MAAMkhP,IAAmB,CAACxxQ,EAAGK,IAAOX,GAAMW,EAAEL,EAAEN,CAAC,CAAC,EAC1C+xQ,GAAO,IAAIC,IAAiBA,EAAa,OAAOF,GAAgB,ECItE,SAASG,IAAc,CAAE,MAAAC,EAAO,WAAAC,EAAY,YAAAC,EAAa,SAAAC,EAAU,cAAAzN,GAAkB,CACjF,MAAM0N,EAAoBJ,GAASC,GAAcC,GAAeC,EAC1DE,EAAal5L,SAAO,EAAK,EACzBm5L,EAA4Bn5L,SAAO,IAAI,EAIvCo5L,EAAe,CACjB,QAAS,EAAEN,GAAcD,GAASE,GAAe5nG,EACzD,EACI,SAASkoG,GAA2B,CAChCF,EAA0B,SAAWA,EAA0B,UAC/DA,EAA0B,QAAU,IACvC,CACD,SAASG,GAAkB,CACvB,OAAAD,IACAH,EAAW,QAAU,GACrB3N,EAAc,gBACVA,EAAc,eAAe,UAAUyK,GAAc,IAAK,EAAK,EAC5D,CAACgC,GAAY,CACvB,CACD,SAAS5mG,EAAY/5I,EAAOmwN,EAAM,CACzB8xB,EAAiB,IAMrBf,GAAchN,EAAc,QAASl0O,EAAM,MAAM,EAE5CwhP,GAASA,EAAMxhP,EAAOmwN,CAAI,EAD1BuxB,GAAeA,EAAY1hP,EAAOmwN,CAAI,EAE/C,CACD,SAAS+xB,EAAgBliP,EAAOmwN,EAAM,CAC7B8xB,EAAiB,GAEtBP,GAAeA,EAAY1hP,EAAOmwN,CAAI,CACzC,CACD,SAASr2E,EAAc95I,EAAOmwN,EAAM,CAChC6xB,IACI,CAAAH,EAAW,UAEfA,EAAW,QAAU,GACrBC,EAA0B,QAAUT,GAAKpB,GAAgB,OAAQ,YAAalmG,EAAagoG,CAAY,EAAG9B,GAAgB,OAAQ,gBAAiBiC,EAAiBH,CAAY,CAAC,EAIjL7N,EAAc,gBACVA,EAAc,eAAe,UAAUyK,GAAc,IAAK,EAAI,EAClE8C,GAAcA,EAAWzhP,EAAOmwN,CAAI,EACvC,CACD+vB,GAAgBhM,EAAe,cAAe0N,EAAoB9nG,EAAgB,OAAWioG,CAAY,EACzGZ,GAAiBa,CAAwB,CAC7C,CC7DA,MAAMG,IAAqB,aACrBjtB,IAAM,OAAO,QAAY,KAAe,QAAQ,MAAQ,OACxDitB,IACA,aCNAC,GAAS,IAAI,IACnB,SAAS3hG,IAAS4hG,EAAWp2L,EAAS/tD,EAAS,CACvCmkP,GAAaD,GAAO,IAAIn2L,CAAO,IAEnC,QAAQ,KAAKA,CAAO,EAChB/tD,GACA,QAAQ,KAAKA,CAAO,EACxBkkP,GAAO,IAAIn2L,CAAO,EACtB,CCHA,MAAMq2L,GAAoB,IAAI,QAMxBnwL,GAAY,IAAI,QAChBowL,IAAwB5nO,GAAU,CACpC,MAAMza,EAAWoiP,GAAkB,IAAI3nO,EAAM,MAAM,EACnDza,GAAYA,EAASya,CAAK,CAC9B,EACM6nO,IAA4B9nO,GAAY,CAC1CA,EAAQ,QAAQ6nO,GAAoB,CACxC,EACA,SAASE,IAAyB,CAAE,KAAA3sM,EAAM,GAAGxpB,GAAW,CACpD,MAAMo2N,EAAa5sM,GAAQ,SAItBqc,GAAU,IAAIuwL,CAAU,GACzBvwL,GAAU,IAAIuwL,EAAY,EAAE,EAEhC,MAAMC,EAAgBxwL,GAAU,IAAIuwL,CAAU,EACxCvzO,EAAM,KAAK,UAAUmd,CAAO,EAKlC,OAAKq2N,EAAcxzO,CAAG,IAClBwzO,EAAcxzO,CAAG,EAAI,IAAI,qBAAqBqzO,IAA0B,CAAE,KAAA1sM,EAAM,GAAGxpB,CAAO,CAAE,GAEzFq2N,EAAcxzO,CAAG,CAC5B,CACA,SAASyzO,IAAoB1kP,EAASouB,EAASpsB,EAAU,CACrD,MAAM2iP,EAA4BJ,IAAyBn2N,CAAO,EAClE,OAAAg2N,GAAkB,IAAIpkP,EAASgC,CAAQ,EACvC2iP,EAA0B,QAAQ3kP,CAAO,EAClC,IAAM,CACTokP,GAAkB,OAAOpkP,CAAO,EAChC2kP,EAA0B,UAAU3kP,CAAO,CACnD,CACA,CCxCA,SAAS4kP,IAAY,CAAE,cAAA5O,EAAe,YAAA6O,EAAa,gBAAAC,EAAiB,gBAAAC,EAAiB,SAAAx6K,EAAW,IAAO,CACnG,MAAMnmE,EAAQqmD,SAAO,CACjB,eAAgB,GAChB,SAAU,EAClB,CAAK,EACD,IAAIu6L,EAAgB,GAAQH,GAAeC,GAAmBC,GAC1Dx6K,EAAS,MAAQnmE,EAAM,QAAQ,iBAC/B4gP,EAAgB,KACA,OAAO,qBAAyB,IAC9CC,IACAC,KACMF,EAAe5gP,EAAM,QAAS4xO,EAAezrK,CAAQ,CACrE,CACA,MAAM46K,IAAiB,CACnB,KAAM,EACN,IAAK,CACT,EACA,SAASD,IAAwBF,EAAe5gP,EAAO4xO,EAAe,CAAE,KAAAp+L,EAAM,OAAQwtM,EAAY,OAAAp0D,EAAS,OAAQ,KAAA14C,CAAI,EAAI,CACvHl+F,YAAU,IAAM,CACZ,GAAI,CAAC4qM,GAAiB,CAAChP,EAAc,QACjC,OACJ,MAAM5nN,EAAU,CACZ,KAAMwpB,GAAS,KAA0B,OAASA,EAAK,QACvD,WAAAwtM,EACA,UAAW,OAAOp0D,GAAW,SAAWA,EAASm0D,IAAen0D,CAAM,CAClF,EACcq0D,EAAwB5oO,GAAU,CACpC,KAAM,CAAE,eAAA6oO,CAAgB,EAAG7oO,EAW3B,GAPIrY,EAAM,WAAakhP,IAEvBlhP,EAAM,SAAWkhP,EAKbhtG,GAAQ,CAACgtG,GAAkBlhP,EAAM,gBACjC,OAEKkhP,IACLlhP,EAAM,eAAiB,IAEvB4xO,EAAc,gBACdA,EAAc,eAAe,UAAUyK,GAAc,OAAQ6E,CAAc,EAM/E,MAAMjqP,EAAQ26O,EAAc,WACtBh0O,EAAWsjP,EACXjqP,EAAM,gBACNA,EAAM,gBACZ2G,GAAYA,EAASya,CAAK,CACtC,EACQ,OAAOioO,IAAoB1O,EAAc,QAAS5nN,EAASi3N,CAAoB,CAClF,EAAE,CAACL,EAAeptM,EAAMwtM,EAAYp0D,CAAM,CAAC,CAChD,CAMA,SAASi0D,IAA+BD,EAAe5gP,EAAO4xO,EAAe,CAAE,SAAAlT,EAAW,IAAQ,CAC9F1oL,YAAU,IAAM,CACR,CAAC4qM,GAAiB,CAACliB,IAEnB9L,MAAQ,cACRz0E,IAAS,GAAO,kGAAkG,EAUtH,sBAAsB,IAAM,CACxBn+I,EAAM,eAAiB,GACvB,KAAM,CAAE,gBAAA0gP,CAAe,EAAK9O,EAAc,SAAQ,EAClD8O,GAAmBA,EAAgB,IAAI,EACnC9O,EAAc,gBACdA,EAAc,eAAe,UAAUyK,GAAc,OAAQ,EAAI,CAEjF,CAAS,EACT,EAAO,CAACuE,CAAa,CAAC,CACtB,CC/FA,MAAMO,GAA2BC,GAAUnqP,IACvCmqP,EAAKnqP,CAAK,EACH,MCILoqP,IAAoB,CACtB,OAAQF,GAAwBX,GAAW,EAC3C,IAAKW,GAAwBlC,GAAa,EAC1C,MAAOkC,GAAwB3E,GAAe,EAC9C,MAAO2E,GAAwB3C,GAAe,CAClD,ECeA,SAASp+O,IAAc,CACnB,MAAMjJ,EAAUygB,aAAWu5N,EAAe,EAC1C,GAAIh6O,IAAY,KACZ,MAAO,CAAC,GAAM,IAAI,EACtB,KAAM,CAAE,UAAAwM,EAAW,eAAA29O,EAAgB,SAAAv4L,CAAQ,EAAK5xD,EAI1Cnd,EAAK+nB,UACXi0C,mBAAU,IAAM+S,EAAS/uE,CAAE,EAAG,CAAE,GAEzB,CAAC2pB,GAAa29O,EAAiB,CAAC,GADlB,IAAMA,GAAkBA,EAAetnQ,CAAE,CACJ,EAAI,CAAC,EAAI,CACvE,CCtCA,SAASunQ,GAAe96L,EAAMsV,EAAM,CAChC,GAAI,CAAC,MAAM,QAAQA,CAAI,EACnB,MAAO,GACX,MAAMylL,EAAazlL,EAAK,OACxB,GAAIylL,IAAe/6L,EAAK,OACpB,MAAO,GACX,QAASvwD,EAAI,EAAGA,EAAIsrP,EAAYtrP,IAC5B,GAAI6lE,EAAK7lE,CAAC,IAAMuwD,EAAKvwD,CAAC,EAClB,MAAO,GAEf,MAAO,EACX,CCRA,MAAMurP,IAAqBz0Q,GAAM,iBAAiB,KAAKA,CAAC,ECAlD00Q,IAAqB10Q,GAAM,aAAa,KAAKA,CAAC,ECH9C20Q,GAAY,CACd,MAAO,EACP,UAAW,CACf,ECAMC,GAAmB,EAAI,GAAM,IAC7BC,IAAiB,OAAO,YAAgB,IACxC,IAAM,YAAY,IAAK,EACvB,IAAM,KAAK,MACXC,GAAc,OAAO,OAAW,IAC/BlkP,GAAa,OAAO,sBAAsBA,CAAQ,EAClDA,GAAa,WAAW,IAAMA,EAASikP,IAAc,CAAE,EAAGD,EAAe,ECThF,SAASG,IAAiBC,EAAc,CAKpC,IAAIC,EAAQ,GACRC,EAAiB,GAIjBC,EAAW,EAKXC,EAAe,GACfC,EAAiB,GAIrB,MAAMC,EAAc,IAAI,QAClBj2E,EAAO,CAIT,SAAU,CAACzuK,EAAU2kP,EAAY,GAAO3nC,EAAY,KAAU,CAC1D,MAAM4nC,EAAoB5nC,GAAawnC,EACjC74N,EAASi5N,EAAoBP,EAAQC,EAC3C,OAAIK,GACAD,EAAY,IAAI1kP,CAAQ,EAExB2rB,EAAO,QAAQ3rB,CAAQ,IAAM,KAC7B2rB,EAAO,KAAK3rB,CAAQ,EAEhB4kP,GAAqBJ,IACrBD,EAAWF,EAAM,SAElBrkP,CACV,EAID,OAASA,GAAa,CAClB,MAAM5F,EAAQkqP,EAAe,QAAQtkP,CAAQ,EACzC5F,IAAU,IACVkqP,EAAe,OAAOlqP,EAAO,CAAC,EAClCsqP,EAAY,OAAO1kP,CAAQ,CAC9B,EAID,QAAU+jP,GAAc,CAMpB,GAAIS,EAAc,CACdC,EAAiB,GACjB,MACH,CAOD,GANAD,EAAe,GACf,CAACH,EAAOC,CAAc,EAAI,CAACA,EAAgBD,CAAK,EAEhDC,EAAe,OAAS,EAExBC,EAAWF,EAAM,OACbE,EACA,QAASjsP,EAAI,EAAGA,EAAIisP,EAAUjsP,IAAK,CAC/B,MAAM0H,EAAWqkP,EAAM/rP,CAAC,EACxB0H,EAAS+jP,CAAS,EACdW,EAAY,IAAI1kP,CAAQ,IACxByuK,EAAK,SAASzuK,CAAQ,EACtBokP,IAEP,CAELI,EAAe,GACXC,IACAA,EAAiB,GACjBh2E,EAAK,QAAQs1E,CAAS,EAE7B,CACT,EACI,OAAOt1E,CACX,CCjFA,MAAMo2E,IAAa,GACnB,IAAIC,GAAoB,GACpBV,GAAe,GACfI,GAAe,GACnB,MAAMO,GAAa,CACf,OACA,SACA,YACA,SACA,YACJ,EACMC,GAAQD,GAAW,OAAO,CAACjsO,EAAK7J,KAClC6J,EAAI7J,CAAG,EAAIk1O,IAAiB,IAAOC,GAAe,EAAK,EAChDtrO,GACR,CAAE,GACCmsO,GAAOF,GAAW,OAAO,CAACjsO,EAAK7J,IAAQ,CACzC,MAAMw/J,EAAOu2E,GAAM/1O,CAAG,EACtB,OAAA6J,EAAI7J,CAAG,EAAI,CAACi2O,EAASP,EAAY,GAAO3nC,EAAY,MAC3ConC,IACDe,MACG12E,EAAK,SAASy2E,EAASP,EAAW3nC,CAAS,GAE/ClkM,CACX,EAAG,CAAE,GACCssO,GAAaL,GAAW,OAAO,CAACjsO,EAAK7J,KACvC6J,EAAI7J,CAAG,EAAI+1O,GAAM/1O,CAAG,EAAE,OACf6J,GACR,CAAE,GACCusO,GAAYN,GAAW,OAAO,CAACjsO,EAAK7J,KACtC6J,EAAI7J,CAAG,EAAI,IAAM+1O,GAAM/1O,CAAG,EAAE,QAAQ80O,EAAS,EACtCjrO,GACR,CAAE,GACCwsO,IAAeC,GAAWP,GAAMO,CAAM,EAAE,QAAQxB,EAAS,EACzDyB,GAAgB1zE,GAAc,CAChCsyE,GAAe,GACfL,GAAU,MAAQe,GACZd,GACA,KAAK,IAAI,KAAK,IAAIlyE,EAAYiyE,GAAU,UAAWc,GAAU,EAAG,CAAC,EACvEd,GAAU,UAAYjyE,EACtB0yE,GAAe,GACfO,GAAW,QAAQO,GAAW,EAC9Bd,GAAe,GACXJ,KACAU,GAAoB,GACpBZ,GAAYsB,EAAY,EAEhC,EACML,IAAY,IAAM,CACpBf,GAAe,GACfU,GAAoB,GACfN,IACDN,GAAYsB,EAAY,CAChC,ECxDA,SAASC,GAAc9zJ,EAAKroF,EAAM,CAC1BqoF,EAAI,QAAQroF,CAAI,IAAM,IACtBqoF,EAAI,KAAKroF,CAAI,CACrB,CACA,SAASsoO,GAAWjgJ,EAAKroF,EAAM,CAC3B,MAAMlP,EAAQu3F,EAAI,QAAQroF,CAAI,EAC1BlP,EAAQ,IACRu3F,EAAI,OAAOv3F,EAAO,CAAC,CAC3B,CCNA,MAAMsrP,EAAoB,CACtB,aAAc,CACV,KAAK,cAAgB,EACxB,CACD,IAAIhhO,EAAS,CACT,OAAA+gO,GAAc,KAAK,cAAe/gO,CAAO,EAClC,IAAMktN,GAAW,KAAK,cAAeltN,CAAO,CACtD,CACD,OAAOh1C,EAAGK,EAAGW,EAAG,CACZ,MAAMi1Q,EAAmB,KAAK,cAAc,OAC5C,GAAKA,EAEL,GAAIA,IAAqB,EAIrB,KAAK,cAAc,CAAC,EAAEj2Q,EAAGK,EAAGW,CAAC,MAG7B,SAAS4nB,EAAI,EAAGA,EAAIqtP,EAAkBrtP,IAAK,CAKvC,MAAMosB,EAAU,KAAK,cAAcpsB,CAAC,EACpCosB,GAAWA,EAAQh1C,EAAGK,EAAGW,CAAC,CAC7B,CAER,CACD,SAAU,CACN,OAAO,KAAK,cAAc,MAC7B,CACD,OAAQ,CACJ,KAAK,cAAc,OAAS,CAC/B,CACL,CC/BA,SAASk1Q,GAAkBz/J,EAAU0/J,EAAe,CAChD,OAAOA,EAAgB1/J,GAAY,IAAO0/J,GAAiB,CAC/D,CCHA,MAAMC,IAAWtsP,GACN,CAAC,MAAM,WAAWA,CAAK,CAAC,EAOnC,MAAMusP,GAAY,CASd,YAAYxyF,EAAMnnI,EAAU,GAAI,CAK5B,KAAK,QAAU,SAMf,KAAK,UAAY,EAMjB,KAAK,YAAc,EAQnB,KAAK,iBAAmB,GAIxB,KAAK,OAAS,GACd,KAAK,gBAAkB,CAACh9C,EAAGu9E,EAAS,KAAS,CACzC,KAAK,KAAO,KAAK,QACjB,KAAK,QAAUv9E,EAEf,KAAM,CAAE,MAAA8jD,EAAO,UAAA4+I,CAAW,EAAGiyE,GACzB,KAAK,cAAgBjyE,IACrB,KAAK,UAAY5+I,EACjB,KAAK,YAAc4+I,EACnBmzE,GAAK,WAAW,KAAK,qBAAqB,GAG1C,KAAK,OAAS,KAAK,SAAW,KAAK,OAAO,QAC1C,KAAK,OAAO,OAAO,OAAO,KAAK,OAAO,EAGtC,KAAK,OAAO,gBACZ,KAAK,OAAO,eAAe,OAAO,KAAK,YAAW,CAAE,EAGpDt4L,GAAU,KAAK,OAAO,eACtB,KAAK,OAAO,cAAc,OAAO,KAAK,OAAO,CAE7D,EASQ,KAAK,sBAAwB,IAAMs4L,GAAK,WAAW,KAAK,aAAa,EAUrE,KAAK,cAAgB,CAAC,CAAE,UAAAnzE,KAAgB,CAChCA,IAAc,KAAK,cACnB,KAAK,KAAO,KAAK,QACb,KAAK,OAAO,gBACZ,KAAK,OAAO,eAAe,OAAO,KAAK,YAAW,CAAE,EAGxE,EACQ,KAAK,YAAc,GACnB,KAAK,KAAO,KAAK,QAAUve,EAC3B,KAAK,iBAAmBuyF,IAAQ,KAAK,OAAO,EAC5C,KAAK,MAAQ15N,EAAQ,KACxB,CAiDD,SAASs8B,EAAc,CACnB,OAAO,KAAK,GAAG,SAAUA,CAAY,CACxC,CACD,GAAGunD,EAAWjwG,EAAU,CACpB,OAAK,KAAK,OAAOiwG,CAAS,IACtB,KAAK,OAAOA,CAAS,EAAI,IAAIy1I,IAE1B,KAAK,OAAOz1I,CAAS,EAAE,IAAIjwG,CAAQ,CAC7C,CACD,gBAAiB,CACb,UAAWgmP,KAAiB,KAAK,OAC7B,KAAK,OAAOA,CAAa,EAAE,MAAK,CAEvC,CAMD,OAAOC,EAAe,CAClB,KAAK,cAAgBA,CACxB,CAgBD,IAAI72Q,EAAGu9E,EAAS,GAAM,CACd,CAACA,GAAU,CAAC,KAAK,cACjB,KAAK,gBAAgBv9E,EAAGu9E,CAAM,EAG9B,KAAK,cAAcv9E,EAAG,KAAK,eAAe,CAEjD,CACD,gBAAgB+uF,EAAMpsC,EAASmB,EAAO,CAClC,KAAK,IAAInB,CAAO,EAChB,KAAK,KAAOosC,EACZ,KAAK,UAAYjrC,CACpB,CAQD,KAAM,CACF,OAAO,KAAK,OACf,CAID,aAAc,CACV,OAAO,KAAK,IACf,CAQD,aAAc,CAEV,OAAO,KAAK,iBAEJ0yN,GAAkB,WAAW,KAAK,OAAO,EACrC,WAAW,KAAK,IAAI,EAAG,KAAK,SAAS,EAC3C,CACT,CAaD,MAAMM,EAAW,CACb,YAAK,KAAI,EACF,IAAI,QAAShiG,GAAY,CAC5B,KAAK,YAAc,GACnB,KAAK,cAAgBgiG,EAAUhiG,CAAO,EAClC,KAAK,OAAO,gBACZ,KAAK,OAAO,eAAe,QAE3C,CAAS,EAAE,KAAK,IAAM,CACN,KAAK,OAAO,mBACZ,KAAK,OAAO,kBAAkB,SAElC,KAAK,eAAc,CAC/B,CAAS,CACJ,CAMD,MAAO,CACC,KAAK,gBACL,KAAK,cAAa,EACd,KAAK,OAAO,iBACZ,KAAK,OAAO,gBAAgB,UAGpC,KAAK,eAAc,CACtB,CAMD,aAAc,CACV,MAAO,CAAC,CAAC,KAAK,aACjB,CACD,gBAAiB,CACb,KAAK,cAAgB,IACxB,CAUD,SAAU,CACN,KAAK,eAAc,EACnB,KAAK,KAAI,CACZ,CACL,CACA,SAASiiG,GAAY5yF,EAAMnnI,EAAS,CAChC,OAAO,IAAI25N,IAAYxyF,EAAMnnI,CAAO,CACxC,CCzSA,MAAMg6N,GAAgB,CAACjpP,EAAMkpP,IAAcj3Q,GAChC,GAAS66E,GAAS76E,CAAC,GAAKkpQ,IAAiB,KAAKlpQ,CAAC,GAAKA,EAAE,WAAW+tB,CAAI,GACvEkpP,GAAY,OAAO,UAAU,eAAe,KAAKj3Q,EAAGi3Q,CAAQ,GAE/DC,GAAa,CAACC,EAAOC,EAAOC,IAAWr3Q,GAAM,CAC/C,GAAI,CAAC66E,GAAS76E,CAAC,EACX,OAAOA,EACX,KAAM,CAACM,EAAGK,EAAGW,EAAGwnQ,CAAK,EAAI9oQ,EAAE,MAAMgpQ,EAAU,EAC3C,MAAO,CACH,CAACmO,CAAK,EAAG,WAAW72Q,CAAC,EACrB,CAAC82Q,CAAK,EAAG,WAAWz2Q,CAAC,EACrB,CAAC02Q,CAAK,EAAG,WAAW/1Q,CAAC,EACrB,MAAOwnQ,IAAU,OAAY,WAAWA,CAAK,EAAI,CACzD,CACA,ECfMwO,IAAgBt3Q,GAAMs2D,GAAM,EAAG,IAAKt2D,CAAC,EACrCu3Q,GAAU,CACZ,GAAGtpJ,GACH,UAAYjuH,GAAM,KAAK,MAAMs3Q,IAAat3Q,CAAC,CAAC,CAChD,EACMw3Q,GAAO,CACT,KAAMR,GAAc,MAAO,KAAK,EAChC,MAAOE,GAAW,MAAO,QAAS,MAAM,EACxC,UAAW,CAAC,CAAE,IAAA3nL,EAAK,MAAAD,EAAO,KAAAF,EAAM,MAAOqoL,EAAU,CAAC,IAAO,QACrDF,GAAQ,UAAUhoL,CAAG,EACrB,KACAgoL,GAAQ,UAAUjoL,CAAK,EACvB,KACAioL,GAAQ,UAAUnoL,CAAI,EACtB,KACA25K,GAASD,GAAM,UAAU2O,CAAO,CAAC,EACjC,GACR,ECnBA,SAASC,IAAS13Q,EAAG,CACjB,IAAIH,EAAI,GACJ4B,EAAI,GACJd,EAAI,GACJL,EAAI,GAER,OAAIN,EAAE,OAAS,GACXH,EAAIG,EAAE,UAAU,EAAG,CAAC,EACpByB,EAAIzB,EAAE,UAAU,EAAG,CAAC,EACpBW,EAAIX,EAAE,UAAU,EAAG,CAAC,EACpBM,EAAIN,EAAE,UAAU,EAAG,CAAC,IAIpBH,EAAIG,EAAE,UAAU,EAAG,CAAC,EACpByB,EAAIzB,EAAE,UAAU,EAAG,CAAC,EACpBW,EAAIX,EAAE,UAAU,EAAG,CAAC,EACpBM,EAAIN,EAAE,UAAU,EAAG,CAAC,EACpBH,GAAKA,EACL4B,GAAKA,EACLd,GAAKA,EACLL,GAAKA,GAEF,CACH,IAAK,SAAST,EAAG,EAAE,EACnB,MAAO,SAAS4B,EAAG,EAAE,EACrB,KAAM,SAASd,EAAG,EAAE,EACpB,MAAOL,EAAI,SAASA,EAAG,EAAE,EAAI,IAAM,CAC3C,CACA,CACA,MAAMopM,GAAM,CACR,KAAMstE,GAAc,GAAG,EACvB,MAAOU,IACP,UAAWF,GAAK,SACpB,EChCMG,GAAO,CACT,KAAMX,GAAc,MAAO,KAAK,EAChC,MAAOE,GAAW,MAAO,aAAc,WAAW,EAClD,UAAW,CAAC,CAAE,IAAAU,EAAK,WAAAC,EAAY,UAAAC,EAAW,MAAOL,EAAU,KAC/C,QACJ,KAAK,MAAMG,CAAG,EACd,KACAvO,GAAQ,UAAUN,GAAS8O,CAAU,CAAC,EACtC,KACAxO,GAAQ,UAAUN,GAAS+O,CAAS,CAAC,EACrC,KACA/O,GAASD,GAAM,UAAU2O,CAAO,CAAC,EACjC,GAEZ,ECdM96O,GAAQ,CACV,KAAO38B,GAAMw3Q,GAAK,KAAKx3Q,CAAC,GAAK0pM,GAAI,KAAK1pM,CAAC,GAAK23Q,GAAK,KAAK33Q,CAAC,EACvD,MAAQA,GACAw3Q,GAAK,KAAKx3Q,CAAC,EACJw3Q,GAAK,MAAMx3Q,CAAC,EAEd23Q,GAAK,KAAK33Q,CAAC,EACT23Q,GAAK,MAAM33Q,CAAC,EAGZ0pM,GAAI,MAAM1pM,CAAC,EAG1B,UAAYA,GACD66E,GAAS76E,CAAC,EACXA,EACAA,EAAE,eAAe,KAAK,EAClBw3Q,GAAK,UAAUx3Q,CAAC,EAChB23Q,GAAK,UAAU33Q,CAAC,CAElC,ECrBM+3Q,GAAa,OACbC,GAAc,OACpB,SAASzpP,IAAKvuB,EAAG,CACb,IAAIkrB,EAAI2J,EACR,OAAQ,MAAM70B,CAAC,GACX66E,GAAS76E,CAAC,MACPkrB,EAAKlrB,EAAE,MAAMgpQ,EAAU,KAAO,MAAQ99O,IAAO,OAAS,OAASA,EAAG,SAAW,MACzE2J,EAAK70B,EAAE,MAAMipQ,EAAU,KAAO,MAAQp0O,IAAO,OAAS,OAASA,EAAG,SAAW,GAChF,CACZ,CACA,SAASojP,GAAoBj4Q,EAAG,CACxB,OAAOA,GAAM,WACbA,EAAI,GAAGA,CAAC,IACZ,MAAMs7E,EAAS,GACf,IAAI48L,EAAY,EACZC,EAAa,EACjB,MAAMnyO,EAAShmC,EAAE,MAAMipQ,EAAU,EAC7BjjO,IACAkyO,EAAYlyO,EAAO,OAGnBhmC,EAAIA,EAAE,QAAQipQ,GAAY8O,EAAU,EACpCz8L,EAAO,KAAK,GAAGt1C,EAAO,IAAIrJ,GAAM,KAAK,CAAC,GAE1C,MAAMy7O,EAAUp4Q,EAAE,MAAMgpQ,EAAU,EAClC,OAAIoP,IACAD,EAAaC,EAAQ,OACrBp4Q,EAAIA,EAAE,QAAQgpQ,GAAYgP,EAAW,EACrC18L,EAAO,KAAK,GAAG88L,EAAQ,IAAInqJ,GAAO,KAAK,CAAC,GAErC,CAAE,OAAA3yC,EAAQ,UAAA48L,EAAW,WAAAC,EAAY,UAAWn4Q,CAAC,CACxD,CACA,SAASsgD,GAAMtgD,EAAG,CACd,OAAOi4Q,GAAoBj4Q,CAAC,EAAE,MAClC,CACA,SAASq4Q,GAAkB1zL,EAAQ,CAC/B,KAAM,CAAE,OAAArJ,EAAQ,UAAA48L,EAAW,UAAAI,CAAS,EAAKL,GAAoBtzL,CAAM,EAC7D4zL,EAAYj9L,EAAO,OACzB,OAAQt7E,GAAM,CACV,IAAI+nF,EAASuwL,EACb,QAASpvP,EAAI,EAAGA,EAAIqvP,EAAWrvP,IAC3B6+D,EAASA,EAAO,QAAQ7+D,EAAIgvP,EAAYH,GAAaC,GAAa9uP,EAAIgvP,EAChEv7O,GAAM,UAAU38B,EAAEkpB,CAAC,CAAC,EACpB6/O,GAAS/oQ,EAAEkpB,CAAC,CAAC,CAAC,EAExB,OAAO6+D,CACf,CACA,CACA,MAAMywL,IAAwBx4Q,GAAM,OAAOA,GAAM,SAAW,EAAIA,EAChE,SAASy4Q,IAAkBz4Q,EAAG,CAC1B,MAAMokP,EAAS9jM,GAAMtgD,CAAC,EAEtB,OADoBq4Q,GAAkBr4Q,CAAC,EACpBokP,EAAO,IAAIo0B,GAAoB,CAAC,CACvD,CACA,MAAME,GAAU,CAAE,KAAAnqP,IAAI,MAAE+xB,GAAO,kBAAA+3N,GAAmBI,qBAAmB,ECpD/DE,IAAc,IAAI,IAAI,CAAC,aAAc,WAAY,WAAY,SAAS,CAAC,EAC7E,SAASC,IAAmB54Q,EAAG,CAC3B,KAAM,CAACovB,EAAMhF,CAAK,EAAIpqB,EAAE,MAAM,EAAG,EAAE,EAAE,MAAM,GAAG,EAC9C,GAAIovB,IAAS,cACT,OAAOpvB,EACX,KAAM,CAACiuH,CAAM,EAAI7jG,EAAM,MAAM4+O,EAAU,GAAK,GAC5C,GAAI,CAAC/6I,EACD,OAAOjuH,EACX,MAAMyyN,EAAOroM,EAAM,QAAQ6jG,EAAQ,EAAE,EACrC,IAAIn1F,EAAe6/O,IAAY,IAAIvpP,CAAI,EAAI,EAAI,EAC/C,OAAI6+F,IAAW7jG,IACX0O,GAAgB,KACb1J,EAAO,IAAM0J,EAAe25L,EAAO,GAC9C,CACA,MAAMomD,IAAgB,oBAChBpqP,GAAS,CACX,GAAGiqP,GACH,kBAAoB14Q,GAAM,CACtB,MAAM84Q,EAAY94Q,EAAE,MAAM64Q,GAAa,EACvC,OAAOC,EAAYA,EAAU,IAAIF,GAAkB,EAAE,KAAK,GAAG,EAAI54Q,CACpE,CACL,ECpBM+4Q,IAAoB,CACtB,GAAGrP,GAEH,MAAA/sO,GACA,gBAAiBA,GACjB,aAAcA,GACd,KAAMA,GACN,OAAQA,GAER,YAAaA,GACb,eAAgBA,GAChB,iBAAkBA,GAClB,kBAAmBA,GACnB,gBAAiBA,GACjB,OAAAlO,GACA,aAAcA,EAClB,EAIMuqP,GAAuBn5O,GAAQk5O,IAAkBl5O,CAAG,ECvB1D,SAAS44O,GAAkB54O,EAAKzV,EAAO,CACnC,IAAIc,EACJ,IAAI+tP,EAAmBD,GAAoBn5O,CAAG,EAC9C,OAAIo5O,IAAqBxqP,KACrBwqP,EAAmBP,KAEfxtP,EAAK+tP,EAAiB,qBAAuB,MAAQ/tP,IAAO,OAAS,OAASA,EAAG,KAAK+tP,EAAkB7uP,CAAK,CACzH,CCRA,MAAM8uP,GAAiBl5Q,GAAO+tB,GAASA,EAAK,KAAK/tB,CAAC,ECA5Cm5Q,IAAO,CACT,KAAOn5Q,GAAMA,IAAM,OACnB,MAAQA,GAAMA,CAClB,ECEMo5Q,GAAsB,CAACnrJ,GAAQq7I,GAAID,GAASD,GAASG,IAAInuP,IAAI+9P,GAAI,EAIjEE,GAA0Br5Q,GAAMo5Q,GAAoB,KAAKF,GAAcl5Q,CAAC,CAAC,ECJzEs5Q,IAAa,CAAC,GAAGF,GAAqBz8O,GAAO+7O,EAAO,EAIpDa,IAAiBv5Q,GAAMs5Q,IAAW,KAAKJ,GAAcl5Q,CAAC,CAAC,ECP7D,SAASw5Q,IAAW5U,EAAe,CAC/B,MAAMjiN,EAAU,GAChB,OAAAiiN,EAAc,OAAO,QAAQ,CAACx6O,EAAOyV,IAAS8iB,EAAQ9iB,CAAG,EAAIzV,EAAM,IAAG,CAAG,EAClEu4B,CACX,CAIA,SAAS82N,IAAY7U,EAAe,CAChC,MAAM7tJ,EAAW,GACjB,OAAA6tJ,EAAc,OAAO,QAAQ,CAACx6O,EAAOyV,IAASk3E,EAASl3E,CAAG,EAAIzV,EAAM,YAAW,CAAG,EAC3E2sF,CACX,CACA,SAAS2iK,GAAe9U,EAAegJ,EAAYvG,EAAQ,CACvD,MAAMp9O,EAAQ26O,EAAc,WAC5B,OAAO+I,GAAwB1jP,EAAO2jP,EAAYvG,IAAW,OAAYA,EAASp9O,EAAM,OAAQuvP,IAAW5U,CAAa,EAAG6U,IAAY7U,CAAa,CAAC,CACzJ,CCRA,SAAS+U,IAAe/U,EAAe/kO,EAAKzV,EAAO,CAC3Cw6O,EAAc,SAAS/kO,CAAG,EAC1B+kO,EAAc,SAAS/kO,CAAG,EAAE,IAAIzV,CAAK,EAGrCw6O,EAAc,SAAS/kO,EAAKk3O,GAAY3sP,CAAK,CAAC,CAEtD,CACA,SAASwvP,IAAUhV,EAAegJ,EAAY,CAC1C,MAAM95B,EAAW4lC,GAAe9U,EAAegJ,CAAU,EACzD,GAAI,CAAE,cAAAmB,EAAgB,GAAI,WAAAC,EAAa,GAAI,GAAGx8O,CAAM,EAAKshN,EAAW8wB,EAAc,qBAAqB9wB,EAAU,EAAK,EAAI,GAC1HthN,EAAS,CAAE,GAAGA,EAAQ,GAAGu8O,CAAa,EACtC,UAAWlvO,KAAOrN,EAAQ,CACtB,MAAMpI,EAAQ4jP,IAA6Bx7O,EAAOqN,CAAG,CAAC,EACtD85O,IAAe/U,EAAe/kO,EAAKzV,CAAK,CAC3C,CACL,CAuBA,SAASyvP,IAAwBjV,EAAepyO,EAAQ4zJ,EAAQ,CAC5D,IAAIl7J,EAAI2J,EACR,MAAMilP,EAAe,OAAO,KAAKtnP,CAAM,EAAE,OAAQqN,GAAQ,CAAC+kO,EAAc,SAAS/kO,CAAG,CAAC,EAC/Ek6O,EAAeD,EAAa,OAClC,GAAKC,EAEL,QAAS7wP,EAAI,EAAGA,EAAI6wP,EAAc7wP,IAAK,CACnC,MAAM2W,EAAMi6O,EAAa5wP,CAAC,EACpB8wP,EAAcxnP,EAAOqN,CAAG,EAC9B,IAAIzV,EAAQ,KAKR,MAAM,QAAQ4vP,CAAW,IACzB5vP,EAAQ4vP,EAAY,CAAC,GAOrB5vP,IAAU,OACVA,GAASyK,GAAM3J,EAAKk7J,EAAOvmJ,CAAG,KAAO,MAAQ3U,IAAO,OAASA,EAAK05O,EAAc,UAAU/kO,CAAG,KAAO,MAAQhL,IAAO,OAASA,EAAKrC,EAAOqN,CAAG,GAMpHzV,GAAU,OAEjC,OAAOA,GAAU,WAChBqqP,IAAkBrqP,CAAK,GAAKsqP,IAAkBtqP,CAAK,GAEpDA,EAAQ,WAAWA,CAAK,EAEnB,CAACmvP,IAAcnvP,CAAK,GAAKsuP,GAAQ,KAAKsB,CAAW,IACtD5vP,EAAQquP,GAAkB54O,EAAKm6O,CAAW,GAE9CpV,EAAc,SAAS/kO,EAAKk3O,GAAY3sP,EAAO,CAAE,MAAOw6O,CAAe,EAAC,EACpEx+E,EAAOvmJ,CAAG,IAAM,SAChBumJ,EAAOvmJ,CAAG,EAAIzV,GAEdA,IAAU,MACVw6O,EAAc,cAAc/kO,EAAKzV,CAAK,EAC7C,CACL,CACA,SAAS6vP,IAAwBp6O,EAAKmvO,EAAY,CAC9C,OAAKA,GAEmBA,EAAWnvO,CAAG,GAAKmvO,EAAW,SAAcA,GAC7C,KAFnB,MAGR,CACA,SAASkL,IAAU1nP,EAAQw8O,EAAYpK,EAAe,CAClD,IAAI15O,EACJ,MAAMk7J,EAAS,GACf,UAAWvmJ,KAAOrN,EAAQ,CACtB,MAAM2nP,EAAmBF,IAAwBp6O,EAAKmvO,CAAU,EAChE5oF,EAAOvmJ,CAAG,EACNs6O,IAAqB,OACfA,GACCjvP,EAAK05O,EAAc,SAAS/kO,CAAG,KAAO,MAAQ3U,IAAO,OAAS,OAASA,EAAG,IAAG,CAC3F,CACD,OAAOk7J,CACX,CClHA,SAASg0F,GAAwBhwP,EAAO,CACpC,MAAO,GAAQ89O,GAAc99O,CAAK,GAAKA,EAAM,IACjD,CCJA,MAAMiwP,IAAgB,CAACrtQ,EAAIod,IAAU,GAAGpd,CAAE,KAAKod,CAAK,GCIpD,SAASkwP,IAAgCttQ,EAAIoiB,EAAM,CAC/C,KAAM,CAAE,uBAAAmrP,CAAwB,EAAG,OAC7BC,EAAcH,IAAcrtQ,EAAI+6P,GAAe,IAAI34O,CAAI,EAAI,YAAcA,CAAI,EAC7E0nP,EAAYyD,GAA0BA,EAAuB,IAAIC,CAAW,EAClF,OAAI1D,GAQAjB,GAAK,OAAO,IAAM,CAId,GAAI,CACAiB,EAAU,OAAM,EAChByD,EAAuB,OAAOC,CAAW,CAC5C,MACS,CAAG,CACzB,CAAS,EACM1D,EAAU,aAAe,GAGzB,CAEf,CC7BA,MAAM2D,IAAwB,iBACxBC,IAA+B,QAAU1N,GAAYyN,GAAqB,ECHhF,IAAI/kG,IAAU,UAAY,GACtBD,GAAY,UAAY,CAAG,ECK/B,MAAMklG,GAAyBnvE,GAAYA,EAAU,ICN/CovE,IAAwB,CAC1B,QAAS,EACb,ECAMC,GAAgBC,GAAYn7Q,GAAMA,GAAK,GAAMm7Q,EAAO,EAAIn7Q,CAAC,EAAI,GAAK,EAAIm7Q,EAAO,GAAK,EAAIn7Q,EAAE,GAAK,ECA7Fo7Q,GAAiBD,GAAYn7Q,GAAM,EAAIm7Q,EAAO,EAAIn7Q,CAAC,ECCnDq7Q,GAAUr7Q,GAAMA,EAAIA,EACpBs7Q,IAAUF,GAAcC,EAAM,EAC9BE,GAAYL,GAAaG,EAAM,ECgB/B73O,GAAM,CAAC7Z,EAAMD,EAAI8xP,IAAa,CAACA,EAAW7xP,EAAO6xP,EAAW9xP,EAAKC,ECpBvE,SAAS8xP,GAASz7Q,EAAGC,EAAGE,EAAG,CAKvB,OAJIA,EAAI,IACJA,GAAK,GACLA,EAAI,IACJA,GAAK,GACLA,EAAI,EAAI,EACDH,GAAKC,EAAID,GAAK,EAAIG,EACzBA,EAAI,EAAI,EACDF,EACPE,EAAI,EAAI,EACDH,GAAKC,EAAID,IAAM,EAAI,EAAIG,GAAK,EAChCH,CACX,CACA,SAAS07Q,IAAW,CAAE,IAAAzD,EAAK,WAAAC,EAAY,UAAAC,EAAW,MAAAhP,CAAK,EAAI,CACvD8O,GAAO,IACPC,GAAc,IACdC,GAAa,IACb,IAAIvoL,EAAM,EACND,EAAQ,EACRF,EAAO,EACX,GAAI,CAACyoL,EACDtoL,EAAMD,EAAQF,EAAO0oL,MAEpB,CACD,MAAMl4Q,EAAIk4Q,EAAY,GAChBA,GAAa,EAAID,GACjBC,EAAYD,EAAaC,EAAYD,EACrCl4Q,EAAI,EAAIm4Q,EAAYl4Q,EAC1B2vF,EAAM6rL,GAASz7Q,EAAGC,EAAGg4Q,EAAM,EAAI,CAAC,EAChCtoL,EAAQ8rL,GAASz7Q,EAAGC,EAAGg4Q,CAAG,EAC1BxoL,EAAOgsL,GAASz7Q,EAAGC,EAAGg4Q,EAAM,EAAI,CAAC,CACpC,CACD,MAAO,CACH,IAAK,KAAK,MAAMroL,EAAM,GAAG,EACzB,MAAO,KAAK,MAAMD,EAAQ,GAAG,EAC7B,KAAM,KAAK,MAAMF,EAAO,GAAG,EAC3B,MAAA05K,CACR,CACA,CC7BA,MAAMwS,GAAiB,CAAChyP,EAAMD,EAAIrpB,IAAM,CACpC,MAAMu7Q,EAAWjyP,EAAOA,EACxB,OAAO,KAAK,KAAK,KAAK,IAAI,EAAGtpB,GAAKqpB,EAAKA,EAAKkyP,GAAYA,CAAQ,CAAC,CACrE,EACMC,IAAa,CAAC9xE,GAAK8tE,GAAMG,EAAI,EAC7B8D,IAAgBz7Q,GAAMw7Q,IAAW,KAAMztP,GAASA,EAAK,KAAK/tB,CAAC,CAAC,EAClE,SAAS07Q,GAAO/+O,EAAO,CACnB,MAAM5O,EAAO0tP,IAAa9+O,CAAK,EAE/B,IAAI+jM,EAAQ3yM,EAAK,MAAM4O,CAAK,EAC5B,OAAI5O,IAAS4pP,KAETj3C,EAAQ26C,IAAW36C,CAAK,GAErBA,CACX,CACA,MAAMi7C,GAAW,CAACryP,EAAMD,IAAO,CAC3B,MAAMuyP,EAAWF,GAAOpyP,CAAI,EACtBuyP,EAASH,GAAOryP,CAAE,EAClByyP,EAAU,CAAE,GAAGF,GACrB,OAAQ57Q,IACJ87Q,EAAQ,IAAMR,GAAeM,EAAS,IAAKC,EAAO,IAAK77Q,CAAC,EACxD87Q,EAAQ,MAAQR,GAAeM,EAAS,MAAOC,EAAO,MAAO77Q,CAAC,EAC9D87Q,EAAQ,KAAOR,GAAeM,EAAS,KAAMC,EAAO,KAAM77Q,CAAC,EAC3D87Q,EAAQ,MAAQ34O,GAAIy4O,EAAS,MAAOC,EAAO,MAAO77Q,CAAC,EAC5Cw3Q,GAAK,UAAUsE,CAAO,EAErC,EC9BA,SAASC,GAAS31F,EAAQ5zJ,EAAQ,CAC9B,OAAI,OAAO4zJ,GAAW,SACVpmL,GAAMmjC,GAAIijJ,EAAQ5zJ,EAAQxyB,CAAC,EAE9B28B,GAAM,KAAKypJ,CAAM,EACfu1F,GAASv1F,EAAQ5zJ,CAAM,EAGvBwpP,GAAW51F,EAAQ5zJ,CAAM,CAExC,CACA,MAAMypP,GAAW,CAAC3yP,EAAMD,IAAO,CAC3B,MAAM0+D,EAAS,CAAC,GAAGz+D,CAAI,EACjBivP,EAAYxwL,EAAO,OACnBm0L,EAAa5yP,EAAK,IAAI,CAAC6yP,EAAUjzP,IAAM6yP,GAASI,EAAU9yP,EAAGH,CAAC,CAAC,CAAC,EACtE,OAAQlpB,GAAM,CACV,QAASkpB,EAAI,EAAGA,EAAIqvP,EAAWrvP,IAC3B6+D,EAAO7+D,CAAC,EAAIgzP,EAAWhzP,CAAC,EAAElpB,CAAC,EAE/B,OAAO+nF,CACf,CACA,EACMq0L,IAAY,CAACh2F,EAAQ5zJ,IAAW,CAClC,MAAMu1D,EAAS,CAAE,GAAGq+F,EAAQ,GAAG5zJ,CAAM,EAC/B0pP,EAAa,GACnB,UAAWr8O,KAAOkoD,EACVq+F,EAAOvmJ,CAAG,IAAM,QAAarN,EAAOqN,CAAG,IAAM,SAC7Cq8O,EAAWr8O,CAAG,EAAIk8O,GAAS31F,EAAOvmJ,CAAG,EAAGrN,EAAOqN,CAAG,CAAC,GAG3D,OAAQ7/B,GAAM,CACV,UAAW6/B,KAAOq8O,EACdn0L,EAAOloD,CAAG,EAAIq8O,EAAWr8O,CAAG,EAAE7/B,CAAC,EAEnC,OAAO+nF,CACf,CACA,EACMi0L,GAAa,CAAC51F,EAAQ5zJ,IAAW,CACnC,MAAMuwF,EAAW21J,GAAQ,kBAAkBlmP,CAAM,EAC3C6pP,EAAcpE,GAAoB7xF,CAAM,EACxCk2F,EAAcrE,GAAoBzlP,CAAM,EAG9C,OAFuB6pP,EAAY,YAAcC,EAAY,WACzDD,EAAY,YAAcC,EAAY,WAE/BvK,GAAKkK,GAASI,EAAY,OAAQC,EAAY,MAAM,EAAGv5J,CAAQ,EAI9DpjH,GAAM,GAAGA,EAAI,EAAI6yB,EAAS4zJ,CAAM,EAEhD,EC7CM+0F,GAAW,CAAC7xP,EAAMD,EAAIe,IAAU,CAClC,MAAMmyP,EAAmBlzP,EAAKC,EAC9B,OAAOizP,IAAqB,EAAI,GAAKnyP,EAAQd,GAAQizP,CACzD,ECNMC,GAAY,CAAClzP,EAAMD,IAAQ1pB,GAAMwjC,GAAI7Z,EAAMD,EAAI1pB,CAAC,EACtD,SAAS88Q,IAAmBz8Q,EAAG,CAC3B,OAAI,OAAOA,GAAM,SACNw8Q,GAEF,OAAOx8Q,GAAM,SACd28B,GAAM,KAAK38B,CAAC,EACL27Q,GAGAK,GAGN,MAAM,QAAQh8Q,CAAC,EACbi8Q,GAEF,OAAOj8Q,GAAM,SACXo8Q,IAEJI,EACX,CACA,SAASE,IAAa30L,EAAQ40L,EAAMC,EAAa,CAC7C,MAAMC,EAAS,GACTC,EAAeF,GAAeH,IAAmB10L,EAAO,CAAC,CAAC,EAC1Dg1L,EAAYh1L,EAAO,OAAS,EAClC,QAAS7+D,EAAI,EAAGA,EAAI6zP,EAAW7zP,IAAK,CAChC,IAAI8zP,EAAQF,EAAa/0L,EAAO7+D,CAAC,EAAG6+D,EAAO7+D,EAAI,CAAC,CAAC,EACjD,GAAIyzP,EAAM,CACN,MAAMM,EAAiB,MAAM,QAAQN,CAAI,EAAIA,EAAKzzP,CAAC,EAAIyzP,EACvDK,EAAQjL,GAAKkL,EAAgBD,CAAK,CACrC,CACDH,EAAO,KAAKG,CAAK,CACpB,CACD,OAAOH,CACX,CAoBA,SAASh9B,GAAYpyM,EAAOs6C,EAAQ,CAAE,MAAOm1L,EAAU,GAAM,KAAAP,EAAM,MAAAK,CAAO,EAAG,GAAI,CAC7E,MAAMG,EAAc1vO,EAAM,OAC1BgoI,GAAU0nG,IAAgBp1L,EAAO,MAA8D,EAC/F0tF,GAAU,CAACknG,GAAQ,CAAC,MAAM,QAAQA,CAAI,GAAKA,EAAK,SAAWQ,EAAc,CAAqI,EAE1M1vO,EAAM,CAAC,EAAIA,EAAM0vO,EAAc,CAAC,IAChC1vO,EAAQ,CAAC,GAAGA,CAAK,EAAE,QAAO,EAC1Bs6C,EAAS,CAAC,GAAGA,CAAM,EAAE,QAAO,GAEhC,MAAM80L,EAASH,IAAa30L,EAAQ40L,EAAMK,CAAK,EACzCD,EAAYF,EAAO,OACnBO,EAAgBp9Q,GAAM,CACxB,IAAIkpB,EAAI,EACR,GAAI6zP,EAAY,EACZ,KAAO7zP,EAAIukB,EAAM,OAAS,GAClB,EAAAztC,EAAIytC,EAAMvkB,EAAI,CAAC,GADMA,IACzB,CAIR,MAAMm0P,EAAkBlC,GAAS1tO,EAAMvkB,CAAC,EAAGukB,EAAMvkB,EAAI,CAAC,EAAGlpB,CAAC,EAC1D,OAAO68Q,EAAO3zP,CAAC,EAAEm0P,CAAe,CACxC,EACI,OAAOH,EACAl9Q,GAAMo9Q,EAAa9mN,GAAM7oB,EAAM,CAAC,EAAGA,EAAM0vO,EAAc,CAAC,EAAGn9Q,CAAC,CAAC,EAC9Do9Q,CACV,CCxFA,MAAMplK,GAAQ41B,GAAQA,ECoBhB0vI,GAAa,CAACx9Q,EAAGy9Q,EAAIC,OAAU,EAAM,EAAMA,EAAK,EAAMD,GAAMz9Q,GAAK,EAAM09Q,EAAK,EAAMD,IAAOz9Q,EAAI,EAAMy9Q,GACrGz9Q,EACE29Q,IAAuB,KACvBC,IAA2B,GACjC,SAASC,IAAgBz9Q,EAAG09Q,EAAYC,EAAYC,EAAKC,EAAK,CAC1D,IAAIC,EACAC,EACA/0P,EAAI,EACR,GACI+0P,EAAWL,GAAcC,EAAaD,GAAc,EACpDI,EAAWV,GAAWW,EAAUH,EAAKC,CAAG,EAAI79Q,EACxC89Q,EAAW,EACXH,EAAaI,EAGbL,EAAaK,QAEZ,KAAK,IAAID,CAAQ,EAAIP,KAC1B,EAAEv0P,EAAIw0P,KACV,OAAOO,CACX,CACA,SAASC,GAAYJ,EAAKK,EAAKJ,EAAKK,EAAK,CAErC,GAAIN,IAAQK,GAAOJ,IAAQK,EACvB,OAAOpmK,GACX,MAAMqmK,EAAYC,GAAOX,IAAgBW,EAAI,EAAG,EAAGR,EAAKC,CAAG,EAE3D,OAAQj+Q,GAAMA,IAAM,GAAKA,IAAM,EAAIA,EAAIw9Q,GAAWe,EAASv+Q,CAAC,EAAGq+Q,EAAKC,CAAG,CAC3E,CC7CA,MAAMG,GAAU5+Q,GAAM,EAAI,KAAK,IAAI,KAAK,KAAKA,CAAC,CAAC,EACzC6+Q,GAAUzD,GAAcwD,EAAM,EAC9BE,IAAY5D,GAAa2D,EAAO,ECDhCE,GAAUR,GAAY,IAAM,KAAM,IAAM,GAAI,EAC5CS,GAAS5D,GAAc2D,EAAO,EAC9BE,IAAY/D,GAAa8D,EAAM,ECJ/BE,IAAcl/Q,IAAOA,GAAK,GAAK,EAAI,GAAMg/Q,GAAOh/Q,CAAC,EAAI,IAAO,EAAI,KAAK,IAAI,EAAG,KAAOA,EAAI,EAAE,GCMzFm/Q,IAAe,CACjB,OAAQ9mK,GACR,OAAAgjK,GACA,UAAAE,GACA,QAAAD,IACA,OAAAsD,GACA,UAAAE,IACA,QAAAD,GACA,OAAAG,GACA,UAAAC,IACA,QAAAF,GACA,WAAAG,GACJ,EACME,GAA8BnR,GAAe,CAC/C,GAAI,MAAM,QAAQA,CAAU,EAAG,CAE3Bn4F,GAAUm4F,EAAW,SAAW,CAA4D,EAC5F,KAAM,CAACxpI,EAAIC,EAAIC,EAAIC,CAAE,EAAIqpI,EACzB,OAAOsQ,GAAY95I,EAAIC,EAAIC,EAAIC,CAAE,CACpC,SACQ,OAAOqpI,GAAe,SAG3B,OAAOkR,IAAalR,CAAU,EAElC,OAAOA,CACX,EACMoR,IAAiBrC,GACZ,MAAM,QAAQA,CAAI,GAAK,OAAOA,EAAK,CAAC,GAAM,SChCrD,SAASsC,IAAc3jM,EAAQw/L,EAAQ,CACnC,OAAOx/L,EAAO,IAAI,IAAMw/L,GAAUI,EAAS,EAAE,OAAO,EAAG5/L,EAAO,OAAS,CAAC,CAC5E,CACA,SAAS4jM,IAAc5jM,EAAQ,CAC3B,MAAMi9L,EAAYj9L,EAAO,OACzB,OAAOA,EAAO,IAAI,CAAC4sD,EAAQh/G,IAAMA,IAAM,EAAIA,GAAKqvP,EAAY,GAAK,CAAC,CACtE,CACA,SAAS4G,IAAqB7jN,EAAQuuC,EAAU,CAC5C,OAAOvuC,EAAO,IAAK19B,GAAMA,EAAIisE,CAAQ,CACzC,CACA,SAASu1K,GAAU,CAAE,UAAWC,EAAgB,KAAA1C,EAAOzB,GAAW,MAAA/hJ,EAAO,SAAAtvB,EAAW,KAAQ,CACxFw1K,EAAiB,CAAC,GAAGA,CAAc,EACnC,MAAMj5F,EAASg5F,GAAU,CAAC,EAKpBE,EAAkBN,IAAcrC,CAAI,EACpCA,EAAK,IAAIoC,EAA0B,EACnCA,GAA2BpC,CAAI,EAK/B3pP,EAAQ,CAAE,KAAM,GAAO,MAAOozJ,CAAM,EAIpCm5F,EAAgBJ,IAGtBhmJ,GAASA,EAAM,SAAWimJ,GAAU,OAC9BjmJ,EACA+lJ,IAAcG,CAAc,EAAGx1K,CAAQ,EAC7C,SAAS21K,GAAqB,CAC1B,OAAO3/B,GAAY0/B,EAAeF,EAAgB,CAC9C,KAAM,MAAM,QAAQC,CAAe,EAC7BA,EACAL,IAAcI,EAAgBC,CAAe,CAC/D,CAAS,CACJ,CACD,IAAIlC,EAAeoC,IACnB,MAAO,CACH,KAAO1/Q,IACHkzB,EAAM,MAAQoqP,EAAat9Q,CAAC,EAC5BkzB,EAAM,KAAOlzB,GAAK+pG,EACX72E,GAEX,WAAY,IAAM,CACdqsP,EAAe,QAAO,EACtBjC,EAAeoC,EAAkB,CACpC,CACT,CACA,CCtDA,MAAMC,GAAU,KACVC,IAAc,IACdC,GAAc,GACdC,IAAa,IACbC,IAAa,EACnB,SAASC,IAAW,CAAE,SAAAj2K,EAAW,IAAK,OAAAk2K,EAAS,IAAM,SAAAhpK,EAAW,EAAG,KAAAipK,EAAO,GAAM,CAC5E,IAAIC,EACAC,EACJxqG,IAAQ7rE,GAAY81K,GAAc,GAAkD,EACpF,IAAIQ,EAAe,EAAIJ,EAIvBI,EAAe7pN,GAAMspN,IAAYC,IAAYM,CAAY,EACzDt2K,EAAWvzC,GAAMopN,IAAaC,GAAa91K,EAAW,GAAI,EACtDs2K,EAAe,GAIfF,EAAYG,GAAiB,CACzB,MAAMC,EAAmBD,EAAeD,EAClCr8N,EAAQu8N,EAAmBx2K,EAC3BvpG,EAAI+/Q,EAAmBtpK,EACvBp2G,EAAI2/Q,GAAgBF,EAAcD,CAAY,EAC9C7+Q,EAAI,KAAK,IAAI,CAACwiD,CAAK,EACzB,OAAO27N,GAAWn/Q,EAAIK,EAAKW,CACvC,EACQ4+Q,EAAcE,GAAiB,CAE3B,MAAMt8N,EADmBs8N,EAAeD,EACPt2K,EAC3BxoG,EAAIyiD,EAAQizD,EAAWA,EACvBn2G,EAAI,KAAK,IAAIu/Q,EAAc,CAAC,EAAI,KAAK,IAAIC,EAAc,CAAC,EAAIv2K,EAC5DnoG,EAAI,KAAK,IAAI,CAACoiD,CAAK,EACnB,EAAIw8N,GAAgB,KAAK,IAAIF,EAAc,CAAC,EAAGD,CAAY,EAEjE,OADe,CAACF,EAASG,CAAY,EAAIX,GAAU,EAAI,GAAK,KACzCp+Q,EAAIT,GAAKc,GAAM,CAC9C,IAMQu+Q,EAAYG,GAAiB,CACzB,MAAM9/Q,EAAI,KAAK,IAAI,CAAC8/Q,EAAev2K,CAAQ,EACrClpG,GAAKy/Q,EAAerpK,GAAYlN,EAAW,EACjD,MAAO,CAAC41K,GAAUn/Q,EAAIK,CAClC,EACQu/Q,EAAcE,GAAiB,CAC3B,MAAM9/Q,EAAI,KAAK,IAAI,CAAC8/Q,EAAev2K,CAAQ,EACrClpG,GAAKo2G,EAAWqpK,IAAiBv2K,EAAWA,GAClD,OAAOvpG,EAAIK,CACvB,GAEI,MAAM4/Q,EAAe,EAAI12K,EACnBu2K,EAAeI,IAAgBP,EAAUC,EAAYK,CAAY,EAEvE,GADA12K,EAAWA,EAAW,IAClB,MAAMu2K,CAAY,EAClB,MAAO,CACH,UAAW,IACX,QAAS,GACT,SAAAv2K,CACZ,EAES,CACD,MAAM42K,EAAY,KAAK,IAAIL,EAAc,CAAC,EAAIJ,EAC9C,MAAO,CACH,UAAAS,EACA,QAASN,EAAe,EAAI,KAAK,KAAKH,EAAOS,CAAS,EACtD,SAAA52K,CACZ,CACK,CACL,CACA,MAAM62K,IAAiB,GACvB,SAASF,IAAgBP,EAAUC,EAAYK,EAAc,CACzD,IAAI/9O,EAAS+9O,EACb,QAAS,EAAI,EAAG,EAAIG,IAAgB,IAChCl+O,EAASA,EAASy9O,EAASz9O,CAAM,EAAI09O,EAAW19O,CAAM,EAE1D,OAAOA,CACX,CACA,SAAS89O,GAAgBF,EAAcD,EAAc,CACjD,OAAOC,EAAe,KAAK,KAAK,EAAID,EAAeA,CAAY,CACnE,CClFA,MAAMQ,IAAe,CAAC,WAAY,QAAQ,EACpCC,IAAc,CAAC,YAAa,UAAW,MAAM,EACnD,SAASC,GAAa7jO,EAASksB,EAAM,CACjC,OAAOA,EAAK,KAAMrpC,GAAQmd,EAAQnd,CAAG,IAAM,MAAS,CACxD,CACA,SAASihP,IAAiB9jO,EAAS,CAC/B,IAAI+jO,EAAgB,CAChB,SAAU,EACV,UAAW,IACX,QAAS,GACT,KAAM,EACN,uBAAwB,GACxB,GAAG/jO,CACX,EAEI,GAAI,CAAC6jO,GAAa7jO,EAAS4jO,GAAW,GAClCC,GAAa7jO,EAAS2jO,GAAY,EAAG,CACrC,MAAMK,EAAUlB,IAAW9iO,CAAO,EAClC+jO,EAAgB,CACZ,GAAGA,EACH,GAAGC,EACH,SAAU,EACV,KAAM,CAClB,EACQD,EAAc,uBAAyB,EAC1C,CACD,OAAOA,CACX,CACA,MAAME,IAAyB,EAI/B,SAASC,GAAO,CAAE,UAAA9B,EAAW,UAAA+B,EAAY,EAAG,UAAAC,EAAY,IAAM,GAAGpkO,GAAW,CACxE,IAAIopI,EAASg5F,EAAU,CAAC,EACpB5sP,EAAS4sP,EAAUA,EAAU,OAAS,CAAC,EAK3C,MAAMpsP,EAAQ,CAAE,KAAM,GAAO,MAAOozJ,CAAM,EACpC,CAAE,UAAAq6F,EAAW,QAAAY,EAAS,KAAArB,EAAM,SAAAjpK,EAAU,SAAAlN,EAAU,uBAAAy3K,CAAyB,EAAGR,IAAiB9jO,CAAO,EAC1G,IAAIukO,EAAgBC,IAChBC,EAAkB1qK,EAAW,EAAEA,EAAW,KAAQ,EACtD,MAAMopK,EAAekB,GAAW,EAAI,KAAK,KAAKZ,EAAYT,CAAI,GAC9D,SAAS0B,GAAe,CACpB,MAAMC,EAAenvP,EAAS4zJ,EACxBw7F,EAAsB,KAAK,KAAKnB,EAAYT,CAAI,EAAI,IAQ1D,GAHIoB,IAAc,SACdA,EAAY,KAAK,IAAI,KAAK,IAAI5uP,EAAS4zJ,CAAM,EAAI,IAAK,EAAG,GAEzD+5F,EAAe,EAAG,CAClB,MAAM0B,EAAcvB,GAAgBsB,EAAqBzB,CAAY,EAErEoB,EAAiBzhR,GAAM,CACnB,MAAMmgR,EAAW,KAAK,IAAI,CAACE,EAAeyB,EAAsB9hR,CAAC,EACjE,OAAQ0yB,EACJytP,IACOwB,EACCtB,EAAeyB,EAAsBD,GACrCE,EACA,KAAK,IAAIA,EAAc/hR,CAAC,EACxB6hR,EAAe,KAAK,IAAIE,EAAc/hR,CAAC,EACnE,CACS,SACQqgR,IAAiB,EAEtBoB,EAAiBzhR,GAAM0yB,EACnB,KAAK,IAAI,CAACovP,EAAsB9hR,CAAC,GAC5B6hR,GACIF,EAAkBG,EAAsBD,GACrC7hR,OAEf,CAED,MAAMgiR,EAAoBF,EAAsB,KAAK,KAAKzB,EAAeA,EAAe,CAAC,EACzFoB,EAAiBzhR,GAAM,CACnB,MAAMmgR,EAAW,KAAK,IAAI,CAACE,EAAeyB,EAAsB9hR,CAAC,EAE3DiiR,EAAW,KAAK,IAAID,EAAoBhiR,EAAG,GAAG,EACpD,OAAQ0yB,EACHytP,IACKwB,EACEtB,EAAeyB,EAAsBD,GACrC,KAAK,KAAKI,CAAQ,EAClBD,EACIH,EACA,KAAK,KAAKI,CAAQ,GAC1BD,CACxB,CACS,CACJ,CACD,OAAAJ,IACO,CACH,KAAO5hR,GAAM,CACT,MAAM6iD,EAAU4+N,EAAczhR,CAAC,EAC/B,GAAKwhR,EAsBDtuP,EAAM,KAAOlzB,GAAK+pG,MAtBO,CACzB,IAAIgkK,EAAkB4T,EACtB,GAAI3hR,IAAM,EAMN,GAAIqgR,EAAe,EAAG,CAClB,MAAM6B,EAAQ,KAAK,IAAI,EAAGliR,EAAImhR,GAAsB,EACpDpT,EAAkB2I,GAAkB7zN,EAAU4+N,EAAcS,CAAK,EAAGliR,EAAIkiR,CAAK,CAChF,MAEGnU,EAAkB,EAG1B,MAAMoU,EAA2B,KAAK,IAAIpU,CAAe,GAAKsT,EACxDe,EAA+B,KAAK,IAAI1vP,EAASmwB,CAAO,GAAKy+N,EACnEpuP,EAAM,KACFivP,GAA4BC,CACnC,CAID,OAAAlvP,EAAM,MAAQA,EAAM,KAAOR,EAASmwB,EAC7B3vB,CACV,EACD,WAAY,IAAM,CACdyuP,EAAkB,CAACA,EACnB,CAACr7F,EAAQ5zJ,CAAM,EAAI,CAACA,EAAQ4zJ,CAAM,EAClCs7F,GACH,CACT,CACA,CACAR,GAAO,mBAAqB,CAAC5gR,EAAGK,IAAM,OAAOL,GAAM,UAAY,OAAOK,GAAM,SAC5E,MAAM6gR,IAAQW,GAAO,ECzIrB,SAASC,IAAM,CAMf,UAAAhD,EAAY,CAAC,CAAC,EAAG,SAAAroK,EAAW,EAAG,MAAAsrK,EAAQ,GAAK,aAAAC,EAAe,IAAK,UAAAlB,EAAY,GAAK,aAAAmB,CAAY,EAAK,CAC9F,MAAMn8F,EAASg5F,EAAU,CAAC,EAKpBpsP,EAAQ,CAAE,KAAM,GAAO,MAAOozJ,CAAM,EAC1C,IAAIo8F,EAAYH,EAAQtrK,EACxB,MAAM0rK,EAAQr8F,EAASo8F,EACjBhwP,EAAS+vP,IAAiB,OAAYE,EAAQF,EAAaE,CAAK,EAKtE,OAAIjwP,IAAWiwP,IACXD,EAAYhwP,EAAS4zJ,GAClB,CACH,KAAOtmL,GAAM,CACT,MAAMgkD,EAAQ,CAAC0+N,EAAY,KAAK,IAAI,CAAC1iR,EAAIwiR,CAAY,EACrD,OAAAtvP,EAAM,KAAO,EAAE8wB,EAAQs9N,GAAat9N,EAAQ,CAACs9N,GAC7CpuP,EAAM,MAAQA,EAAM,KAAOR,EAASA,EAASsxB,EACtC9wB,CACV,EACD,WAAY,IAAM,CAAG,CAC7B,CACA,CCzBA,MAAM0qD,IAAQ,CACV,MAAA0kM,IACA,UAAWhD,GACX,MAAOA,GACP,OAAA8B,EACJ,EACA,SAASwB,GAAYC,EAAS94K,EAAU47D,EAAQ,EAAG,CAC/C,OAAOk9G,EAAU94K,EAAW47D,CAChC,CACA,SAASm9G,IAAeD,EAAS94K,EAAW,EAAG47D,EAAQ,EAAGo9G,EAAoB,GAAM,CAChF,OAAOA,EACDH,GAAY74K,EAAW,CAAC84K,EAAS94K,EAAU47D,CAAK,EAChD57D,GAAY84K,EAAU94K,GAAY47D,CAC5C,CACA,SAASq9G,IAAsBH,EAAS94K,EAAU47D,EAAOo9G,EAAmB,CACxE,OAAOA,EAAoBF,GAAW94K,EAAW47D,EAAQk9G,GAAW,CAACl9G,CACzE,CACA,MAAMs9G,IAAatiP,GAAW,CAC1B,MAAMuiP,EAAgB,CAAC,CAAE,MAAAl/N,CAAO,IAAKrjB,EAAOqjB,CAAK,EACjD,MAAO,CACH,MAAO,IAAM+xN,GAAK,OAAOmN,EAAe,EAAI,EAC5C,KAAM,IAAMhN,GAAW,OAAOgN,CAAa,CACnD,CACA,EACA,SAASzd,GAAQ,CAAE,SAAA17J,EAAU,OAAAo5K,EAASF,IAAW,QAAAJ,EAAU,EAAG,OAAQO,EAAY,EAAG,WAAAC,EAAa,OAAQ,YAAAC,EAAc,EAAG,UAAAhE,EAAW,SAAAiE,EAAW,GAAM,OAAAC,EAAQ,OAAAC,EAAQ,WAAAC,EAAY,SAAAC,EAAU,SAAAC,EAAU,KAAA31P,EAAO,YAAa,GAAGivB,CAAO,EAAI,CACrO,IAAI9xB,EAAI2J,EACR,IAAI8uP,EACAC,EAAc,EACdC,EAAmBh6K,EACnB0iK,EACAuX,EAAa,GACbjB,EAAoB,GACpBkB,EACJ,MAAMC,EAAWtmM,IAAM0hM,EAAU,OAAS,EAAI,YAAcrxP,CAAI,EAC1Dq4J,EAASg5F,EAAU,CAAC,EACpB5sP,EAAS4sP,EAAUA,EAAU,OAAS,CAAC,EACxC,GAAAvqP,GAAM3J,EAAK84P,GAAU,sBAAwB,MAAQnvP,IAAO,SAAkBA,EAAG,KAAK3J,EAAIk7J,EAAQ5zJ,CAAM,IACzGuxP,EAAwBlkC,GAAY,CAAC,EAAG,GAAG,EAAG,CAACz5D,EAAQ5zJ,CAAM,EAAG,CAC5D,MAAO,EACnB,CAAS,EACD4sP,EAAY,CAAC,EAAG,GAAG,GAEvB,MAAMtI,EAAYkN,EAAS,CACvB,GAAGhnO,EACH,SAAA6sD,EACA,UAAAu1K,CACR,CAAK,EACD,SAASlmJ,GAAS,CACd0qJ,IACIT,IAAe,WACfN,EAAoBe,EAAc,IAAM,EACxCjB,EAAUC,IAAeD,EAASkB,EAAkBT,EAAaP,CAAiB,IAGlFF,EAAUD,GAAYC,EAASkB,EAAkBT,CAAW,EACxDD,IAAe,UACfrM,EAAU,WAAU,GAE5BgN,EAAa,GACbL,GAAYA,EAAQ,CACvB,CACD,SAASQ,GAAW,CAChBN,EAAe,KAAI,EACnBH,GAAcA,EAAU,CAC3B,CACD,SAAS/iP,EAAOqjB,EAAO,CAInB,GAHK++N,IACD/+N,EAAQ,CAACA,GACb6+N,GAAW7+N,EACP,CAACggO,EAAY,CACb,MAAM9wP,EAAQ8jP,EAAU,KAAK,KAAK,IAAI,EAAG6L,CAAO,CAAC,EACjDpW,EAASv5O,EAAM,MACX+wP,IACAxX,EAASwX,EAAsBxX,CAAM,GACzCuX,EAAajB,EAAoB7vP,EAAM,KAAO2vP,GAAW,CAC5D,CACDe,GAAYA,EAASnX,CAAM,EACvBuX,IACIF,IAAgB,IAChBC,EACIA,IAAqB,OAAYA,EAAmBlB,GAExDiB,EAAcV,EACdJ,IAAsBH,EAASkB,EAAkBT,EAAaP,CAAiB,GAAK3pJ,IAGpF+qJ,IAGX,CACD,SAASC,GAAO,CACZZ,GAAUA,EAAM,EAChBK,EAAiBV,EAAOxiP,CAAM,EAC9BkjP,EAAe,MAAK,CACvB,CACD,OAAAN,GAAYa,EAAI,EACT,CACH,KAAM,IAAM,CACRX,GAAUA,EAAM,EAChBI,EAAe,KAAI,CACtB,EACD,OAAS7jR,GACEg3Q,EAAU,KAAK,KAAK,IAAI,EAAGh3Q,CAAC,CAAC,CAEhD,CACA,CC/GA,SAASqkR,IAAuBrJ,EAAQ,CACpC,MAAQ,CAACA,GACL,MAAM,QAAQA,CAAM,GACnB,OAAOA,GAAW,UAAYsJ,GAAqBtJ,CAAM,CAClE,CACA,MAAMuJ,GAAsB,CAAC,CAAC/jR,EAAGK,EAAGW,EAAGD,CAAC,IAAM,gBAAgBf,CAAC,KAAKK,CAAC,KAAKW,CAAC,KAAKD,CAAC,IAC3E+iR,GAAuB,CACzB,OAAQ,SACR,KAAM,OACN,OAAQ,UACR,QAAS,WACT,UAAW,cACX,OAAQC,GAAoB,CAAC,EAAG,IAAM,IAAM,CAAC,CAAC,EAC9C,QAASA,GAAoB,CAAC,IAAM,EAAG,EAAG,GAAI,CAAC,EAC/C,OAAQA,GAAoB,CAAC,IAAM,IAAM,IAAM,IAAK,CAAC,EACrD,QAASA,GAAoB,CAAC,IAAM,KAAM,IAAM,GAAI,CAAC,CACzD,EACA,SAASC,IAAwBxJ,EAAQ,CACrC,GAAKA,EAEL,OAAO,MAAM,QAAQA,CAAM,EACrBuJ,GAAoBvJ,CAAM,EAC1BsJ,GAAqBtJ,CAAM,CACrC,CCrBA,SAASyJ,IAAa31P,EAAS41P,EAAWpF,EAAW,CAAE,MAAA35G,EAAQ,EAAG,SAAA57D,EAAU,OAAAqvB,EAAS,EAAG,WAAAiqJ,EAAa,OAAQ,KAAAxG,EAAM,MAAAxjJ,CAAQ,EAAG,GAAI,CAC9H,OAAOvqG,EAAQ,QAAQ,CAAE,CAAC41P,CAAS,EAAGpF,EAAW,OAAQjmJ,GAAS,CAC9D,MAAAssC,EACA,SAAA57D,EACA,OAAQy6K,IAAwB3H,CAAI,EACpC,KAAM,OACN,WAAYzjJ,EAAS,EACrB,UAAWiqJ,IAAe,UAAY,YAAc,QAC5D,CAAK,CACL,CCDA,MAAMsB,GAAc,GACpB,SAASC,IAA2Bt6P,EAAOo6P,EAAW,CAAE,SAAAd,EAAU,WAAAF,EAAY,GAAGxmO,GAAW,CACxF,GAAI,CAAE,UAAAoiO,EAAW,SAAAv1K,EAAW,GAAK,QAAA84K,EAAU,EAAG,KAAAhG,CAAM,EAAG3/N,EAIvD,GAAIA,EAAQ,OAAS,UAAY,CAACmnO,IAAuBnnO,EAAQ,IAAI,EAAG,CACpE,MAAM2nO,EAAkBpf,GAAQvoN,CAAO,EACvC,IAAIhqB,EAAQ,CAAE,KAAM,GAAO,MAAOosP,EAAU,CAAC,GAC7C,MAAMwF,EAAwB,GAC9B,IAAI9kR,EAAI,EACR,KAAO,CAACkzB,EAAM,MACVA,EAAQ2xP,EAAgB,OAAO7kR,CAAC,EAChC8kR,EAAsB,KAAK5xP,EAAM,KAAK,EACtClzB,GAAK2kR,GAETrF,EAAYwF,EACZ/6K,EAAW/pG,EAAI2kR,GACf9H,EAAO,QACV,CACD,MAAM7F,EAAYyN,IAAan6P,EAAM,MAAM,QAASo6P,EAAWpF,EAAW,CACtE,GAAGpiO,EACH,MAAO,CAAC2lO,EACR,SAAA94K,EASA,KAAM8yK,CACd,CAAK,EASD,OAAA7F,EAAU,SAAW,IAAM,CACvB1sP,EAAM,IAAIg1P,EAAUA,EAAU,OAAS,CAAC,CAAC,EACzCoE,GAAcA,EAAU,CAChC,EAIW,IAAM,CAST,KAAM,CAAE,YAAAjoF,CAAa,EAAGu7E,EACxB,GAAIv7E,EAAa,CACb,MAAMopF,EAAkBpf,GAAQvoN,CAAO,EACvC5yB,EAAM,gBAAgBu6P,EAAgB,OAAOppF,EAAckpF,EAAW,EAAE,MAAOE,EAAgB,OAAOppF,CAAW,EAAE,MAAOkpF,EAAW,CACxI,CACD5O,GAAK,OAAO,IAAMiB,EAAU,OAAQ,EAC5C,CACA,CCtEA,SAASrxG,GAAM70I,EAAU2/E,EAAS,CAC9B,MAAMh6C,EAAQ,YAAY,MACpBsuN,EAAe,CAAC,CAAE,UAAAniF,KAAgB,CACpC,MAAMigF,EAAUjgF,EAAYnsI,EACxBosN,GAAWpyK,IACXylK,GAAW,KAAK6O,CAAY,EAC5Bj0P,EAAS+xP,EAAUpyK,CAAO,EAEtC,EACI,OAAAslK,GAAK,KAAKgP,EAAc,EAAI,EACrB,IAAM7O,GAAW,KAAK6O,CAAY,CAC7C,CCdA,SAASC,IAAuB,CAAE,UAAA1F,EAAW,QAAAuD,EAAS,SAAAe,EAAU,WAAAF,CAAU,EAAK,CAC3E,MAAM/xP,EAAW,KACbiyP,GAAYA,EAAStE,EAAUA,EAAU,OAAS,CAAC,CAAC,EACpDoE,GAAcA,EAAU,EACjB,IAAM,IAEjB,OAAOb,EAAUl9G,GAAMh0I,EAAU,CAACkxP,CAAO,EAAIlxP,GACjD,CCLA,SAASszP,IAAQ,CAAE,UAAA3F,EAAW,SAAAroK,EAAW,EAAG,IAAAhhD,EAAK,IAAAC,EAAK,MAAAqsN,EAAQ,GAAK,aAAAC,EAAe,IAAK,gBAAA0C,EAAkB,IAAK,cAAAC,EAAgB,GAAI,UAAA7D,EAAY,EAAG,aAAAmB,EAAc,OAAAU,EAAQ,SAAAS,EAAU,WAAAF,EAAY,OAAAD,GAAW,CACpM,MAAMn9F,EAASg5F,EAAU,CAAC,EAC1B,IAAI8F,EACJ,SAASC,EAAcnlR,EAAG,CACtB,OAAQ+1D,IAAQ,QAAa/1D,EAAI+1D,GAASC,IAAQ,QAAah2D,EAAIg2D,CACtE,CACD,SAASovN,EAAoBplR,EAAG,CAC5B,OAAI+1D,IAAQ,OACDC,EACPA,IAAQ,QAEL,KAAK,IAAID,EAAM/1D,CAAC,EAAI,KAAK,IAAIg2D,EAAMh2D,CAAC,EADhC+1D,EAC0CC,CACxD,CACD,SAASqvN,EAAeroO,EAAS,CAC7BkoO,GAAqB,MAA+CA,EAAiB,OACrFA,EAAmB3f,GAAQ,CACvB,UAAW,CAAC,EAAG,CAAC,EAChB,SAAU,EACV,GAAGvoN,EACH,OAAAimO,EACA,SAAWjjR,GAAM,CACb,IAAIkrB,EACJw4P,GAAa,MAAuCA,EAAS1jR,CAAC,GAC7DkrB,EAAK8xB,EAAQ,YAAc,MAAQ9xB,IAAO,QAAkBA,EAAG,KAAK8xB,EAASh9C,CAAC,CAClF,EACD,WAAAwjR,EACA,OAAAD,CACZ,CAAS,CACJ,CACD,SAAS+B,EAAYtoO,EAAS,CAC1BqoO,EAAe,CACX,KAAM,SACN,UAAWL,EACX,QAASC,EACT,UAAA7D,EACA,GAAGpkO,CACf,CAAS,CACJ,CACD,GAAImoO,EAAc/+F,CAAM,EAEpBk/F,EAAY,CACR,SAAAvuK,EACA,UAAW,CAACqvE,EAAQg/F,EAAoBh/F,CAAM,CAAC,CAC3D,CAAS,MAEA,CASD,IAAI5zJ,EAAS6vP,EAAQtrK,EAAWqvE,EAC5B,OAAOm8F,EAAiB,MACxB/vP,EAAS+vP,EAAa/vP,CAAM,GAChC,MAAMqnC,EAAWurN,EAAoB5yP,CAAM,EACrC+yP,EAAU1rN,IAAa9D,EAAM,GAAK,EACxC,IAAIg5B,EACApsC,EACJ,MAAM6iO,EAAiBxlR,GAAM,CACzB+uF,EAAOpsC,EACPA,EAAU3iD,EACV+2G,EAAWy/J,GAAkBx2Q,EAAI+uF,EAAM4lL,GAAU,KAAK,GACjD4Q,IAAY,GAAKvlR,EAAI65D,GACrB0rN,IAAY,IAAMvlR,EAAI65D,IACvByrN,EAAY,CAAE,UAAW,CAACtlR,EAAG65D,CAAQ,EAAG,SAAAk9C,CAAQ,CAAE,CAElE,EACQsuK,EAAe,CACX,KAAM,QACN,UAAW,CAACj/F,EAAQ,CAAC,EACrB,SAAArvE,EACA,aAAAurK,EACA,MAAAD,EACA,UAAAjB,EACA,aAAAmB,EACA,SAAU4C,EAAc3yP,CAAM,EAAIgzP,EAAgB,MAC9D,CAAS,CACJ,CACD,MAAO,CACH,KAAM,IAAMN,GAAqB,KAAsC,OAASA,EAAiB,KAAM,CAC/G,CACA,CCxFA,MAAMO,GAAoB,KAAO,CAC7B,KAAM,SACN,UAAW,IACX,QAAS,GACT,UAAW,EACf,GACMC,GAA0BlzP,IAAY,CACxC,KAAM,SACN,UAAW,IACX,QAASA,IAAW,EAAI,EAAI,KAAK,KAAK,GAAG,EAAI,GAC7C,UAAW,EACf,GACMmzP,GAAc,KAAO,CACvB,KAAM,YACN,KAAM,SACN,SAAU,EACd,GACMC,IAAsB,CACxB,KAAM,YACN,SAAU,EACd,EACMC,GAAqB,CACvB,EAAGJ,GACH,EAAGA,GACH,EAAGA,GACH,OAAQA,GACR,QAASA,GACT,QAASA,GACT,QAASA,GACT,OAAQC,GACR,OAAQA,GACR,MAAOA,GACP,QAASC,GACT,gBAAiBA,GACjB,MAAOA,GACP,QAASD,EACb,EACMI,IAAuB,CAACC,EAAU,CAAE,UAAA3G,KAClCA,EAAU,OAAS,EACZwG,KAGSC,GAAmBE,CAAQ,GAAKF,GAAmB,SACpDzG,EAAU,CAAC,CAAC,EChC7B4G,GAAe,CAACnmP,EAAKzV,IAEnByV,IAAQ,SACD,GAIP,UAAOzV,GAAU,UAAY,MAAM,QAAQA,CAAK,GAEhD,OAAOA,GAAU,UACjBsuP,GAAQ,KAAKtuP,CAAK,GAClB,CAACA,EAAM,WAAW,MAAM,GCfhC,SAAS67P,IAAoB,CAAE,KAAAC,EAAM,MAAOC,EAAQ,cAAAC,EAAe,gBAAAC,EAAiB,iBAAAC,EAAkB,OAAAptJ,EAAQ,WAAAiqJ,EAAY,YAAAC,EAAa,KAAA95P,EAAM,GAAG0lP,CAAU,EAAI,CAC1J,MAAO,CAAC,CAAC,OAAO,KAAKA,CAAU,EAAE,MACrC,CACA,SAASuX,GAAOn8P,EAAO,CACnB,OAAQA,IAAU,GACb,OAAOA,GAAU,UACd,WAAWA,CAAK,IAAM,GACtBA,EAAM,QAAQ,GAAG,IAAM,EACnC,CACA,SAASo8P,GAAYC,EAAmB,CACpC,OAAO,OAAOA,GAAsB,SAC9B,EACAhO,GAAkB,GAAIgO,CAAiB,CACjD,CACA,SAASC,GAAmB1X,EAAYnvO,EAAK,CACzC,OAAOmvO,EAAWnvO,CAAG,GAAKmvO,EAAW,SAAcA,CACvD,CCnBA,SAAS2X,IAAav8P,EAAOo6P,EAAWhyP,EAAQw8O,EAAY,CACxD,MAAM4X,EAAqBZ,GAAaxB,EAAWhyP,CAAM,EACzD,IAAI4zJ,EAAS4oF,EAAW,OAAS,OAAYA,EAAW,KAAO5kP,EAAM,MAmBrE,OAlBIg8J,IAAW,QAAUwgG,GAAsB,OAAOp0P,GAAW,SAK7D4zJ,EAASqyF,GAAkB+L,EAAWhyP,CAAM,EAEvC+zP,GAAOngG,CAAM,GAAK,OAAO5zJ,GAAW,SACzC4zJ,EAASogG,GAAYh0P,CAAM,EAEtB,CAAC,MAAM,QAAQA,CAAM,GAC1B+zP,GAAO/zP,CAAM,GACb,OAAO4zJ,GAAW,WAClB5zJ,EAASg0P,GAAYpgG,CAAM,GAK3B,MAAM,QAAQ5zJ,CAAM,GAKhBA,EAAO,CAAC,IAAM,OACdA,EAAO,CAAC,EAAI4zJ,GAET5zJ,GAGA,CAAC4zJ,EAAQ5zJ,CAAM,CAE9B,CCtCA,MAAMq0P,GAAe,CACjB,MAAO,IAAM,OAAO,eAAe,KAAK,QAAQ,UAAW,SAAS,CACxE,EACMj+E,GAAU,GACVk+E,GAAW,GAIjB,UAAWjnP,KAAOgnP,GACdC,GAASjnP,CAAG,EAAI,KACR+oK,GAAQ/oK,CAAG,IAAM,SACjB+oK,GAAQ/oK,CAAG,EAAIgnP,GAAahnP,CAAG,EAAC,GAC7B+oK,GAAQ/oK,CAAG,GCI1B,MAAMknP,IAAoB,IAAI,IAAI,CAAC,SAAS,CAAC,EACvCC,GAA6B,CAACxC,EAAWp6P,EAAOoI,EAAQw8O,EAAa,KAC/DwU,GAAe,CACnB,MAAMyD,EAAkBP,GAAmB1X,EAAYwV,CAAS,GAAK,GAM/D/+G,EAAQwhH,EAAgB,OAASjY,EAAW,OAAS,EAK3D,GAAI,CAAE,QAAA2T,EAAU,CAAG,EAAG3T,EACtB2T,EAAUA,EAAUhI,GAAsBl1G,CAAK,EAC/C,MAAM25G,EAAYuH,IAAav8P,EAAOo6P,EAAWhyP,EAAQy0P,CAAe,EAMlEC,EAAiB9H,EAAU,CAAC,EAC5B+H,EAAiB/H,EAAUA,EAAU,OAAS,CAAC,EAC/CgI,EAAqBpB,GAAaxB,EAAW0C,CAAc,EAC3DN,EAAqBZ,GAAaxB,EAAW2C,CAAc,EAEjE,IAAInqO,EAAU,CACV,UAAAoiO,EACA,SAAUh1P,EAAM,YAAa,EAC7B,GAAG68P,EACH,QAAAtE,EACA,SAAW3iR,GAAM,CACboqB,EAAM,IAAIpqB,CAAC,EACXinR,EAAgB,UAAYA,EAAgB,SAASjnR,CAAC,CACzD,EACD,WAAY,IAAM,CACdwjR,IACAyD,EAAgB,YAAcA,EAAgB,YACjD,CACb,EACQ,GAAI,CAACG,GACD,CAACR,GACDhM,IAAsB,SACtBqM,EAAgB,OAAS,GAKzB,OAAOnC,IAAuB9nO,CAAO,EAEpC,GAAIiqO,EAAgB,OAAS,UAAW,CAKzC,MAAMnQ,EAAYiO,IAAQ/nO,CAAO,EACjC,MAAO,IAAM85N,EAAU,MAC1B,CAKImP,IAAoBgB,CAAe,IACpCjqO,EAAU,CACN,GAAGA,EACH,GAAG8oO,IAAqBtB,EAAWxnO,CAAO,CAC1D,GAOYA,EAAQ,WACRA,EAAQ,SAAW29N,GAAsB39N,EAAQ,QAAQ,GAEzDA,EAAQ,cACRA,EAAQ,YAAc29N,GAAsB39N,EAAQ,WAAW,GAEnE,MAAM4nN,EAAgBx6O,EAAM,MACtBwE,EAAUg2O,GAAiBA,EAAc,QAS/C,GAR+BkiB,GAAS,MAAO,GAC3CC,IAAkB,IAAIvC,CAAS,GAC/B,CAACxnO,EAAQ,aACTA,EAAQ,aAAe,UACvBA,EAAQ,UAAY,GACpB4nN,GACAh2O,aAAmB,aACnB,CAACg2O,EAAc,SAAU,EAAC,SAK1B,OAAO8f,IAA2Bt6P,EAAOo6P,EAAWxnO,CAAO,EAE1D,CAID,MAAM85N,EAAYvR,GAAQvoN,CAAO,EACjC,MAAO,IAAM85N,EAAU,MAC1B,CACT,EC/GA,SAASuQ,IAAqBziB,EAAegJ,EAAY5wN,EAAU,GAAI,CACnE4nN,EAAc,OAAO,iBAAkBgJ,CAAU,EACjD,IAAIkJ,EACJ,GAAI,MAAM,QAAQlJ,CAAU,EAAG,CAC3B,MAAM0Z,EAAa1Z,EAAW,IAAKvkO,GAAYk+O,GAAe3iB,EAAev7N,EAAS2T,CAAO,CAAC,EAC9F85N,EAAY,QAAQ,IAAIwQ,CAAU,CACrC,SACQ,OAAO1Z,GAAe,SAC3BkJ,EAAYyQ,GAAe3iB,EAAegJ,EAAY5wN,CAAO,MAE5D,CACD,MAAMwqO,EAAqB,OAAO5Z,GAAe,WAC3C8L,GAAe9U,EAAegJ,EAAY5wN,EAAQ,MAAM,EACxD4wN,EACNkJ,EAAY2Q,GAAc7iB,EAAe4iB,EAAoBxqO,CAAO,CACvE,CACD,OAAO85N,EAAU,KAAK,IAAMlS,EAAc,OAAO,oBAAqBgJ,CAAU,CAAC,CACrF,CACA,SAAS2Z,GAAe3iB,EAAev7N,EAAS2T,EAAU,GAAI,CAC1D,IAAI9xB,EACJ,MAAM4oN,EAAW4lC,GAAe9U,EAAev7N,EAAS2T,EAAQ,MAAM,EACtE,GAAI,CAAE,WAAAgyN,EAAapK,EAAc,qBAAsB,GAAI,EAAI,EAAG9wB,GAAY,GAC1E92L,EAAQ,qBACRgyN,EAAahyN,EAAQ,oBAMzB,MAAM0qO,EAAe5zC,EACf,IAAM2zC,GAAc7iB,EAAe9wB,EAAU92L,CAAO,EACpD,IAAM,QAAQ,UAKd2qO,EAAuB,GAAAz8P,EAAK05O,EAAc,mBAAqB,MAAQ15O,IAAO,SAAkBA,EAAG,KACnG,CAAC08P,EAAe,IAAM,CACpB,KAAM,CAAE,cAAAxB,EAAgB,EAAG,gBAAAC,EAAiB,iBAAAC,CAAgB,EAAMtX,EAClE,OAAO6Y,IAAgBjjB,EAAev7N,EAAS+8O,EAAgBwB,EAAcvB,EAAiBC,EAAkBtpO,CAAO,CAC1H,EACC,IAAM,QAAQ,UAKd,CAAE,KAAAkpO,CAAM,EAAGlX,EACjB,GAAIkX,EAAM,CACN,KAAM,CAACruO,EAAOC,CAAI,EAAIouO,IAAS,iBACzB,CAACwB,EAAcC,CAAkB,EACjC,CAACA,EAAoBD,CAAY,EACvC,OAAO7vO,EAAO,EAAC,KAAKC,CAAI,CAC3B,KAEG,QAAO,QAAQ,IAAI,CAAC4vO,EAAY,EAAIC,EAAmB3qO,EAAQ,KAAK,CAAC,CAAC,CAE9E,CAIA,SAASyqO,GAAc7iB,EAAegJ,EAAY,CAAE,MAAAnoG,EAAQ,EAAG,mBAAAqiH,EAAoB,KAAA/5P,CAAM,EAAG,GAAI,CAC5F,IAAI7C,EACJ,GAAI,CAAE,WAAA8jP,EAAapK,EAAc,uBAAwB,cAAAmK,EAAe,GAAGv8O,GAAWoyO,EAAc,qBAAqBgJ,CAAU,EACnI,MAAMma,EAAanjB,EAAc,SAAS,YAAY,EAClDkjB,IACA9Y,EAAa8Y,GACjB,MAAMR,EAAa,GACbU,EAAqBj6P,KAAU7C,EAAK05O,EAAc,kBAAoB,MAAQ15O,IAAO,OAAS,OAASA,EAAG,SAAU,EAAC6C,CAAI,GAC/H,UAAW8R,KAAOrN,EAAQ,CACtB,MAAMpI,EAAQw6O,EAAc,SAAS/kO,CAAG,EAClCovO,EAAcz8O,EAAOqN,CAAG,EAC9B,GAAI,CAACzV,GACD6kP,IAAgB,QACf+Y,GACGC,IAAqBD,EAAoBnoP,CAAG,EAChD,SAEJ,IAAIonP,EAAkB,CAAE,MAAAxhH,EAAO,QAAS,EAAG,GAAGupG,GAe9C,GAXIpK,EAAc,oBAAsBmD,GAAe,IAAIloO,CAAG,IAC1DonP,EAAkB,CACd,GAAGA,EACH,KAAM,GACN,MAAO,CACvB,GAMY,CAAC78P,EAAM,YAAa,CACpB,MAAM89P,EAAWtjB,EAAc,SAAU,EAAC8V,GAA4B,EAClEwN,IACAjB,EAAgB,QAAU3M,IAAgC4N,EAAUroP,CAAG,EAE9E,CACD,IAAIi3O,EAAY1sP,EAAM,MAAM48P,GAA2BnnP,EAAKzV,EAAO6kP,EAAagY,CAAe,CAAC,EAC5F7M,GAAwB2N,CAAU,IAClCA,EAAW,IAAIloP,CAAG,EAClBi3O,EAAYA,EAAU,KAAK,IAAMiR,EAAW,OAAOloP,CAAG,CAAC,GAE3DynP,EAAW,KAAKxQ,CAAS,CAC5B,CACD,OAAO,QAAQ,IAAIwQ,CAAU,EAAE,KAAK,IAAM,CACtCvY,GAAiB6K,IAAUhV,EAAemK,CAAa,CAC/D,CAAK,CACL,CACA,SAAS8Y,IAAgBjjB,EAAev7N,EAAS+8O,EAAgB,EAAGC,EAAkB,EAAGC,EAAmB,EAAGtpO,EAAS,CACpH,MAAMsqO,EAAa,GACba,GAAsBvjB,EAAc,gBAAgB,KAAO,GAAKyhB,EAChE+B,EAA0B9B,IAAqB,EAC/C,CAACp9P,EAAI,IAAMA,EAAIm9P,EACf,CAACn9P,EAAI,IAAMi/P,EAAqBj/P,EAAIm9P,EAC1C,aAAM,KAAKzhB,EAAc,eAAe,EACnC,KAAKyjB,GAAe,EACpB,QAAQ,CAAC/6P,EAAOpE,IAAM,CACvBo+P,EAAW,KAAKC,GAAej6P,EAAO+b,EAAS,CAC3C,GAAG2T,EACH,MAAOopO,EAAgBgC,EAAwBl/P,CAAC,CAC5D,CAAS,EAAE,KAAK,IAAMoE,EAAM,OAAO,oBAAqB+b,CAAO,CAAC,CAAC,CACjE,CAAK,EACM,QAAQ,IAAIi+O,CAAU,CACjC,CAIA,SAASe,IAAgB/nR,EAAGK,EAAG,CAC3B,OAAOL,EAAE,iBAAiBK,CAAC,CAC/B,CAOA,SAASsnR,IAAqB,CAAE,cAAAK,EAAe,eAAAC,CAAc,EAAI1oP,EAAK,CAClE,MAAM2oP,EAAcF,EAAc,eAAezoP,CAAG,GAAK0oP,EAAe1oP,CAAG,IAAM,GACjF,OAAA0oP,EAAe1oP,CAAG,EAAI,GACf2oP,CACX,CC7IA,MAAMC,GAAuB,CACzBpZ,GAAc,QACdA,GAAc,OACdA,GAAc,MACdA,GAAc,MACdA,GAAc,IACdA,GAAc,KACdA,GAAc,IAClB,EACMqZ,IAAuB,CAAC,GAAGD,EAAoB,EAAE,QAAO,EACxDE,IAAoBF,GAAqB,OAC/C,SAASG,IAAYhkB,EAAe,CAChC,OAAQ0iB,GAAe,QAAQ,IAAIA,EAAW,IAAI,CAAC,CAAE,UAAAxQ,EAAW,QAAA95N,CAAO,IAAOqqO,IAAqBziB,EAAekS,EAAW95N,CAAO,CAAC,CAAC,CAC1I,CACA,SAAS6rO,IAAqBjkB,EAAe,CACzC,IAAIW,EAAUqjB,IAAYhkB,CAAa,EACvC,MAAM5xO,EAAQ81P,MACd,IAAIC,EAAkB,GAKtB,MAAMC,EAA0B,CAACt/O,EAAKkkO,IAAe,CACjD,MAAM95B,EAAW4lC,GAAe9U,EAAegJ,CAAU,EACzD,GAAI95B,EAAU,CACV,KAAM,CAAE,WAAAk7B,EAAY,cAAAD,EAAe,GAAGv8O,CAAM,EAAKshN,EACjDpqM,EAAM,CAAE,GAAGA,EAAK,GAAGlX,EAAQ,GAAGu8O,CAAa,CAC9C,CACD,OAAOrlO,CACf,EAKI,SAASu/O,EAAmBC,EAAc,CACtC3jB,EAAU2jB,EAAatkB,CAAa,CACvC,CAWD,SAASukB,EAAensO,EAASosO,EAAmB,CAChD,MAAMn/P,EAAQ26O,EAAc,WACtBz6O,EAAUy6O,EAAc,kBAAkB,EAAI,GAAK,GAKnD0iB,EAAa,GAKb+B,EAAc,IAAI,IAMxB,IAAIC,EAAkB,GAKlBC,EAAsB,IAO1B,QAASrgQ,EAAI,EAAGA,EAAIy/P,IAAmBz/P,IAAK,CACxC,MAAM6E,EAAO26P,IAAqBx/P,CAAC,EAC7BsgQ,EAAYx2P,EAAMjF,CAAI,EACtBkD,EAAOhH,EAAM8D,CAAI,IAAM,OAAY9D,EAAM8D,CAAI,EAAI5D,EAAQ4D,CAAI,EAC7D07P,EAAgBzkB,GAAe/zO,CAAI,EAKnCy4P,EAAc37P,IAASq7P,EAAoBI,EAAU,SAAW,KAClEE,IAAgB,KAChBH,EAAsBrgQ,GAO1B,IAAIygQ,EAAc14P,IAAS9G,EAAQ4D,CAAI,GAAKkD,IAAShH,EAAM8D,CAAI,GAAK07P,EAepE,GAXIE,GACAZ,GACAnkB,EAAc,yBACd+kB,EAAc,IAMlBH,EAAU,cAAgB,CAAE,GAAGF,GAI9B,CAACE,EAAU,UAAYE,IAAgB,MAEnC,CAACz4P,GAAQ,CAACu4P,EAAU,UAErBvkB,GAAoBh0O,CAAI,GACxB,OAAOA,GAAS,UAChB,SAOJ,MAAM24P,EAAmBC,IAAuBL,EAAU,SAAUv4P,CAAI,EACxE,IAAI64P,EAAoBF,GAEnB77P,IAASq7P,GACNI,EAAU,UACV,CAACG,GACDF,GAEHvgQ,EAAIqgQ,GAAuBE,EAKhC,MAAMM,EAAiB,MAAM,QAAQ94P,CAAI,EAAIA,EAAO,CAACA,CAAI,EAKzD,IAAI+4P,EAAiBD,EAAe,OAAOf,EAAyB,CAAE,GAClEU,IAAgB,KAChBM,EAAiB,IAUrB,KAAM,CAAE,mBAAAC,EAAqB,EAAI,EAAGT,EAC9BU,EAAU,CACZ,GAAGD,EACH,GAAGD,CACnB,EACkBG,EAAiBtqP,GAAQ,CAC3BiqP,EAAoB,GACpBT,EAAY,OAAOxpP,CAAG,EACtB2pP,EAAU,eAAe3pP,CAAG,EAAI,EAChD,EACY,UAAWA,KAAOqqP,EAAS,CACvB,MAAMzwM,EAAOuwM,EAAenqP,CAAG,EACzBkvD,EAAOk7L,EAAmBpqP,CAAG,EAE/BypP,EAAgB,eAAezpP,CAAG,IAKlC45C,IAASsV,EAKL++K,GAAkBr0L,CAAI,GAAKq0L,GAAkB/+K,CAAI,EAC7C,CAACwlL,GAAe96L,EAAMsV,CAAI,GAAK66L,EAC/BO,EAActqP,CAAG,EAOjB2pP,EAAU,cAAc3pP,CAAG,EAAI,GAG9B45C,IAAS,OAEd0wM,EAActqP,CAAG,EAIjBwpP,EAAY,IAAIxpP,CAAG,EAGlB45C,IAAS,QAAa4vM,EAAY,IAAIxpP,CAAG,EAK9CsqP,EAActqP,CAAG,EAOjB2pP,EAAU,cAAc3pP,CAAG,EAAI,GAEtC,CAKD2pP,EAAU,SAAWv4P,EACrBu4P,EAAU,mBAAqBQ,EAI3BR,EAAU,WACVF,EAAkB,CAAE,GAAGA,EAAiB,GAAGU,CAAc,GAEzDjB,GAAmBnkB,EAAc,wBACjCklB,EAAoB,IAOpBA,GAAqB,CAACH,GACtBrC,EAAW,KAAK,GAAGyC,EAAe,IAAKjT,IAAe,CAClD,UAAWA,EACX,QAAS,CAAE,KAAA/oP,EAAM,GAAGivB,CAAS,CAChC,EAAC,CAAC,CAEV,CAMD,GAAIqsO,EAAY,KAAM,CAClB,MAAMe,EAAoB,GAC1Bf,EAAY,QAASxpP,GAAQ,CACzB,MAAMwqP,EAAiBzlB,EAAc,cAAc/kO,CAAG,EAClDwqP,IAAmB,SACnBD,EAAkBvqP,CAAG,EAAIwqP,EAE7C,CAAa,EACD/C,EAAW,KAAK,CAAE,UAAW8C,CAAmB,EACnD,CACD,IAAIE,EAAgB,EAAQhD,EAAW,OACvC,OAAIyB,GACA9+P,EAAM,UAAY,IAClB,CAAC26O,EAAc,yBACf0lB,EAAgB,IAEpBvB,EAAkB,GACXuB,EAAgB/kB,EAAQ+hB,CAAU,EAAI,QAAQ,QAAO,CAC/D,CAID,SAASiD,EAAUx8P,EAAMo5J,EAAUnqI,EAAS,CACxC,IAAI9xB,EAEJ,GAAI8H,EAAMjF,CAAI,EAAE,WAAao5J,EACzB,OAAO,QAAQ,WAElBj8J,EAAK05O,EAAc,mBAAqB,MAAQ15O,IAAO,QAAkBA,EAAG,QAASoC,GAAU,CAAE,IAAIpC,EAAI,OAAQA,EAAKoC,EAAM,kBAAoB,MAAQpC,IAAO,OAAS,OAASA,EAAG,UAAU6C,EAAMo5J,CAAQ,CAAI,GACjNn0J,EAAMjF,CAAI,EAAE,SAAWo5J,EACvB,MAAMmgG,EAAa6B,EAAensO,EAASjvB,CAAI,EAC/C,UAAW8R,KAAO7M,EACdA,EAAM6M,CAAG,EAAE,cAAgB,GAE/B,OAAOynP,CACV,CACD,MAAO,CACH,eAAA6B,EACA,UAAAoB,EACA,mBAAAtB,EACA,SAAU,IAAMj2P,CACxB,CACA,CACA,SAAS62P,IAAuB96L,EAAMtV,EAAM,CACxC,OAAI,OAAOA,GAAS,SACTA,IAASsV,EAEX,MAAM,QAAQtV,CAAI,EAChB,CAAC86L,GAAe96L,EAAMsV,CAAI,EAE9B,EACX,CACA,SAASy7L,GAAgBrjG,EAAW,GAAO,CACvC,MAAO,CACH,SAAAA,EACA,cAAe,CAAE,EACjB,eAAgB,CAAE,EAClB,mBAAoB,CAAE,CAC9B,CACA,CACA,SAAS2hG,KAAc,CACnB,MAAO,CACH,CAACzZ,GAAc,OAAO,EAAGmb,GAAgB,EAAI,EAC7C,CAACnb,GAAc,MAAM,EAAGmb,GAAiB,EACzC,CAACnb,GAAc,KAAK,EAAGmb,GAAiB,EACxC,CAACnb,GAAc,GAAG,EAAGmb,GAAiB,EACtC,CAACnb,GAAc,IAAI,EAAGmb,GAAiB,EACvC,CAACnb,GAAc,KAAK,EAAGmb,GAAiB,EACxC,CAACnb,GAAc,IAAI,EAAGmb,GAAiB,CAC/C,CACA,CC7TA,MAAMlD,IAAa,CACf,UAAWnT,GAAwB,CAAC,CAAE,cAAAvP,EAAe,QAAAW,CAAO,IAAO,CAM/DX,EAAc,iBAAmBA,EAAc,eAAiBikB,IAAqBjkB,CAAa,GAI9FK,GAAoBM,CAAO,GAC3Bv8L,EAAS,UAAC,IAAMu8L,EAAQ,UAAUX,CAAa,EAAG,CAACW,CAAO,CAAC,CAEvE,CAAK,EACD,KAAM4O,GAAyBlqP,GAAU,CACrC,KAAM,CAAE,OAAAo9O,EAAQ,cAAAzC,CAAe,EAAG36O,EAC5B,CAAC0M,EAAW8zP,CAAY,EAAIr3P,GAAW,EACvCqxO,EAAkB75N,aAAWu5N,EAAe,EAClDn7L,YAAU,IAAM,CACZ47L,EAAc,UAAYjuO,EAC1B,MAAMmgP,EAAYlS,EAAc,gBAC5BA,EAAc,eAAe,UAAUyK,GAAc,KAAM,CAAC14O,EAAW,CACnE,OAAS8tO,GAAmBA,EAAgB,QACxC4C,CACxB,CAAiB,EACDyP,GAAa,CAACngP,GACdmgP,EAAU,KAAK2T,CAAY,CAE3C,EAAW,CAAC9zP,CAAS,CAAC,CACtB,CAAK,CACL,ECvCMqzN,GAAW,CAAC1pP,EAAGK,IAAM,KAAK,IAAIL,EAAIK,CAAC,EACzC,SAAS+pR,IAAWpqR,EAAGK,EAAG,CAEtB,MAAMgqR,EAAS3gC,GAAS1pP,EAAE,EAAGK,EAAE,CAAC,EAC1BiqR,EAAS5gC,GAAS1pP,EAAE,EAAGK,EAAE,CAAC,EAChC,OAAO,KAAK,KAAKgqR,GAAU,EAAIC,GAAU,CAAC,CAC9C,CCMA,MAAMC,EAAW,CACb,YAAYn6P,EAAO8mK,EAAU,CAAE,mBAAAszF,CAAkB,EAAK,GAAI,CA2DtD,GAvDA,KAAK,WAAa,KAIlB,KAAK,cAAgB,KAIrB,KAAK,kBAAoB,KAIzB,KAAK,SAAW,GAChB,KAAK,YAAc,IAAM,CACrB,GAAI,EAAE,KAAK,eAAiB,KAAK,mBAC7B,OACJ,MAAMjqC,EAAOkqC,GAAW,KAAK,kBAAmB,KAAK,OAAO,EACtDC,EAAe,KAAK,aAAe,KAInCC,EAA0BP,IAAW7pC,EAAK,OAAQ,CAAE,EAAG,EAAG,EAAG,CAAG,IAAK,EAC3E,GAAI,CAACmqC,GAAgB,CAACC,EAClB,OACJ,KAAM,CAAE,MAAApiL,CAAO,EAAGg4I,EACZ,CAAE,UAAAn+C,CAAW,EAAGiyE,GACtB,KAAK,QAAQ,KAAK,CAAE,GAAG9rK,EAAO,UAAA65F,CAAS,CAAE,EACzC,KAAM,CAAE,QAAAwoF,EAAS,OAAA5kN,GAAW,KAAK,SAC5B0kN,IACDE,GAAWA,EAAQ,KAAK,cAAerqC,CAAI,EAC3C,KAAK,WAAa,KAAK,eAE3Bv6K,GAAUA,EAAO,KAAK,cAAeu6K,CAAI,CACrD,EACQ,KAAK,kBAAoB,CAACnwN,EAAOmwN,IAAS,CAItC,GAHA,KAAK,cAAgBnwN,EACrB,KAAK,kBAAoBy6P,GAAetqC,EAAM,KAAK,kBAAkB,EAEjE8uB,GAAaj/O,CAAK,GAAKA,EAAM,UAAY,EAAG,CAC5C,KAAK,gBAAgBA,EAAOmwN,CAAI,EAChC,MACH,CAEDg1B,GAAK,OAAO,KAAK,YAAa,EAAI,CAC9C,EACQ,KAAK,gBAAkB,CAACnlP,EAAOmwN,IAAS,CACpC,KAAK,IAAG,EACR,KAAM,CAAE,MAAAuqC,EAAO,aAAAC,GAAiB,KAAK,SAC/BC,EAAUP,GAAWI,GAAetqC,EAAM,KAAK,kBAAkB,EAAG,KAAK,OAAO,EAClF,KAAK,YAAcuqC,GACnBA,EAAM16P,EAAO46P,CAAO,EAExBD,GAAgBA,EAAa36P,EAAO46P,CAAO,CACvD,EAEY1b,GAAal/O,CAAK,GAAKA,EAAM,QAAQ,OAAS,EAC9C,OACJ,KAAK,SAAW8mK,EAChB,KAAK,mBAAqBszF,EAC1B,MAAMjqC,EAAOqvB,GAAiBx/O,CAAK,EAC7B66P,EAAcJ,GAAetqC,EAAM,KAAK,kBAAkB,EAC1D,CAAE,MAAAh4I,CAAO,EAAG0iL,EACZ,CAAE,UAAA7oF,CAAW,EAAGiyE,GACtB,KAAK,QAAU,CAAC,CAAE,GAAG9rK,EAAO,UAAA65F,CAAW,GACvC,KAAM,CAAE,eAAA8oF,CAAgB,EAAGh0F,EAC3Bg0F,GACIA,EAAe96P,EAAOq6P,GAAWQ,EAAa,KAAK,OAAO,CAAC,EAC/D,KAAK,gBAAkBxZ,GAAKpB,GAAgB,OAAQ,cAAe,KAAK,iBAAiB,EAAGA,GAAgB,OAAQ,YAAa,KAAK,eAAe,EAAGA,GAAgB,OAAQ,gBAAiB,KAAK,eAAe,CAAC,CACzN,CACD,eAAen5E,EAAU,CACrB,KAAK,SAAWA,CACnB,CACD,KAAM,CACF,KAAK,iBAAmB,KAAK,kBAC7Bw+E,GAAW,OAAO,KAAK,WAAW,CACrC,CACL,CACA,SAASmV,GAAetqC,EAAMiqC,EAAoB,CAC9C,OAAOA,EAAqB,CAAE,MAAOA,EAAmBjqC,EAAK,KAAK,CAAG,EAAGA,CAC5E,CACA,SAAS4qC,GAAcnrR,EAAGK,EAAG,CACzB,MAAO,CAAE,EAAGL,EAAE,EAAIK,EAAE,EAAG,EAAGL,EAAE,EAAIK,EAAE,CAAC,CACvC,CACA,SAASoqR,GAAW,CAAE,MAAAliL,CAAO,EAAE2tE,EAAS,CACpC,MAAO,CACH,MAAA3tE,EACA,MAAO4iL,GAAc5iL,EAAO6iL,GAAgBl1G,CAAO,CAAC,EACpD,OAAQi1G,GAAc5iL,EAAO8iL,IAAiBn1G,CAAO,CAAC,EACtD,SAAUijG,IAAYjjG,EAAS,EAAG,CAC1C,CACA,CACA,SAASm1G,IAAiBn1G,EAAS,CAC/B,OAAOA,EAAQ,CAAC,CACpB,CACA,SAASk1G,GAAgBl1G,EAAS,CAC9B,OAAOA,EAAQA,EAAQ,OAAS,CAAC,CACrC,CACA,SAASijG,IAAYjjG,EAASo1G,EAAW,CACrC,GAAIp1G,EAAQ,OAAS,EACjB,MAAO,CAAE,EAAG,EAAG,EAAG,CAAC,EAEvB,IAAIttJ,EAAIstJ,EAAQ,OAAS,EACrBq1G,EAAmB,KACvB,MAAMC,EAAYJ,GAAgBl1G,CAAO,EACzC,KAAOttJ,GAAK,IACR2iQ,EAAmBr1G,EAAQttJ,CAAC,EACxB,EAAA4iQ,EAAU,UAAYD,EAAiB,UACvClR,GAAsBiR,CAAS,KAGnC1iQ,IAEJ,GAAI,CAAC2iQ,EACD,MAAO,CAAE,EAAG,EAAG,EAAG,CAAC,EAEvB,MAAMnqM,GAAQoqM,EAAU,UAAYD,EAAiB,WAAa,IAClE,GAAInqM,IAAS,EACT,MAAO,CAAE,EAAG,EAAG,EAAG,CAAC,EAEvB,MAAMmsL,EAAkB,CACpB,GAAIie,EAAU,EAAID,EAAiB,GAAKnqM,EACxC,GAAIoqM,EAAU,EAAID,EAAiB,GAAKnqM,CAChD,EACI,OAAImsL,EAAgB,IAAM,MACtBA,EAAgB,EAAI,GAEpBA,EAAgB,IAAM,MACtBA,EAAgB,EAAI,GAEjBA,CACX,CCjJA,SAASke,GAAWrpO,EAAM,CACtB,OAAOA,EAAK,IAAMA,EAAK,GAC3B,CACA,SAASspO,GAAO5hQ,EAAOoI,EAAS,EAAGy5P,EAAc,IAAM,CACnD,OAAO,KAAK,IAAI7hQ,EAAQoI,CAAM,GAAKy5P,CACvC,CACA,SAASC,GAAcpoO,EAAO6gC,EAAQnyD,EAAQ4zJ,EAAS,GAAK,CACxDtiI,EAAM,OAASsiI,EACftiI,EAAM,YAAc3gB,GAAIwhD,EAAO,IAAKA,EAAO,IAAK7gC,EAAM,MAAM,EAC5DA,EAAM,MAAQioO,GAAWv5P,CAAM,EAAIu5P,GAAWpnM,CAAM,GAChDqnM,GAAOloO,EAAM,MAAO,EAAG,IAAM,GAAK,MAAMA,EAAM,KAAK,KACnDA,EAAM,MAAQ,GAClBA,EAAM,UACF3gB,GAAI3Q,EAAO,IAAKA,EAAO,IAAKsxB,EAAM,MAAM,EAAIA,EAAM,aAClDkoO,GAAOloO,EAAM,SAAS,GAAK,MAAMA,EAAM,SAAS,KAChDA,EAAM,UAAY,EAC1B,CACA,SAASqoO,GAAaroO,EAAO6gC,EAAQnyD,EAAQ4zJ,EAAQ,CACjD8lG,GAAcpoO,EAAM,EAAG6gC,EAAO,EAAGnyD,EAAO,EAAG4zJ,GAAW,KAA4B,OAASA,EAAO,OAAO,EACzG8lG,GAAcpoO,EAAM,EAAG6gC,EAAO,EAAGnyD,EAAO,EAAG4zJ,GAAW,KAA4B,OAASA,EAAO,OAAO,CAC7G,CACA,SAASgmG,GAAiB55P,EAAQkqJ,EAAU52H,EAAQ,CAChDtzB,EAAO,IAAMszB,EAAO,IAAM42H,EAAS,IACnClqJ,EAAO,IAAMA,EAAO,IAAMu5P,GAAWrvG,CAAQ,CACjD,CACA,SAAS2vG,IAAgB75P,EAAQkqJ,EAAU52H,EAAQ,CAC/CsmO,GAAiB55P,EAAO,EAAGkqJ,EAAS,EAAG52H,EAAO,CAAC,EAC/CsmO,GAAiB55P,EAAO,EAAGkqJ,EAAS,EAAG52H,EAAO,CAAC,CACnD,CACA,SAASwmO,GAAyB95P,EAAQy1O,EAAQniN,EAAQ,CACtDtzB,EAAO,IAAMy1O,EAAO,IAAMniN,EAAO,IACjCtzB,EAAO,IAAMA,EAAO,IAAMu5P,GAAW9jB,CAAM,CAC/C,CACA,SAASskB,GAAqB/5P,EAAQy1O,EAAQniN,EAAQ,CAClDwmO,GAAyB95P,EAAO,EAAGy1O,EAAO,EAAGniN,EAAO,CAAC,EACrDwmO,GAAyB95P,EAAO,EAAGy1O,EAAO,EAAGniN,EAAO,CAAC,CACzD,CC5BA,SAAS0mO,IAAiB3jL,EAAO,CAAE,IAAA9yC,EAAK,IAAAC,CAAG,EAAIy2N,EAAS,CACpD,OAAI12N,IAAQ,QAAa8yC,EAAQ9yC,EAE7B8yC,EAAQ4jL,EAAUtpP,GAAI4yB,EAAK8yC,EAAO4jL,EAAQ,GAAG,EAAI,KAAK,IAAI5jL,EAAO9yC,CAAG,EAE/DC,IAAQ,QAAa6yC,EAAQ7yC,IAElC6yC,EAAQ4jL,EAAUtpP,GAAI6yB,EAAK6yC,EAAO4jL,EAAQ,GAAG,EAAI,KAAK,IAAI5jL,EAAO7yC,CAAG,GAEjE6yC,CACX,CAMA,SAAS6jL,GAA4BhqO,EAAMqT,EAAKC,EAAK,CACjD,MAAO,CACH,IAAKD,IAAQ,OAAYrT,EAAK,IAAMqT,EAAM,OAC1C,IAAKC,IAAQ,OACPtT,EAAK,IAAMsT,GAAOtT,EAAK,IAAMA,EAAK,KAClC,MACd,CACA,CAKA,SAASiqO,IAAwBC,EAAW,CAAE,IAAAjsO,EAAK,KAAAD,EAAM,OAAAsiD,EAAQ,MAAApiD,GAAS,CACtE,MAAO,CACH,EAAG8rO,GAA4BE,EAAU,EAAGlsO,EAAME,CAAK,EACvD,EAAG8rO,GAA4BE,EAAU,EAAGjsO,EAAKqiD,CAAM,CAC/D,CACA,CAIA,SAAS6pL,GAA4BC,EAAYC,EAAiB,CAC9D,IAAIh3N,EAAMg3N,EAAgB,IAAMD,EAAW,IACvC92N,EAAM+2N,EAAgB,IAAMD,EAAW,IAG3C,OAAIC,EAAgB,IAAMA,EAAgB,IACtCD,EAAW,IAAMA,EAAW,MAC5B,CAAC/2N,EAAKC,CAAG,EAAI,CAACA,EAAKD,CAAG,GAEnB,CAAE,IAAAA,EAAK,IAAAC,EAClB,CAIA,SAASg3N,IAAwBJ,EAAWK,EAAgB,CACxD,MAAO,CACH,EAAGJ,GAA4BD,EAAU,EAAGK,EAAe,CAAC,EAC5D,EAAGJ,GAA4BD,EAAU,EAAGK,EAAe,CAAC,CACpE,CACA,CAKA,SAASzhB,IAAW7mL,EAAQnyD,EAAQ,CAChC,IAAI4zJ,EAAS,GACb,MAAM8mG,EAAenB,GAAWpnM,CAAM,EAChC+nI,EAAeq/D,GAAWv5P,CAAM,EACtC,OAAIk6L,EAAewgE,EACf9mG,EAAS+0F,GAAS3oP,EAAO,IAAKA,EAAO,IAAM06P,EAAcvoM,EAAO,GAAG,EAE9DuoM,EAAexgE,IACpBtmC,EAAS+0F,GAASx2L,EAAO,IAAKA,EAAO,IAAM+nI,EAAcl6L,EAAO,GAAG,GAEhE8jC,GAAM,EAAG,EAAG8vH,CAAM,CAC7B,CAIA,SAAS+mG,IAAsBllB,EAAQmlB,EAAa,CAChD,MAAMC,EAAsB,GAC5B,OAAID,EAAY,MAAQ,SACpBC,EAAoB,IAAMD,EAAY,IAAMnlB,EAAO,KAEnDmlB,EAAY,MAAQ,SACpBC,EAAoB,IAAMD,EAAY,IAAMnlB,EAAO,KAEhDolB,CACX,CACA,MAAMC,GAAiB,IAIvB,SAASC,IAAmBC,EAAcF,GAAgB,CACtD,OAAIE,IAAgB,GAChBA,EAAc,EAETA,IAAgB,KACrBA,EAAcF,IAEX,CACH,EAAGG,GAAmBD,EAAa,OAAQ,OAAO,EAClD,EAAGC,GAAmBD,EAAa,MAAO,QAAQ,CAC1D,CACA,CACA,SAASC,GAAmBD,EAAaE,EAAUC,EAAU,CACzD,MAAO,CACH,IAAKC,GAAoBJ,EAAaE,CAAQ,EAC9C,IAAKE,GAAoBJ,EAAaG,CAAQ,CACtD,CACA,CACA,SAASC,GAAoBJ,EAAa3nP,EAAO,CAC7C,OAAO,OAAO2nP,GAAgB,SACxBA,EACAA,EAAY3nP,CAAK,GAAK,CAChC,CC1HA,MAAMgoP,GAAkB,KAAO,CAC3B,UAAW,EACX,MAAO,EACP,OAAQ,EACR,YAAa,CACjB,GACMC,GAAc,KAAO,CACvB,EAAGD,GAAiB,EACpB,EAAGA,GAAiB,CACxB,GACME,GAAa,KAAO,CAAE,IAAK,EAAG,IAAK,CAAC,GACpCC,GAAY,KAAO,CACrB,EAAGD,GAAY,EACf,EAAGA,GAAY,CACnB,GCdA,SAASE,GAASr9P,EAAU,CACxB,MAAO,CAACA,EAAS,GAAG,EAAGA,EAAS,GAAG,CAAC,CACxC,CCGA,SAASs9P,GAAwB,CAAE,IAAAvtO,EAAK,KAAAD,EAAM,MAAAE,EAAO,OAAAoiD,CAAM,EAAK,CAC5D,MAAO,CACH,EAAG,CAAE,IAAKtiD,EAAM,IAAKE,CAAO,EAC5B,EAAG,CAAE,IAAKD,EAAK,IAAKqiD,CAAQ,CACpC,CACA,CACA,SAASmrL,IAAwB,CAAE,EAAAjuR,EAAG,EAAAC,GAAK,CACvC,MAAO,CAAE,IAAKA,EAAE,IAAK,MAAOD,EAAE,IAAK,OAAQC,EAAE,IAAK,KAAMD,EAAE,GAAG,CACjE,CAMA,SAASkuR,IAAmBvlL,EAAOsiL,EAAgB,CAC/C,GAAI,CAACA,EACD,OAAOtiL,EACX,MAAMwlL,EAAUlD,EAAe,CAAE,EAAGtiL,EAAM,KAAM,EAAGA,EAAM,GAAG,CAAE,EACxDylL,EAAcnD,EAAe,CAAE,EAAGtiL,EAAM,MAAO,EAAGA,EAAM,MAAM,CAAE,EACtE,MAAO,CACH,IAAKwlL,EAAQ,EACb,KAAMA,EAAQ,EACd,OAAQC,EAAY,EACpB,MAAOA,EAAY,CAC3B,CACA,CC9BA,SAASC,GAAgBnnP,EAAO,CAC5B,OAAOA,IAAU,QAAaA,IAAU,CAC5C,CACA,SAASonP,GAAS,CAAE,MAAApnP,EAAO,OAAAqnP,EAAQ,OAAAC,CAAM,EAAI,CACzC,MAAQ,CAACH,GAAgBnnP,CAAK,GAC1B,CAACmnP,GAAgBE,CAAM,GACvB,CAACF,GAAgBG,CAAM,CAC/B,CACA,SAAS5kB,GAAaxuL,EAAQ,CAC1B,OAAQkzM,GAASlzM,CAAM,GACnBqzM,GAAerzM,CAAM,GACrBA,EAAO,GACPA,EAAO,QACPA,EAAO,SACPA,EAAO,OACf,CACA,SAASqzM,GAAerzM,EAAQ,CAC5B,OAAOszM,GAActzM,EAAO,CAAC,GAAKszM,GAActzM,EAAO,CAAC,CAC5D,CACA,SAASszM,GAAcxkQ,EAAO,CAC1B,OAAOA,GAASA,IAAU,IAC9B,CCfA,SAASykQ,GAAWhmL,EAAOzhE,EAAO0nP,EAAa,CAC3C,MAAMC,EAAqBlmL,EAAQimL,EAC7BE,EAAS5nP,EAAQ2nP,EACvB,OAAOD,EAAcE,CACzB,CAIA,SAASC,GAAgBpmL,EAAOrhE,EAAWJ,EAAO0nP,EAAaI,EAAU,CACrE,OAAIA,IAAa,SACbrmL,EAAQgmL,GAAWhmL,EAAOqmL,EAAUJ,CAAW,GAE5CD,GAAWhmL,EAAOzhE,EAAO0nP,CAAW,EAAItnP,CACnD,CAIA,SAAS2nP,GAAezsO,EAAMlb,EAAY,EAAGJ,EAAQ,EAAG0nP,EAAaI,EAAU,CAC3ExsO,EAAK,IAAMusO,GAAgBvsO,EAAK,IAAKlb,EAAWJ,EAAO0nP,EAAaI,CAAQ,EAC5ExsO,EAAK,IAAMusO,GAAgBvsO,EAAK,IAAKlb,EAAWJ,EAAO0nP,EAAaI,CAAQ,CAChF,CAIA,SAASE,GAAclmC,EAAK,CAAE,EAAAhpP,EAAG,EAAAC,CAAC,EAAI,CAClCgvR,GAAejmC,EAAI,EAAGhpP,EAAE,UAAWA,EAAE,MAAOA,EAAE,WAAW,EACzDivR,GAAejmC,EAAI,EAAG/oP,EAAE,UAAWA,EAAE,MAAOA,EAAE,WAAW,CAC7D,CAOA,SAASkvR,IAAgBnmC,EAAKomC,EAAW3rG,EAAU4rG,EAAqB,GAAO,CAC3E,IAAIrkQ,EAAI2J,EACR,MAAM26P,EAAa7rG,EAAS,OAC5B,GAAI,CAAC6rG,EACD,OAEJF,EAAU,EAAIA,EAAU,EAAI,EAC5B,IAAIljQ,EACA03B,EACJ,QAAS56B,EAAI,EAAGA,EAAIsmQ,EAAYtmQ,IAC5BkD,EAAOu3J,EAASz6J,CAAC,EACjB46B,EAAQ13B,EAAK,kBACPyI,GAAM3J,EAAKkB,EAAK,YAAc,MAAQlB,IAAO,OAAS,OAASA,EAAG,SAAW,MAAQ2J,IAAO,OAAS,OAASA,EAAG,WAAa,aAEhI06P,GACAnjQ,EAAK,QAAQ,cACbA,EAAK,QACLA,IAASA,EAAK,MACdqjQ,GAAavmC,EAAK,CACd,EAAG,CAAC98N,EAAK,OAAO,OAAO,EACvB,EAAG,CAACA,EAAK,OAAO,OAAO,CACvC,CAAa,EAED03B,IAEAwrO,EAAU,GAAKxrO,EAAM,EAAE,MACvBwrO,EAAU,GAAKxrO,EAAM,EAAE,MAEvBsrO,GAAclmC,EAAKplM,CAAK,GAExByrO,GAAsBzlB,GAAa19O,EAAK,YAAY,GACpDqjQ,GAAavmC,EAAK98N,EAAK,YAAY,GAO3CkjQ,EAAU,EAAII,GAAcJ,EAAU,CAAC,EACvCA,EAAU,EAAII,GAAcJ,EAAU,CAAC,CAC3C,CACA,SAASI,GAActoP,EAAO,CAC1B,OAAI,OAAO,UAAUA,CAAK,GAEnBA,EAAQ,iBAAmBA,EAAQ,cAD/BA,EACwD,CACvE,CACA,SAASuoP,GAAcjtO,EAAMsnM,EAAU,CACnCtnM,EAAK,IAAMA,EAAK,IAAMsnM,EACtBtnM,EAAK,IAAMA,EAAK,IAAMsnM,CAC1B,CAMA,SAAS4lC,GAAcltO,EAAMmtO,EAAY,CAAChwP,EAAKiwP,EAAUC,CAAS,EAAG,CACjE,MAAMC,EAAaH,EAAWE,CAAS,IAAM,OAAYF,EAAWE,CAAS,EAAI,GAC3EjB,EAAc3rP,GAAIuf,EAAK,IAAKA,EAAK,IAAKstO,CAAU,EAEtDb,GAAezsO,EAAMmtO,EAAWhwP,CAAG,EAAGgwP,EAAWC,CAAQ,EAAGhB,EAAae,EAAW,KAAK,CAC7F,CAIA,MAAMI,IAAQ,CAAC,IAAK,SAAU,SAAS,EACjCC,IAAQ,CAAC,IAAK,SAAU,SAAS,EAIvC,SAAST,GAAavmC,EAAKx/K,EAAW,CAClCkmN,GAAc1mC,EAAI,EAAGx/K,EAAWumN,GAAK,EACrCL,GAAc1mC,EAAI,EAAGx/K,EAAWwmN,GAAK,CACzC,CC7GA,SAASC,GAAmBjqK,EAAUilK,EAAgB,CAClD,OAAO+C,GAAwBE,IAAmBloK,EAAS,sBAAuB,EAAEilK,CAAc,CAAC,CACvG,CACA,SAASiF,IAAexhQ,EAASyhQ,EAAoBvF,EAAoB,CACrE,MAAMwF,EAAcH,GAAmBvhQ,EAASk8P,CAAkB,EAC5D,CAAE,OAAArnN,CAAQ,EAAG4sN,EACnB,OAAI5sN,IACAksN,GAAcW,EAAY,EAAG7sN,EAAO,OAAO,CAAC,EAC5CksN,GAAcW,EAAY,EAAG7sN,EAAO,OAAO,CAAC,GAEzC6sN,CACX,CCIA,MAAMC,IAAsB,IAAI,QAKhC,MAAMC,GAA0B,CAC5B,YAAY5rB,EAAe,CAIvB,KAAK,eAAiB,KACtB,KAAK,WAAa,GAClB,KAAK,iBAAmB,KACxB,KAAK,YAAc,CAAE,EAAG,EAAG,EAAG,GAI9B,KAAK,YAAc,GACnB,KAAK,sBAAwB,GAI7B,KAAK,QAAUopB,KACf,KAAK,cAAgBppB,CACxB,CACD,MAAM6rB,EAAa,CAAE,aAAAC,EAAe,EAAK,EAAK,GAAI,CAI9C,GAAI,KAAK,cAAc,YAAc,GACjC,OACJ,MAAMlF,EAAkB96P,GAAU,CAG9B,KAAK,cAAa,EACdggQ,GACA,KAAK,aAAaxgB,GAAiBx/O,EAAO,MAAM,EAAE,KAAK,CAEvE,EACcw6P,EAAU,CAACx6P,EAAOmwN,IAAS,CAC7B,IAAI31N,EAEJ,KAAM,CAAE,KAAAgmP,EAAM,gBAAAyf,EAAiB,YAAAC,CAAW,EAAK,KAAK,WAChD1f,GAAQ,CAACyf,IACL,KAAK,gBACL,KAAK,eAAc,EACvB,KAAK,eAAiB1f,GAAcC,CAAI,EAEpC,CAAC,KAAK,kBAGd,KAAK,WAAa,GAClB,KAAK,iBAAmB,KACxB,KAAK,mBAAkB,EACnB,KAAK,cAAc,aACnB,KAAK,cAAc,WAAW,mBAAqB,GACnD,KAAK,cAAc,WAAW,OAAS,QAK3C+c,GAAUvrO,GAAS,CACf,IAAIx3B,EAAI2J,EACR,IAAI8tB,EAAU,KAAK,mBAAmBD,CAAI,EAAE,IAAK,GAAI,EAIrD,GAAI2mN,GAAQ,KAAK1mN,CAAO,EAAG,CACvB,MAAMkuO,GAAgBh8P,GAAM3J,EAAK,KAAK,cAAc,cAAgB,MAAQA,IAAO,OAAS,OAASA,EAAG,UAAY,MAAQ2J,IAAO,OAAS,OAASA,EAAG,UAAU6tB,CAAI,EAClKmuO,IAEAluO,EADeopO,GAAW8E,CAAY,GAClB,WAAWluO,CAAO,EAAI,KAEjD,CACD,KAAK,YAAYD,CAAI,EAAIC,CACzC,CAAa,EAEDiuO,GAAgB,MAA0CA,EAAYlgQ,EAAOmwN,CAAI,GAChF31N,EAAK,KAAK,cAAc,kBAAoB,MAAQA,IAAO,QAAkBA,EAAG,UAAUmkP,GAAc,KAAM,EAAI,EAC/H,EACc/oM,EAAS,CAAC51C,EAAOmwN,IAAS,CAE5B,KAAM,CAAE,gBAAA8vC,EAAiB,kBAAAG,EAAmB,gBAAAC,EAAiB,OAAAt5K,GAAY,KAAK,WAE9E,GAAI,CAACk5K,GAAmB,CAAC,KAAK,eAC1B,OACJ,KAAM,CAAE,OAAAr1N,CAAQ,EAAGulL,EAEnB,GAAIiwC,GAAqB,KAAK,mBAAqB,KAAM,CACrD,KAAK,iBAAmBE,IAAoB11N,CAAM,EAE9C,KAAK,mBAAqB,OAC1By1N,GAAoB,MAA8CA,EAAgB,KAAK,gBAAgB,GAE3G,MACH,CAED,KAAK,WAAW,IAAKlwC,EAAK,MAAOvlL,CAAM,EACvC,KAAK,WAAW,IAAKulL,EAAK,MAAOvlL,CAAM,EAOvC,KAAK,cAAc,SAKnBm8C,GAAW,MAAqCA,EAAO/mF,EAAOmwN,CAAI,CAC9E,EACcwqC,EAAe,CAAC36P,EAAOmwN,IAAS,KAAK,KAAKnwN,EAAOmwN,CAAI,EAC3D,KAAK,WAAa,IAAIgqC,GAAW4F,EAAa,CAC1C,eAAAjF,EACA,QAAAN,EACA,OAAA5kN,EACA,aAAA+kN,CACZ,EAAW,CAAE,mBAAoB,KAAK,cAAc,sBAAqB,CAAI,EACxE,CACD,KAAK36P,EAAOmwN,EAAM,CACd,MAAM1mI,EAAa,KAAK,WAExB,GADA,KAAK,OAAM,EACP,CAACA,EACD,OACJ,KAAM,CAAE,SAAApD,CAAU,EAAG8pI,EACrB,KAAK,eAAe9pI,CAAQ,EAC5B,KAAM,CAAE,UAAAk6K,CAAS,EAAK,KAAK,SAAQ,EACnCA,GAAc,MAAwCA,EAAUvgQ,EAAOmwN,CAAI,CAC9E,CACD,QAAS,CACL,IAAI31N,EAAI2J,EACR,KAAK,WAAa,GACd,KAAK,cAAc,aACnB,KAAK,cAAc,WAAW,mBAAqB,KAEtD3J,EAAK,KAAK,cAAgB,MAAQA,IAAO,QAAkBA,EAAG,IAAG,EAClE,KAAK,WAAa,OAClB,KAAM,CAAE,gBAAAylQ,CAAe,EAAK,KAAK,SAAQ,EACrC,CAACA,GAAmB,KAAK,iBACzB,KAAK,eAAc,EACnB,KAAK,eAAiB,OAEzB97P,EAAK,KAAK,cAAc,kBAAoB,MAAQA,IAAO,QAAkBA,EAAG,UAAUw6O,GAAc,KAAM,EAAK,CACvH,CACD,WAAW3sN,EAAMwuO,EAAQ51N,EAAQ,CAC7B,KAAM,CAAE,KAAA41M,CAAI,EAAK,KAAK,SAAQ,EAE9B,GAAI,CAAC51M,GAAU,CAACigD,GAAW74D,EAAMwuN,EAAM,KAAK,gBAAgB,EACxD,OACJ,MAAMigB,EAAY,KAAK,mBAAmBzuO,CAAI,EAC9C,IAAI+2B,EAAO,KAAK,YAAY/2B,CAAI,EAAI4Y,EAAO5Y,CAAI,EAE3C,KAAK,aAAe,KAAK,YAAYA,CAAI,IACzC+2B,EAAO+yM,IAAiB/yM,EAAM,KAAK,YAAY/2B,CAAI,EAAG,KAAK,QAAQA,CAAI,CAAC,GAE5EyuO,EAAU,IAAI13M,CAAI,CACrB,CACD,oBAAqB,CACjB,KAAM,CAAE,gBAAA23M,EAAiB,YAAA5D,CAAa,EAAG,KAAK,SAAQ,EAChD,CAAE,OAAAvlB,CAAM,EAAK,KAAK,cAAc,YAAc,GAC9CopB,EAAkB,KAAK,YACzBD,GAAmBvsB,GAAYusB,CAAe,EACzC,KAAK,cACN,KAAK,YAAc,KAAK,yBAIxBA,GAAmBnpB,EACnB,KAAK,YAAc0kB,IAAwB1kB,EAAO,UAAWmpB,CAAe,EAG5E,KAAK,YAAc,GAG3B,KAAK,QAAU7D,IAAmBC,CAAW,EAKzC6D,IAAoB,KAAK,aACzBppB,GACA,KAAK,aACL,CAAC,KAAK,uBACNgmB,GAAUvrO,GAAS,CACX,KAAK,mBAAmBA,CAAI,IAC5B,KAAK,YAAYA,CAAI,EAAIyqO,IAAsBllB,EAAO,UAAUvlN,CAAI,EAAG,KAAK,YAAYA,CAAI,CAAC,EAEjH,CAAa,CAER,CACD,uBAAwB,CACpB,KAAM,CAAE,gBAAiB0qO,EAAa,yBAAAkE,CAAwB,EAAK,KAAK,WACxE,GAAI,CAAClE,GAAe,CAACvoB,GAAYuoB,CAAW,EACxC,MAAO,GACX,MAAMmE,EAAqBnE,EAAY,QAEjC,CAAE,WAAAlgB,CAAU,EAAK,KAAK,cAE5B,GAAI,CAACA,GAAc,CAACA,EAAW,OAC3B,MAAO,GACX,MAAM+f,EAAiBmD,IAAemB,EAAoBrkB,EAAW,KAAM,KAAK,cAAc,sBAAqB,CAAE,EACrH,IAAIskB,EAAsBxE,IAAwB9f,EAAW,OAAO,UAAW+f,CAAc,EAK7F,GAAIqE,EAA0B,CAC1B,MAAMG,EAAkBH,EAAyBnD,IAAwBqD,CAAmB,CAAC,EAC7F,KAAK,sBAAwB,CAAC,CAACC,EAC3BA,IACAD,EAAsBtD,GAAwBuD,CAAe,EAEpE,CACD,OAAOD,CACV,CACD,eAAez6K,EAAU,CACrB,KAAM,CAAE,KAAAm6J,EAAM,aAAAwgB,EAAc,YAAAlE,EAAa,eAAAmE,EAAgB,iBAAAC,EAAkB,oBAAAC,CAAsB,EAAG,KAAK,WACnGzE,EAAc,KAAK,aAAe,GAClC0E,EAAqB7D,GAAUvrO,GAAS,CAC1C,GAAI,CAAC64D,GAAW74D,EAAMwuN,EAAM,KAAK,gBAAgB,EAC7C,OAEJ,IAAIlC,GAAcoe,GAAgB,KAAiC,OAASA,EAAY1qO,CAAI,IAAM,GAC9FkvO,IACA5iB,EAAa,CAAE,IAAK,EAAG,IAAK,CAAC,GAOjC,MAAMgW,EAAkBwI,EAAc,IAAM,IACtCvI,EAAgBuI,EAAc,GAAK,IACnCzI,EAAU,CACZ,KAAM,UACN,SAAU2M,EAAe36K,EAASr0D,CAAI,EAAI,EAC1C,gBAAAsiO,EACA,cAAAC,EACA,aAAc,IACd,UAAW,EACX,UAAW,GACX,GAAG0M,EACH,GAAG3iB,CACnB,EAIY,OAAO,KAAK,wBAAwBtsN,EAAMqiO,CAAO,CAC7D,CAAS,EAED,OAAO,QAAQ,IAAI+M,CAAkB,EAAE,KAAKD,CAAmB,CAClE,CACD,wBAAwBnvO,EAAMssN,EAAY,CACtC,MAAMmiB,EAAY,KAAK,mBAAmBzuO,CAAI,EAC9C,OAAOyuO,EAAU,MAAMnK,GAA2BtkO,EAAMyuO,EAAW,EAAGniB,CAAU,CAAC,CACpF,CACD,eAAgB,CACZif,GAAUvrO,GAAS,KAAK,mBAAmBA,CAAI,EAAE,KAAI,CAAE,CAC1D,CAOD,mBAAmBA,EAAM,CACrB,IAAIx3B,EACJ,MAAM6mQ,EAAU,QAAUrvO,EAAK,YAAW,EACpCsvO,EAAsB,KAAK,cAAc,SAAU,EAACD,CAAO,EACjE,OAAOC,GAED,KAAK,cAAc,SAAStvO,IAAQx3B,EAAK,KAAK,cAAc,SAAU,EAAC,WAAa,MAAQA,IAAO,OAAS,OAASA,EAAGw3B,CAAI,IAAM,CAAC,CAC5I,CACD,aAAammD,EAAO,CAChBolL,GAAUvrO,GAAS,CACf,KAAM,CAAE,KAAAwuN,CAAI,EAAK,KAAK,SAAQ,EAE9B,GAAI,CAAC31J,GAAW74D,EAAMwuN,EAAM,KAAK,gBAAgB,EAC7C,OACJ,KAAM,CAAE,WAAAhE,CAAU,EAAK,KAAK,cACtBikB,EAAY,KAAK,mBAAmBzuO,CAAI,EAC9C,GAAIwqN,GAAcA,EAAW,OAAQ,CACjC,KAAM,CAAE,IAAAn3M,EAAK,IAAAC,CAAK,EAAGk3M,EAAW,OAAO,UAAUxqN,CAAI,EACrDyuO,EAAU,IAAItoL,EAAMnmD,CAAI,EAAIvf,GAAI4yB,EAAKC,EAAK,EAAG,CAAC,CACjD,CACb,CAAS,CACJ,CAMD,gCAAiC,CAC7B,IAAI9qC,EACJ,GAAI,CAAC,KAAK,cAAc,QACpB,OACJ,KAAM,CAAE,KAAAgmP,EAAM,gBAAAkgB,CAAiB,EAAG,KAAK,SAAQ,EACzC,CAAE,WAAAlkB,CAAU,EAAK,KAAK,cAC5B,GAAI,CAACrI,GAAYusB,CAAe,GAAK,CAAClkB,GAAc,CAAC,KAAK,YACtD,OAKJ,KAAK,cAAa,EAKlB,MAAM+kB,EAAc,CAAE,EAAG,EAAG,EAAG,CAAC,EAChChE,GAAUvrO,GAAS,CACf,MAAMyuO,EAAY,KAAK,mBAAmBzuO,CAAI,EAC9C,GAAIyuO,EAAW,CACX,MAAM5kB,EAAS4kB,EAAU,MACzBc,EAAYvvO,CAAI,EAAI8oN,IAAW,CAAE,IAAKe,EAAQ,IAAKA,CAAQ,EAAE,KAAK,YAAY7pN,CAAI,CAAC,CACtF,CACb,CAAS,EAID,KAAM,CAAE,kBAAAgmN,CAAmB,EAAG,KAAK,cAAc,SAAQ,EACzD,KAAK,cAAc,QAAQ,MAAM,UAAYA,EACvCA,EAAkB,CAAE,EAAE,EAAE,EACxB,QACLx9O,EAAKgiP,EAAW,QAAU,MAAQhiP,IAAO,QAAkBA,EAAG,aAAY,EAC3EgiP,EAAW,aAAY,EACvB,KAAK,mBAAkB,EAKvB+gB,GAAUvrO,GAAS,CACf,GAAI,CAAC64D,GAAW74D,EAAMwuN,EAAM,IAAI,EAC5B,OAIJ,MAAMigB,EAAY,KAAK,mBAAmBzuO,CAAI,EACxC,CAAE,IAAAqT,EAAK,IAAAC,CAAG,EAAK,KAAK,YAAYtT,CAAI,EAC1CyuO,EAAU,IAAIhuP,GAAI4yB,EAAKC,EAAKi8N,EAAYvvO,CAAI,CAAC,CAAC,CAC1D,CAAS,CACJ,CACD,cAAe,CACX,IAAIx3B,EACJ,GAAI,CAAC,KAAK,cAAc,QACpB,OACJqlQ,IAAoB,IAAI,KAAK,cAAe,IAAI,EAChD,MAAM3hQ,EAAU,KAAK,cAAc,QAI7BsjQ,EAAsBvhB,GAAgB/hP,EAAS,cAAgB8B,GAAU,CAC3E,KAAM,CAAE,KAAAwgP,EAAM,aAAAihB,EAAe,EAAI,EAAK,KAAK,WAC3CjhB,GAAQihB,GAAgB,KAAK,MAAMzhQ,CAAK,CACpD,CAAS,EACK0hQ,EAAyB,IAAM,CACjC,KAAM,CAAE,gBAAAhB,CAAe,EAAK,KAAK,SAAQ,EACrCvsB,GAAYusB,CAAe,IAC3B,KAAK,YAAc,KAAK,wBAExC,EACc,CAAE,WAAAlkB,CAAU,EAAK,KAAK,cACtBmlB,EAA4BnlB,EAAW,iBAAiB,UAAWklB,CAAsB,EAC3FllB,GAAc,CAACA,EAAW,UACzBhiP,EAAKgiP,EAAW,QAAU,MAAQhiP,IAAO,QAAkBA,EAAG,aAAY,EAC3EgiP,EAAW,aAAY,GAE3BklB,IAKA,MAAME,EAAqBhjB,GAAY,OAAQ,SAAU,IAAM,KAAK,+BAA8B,CAAE,EAK9FijB,EAA2BrlB,EAAW,iBAAiB,YAAc,CAAC,CAAE,MAAAppN,EAAO,iBAAA0uO,KAAuB,CACpG,KAAK,YAAcA,IACnBvE,GAAUvrO,GAAS,CACf,MAAMq0N,EAAc,KAAK,mBAAmBr0N,CAAI,EAC3Cq0N,IAEL,KAAK,YAAYr0N,CAAI,GAAKoB,EAAMpB,CAAI,EAAE,UACtCq0N,EAAY,IAAIA,EAAY,IAAG,EAAKjzN,EAAMpB,CAAI,EAAE,SAAS,EAC7E,CAAiB,EACD,KAAK,cAAc,SAEnC,GACQ,MAAO,IAAM,CACT4vO,IACAJ,IACAG,IACAE,GAA6B,MAAuDA,GAChG,CACK,CACD,UAAW,CACP,MAAMtoQ,EAAQ,KAAK,cAAc,SAAQ,EACnC,CAAE,KAAAinP,EAAO,GAAO,kBAAA4f,EAAoB,GAAO,gBAAAH,EAAkB,GAAO,gBAAAS,EAAkB,GAAO,YAAA5D,EAAcF,GAAgB,aAAAoE,EAAe,EAAI,EAAMznQ,EAC1J,MAAO,CACH,GAAGA,EACH,KAAAinP,EACA,kBAAA4f,EACA,gBAAAH,EACA,gBAAAS,EACA,YAAA5D,EACA,aAAAkE,CACZ,CACK,CACL,CACA,SAASn2K,GAAW/3D,EAAW0tN,EAAMuhB,EAAkB,CACnD,OAASvhB,IAAS,IAAQA,IAAS1tN,KAC9BivO,IAAqB,MAAQA,IAAqBjvO,EAC3D,CAQA,SAASwtO,IAAoB11N,EAAQo3N,EAAgB,GAAI,CACrD,IAAIlvO,EAAY,KAChB,OAAI,KAAK,IAAI8X,EAAO,CAAC,EAAIo3N,EACrBlvO,EAAY,IAEP,KAAK,IAAI8X,EAAO,CAAC,EAAIo3N,IAC1BlvO,EAAY,KAETA,CACX,CCxbA,SAASmvO,IAAQ1oQ,EAAO,CACpB,KAAM,CAAE,aAAc2oQ,EAAmB,cAAAhuB,CAAa,EAAK36O,EACrD4oQ,EAAe9sB,GAAY,IAAM,IAAIyqB,IAA0B5rB,CAAa,CAAC,EAGnF57L,YAAU,IAAM4pN,GAAqBA,EAAkB,UAAUC,CAAY,EAAG,CAACA,EAAcD,CAAiB,CAAC,EAEjH5pN,EAAS,UAAC,IAAM6pN,EAAa,aAAc,EAAE,CAACA,CAAY,CAAC,CAC/D,CCCA,SAASC,IAAc,CAAE,MAAAC,EAAO,WAAAC,EAAY,SAAAC,EAAU,kBAAAC,EAAmB,cAAAtuB,GAAkB,CACvF,MAAMuuB,EAAeJ,GAASC,GAAcC,GAAYC,EAClDE,EAAa/5M,SAAO,IAAI,EACxB,CAAE,mBAAAyxM,CAAkB,EAAKlgP,EAAU,WAACo5N,EAAmB,EACvDxsE,EAAW,CACb,eAAgB07F,EAChB,QAASF,EACT,OAAQD,EACR,MAAO,CAACriQ,EAAOmwN,IAAS,CACpBuyC,EAAW,QAAU,KACrBH,GAAYA,EAASviQ,EAAOmwN,CAAI,CACnC,CACT,EACI73K,YAAU,IAAM,CACRoqN,EAAW,UAAY,MACvBA,EAAW,QAAQ,eAAe57F,CAAQ,CAEtD,CAAK,EACD,SAAShtB,EAAc95I,EAAO,CAC1B0iQ,EAAW,QAAU,IAAIvI,GAAWn6P,EAAO8mK,EAAU,CACjD,mBAAAszF,CACZ,CAAS,CACJ,CACDla,GAAgBhM,EAAe,cAAeuuB,GAAgB3oH,CAAa,EAC3EqnG,GAAiB,IAAMuhB,EAAW,SAAWA,EAAW,QAAQ,IAAG,CAAE,CACzE,CCvCA,MAAMliB,IAAO,CACT,IAAKiD,GAAwB2e,GAAa,EAC1C,KAAM3e,GAAwBwe,GAAO,CACzC,ECLA,SAAS/pB,GAAcx+O,EAAO,CAC1B,OAAO,OAAOA,GAAU,UAAYA,EAAM,WAAW,QAAQ,CACjE,CAUA,MAAMipQ,GAAmB,uDACzB,SAASC,IAAiB3wO,EAAS,CAC/B,MAAMs/B,EAAQoxM,GAAiB,KAAK1wO,CAAO,EAC3C,GAAI,CAACs/B,EACD,MAAO,IACX,KAAM,EAAG4rH,EAAO6jD,CAAQ,EAAIzvK,EAC5B,MAAO,CAAC4rH,EAAO6jD,CAAQ,CAC3B,CAEA,SAAS6hC,GAAiB5wO,EAAS/zB,EAAS4kQ,EAAQ,EAAG,CAEnD,KAAM,CAAC3lF,EAAO6jD,CAAQ,EAAI4hC,IAAiB3wO,CAAO,EAElD,GAAI,CAACkrJ,EACD,OAEJ,MAAMimC,EAAW,OAAO,iBAAiBllN,CAAO,EAAE,iBAAiBi/K,CAAK,EACxE,OAAIimC,EACOA,EAAS,OAEX80B,GAAclX,CAAQ,EAEpB6hC,GAAiB7hC,EAAU9iO,EAAS4kQ,EAAQ,CAAC,EAG7C9hC,CAEf,CAMA,SAAS+hC,IAAoB7uB,EAAe,CAAE,GAAGpyO,CAAM,EAAIu8O,EAAe,CACtE,MAAMngP,EAAUg2O,EAAc,QAC9B,GAAI,EAAEh2O,aAAmB,SACrB,MAAO,CAAE,OAAA4D,EAAQ,cAAAu8O,GAGjBA,IACAA,EAAgB,CAAE,GAAGA,IAGzBnK,EAAc,OAAO,QAASx6O,GAAU,CACpC,MAAMu4B,EAAUv4B,EAAM,MACtB,GAAI,CAACw+O,GAAcjmN,CAAO,EACtB,OACJ,MAAMmxL,EAAWy/C,GAAiB5wO,EAAS/zB,CAAO,EAC9CklN,GACA1pN,EAAM,IAAI0pN,CAAQ,CAC9B,CAAK,EAGD,UAAWj0M,KAAOrN,EAAQ,CACtB,MAAMmwB,EAAUnwB,EAAOqN,CAAG,EAC1B,GAAI,CAAC+oO,GAAcjmN,CAAO,EACtB,SACJ,MAAMmxL,EAAWy/C,GAAiB5wO,EAAS/zB,CAAO,EAC7CklN,IAGLthN,EAAOqN,CAAG,EAAIi0M,EAIVi7B,GAAiBA,EAAclvO,CAAG,IAAM,SACxCkvO,EAAclvO,CAAG,EAAI8iB,GAE5B,CACD,MAAO,CAAE,OAAAnwB,EAAQ,cAAAu8O,EACrB,CC5EA,MAAM2kB,IAAiB,IAAI,IAAI,CAC3B,QACA,SACA,MACA,OACA,QACA,SACA,IACA,GACJ,CAAC,EACKC,GAAmB9zP,GAAQ6zP,IAAe,IAAI7zP,CAAG,EACjD+zP,IAAoBphQ,GACf,OAAO,KAAKA,CAAM,EAAE,KAAKmhQ,EAAe,EAE7CE,GAAsB,CAACzpQ,EAAOf,IAAO,CAGvCe,EAAM,IAAIf,EAAI,EAAK,EACnBe,EAAM,IAAIf,CAAE,CAChB,EACMyqQ,GAAiB9zR,GAAMA,IAAMiuH,IAAUjuH,IAAMspQ,GACnD,IAAIyqB,IACH,SAAUA,EAAsB,CAC7BA,EAAqB,MAAW,QAChCA,EAAqB,OAAY,SACjCA,EAAqB,KAAU,OAC/BA,EAAqB,MAAW,QAChCA,EAAqB,IAAS,MAC9BA,EAAqB,OAAY,QACrC,GAAGA,KAAyBA,GAAuB,CAAE,EAAC,EACtD,MAAMC,GAAmB,CAACC,EAAQ3nG,IAAQ,WAAW2nG,EAAO,MAAM,IAAI,EAAE3nG,CAAG,CAAC,EACtE4nG,GAAyB,CAACx7D,EAAMy2B,IAAS,CAACglC,EAAO,CAAE,UAAAzqN,KAAgB,CACrE,GAAIA,IAAc,QAAU,CAACA,EACzB,MAAO,GACX,MAAM0qN,EAAW1qN,EAAU,MAAM,oBAAoB,EACrD,GAAI0qN,EACA,OAAOJ,GAAiBI,EAAS,CAAC,EAAGjlC,CAAI,EAExC,CACD,MAAM8kC,EAASvqN,EAAU,MAAM,kBAAkB,EACjD,OAAIuqN,EACOD,GAAiBC,EAAO,CAAC,EAAGv7D,CAAI,EAGhC,CAEd,CACL,EACM4vC,IAAgB,IAAI,IAAI,CAAC,IAAK,IAAK,GAAG,CAAC,EACvC+rB,IAAgCvsB,GAAmB,OAAQjoO,GAAQ,CAACyoO,IAAc,IAAIzoO,CAAG,CAAC,EAChG,SAASy0P,IAAgC1vB,EAAe,CACpD,MAAM2vB,EAAoB,GAC1B,OAAAF,IAA8B,QAASx0P,GAAQ,CAC3C,MAAMzV,EAAQw6O,EAAc,SAAS/kO,CAAG,EACpCzV,IAAU,SACVmqQ,EAAkB,KAAK,CAAC10P,EAAKzV,EAAM,IAAK,EAAC,EACzCA,EAAM,IAAIyV,EAAI,WAAW,OAAO,EAAI,EAAI,CAAC,EAErD,CAAK,EAEG00P,EAAkB,QAClB3vB,EAAc,OAAM,EACjB2vB,CACX,CACA,MAAMC,GAAmB,CAErB,MAAO,CAAC,CAAE,EAAAt0R,CAAG,EAAE,CAAE,YAAAu0R,EAAc,IAAK,aAAAC,EAAe,GAAG,IAAOx0R,EAAE,IAAMA,EAAE,IAAM,WAAWu0R,CAAW,EAAI,WAAWC,CAAY,EAC9H,OAAQ,CAAC,CAAE,EAAAv0R,CAAG,EAAE,CAAE,WAAAw0R,EAAa,IAAK,cAAAC,EAAgB,GAAG,IAAOz0R,EAAE,IAAMA,EAAE,IAAM,WAAWw0R,CAAU,EAAI,WAAWC,CAAa,EAC/H,IAAK,CAACT,EAAO,CAAE,IAAAxzO,CAAG,IAAO,WAAWA,CAAG,EACvC,KAAM,CAACwzO,EAAO,CAAE,KAAAzzO,CAAI,IAAO,WAAWA,CAAI,EAC1C,OAAQ,CAAC,CAAE,EAAAvgD,CAAG,EAAE,CAAE,IAAAwgD,CAAK,IAAK,WAAWA,CAAG,GAAKxgD,EAAE,IAAMA,EAAE,KACzD,MAAO,CAAC,CAAE,EAAAD,CAAG,EAAE,CAAE,KAAAwgD,CAAM,IAAK,WAAWA,CAAI,GAAKxgD,EAAE,IAAMA,EAAE,KAE1D,EAAGg0R,GAAuB,EAAG,EAAE,EAC/B,EAAGA,GAAuB,EAAG,EAAE,CACnC,EACMW,IAA2B,CAACriQ,EAAQoyO,EAAekwB,IAAgB,CACrE,MAAMC,EAAanwB,EAAc,qBAC3Bh2O,EAAUg2O,EAAc,QACxBowB,EAAuB,iBAAiBpmQ,CAAO,EAC/C,CAAE,QAAA2xC,CAAS,EAAGy0N,EACd5uG,EAAS,GAGX7lH,IAAY,QACZqkM,EAAc,eAAe,UAAWpyO,EAAO,SAAW,OAAO,EAKrEsiQ,EAAY,QAASj1P,GAAQ,CACzBumJ,EAAOvmJ,CAAG,EAAI20P,GAAiB30P,CAAG,EAAEk1P,EAAYC,CAAoB,CAC5E,CAAK,EAEDpwB,EAAc,OAAM,EACpB,MAAMqwB,EAAarwB,EAAc,qBACjC,OAAAkwB,EAAY,QAASj1P,GAAQ,CAGzB,MAAMzV,EAAQw6O,EAAc,SAAS/kO,CAAG,EACxCg0P,GAAoBzpQ,EAAOg8J,EAAOvmJ,CAAG,CAAC,EACtCrN,EAAOqN,CAAG,EAAI20P,GAAiB30P,CAAG,EAAEo1P,EAAYD,CAAoB,CAC5E,CAAK,EACMxiQ,CACX,EACM0iQ,IAAmC,CAACtwB,EAAepyO,EAAQ4zJ,EAAS,CAAE,EAAE2oF,EAAgB,KAAO,CACjGv8O,EAAS,CAAE,GAAGA,GACdu8O,EAAgB,CAAE,GAAGA,GACrB,MAAMomB,EAAuB,OAAO,KAAK3iQ,CAAM,EAAE,OAAOmhQ,EAAe,EAGvE,IAAIyB,EAAyB,GACzBC,EAAsC,GAC1C,MAAMC,EAAuB,GA4E7B,GA3EAH,EAAqB,QAASt1P,GAAQ,CAClC,MAAMzV,EAAQw6O,EAAc,SAAS/kO,CAAG,EACxC,GAAI,CAAC+kO,EAAc,SAAS/kO,CAAG,EAC3B,OACJ,IAAIvW,EAAO88J,EAAOvmJ,CAAG,EACjB01P,EAAWlc,GAAuB/vP,CAAI,EAC1C,MAAMD,EAAKmJ,EAAOqN,CAAG,EACrB,IAAI21P,EAKJ,GAAI1nB,GAAkBzkP,CAAE,EAAG,CACvB,MAAMosQ,EAAepsQ,EAAG,OAClBqsQ,EAAYrsQ,EAAG,CAAC,IAAM,KAAO,EAAI,EACvCC,EAAOD,EAAGqsQ,CAAS,EACnBH,EAAWlc,GAAuB/vP,CAAI,EACtC,QAASJ,EAAIwsQ,EAAWxsQ,EAAIusQ,EAAcvsQ,IACjCssQ,EAMD//G,GAAU4jG,GAAuBhwP,EAAGH,CAAC,CAAC,IAAMssQ,CAAgD,EAL5FA,EAASnc,GAAuBhwP,EAAGH,CAAC,CAAC,CAQhD,MAEGssQ,EAASnc,GAAuBhwP,CAAE,EAEtC,GAAIksQ,IAAaC,EAGb,GAAI1B,GAAcyB,CAAQ,GAAKzB,GAAc0B,CAAM,EAAG,CAClD,MAAM7yO,EAAUv4B,EAAM,MAClB,OAAOu4B,GAAY,UACnBv4B,EAAM,IAAI,WAAWu4B,CAAO,CAAC,EAE7B,OAAOt5B,GAAO,SACdmJ,EAAOqN,CAAG,EAAI,WAAWxW,CAAE,EAEtB,MAAM,QAAQA,CAAE,GAAKmsQ,IAAWlsB,KACrC92O,EAAOqN,CAAG,EAAIxW,EAAG,IAAI,UAAU,EAEtC,MACSksQ,GAAa,MAAuCA,EAAS,YAClEC,GAAW,MAAqCA,EAAO,aACvDlsQ,IAAS,GAAKD,IAAO,GAGlBC,IAAS,EACTc,EAAM,IAAIorQ,EAAO,UAAUlsQ,CAAI,CAAC,EAGhCkJ,EAAOqN,CAAG,EAAI01P,EAAS,UAAUlsQ,CAAE,GAMlCgsQ,IACDD,EACId,IAAgC1vB,CAAa,EACjDywB,EAAsC,IAE1CC,EAAqB,KAAKz1P,CAAG,EAC7BkvO,EAAclvO,CAAG,EACbkvO,EAAclvO,CAAG,IAAM,OACjBkvO,EAAclvO,CAAG,EACjBrN,EAAOqN,CAAG,EACpBg0P,GAAoBzpQ,EAAOf,CAAE,EAG7C,CAAK,EACGisQ,EAAqB,OAAQ,CAC7B,MAAMpiL,EAAUoiL,EAAqB,QAAQ,QAAQ,GAAK,EACpD,OAAO,YACP,KACAK,EAAkBd,IAAyBriQ,EAAQoyO,EAAe0wB,CAAoB,EAE5F,OAAIF,EAAuB,QACvBA,EAAuB,QAAQ,CAAC,CAACv1P,EAAKzV,CAAK,IAAM,CAC7Cw6O,EAAc,SAAS/kO,CAAG,EAAE,IAAIzV,CAAK,CACrD,CAAa,EAGLw6O,EAAc,OAAM,EAEhBr/E,IAAaryE,IAAY,MACzB,OAAO,SAAS,CAAE,IAAKA,CAAS,GAE7B,CAAE,OAAQyiL,EAAiB,cAAA5mB,EACrC,KAEG,OAAO,CAAE,OAAAv8O,EAAQ,cAAAu8O,EAEzB,EAQA,SAAS6mB,IAAehxB,EAAepyO,EAAQ4zJ,EAAQ2oF,EAAe,CAClE,OAAO6kB,IAAiBphQ,CAAM,EACxB0iQ,IAAiCtwB,EAAepyO,EAAQ4zJ,EAAQ2oF,CAAa,EAC7E,CAAE,OAAAv8O,EAAQ,cAAAu8O,EACpB,CChOA,MAAM8mB,IAAkB,CAACjxB,EAAepyO,EAAQ4zJ,EAAQ2oF,IAAkB,CACtE,MAAMj7B,EAAW2/C,IAAoB7uB,EAAepyO,EAAQu8O,CAAa,EACzE,OAAAv8O,EAASshN,EAAS,OAClBi7B,EAAgBj7B,EAAS,cAClB8hD,IAAehxB,EAAepyO,EAAQ4zJ,EAAQ2oF,CAAa,CACtE,ECXM+mB,GAAuB,CAAE,QAAS,MAClCC,GAA2B,CAAE,QAAS,EAAO,ECCnD,SAASC,KAA2B,CAEhC,GADAD,GAAyB,QAAU,GAC/B,EAACxwG,GAEL,GAAI,OAAO,WAAY,CACnB,MAAM0wG,EAAmB,OAAO,WAAW,0BAA0B,EAC/DC,EAA8B,IAAOJ,GAAqB,QAAUG,EAAiB,QAC3FA,EAAiB,YAAYC,CAA2B,EACxDA,GACH,MAEGJ,GAAqB,QAAU,EAEvC,CCXA,SAASK,IAA4BvnQ,EAAS6qD,EAAMsV,EAAM,CACtD,KAAM,CAAE,WAAAg5L,CAAY,EAAGtuM,EACvB,UAAW55C,KAAO45C,EAAM,CACpB,MAAM/nD,EAAY+nD,EAAK55C,CAAG,EACpBvG,EAAYy1D,EAAKlvD,CAAG,EAC1B,GAAIqoO,GAAcx2O,CAAS,EAKvB9C,EAAQ,SAASiR,EAAKnO,CAAS,EAC3B0oP,GAAwB2N,CAAU,GAClCA,EAAW,IAAIloP,CAAG,UAUjBqoO,GAAc5uO,CAAS,EAK5B1K,EAAQ,SAASiR,EAAKk3O,GAAYrlP,EAAW,CAAE,MAAO9C,CAAS,EAAC,EAC5DwrP,GAAwB2N,CAAU,GAClCA,EAAW,OAAOloP,CAAG,UAGpBvG,IAAc5H,EAMnB,GAAI9C,EAAQ,SAASiR,CAAG,EAAG,CACvB,MAAMu2P,EAAgBxnQ,EAAQ,SAASiR,CAAG,EAE1C,CAACu2P,EAAc,aAAeA,EAAc,IAAI1kQ,CAAS,CAC5D,KACI,CACD,MAAM2kQ,EAAcznQ,EAAQ,eAAeiR,CAAG,EAC9CjR,EAAQ,SAASiR,EAAKk3O,GAAYsf,IAAgB,OAAYA,EAAc3kQ,CAAS,CAAC,CACzF,CAER,CAED,UAAWmO,KAAOkvD,EACVtV,EAAK55C,CAAG,IAAM,QACdjR,EAAQ,YAAYiR,CAAG,EAE/B,OAAO45C,CACX,CCxCA,MAAM68M,GAAe,OAAO,KAAK1wB,EAAkB,EAC7C2wB,IAAcD,GAAa,OAC3BE,GAAoB,CACtB,iBACA,oBACA,SACA,UACA,sBACA,gBACA,uBACA,yBACJ,EAKA,MAAMC,GAAc,CAChB,YAAY,CAAE,OAAA3wO,EAAQ,MAAA77B,EAAO,oBAAAy6O,EAAqB,YAAAJ,CAAc,EAAEtnN,EAAU,GAAI,CAK5E,KAAK,QAAU,KAIf,KAAK,SAAW,IAAI,IAIpB,KAAK,cAAgB,GACrB,KAAK,sBAAwB,GAQ7B,KAAK,mBAAqB,KAM1B,KAAK,OAAS,IAAI,IAKlB,KAAK,UAAY,GAKjB,KAAK,mBAAqB,IAAI,IAM9B,KAAK,iBAAmB,GAIxB,KAAK,OAAS,GAMd,KAAK,uBAAyB,GAC9B,KAAK,aAAe,IAAM,KAAK,OAAO,SAAU,KAAK,YAAY,EACjE,KAAK,OAAS,IAAM,CACX,KAAK,UAEV,KAAK,aAAY,EACjB,KAAK,eAAe,KAAK,QAAS,KAAK,YAAa,KAAK,MAAM,MAAO,KAAK,UAAU,EACjG,EACQ,KAAK,eAAiB,IAAM64N,GAAK,OAAO,KAAK,OAAQ,GAAO,EAAI,EAChE,KAAM,CAAE,aAAAjM,EAAc,YAAAyD,CAAa,EAAG/I,EACtC,KAAK,aAAesF,EACpB,KAAK,WAAa,CAAE,GAAGA,GACvB,KAAK,cAAgB3/O,EAAM,QAAU,CAAE,GAAG2/O,CAAc,EAAG,GAC3D,KAAK,YAAcyD,EACnB,KAAK,OAASvnN,EACd,KAAK,MAAQ77B,EACb,KAAK,MAAQ67B,EAASA,EAAO,MAAQ,EAAI,EACzC,KAAK,oBAAsB4+M,EAC3B,KAAK,QAAU1nN,EACf,KAAK,sBAAwBmoN,GAAsBl7O,CAAK,EACxD,KAAK,cAAgBm7O,GAAcn7O,CAAK,EACpC,KAAK,gBACL,KAAK,gBAAkB,IAAI,KAE/B,KAAK,uBAAyB,GAAQ67B,GAAUA,EAAO,SAWvD,KAAM,CAAE,WAAAiiO,EAAY,GAAG2O,CAAmB,EAAK,KAAK,4BAA4BzsQ,CAAK,EACrF,UAAW4V,KAAO62P,EAAqB,CACnC,MAAMtsQ,EAAQssQ,EAAoB72P,CAAG,EACjC+pO,EAAa/pO,CAAG,IAAM,QAAaqoO,GAAc99O,CAAK,IACtDA,EAAM,IAAIw/O,EAAa/pO,CAAG,EAAG,EAAK,EAC9Bu6O,GAAwB2N,CAAU,GAClCA,EAAW,IAAIloP,CAAG,EAG7B,CACJ,CAQD,4BAA4Bu5C,EAAQ,CAChC,MAAO,EACV,CACD,MAAM8sC,EAAU,CACZ,IAAIh7F,EACJ,KAAK,QAAUg7F,EACX,KAAK,YACL,KAAK,WAAW,MAAMA,CAAQ,EAE9B,KAAK,QAAU,KAAK,eAAiB,CAAC,KAAK,wBAC3C,KAAK,uBAAyBh7F,EAAK,KAAK,UAAY,MAAQA,IAAO,OAAS,OAASA,EAAG,gBAAgB,IAAI,GAEhH,KAAK,OAAO,QAAQ,CAACd,EAAOyV,IAAQ,KAAK,kBAAkBA,EAAKzV,CAAK,CAAC,EACjE2rQ,GAAyB,SAC1BC,MAEJ,KAAK,mBACD,KAAK,sBAAwB,QACvB,GACA,KAAK,sBAAwB,SACzB,GACAF,GAAqB,QAC/B,KAAK,QACL,KAAK,OAAO,SAAS,IAAI,IAAI,EACjC,KAAK,SAAS,KAAK,KAAK,CAC3B,CACD,SAAU,CACN,IAAI5qQ,EAAI2J,EAAI25C,GACXtjD,EAAK,KAAK,cAAgB,MAAQA,IAAO,QAAkBA,EAAG,QAAO,EACtE8qP,GAAW,OAAO,KAAK,YAAY,EACnCA,GAAW,OAAO,KAAK,MAAM,EAC7B,KAAK,mBAAmB,QAASpwN,GAAWA,EAAQ,IACnD/wB,EAAK,KAAK,yBAA2B,MAAQA,IAAO,QAAkBA,EAAG,KAAK,IAAI,GAClF25C,EAAK,KAAK,UAAY,MAAQA,IAAO,QAAkBA,EAAG,SAAS,OAAO,IAAI,EAC/E,UAAW3uC,KAAO,KAAK,OACnB,KAAK,OAAOA,CAAG,EAAE,MAAK,EAE1B,KAAK,QAAU,IAClB,CACD,kBAAkBA,EAAKzV,EAAO,CAC1B,MAAMusQ,EAAmB5uB,GAAe,IAAIloO,CAAG,EACzC+2P,EAAiBxsQ,EAAM,GAAG,SAAWisQ,GAAgB,CACvD,KAAK,aAAax2P,CAAG,EAAIw2P,EACzB,KAAK,MAAM,UACPxgB,GAAK,OAAO,KAAK,aAAc,GAAO,EAAI,EAC1C8gB,GAAoB,KAAK,aACzB,KAAK,WAAW,iBAAmB,GAEnD,CAAS,EACKE,EAAwBzsQ,EAAM,GAAG,gBAAiB,KAAK,cAAc,EAC3E,KAAK,mBAAmB,IAAIyV,EAAK,IAAM,CACnC+2P,IACAC,GACZ,CAAS,CACJ,CACD,iBAAiBh4D,EAAO,CAIpB,MAAI,CAAC,KAAK,SACN,CAAC,KAAK,0BACN,KAAK,OAASA,EAAM,KACb,EACJ,KAAK,yBAAyB,KAAK,QAASA,EAAM,OAAO,CACnE,CACD,aAAai4D,EAAermE,EAAU81C,EAAmBQ,EAAcgwB,EAA2B9vB,EAA0B,CACxH,MAAMnB,EAAW,GAQjB,QAAS58O,EAAI,EAAGA,EAAIqtQ,IAAartQ,IAAK,CAClC,MAAMkG,EAAOknQ,GAAaptQ,CAAC,EACrB,CAAE,UAAA8tQ,EAAW,UAAAv6P,CAAW,EAAGmpO,GAAmBx2O,CAAI,EAMpD4nQ,EAAUF,CAAa,GAAKr6P,GAC5BqpO,EAAS,KAAK7oO,EAAa,cAACR,EAAW,CACnC,IAAKrN,EACL,GAAG0nQ,EACH,cAAe,IAClB,EAAC,CAET,CACD,GAAI,CAAC,KAAK,YAAcC,EAA2B,CAC/C,KAAK,WAAa,IAAIA,EAA0BhwB,EAAc,KAAK,aAAc,KAAK,QAAU,KAAK,OAAO,UAAU,EACtH,KAAM,CAAE,SAAAF,EAAU,OAAAoB,EAAQ,KAAAiJ,EAAM,gBAAAkgB,EAAiB,aAAA6F,CAAc,EAAGH,EAClE,KAAK,WAAW,WAAW,CACvB,SAAAjwB,EACA,OAAAoB,EACA,oBAAqB,EAAQiJ,GACxBkgB,GAAmBvsB,GAAYusB,CAAe,EACnD,cAAe,KACf,eAAgB,IAAM,KAAK,eAAgB,EAQ3C,cAAe,OAAOnpB,GAAW,SAAWA,EAAS,OACrD,uBAAwBhB,EACxB,aAAAgwB,CAChB,CAAa,CACJ,CACD,OAAOnxB,CACV,CACD,cAAe,CACX,KAAK,MAAM,KAAK,YAAa,KAAK,aAAc,KAAK,QAAS,KAAK,KAAK,CAC3E,CAMD,oBAAqB,CACjB,OAAO,KAAK,QACN,KAAK,2BAA2B,KAAK,QAAS,KAAK,KAAK,EACxDkoB,IACT,CACD,eAAenuP,EAAK,CAChB,OAAO,KAAK,aAAaA,CAAG,CAC/B,CACD,eAAeA,EAAKzV,EAAO,CACvB,KAAK,aAAayV,CAAG,EAAIzV,CAC5B,CAQD,qBAAqBoI,EAAQ0kQ,EAAY,GAAM,CAC3C,OAAO,KAAK,iCAAiC1kQ,EAAQ,KAAK,MAAO0kQ,CAAS,CAC7E,CAKD,SAASjtQ,EAAO,EACRA,EAAM,mBAAqB,KAAK,MAAM,oBACtC,KAAK,eAAc,EAEvB,KAAK,MAAQA,EAIb,QAASf,EAAI,EAAGA,EAAIstQ,GAAkB,OAAQttQ,IAAK,CAC/C,MAAM2W,EAAM22P,GAAkBttQ,CAAC,EAC3B,KAAK,uBAAuB2W,CAAG,IAC/B,KAAK,uBAAuBA,CAAG,IAC/B,OAAO,KAAK,uBAAuBA,CAAG,GAE1C,MAAMgxE,EAAW5mF,EAAM,KAAO4V,CAAG,EAC7BgxE,IACA,KAAK,uBAAuBhxE,CAAG,EAAI,KAAK,GAAGA,EAAKgxE,CAAQ,EAE/D,CACD,KAAK,iBAAmBslL,IAA4B,KAAM,KAAK,4BAA4BlsQ,CAAK,EAAG,KAAK,gBAAgB,CAC3H,CACD,UAAW,CACP,OAAO,KAAK,KACf,CAID,WAAWmF,EAAM,CACb,IAAIlE,EACJ,OAAQA,EAAK,KAAK,MAAM,YAAc,MAAQA,IAAO,OAAS,OAASA,EAAGkE,CAAI,CACjF,CAID,sBAAuB,CACnB,OAAO,KAAK,MAAM,UACrB,CACD,uBAAwB,CACpB,OAAO,KAAK,MAAM,kBACrB,CACD,uBAAwB,CACpB,IAAIlE,EACJ,OAAO,KAAK,cAAgB,MAAQA,EAAK,KAAK,UAAY,MAAQA,IAAO,OAAS,OAASA,EAAG,sBAAqB,CACtH,CACD,kBAAkBisQ,EAAgB,GAAO,CACrC,IAAIjsQ,EAAI2J,EACR,GAAIsiQ,EACA,OAAQjsQ,EAAK,KAAK,UAAY,MAAQA,IAAO,OAAS,OAASA,EAAG,kBAAiB,EACvF,GAAI,CAAC,KAAK,sBAAuB,CAC7B,MAAMf,IAAY0K,EAAK,KAAK,UAAY,MAAQA,IAAO,OAAS,OAASA,EAAG,kBAAiB,IAAO,GACpG,OAAI,KAAK,MAAM,UAAY,SACvB1K,EAAQ,QAAU,KAAK,MAAM,SAE1BA,CACV,CACD,MAAMA,EAAU,GAChB,QAASjB,EAAI,EAAGA,EAAIkuQ,IAAiBluQ,IAAK,CACtC,MAAMkG,EAAO81O,GAAah8O,CAAC,EACrB+H,EAAO,KAAK,MAAM7B,CAAI,GACxB41O,GAAe/zO,CAAI,GAAKA,IAAS,MACjC9G,EAAQiF,CAAI,EAAI6B,EAEvB,CACD,OAAO9G,CACV,CAID,gBAAgBmD,EAAO,CACnB,IAAIpC,EACJ,MAAMmsQ,EAAqB,KAAK,wBAChC,GAAIA,EACA,OAACnsQ,EAAKmsQ,EAAmB,mBAAqB,MAAQnsQ,IAAO,QAAkBA,EAAG,IAAIoC,CAAK,EACpF,IAAM+pQ,EAAmB,gBAAgB,OAAO/pQ,CAAK,CAEnE,CAID,SAASuS,EAAKzV,EAAO,CAEb,KAAK,SAASyV,CAAG,GACjB,KAAK,YAAYA,CAAG,EACxB,KAAK,OAAO,IAAIA,EAAKzV,CAAK,EAC1B,KAAK,aAAayV,CAAG,EAAIzV,EAAM,IAAG,EAClC,KAAK,kBAAkByV,EAAKzV,CAAK,CACpC,CAID,YAAYyV,EAAK,CACb,IAAI3U,EACJ,KAAK,OAAO,OAAO2U,CAAG,GACrB3U,EAAK,KAAK,mBAAmB,IAAI2U,CAAG,KAAO,MAAQ3U,IAAO,QAAkBA,EAAE,EAC/E,KAAK,mBAAmB,OAAO2U,CAAG,EAClC,OAAO,KAAK,aAAaA,CAAG,EAC5B,KAAK,2BAA2BA,EAAK,KAAK,WAAW,CACxD,CAID,SAASA,EAAK,CACV,OAAO,KAAK,OAAO,IAAIA,CAAG,CAC7B,CAKD,SAASA,EAAK/G,EAAc,CACxB,GAAI,KAAK,MAAM,QAAU,KAAK,MAAM,OAAO+G,CAAG,EAC1C,OAAO,KAAK,MAAM,OAAOA,CAAG,EAEhC,IAAIzV,EAAQ,KAAK,OAAO,IAAIyV,CAAG,EAC/B,OAAIzV,IAAU,QAAa0O,IAAiB,SACxC1O,EAAQ2sP,GAAYj+O,EAAc,CAAE,MAAO,IAAM,GACjD,KAAK,SAAS+G,EAAKzV,CAAK,GAErBA,CACV,CAMD,UAAUyV,EAAK,CACX,OAAO,KAAK,aAAaA,CAAG,IAAM,QAAa,CAAC,KAAK,QAC/C,KAAK,aAAaA,CAAG,EACrB,KAAK,sBAAsB,KAAK,QAASA,EAAK,KAAK,OAAO,CACnE,CAKD,cAAcA,EAAKzV,EAAO,CACtB,KAAK,WAAWyV,CAAG,EAAIzV,CAC1B,CAKD,cAAcyV,EAAK,CACf,IAAI3U,EACJ,KAAM,CAAE,QAAAo6O,CAAO,EAAK,KAAK,MACnBgyB,EAAmB,OAAOhyB,GAAY,UAAY,OAAOA,GAAY,UACpEp6O,EAAKyiP,GAAwB,KAAK,MAAOrI,CAAO,KAAO,MAAQp6O,IAAO,OAAS,OAASA,EAAG2U,CAAG,EAC/F,OAIN,GAAIylO,GAAWgyB,IAAqB,OAChC,OAAOA,EAMX,MAAM9kQ,EAAS,KAAK,uBAAuB,KAAK,MAAOqN,CAAG,EAC1D,OAAIrN,IAAW,QAAa,CAAC01O,GAAc11O,CAAM,EACtCA,EAKJ,KAAK,cAAcqN,CAAG,IAAM,QAC/By3P,IAAqB,OACnB,OACA,KAAK,WAAWz3P,CAAG,CAC5B,CACD,GAAGghG,EAAWjwG,EAAU,CACpB,OAAK,KAAK,OAAOiwG,CAAS,IACtB,KAAK,OAAOA,CAAS,EAAI,IAAIy1I,IAE1B,KAAK,OAAOz1I,CAAS,EAAE,IAAIjwG,CAAQ,CAC7C,CACD,OAAOiwG,KAAcryG,EAAM,CACvB,IAAItD,GACHA,EAAK,KAAK,OAAO21G,CAAS,KAAO,MAAQ31G,IAAO,QAAkBA,EAAG,OAAO,GAAGsD,CAAI,CACvF,CACL,CACA,MAAM02O,GAAe,CAAC,UAAW,GAAGujB,EAAoB,EAClD2O,IAAkBlyB,GAAa,OCndrC,MAAMqyB,WAAyBd,GAAc,CACzC,yBAAyBn2R,EAAGK,EAAG,CAM3B,OAAOL,EAAE,wBAAwBK,CAAC,EAAI,EAAI,EAAI,EACjD,CACD,uBAAuBspB,EAAO4V,EAAK,CAC/B,IAAI3U,EACJ,OAAQA,EAAKjB,EAAM,SAAW,MAAQiB,IAAO,OAAS,OAASA,EAAG2U,CAAG,CACxE,CACD,2BAA2BA,EAAK,CAAE,KAAAgqO,EAAM,MAAA/+N,CAAK,EAAI,CAC7C,OAAO++N,EAAKhqO,CAAG,EACf,OAAOiL,EAAMjL,CAAG,CACnB,CACD,iCAAiC,CAAE,WAAAmvO,EAAY,cAAAD,EAAe,GAAGv8O,CAAM,EAAI,CAAE,gBAAAglQ,CAAiB,EAAEhjH,EAAW,CACvG,IAAI4R,EAAS8zF,IAAU1nP,EAAQw8O,GAAc,GAAI,IAAI,EAYrD,GARIwoB,IACIzoB,IACAA,EAAgByoB,EAAgBzoB,CAAa,GAC7Cv8O,IACAA,EAASglQ,EAAgBhlQ,CAAM,GAC/B4zJ,IACAA,EAASoxG,EAAgBpxG,CAAM,IAEnC5R,EAAW,CACXqlG,IAAwB,KAAMrnP,EAAQ4zJ,CAAM,EAC5C,MAAMg+D,EAASyxC,IAAgB,KAAMrjQ,EAAQ4zJ,EAAQ2oF,CAAa,EAClEA,EAAgB3qB,EAAO,cACvB5xN,EAAS4xN,EAAO,MACnB,CACD,MAAO,CACH,WAAA4qB,EACA,cAAAD,EACA,GAAGv8O,CACf,CACK,CACL,CCrCA,SAASguC,IAAiB5xC,EAAS,CAC/B,OAAO,OAAO,iBAAiBA,CAAO,CAC1C,CACA,MAAM6oQ,YAA0BF,EAAiB,CAC7C,sBAAsBrxK,EAAUrmF,EAAK,CACjC,GAAIkoO,GAAe,IAAIloO,CAAG,EAAG,CACzB,MAAM63P,EAAc1e,GAAoBn5O,CAAG,EAC3C,OAAO63P,GAAcA,EAAY,SAAW,CAC/C,KACI,CACD,MAAM3yN,EAAgBvE,IAAiB0lD,CAAQ,EACzC97F,GAASw+O,GAAc/oO,CAAG,EAC1BklC,EAAc,iBAAiBllC,CAAG,EAClCklC,EAAcllC,CAAG,IAAM,EAC7B,OAAO,OAAOzV,GAAU,SAAWA,EAAM,KAAI,EAAKA,CACrD,CACJ,CACD,2BAA2B87F,EAAU,CAAE,mBAAA4kK,GAAsB,CACzD,OAAOqF,GAAmBjqK,EAAU4kK,CAAkB,CACzD,CACD,MAAMzd,EAAazD,EAAc5sN,EAAS/yB,EAAO,CAC7C0/O,GAAgB0D,EAAazD,EAAc5sN,EAAS/yB,EAAM,iBAAiB,CAC9E,CACD,4BAA4BA,EAAO,CAC/B,OAAOsjP,GAA4BtjP,CAAK,CAC3C,CACD,eAAei8F,EAAUmnJ,EAAa1mF,EAAWumF,EAAY,CACzDD,GAAW/mJ,EAAUmnJ,EAAa1mF,EAAWumF,CAAU,CAC1D,CACL,CC3BA,MAAMyqB,YAAyBJ,EAAiB,CAC5C,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,SAAW,EACnB,CACD,uBAAuBttQ,EAAO4V,EAAK,CAC/B,OAAO5V,EAAM4V,CAAG,CACnB,CACD,sBAAsBqmF,EAAUrmF,EAAK,CACjC,IAAI3U,EACJ,OAAI68O,GAAe,IAAIloO,CAAG,IACb3U,EAAK8tP,GAAoBn5O,CAAG,KAAO,MAAQ3U,IAAO,OAAS,OAASA,EAAG,UAAY,GAEhG2U,EAAOstO,GAAoB,IAAIttO,CAAG,EAAuBA,EAAnBmtO,GAAYntO,CAAG,EAC9CqmF,EAAS,aAAarmF,CAAG,EACnC,CACD,4BAA6B,CACzB,OAAOmuP,GAAS,CACnB,CACD,4BAA4B/jQ,EAAO,CAC/B,OAAOsjP,GAA4BtjP,CAAK,CAC3C,CACD,MAAMojP,EAAazD,EAAc5sN,EAAS/yB,EAAO,CAC7CkiP,GAAckB,EAAazD,EAAc5sN,EAAS,KAAK,SAAU/yB,EAAM,iBAAiB,CAC3F,CACD,eAAei8F,EAAUmnJ,EAAa1mF,EAAWumF,EAAY,CACzDE,GAAUlnJ,EAAUmnJ,EAAa1mF,EAAWumF,CAAU,CACzD,CACD,MAAMhnJ,EAAU,CACZ,KAAK,SAAWsmJ,GAAStmJ,EAAS,OAAO,EACzC,MAAM,MAAMA,CAAQ,CACvB,CACL,CCvCA,MAAM0xK,IAAyB,CAACn7P,EAAWugB,IAChC0qN,GAAejrO,CAAS,EACzB,IAAIk7P,IAAiB36O,EAAS,CAAE,2BAA4B,EAAK,CAAE,EACnE,IAAIy6O,IAAkBz6O,EAAS,CAAE,2BAA4B,EAAM,GCL7E,SAAS66O,GAAgBC,EAAQp1O,EAAM,CACnC,OAAIA,EAAK,MAAQA,EAAK,IACX,EACHo1O,GAAUp1O,EAAK,IAAMA,EAAK,KAAQ,GAC9C,CAQA,MAAMq1O,GAAsB,CACxB,QAAS,CAACxrB,EAAQngP,IAAS,CACvB,GAAI,CAACA,EAAK,OACN,OAAOmgP,EAKX,GAAI,OAAOA,GAAW,SAClB,GAAIjD,GAAG,KAAKiD,CAAM,EACdA,EAAS,WAAWA,CAAM,MAG1B,QAAOA,EAOf,MAAMrsQ,EAAI23R,GAAgBtrB,EAAQngP,EAAK,OAAO,CAAC,EACzCjsB,EAAI03R,GAAgBtrB,EAAQngP,EAAK,OAAO,CAAC,EAC/C,MAAO,GAAGlsB,CAAC,KAAKC,CAAC,GACpB,CACL,EClCM63R,GAAW,QACXC,IAAmB,CACrB,QAAS,CAAC1rB,EAAQ,CAAE,UAAA+iB,EAAW,gBAAA4I,CAAe,IAAO,CACjD,MAAMpmG,EAAWy6E,EAIX4rB,EAAuB5rB,EAAO,SAAS,MAAM,EAC7C6rB,EAAe,GACjBD,IACA5rB,EAASA,EAAO,QAAQ8mB,GAAmBpxM,IACvCm2M,EAAa,KAAKn2M,CAAK,EAChB+1M,GACV,GAEL,MAAMK,EAAS3f,GAAQ,MAAMnM,CAAM,EAEnC,GAAI8rB,EAAO,OAAS,EAChB,OAAOvmG,EACX,MAAM/uE,EAAW21J,GAAQ,kBAAkBnM,CAAM,EAC3CjxM,EAAS,OAAO+8N,EAAO,CAAC,GAAM,SAAW,EAAI,EAE7CC,EAASJ,EAAgB,EAAE,MAAQ5I,EAAU,EAC7CiJ,EAASL,EAAgB,EAAE,MAAQ5I,EAAU,EACnD+I,EAAO,EAAI/8N,CAAM,GAAKg9N,EACtBD,EAAO,EAAI/8N,CAAM,GAAKi9N,EAOtB,MAAMC,EAAer1P,GAAIm1P,EAAQC,EAAQ,EAAG,EAExC,OAAOF,EAAO,EAAI/8N,CAAM,GAAM,WAC9B+8N,EAAO,EAAI/8N,CAAM,GAAKk9N,GAEtB,OAAOH,EAAO,EAAI/8N,CAAM,GAAM,WAC9B+8N,EAAO,EAAI/8N,CAAM,GAAKk9N,GAC1B,IAAIzwM,EAASg7B,EAASs1K,CAAM,EAC5B,GAAIF,EAAsB,CACtB,IAAIjvQ,EAAI,EACR6+D,EAASA,EAAO,QAAQiwM,GAAU,IAAM,CACpC,MAAMS,EAAcL,EAAalvQ,CAAC,EAClC,OAAAA,IACOuvQ,CACvB,CAAa,CACJ,CACD,OAAO1wM,CACV,CACL,EC5CA,MAAM2wM,YAAiClnL,GAAe/0E,SAAU,CAM5Dk8P,mBAAoB,CAChB,KAAM,CAAE/zB,gBAAeg0B,cAAaC,oBAAmBhyB,YAAa,KAAK58O,MACnE,CAAEijP,YAAY,EAAGtI,EACvBgD,IAAkBkxB,GAAsB,EACpC5rB,IACI0rB,EAAY91P,OACZ81P,EAAY91P,MAAM2iB,IAAIynN,CAAU,EAChC2rB,GAAqBA,EAAkB98M,UAAY8qL,GACnDgyB,EAAkB98M,SAASmxL,CAAU,EAEzCA,EAAW1mM,KAAKuyN,YAChB7rB,EAAW1lN,iBAAiB,oBAAqB,IAAM,CACnD,KAAKijO,aAAY,CACrB,CAAC,EACDvd,EAAW8rB,WAAW,CAClB,GAAG9rB,EAAWlwN,QACds3N,eAAgBA,IAAM,KAAKmW,aAAa,CAC5C,CAAC,GAELzkB,GAAsBizB,eAAiB,EAC3C,CACAC,wBAAwBpwJ,EAAW,CAC/B,KAAM,CAAEqwJ,mBAAkBv0B,gBAAesM,OAAMv6O,aAAc,KAAK1M,MAC5DijP,EAAatI,EAAcsI,WACjC,OAAKA,IASLA,EAAWv2O,UAAYA,EACnBu6O,GACApoI,EAAUqwJ,mBAAqBA,GAC/BA,IAAqB9xO,OACrB6lN,EAAWksB,WAAU,EAGrB,KAAK3O,aAAY,EAEjB3hJ,EAAUnyG,YAAcA,IACpBA,EACAu2O,EAAWmsB,QAAO,EAEZnsB,EAAWosB,YAMjBzjB,GAAK0jB,WAAW,IAAM,CAClB,IAAIruQ,EACGA,KAAKgiP,EAAWssB,SAAQ,KAAQ,MAAQtuQ,IAAO,SAAkBA,EAAGuuQ,QAAQzzO,QAC/E,KAAKykO,aAAY,CAEzB,CAAC,IAGF,IACX,CACAiP,oBAAqB,CACjB,KAAM,CAAExsB,YAAW,EAAI,KAAKjjP,MAAM26O,cAC9BsI,IACAA,EAAW1mM,KAAKuyN,YACZ,CAAC7rB,EAAWgY,kBAAoBhY,EAAWysB,OAAM,GACjD,KAAKlP,aAAY,EAG7B,CACAmP,sBAAuB,CACnB,KAAM,CAAEh1B,gBAAeg0B,cAAaC,kBAAmBgB,GAAoB,KAAK5vQ,MAC1E,CAAEijP,YAAY,EAAGtI,EACnBsI,IACAA,EAAW4sB,0BAAyB,EAChClB,GAAgB,MAA0CA,EAAY91P,OACtE81P,EAAY91P,MAAM8iB,OAAOsnN,CAAU,EACnC2sB,GAAmB,MAA6CA,EAAeE,YAC/EF,EAAeE,WAAW7sB,CAAU,EAEhD,CACAud,cAAe,CACX,KAAM,CAAEA,gBAAiB,KAAKxgQ,MAC9BwgQ,GAAiB,MAA2CA,GAChE,CACAltM,QAAS,CACL,OAAO,IACX,CACJ,CACA,SAASy8M,IAAc/vQ,EAAO,CAC1B,KAAM,CAAC0M,EAAW8zP,CAAY,EAAIr3P,GAAW,EACvCwlQ,EAAchuP,aAAWs7N,EAAkB,EACjD,OAAAx9N,EAAAgwP,IAAA,IAAoEzuQ,EAAK2uQ,YAAeA,EAAWC,kBAAqBjuP,EAAU,WAACw7N,EAAwB,EAACzvO,UAAaA,EAAS8zP,aAAgBA,CAAY,EAClN,CACA,MAAMqO,IAAyB,CAC3BzyP,aAAc,CACV,GAAG0xP,GACHkC,QAAS,CACL,sBACA,uBACA,yBACA,yBAAyB,CAEhC,EACDC,oBAAqBnC,GACrBoC,qBAAsBpC,GACtBqC,uBAAwBrC,GACxBsC,wBAAyBtC,GACzBuC,UAAWrC,GACf,EC5HMsC,IAAiB,CACnB,cAAeP,GACnB,EC2BA,SAASz0B,IAAQj8O,EAAMD,EAAI2lP,EAAa,GAAI,CACxC,MAAM5kP,EAAQ89O,GAAc5+O,CAAI,EAAIA,EAAOytP,GAAYztP,CAAI,EAC3D,OAAAc,EAAM,MAAM48P,GAA2B,GAAI58P,EAAOf,EAAI2lP,CAAU,CAAC,EAC1D,CACH,KAAM,IAAM5kP,EAAM,KAAM,EACxB,YAAa,IAAMA,EAAM,YAAa,CAC9C,CACA,CChCA,MAAMowQ,GAAU,CAAC,UAAW,WAAY,aAAc,aAAa,EAC7DC,IAAaD,GAAQ,OACrBE,GAAYtwQ,GAAU,OAAOA,GAAU,SAAW,WAAWA,CAAK,EAAIA,EACtE8rF,GAAQ9rF,GAAU,OAAOA,GAAU,UAAYk/O,GAAG,KAAKl/O,CAAK,EAClE,SAASuwQ,IAAUnoQ,EAAQooQ,EAAQC,EAAM1f,EAAU2f,EAAwBC,EAAc,CACjFD,GACAtoQ,EAAO,QAAU2Q,GAAI,EAErB03P,EAAK,UAAY,OAAYA,EAAK,QAAU,EAAGG,IAAgB7f,CAAQ,CAAC,EACxE3oP,EAAO,YAAc2Q,GAAIy3P,EAAO,UAAY,OAAYA,EAAO,QAAU,EAAG,EAAGK,IAAiB9f,CAAQ,CAAC,GAEpG4f,IACLvoQ,EAAO,QAAU2Q,GAAIy3P,EAAO,UAAY,OAAYA,EAAO,QAAU,EAAGC,EAAK,UAAY,OAAYA,EAAK,QAAU,EAAG1f,CAAQ,GAKnI,QAASjyP,EAAI,EAAGA,EAAIuxQ,IAAYvxQ,IAAK,CACjC,MAAMgyQ,EAAc,SAASV,GAAQtxQ,CAAC,CAAC,SACvC,IAAIiyQ,EAAeC,GAAUR,EAAQM,CAAW,EAC5CG,EAAaD,GAAUP,EAAMK,CAAW,EAC5C,GAAIC,IAAiB,QAAaE,IAAe,OAC7C,SACJF,IAAiBA,EAAe,GAChCE,IAAeA,EAAa,GACbF,IAAiB,GAC5BE,IAAe,GACfnlL,GAAKilL,CAAY,IAAMjlL,GAAKmlL,CAAU,GAEtC7oQ,EAAO0oQ,CAAW,EAAI,KAAK,IAAI/3P,GAAIu3P,GAASS,CAAY,EAAGT,GAASW,CAAU,EAAGlgB,CAAQ,EAAG,CAAC,GACzF9R,GAAQ,KAAKgyB,CAAU,GAAKhyB,GAAQ,KAAK8xB,CAAY,KACrD3oQ,EAAO0oQ,CAAW,GAAK,MAI3B1oQ,EAAO0oQ,CAAW,EAAIG,CAE7B,EAIGT,EAAO,QAAUC,EAAK,UACtBroQ,EAAO,OAAS2Q,GAAIy3P,EAAO,QAAU,EAAGC,EAAK,QAAU,EAAG1f,CAAQ,EAE1E,CACA,SAASigB,GAAU9/M,EAAQggN,EAAY,CACnC,OAAOhgN,EAAOggN,CAAU,IAAM,OACxBhgN,EAAOggN,CAAU,EACjBhgN,EAAO,YACjB,CAwBA,MAAM0/M,IAAkBO,GAAS,EAAG,GAAK/c,EAAO,EAC1Cyc,IAAmBM,GAAS,GAAK,IAAMvjL,EAAI,EACjD,SAASujL,GAASxlO,EAAKC,EAAK8kN,EAAQ,CAChC,OAAQn7Q,GAEAA,EAAIo2D,EACG,EACPp2D,EAAIq2D,EACG,EACJ8kN,EAAOK,GAASplN,EAAKC,EAAKr2D,CAAC,CAAC,CAE3C,CCrFA,SAAS67R,GAAa94O,EAAM+4O,EAAY,CACpC/4O,EAAK,IAAM+4O,EAAW,IACtB/4O,EAAK,IAAM+4O,EAAW,GAC1B,CAMA,SAASC,GAAYxyC,EAAKyyC,EAAW,CACjCH,GAAatyC,EAAI,EAAGyyC,EAAU,CAAC,EAC/BH,GAAatyC,EAAI,EAAGyyC,EAAU,CAAC,CACnC,CCVA,SAASC,GAAiB/yL,EAAOrhE,EAAWJ,EAAO0nP,EAAaI,EAAU,CACtE,OAAArmL,GAASrhE,EACTqhE,EAAQgmL,GAAWhmL,EAAO,EAAIzhE,EAAO0nP,CAAW,EAC5CI,IAAa,SACbrmL,EAAQgmL,GAAWhmL,EAAO,EAAIqmL,EAAUJ,CAAW,GAEhDjmL,CACX,CAIA,SAASgzL,IAAgBn5O,EAAMlb,EAAY,EAAGJ,EAAQ,EAAGg/I,EAAS,GAAK8oG,EAAUuM,EAAa/4O,EAAMo5O,EAAap5O,EAAM,CAMnH,GALI2mN,GAAQ,KAAK7hO,CAAS,IACtBA,EAAY,WAAWA,CAAS,EAEhCA,EADyBrE,GAAI24P,EAAW,IAAKA,EAAW,IAAKt0P,EAAY,GAAG,EAC7Cs0P,EAAW,KAE1C,OAAOt0P,GAAc,SACrB,OACJ,IAAIsnP,EAAc3rP,GAAIs4P,EAAW,IAAKA,EAAW,IAAKr1G,CAAM,EACxD1jI,IAAS+4O,IACT3M,GAAetnP,GACnBkb,EAAK,IAAMk5O,GAAiBl5O,EAAK,IAAKlb,EAAWJ,EAAO0nP,EAAaI,CAAQ,EAC7ExsO,EAAK,IAAMk5O,GAAiBl5O,EAAK,IAAKlb,EAAWJ,EAAO0nP,EAAaI,CAAQ,CACjF,CAKA,SAAS6M,GAAqBr5O,EAAMmtO,EAAY,CAAChwP,EAAKiwP,EAAUC,CAAS,EAAG3pG,EAAQ01G,EAAY,CAC5FD,IAAgBn5O,EAAMmtO,EAAWhwP,CAAG,EAAGgwP,EAAWC,CAAQ,EAAGD,EAAWE,CAAS,EAAGF,EAAW,MAAOzpG,EAAQ01G,CAAU,CAC5H,CAIA,MAAM7L,IAAQ,CAAC,IAAK,SAAU,SAAS,EACjCC,IAAQ,CAAC,IAAK,SAAU,SAAS,EAKvC,SAAS8L,GAAoB9yC,EAAK2mC,EAAY8L,EAAWM,EAAW,CAChEF,GAAqB7yC,EAAI,EAAG2mC,EAAYI,IAAO0L,GAAc,KAA+B,OAASA,EAAU,EAAGM,GAAc,KAA+B,OAASA,EAAU,CAAC,EACnLF,GAAqB7yC,EAAI,EAAG2mC,EAAYK,IAAOyL,GAAc,KAA+B,OAASA,EAAU,EAAGM,GAAc,KAA+B,OAASA,EAAU,CAAC,CACvL,CCjDA,SAASC,GAAgBp4O,EAAO,CAC5B,OAAOA,EAAM,YAAc,GAAKA,EAAM,QAAU,CACpD,CACA,SAASq4O,GAAYr4O,EAAO,CACxB,OAAOo4O,GAAgBp4O,EAAM,CAAC,GAAKo4O,GAAgBp4O,EAAM,CAAC,CAC9D,CACA,SAASs4O,GAAU97R,EAAGK,EAAG,CACrB,OAAQL,EAAE,EAAE,MAAQK,EAAE,EAAE,KACpBL,EAAE,EAAE,MAAQK,EAAE,EAAE,KAChBL,EAAE,EAAE,MAAQK,EAAE,EAAE,KAChBL,EAAE,EAAE,MAAQK,EAAE,EAAE,GACxB,CACA,SAAS0iI,GAAY6lH,EAAK,CACtB,OAAO6iC,GAAW7iC,EAAI,CAAC,EAAI6iC,GAAW7iC,EAAI,CAAC,CAC/C,CCdA,MAAMmzC,GAAU,CACZ,aAAc,CACV,KAAK,QAAU,EAClB,CACD,IAAIjwQ,EAAM,CACNiqP,GAAc,KAAK,QAASjqP,CAAI,EAChCA,EAAK,eAAc,CACtB,CACD,OAAOA,EAAM,CAKT,GAJAo2O,GAAW,KAAK,QAASp2O,CAAI,EACzBA,IAAS,KAAK,WACd,KAAK,SAAW,QAEhBA,IAAS,KAAK,KAAM,CACpB,MAAMkwQ,EAAW,KAAK,QAAQ,KAAK,QAAQ,OAAS,CAAC,EACjDA,GACA,KAAK,QAAQA,CAAQ,CAE5B,CACJ,CACD,SAASlwQ,EAAM,CACX,MAAMmwQ,EAAc,KAAK,QAAQ,UAAWC,GAAWpwQ,IAASowQ,CAAM,EACtE,GAAID,IAAgB,EAChB,MAAO,GAIX,IAAID,EACJ,QAAS,EAAIC,EAAa,GAAK,EAAG,IAAK,CACnC,MAAMC,EAAS,KAAK,QAAQ,CAAC,EAC7B,GAAIA,EAAO,YAAc,GAAO,CAC5BF,EAAWE,EACX,KACH,CACJ,CACD,OAAIF,GACA,KAAK,QAAQA,CAAQ,EACd,IAGA,EAEd,CACD,QAAQlwQ,EAAMqwQ,EAAuB,CACjC,IAAIvxQ,EACJ,MAAMoxQ,EAAW,KAAK,KACtB,GAAIlwQ,IAASkwQ,IAEb,KAAK,SAAWA,EAChB,KAAK,KAAOlwQ,EACZA,EAAK,KAAI,EACLkwQ,GAAU,CACVA,EAAS,UAAYA,EAAS,iBAC9BlwQ,EAAK,eAAc,EACnBA,EAAK,WAAakwQ,EACdG,IACArwQ,EAAK,WAAW,gBAAkB,IAElCkwQ,EAAS,WACTlwQ,EAAK,SAAWkwQ,EAAS,SACzBlwQ,EAAK,SAAS,aACVkwQ,EAAS,iBAAmBA,EAAS,cAExC,GAAApxQ,EAAKkB,EAAK,QAAU,MAAQlB,IAAO,SAAkBA,EAAG,aACzDkB,EAAK,cAAgB,IAEzB,KAAM,CAAE,UAAAswQ,CAAS,EAAKtwQ,EAAK,QACvBswQ,IAAc,IACdJ,EAAS,KAAI,CAcpB,CACJ,CACD,uBAAwB,CACpB,KAAK,QAAQ,QAASlwQ,GAAS,CAC3B,IAAIlB,EAAI2J,EAAI25C,EAAIG,EAAIC,GACnB/5C,GAAM3J,EAAKkB,EAAK,SAAS,kBAAoB,MAAQyI,IAAO,QAAkBA,EAAG,KAAK3J,CAAE,GACxF0jD,GAAMJ,EAAKpiD,EAAK,gBAAkB,MAAQoiD,IAAO,OAAS,QAAUG,EAAKH,EAAG,SAAS,kBAAoB,MAAQI,IAAO,QAAkBA,EAAG,KAAKD,CAAE,CACjK,CAAS,CACJ,CACD,gBAAiB,CACb,KAAK,QAAQ,QAASviD,GAAS,CAC3BA,EAAK,UAAYA,EAAK,eAAe,EAAK,CACtD,CAAS,CACJ,CAKD,oBAAqB,CACb,KAAK,MAAQ,KAAK,KAAK,WACvB,KAAK,KAAK,SAAW,OAE5B,CACL,CC3GA,SAASuwQ,GAAyB74O,EAAOwrO,EAAWsN,EAAiB,CACjE,IAAIlzN,EAAY,GAOhB,MAAMmzN,EAAa/4O,EAAM,EAAE,UAAYwrO,EAAU,EAC3CwN,EAAah5O,EAAM,EAAE,UAAYwrO,EAAU,EAWjD,IAVIuN,GAAcC,KACdpzN,EAAY,eAAemzN,CAAU,OAAOC,CAAU,YAMtDxN,EAAU,IAAM,GAAKA,EAAU,IAAM,KACrC5lN,GAAa,SAAS,EAAI4lN,EAAU,CAAC,KAAK,EAAIA,EAAU,CAAC,MAEzDsN,EAAiB,CACjB,KAAM,CAAE,OAAAG,EAAQ,QAAAC,EAAS,QAAAC,CAAO,EAAKL,EACjCG,IACArzN,GAAa,UAAUqzN,CAAM,SAC7BC,IACAtzN,GAAa,WAAWszN,CAAO,SAC/BC,IACAvzN,GAAa,WAAWuzN,CAAO,QACtC,CAKD,MAAMC,EAAgBp5O,EAAM,EAAE,MAAQwrO,EAAU,EAC1C6N,EAAgBr5O,EAAM,EAAE,MAAQwrO,EAAU,EAChD,OAAI4N,IAAkB,GAAKC,IAAkB,KACzCzzN,GAAa,SAASwzN,CAAa,KAAKC,CAAa,KAElDzzN,GAAa,MACxB,CCvCA,MAAM0zN,IAAiB,CAAC98R,EAAGK,IAAML,EAAE,MAAQK,EAAE,MCG7C,MAAM08R,GAAS,CACX,aAAc,CACV,KAAK,SAAW,GAChB,KAAK,QAAU,EAClB,CACD,IAAI/vQ,EAAO,CACP+oP,GAAc,KAAK,SAAU/oP,CAAK,EAClC,KAAK,QAAU,EAClB,CACD,OAAOA,EAAO,CACVk1O,GAAW,KAAK,SAAUl1O,CAAK,EAC/B,KAAK,QAAU,EAClB,CACD,QAAQsD,EAAU,CACd,KAAK,SAAW,KAAK,SAAS,KAAKwsQ,GAAc,EACjD,KAAK,QAAU,GACf,KAAK,SAAS,QAAQxsQ,CAAQ,CACjC,CACL,CCCA,MAAM0sQ,GAAgB,CAAC,GAAI,IAAK,IAAK,GAAG,EAKlCC,GAAkB,IACxB,IAAIvwR,IAAK,EACT,SAASwwR,GAAqB,CAAE,qBAAAC,EAAsB,cAAAC,EAAe,cAAAC,EAAe,kBAAAC,EAAmB,eAAAC,GAAmB,CACtH,OAAO,KAAqB,CACxB,YAAYC,EAAWl0B,EAAe,CAAE,EAAE9jN,EAAS43O,GAAkB,KAAmC,OAASA,EAAa,EAAI,CAI9H,KAAK,GAAK1wR,MAIV,KAAK,YAAc,EAOnB,KAAK,SAAW,IAAI,IAKpB,KAAK,QAAU,GAMf,KAAK,gBAAkB,GACvB,KAAK,mBAAqB,GAO1B,KAAK,cAAgB,GACrB,KAAK,iBAAmB,GAKxB,KAAK,kBAAoB,GAIzB,KAAK,sBAAwB,GAC7B,KAAK,sBAAwB,GAK7B,KAAK,WAAa,GAIlB,KAAK,MAAQ,GAKb,KAAK,WAAa,GAIlB,KAAK,qBAAuB,GAS5B,KAAK,UAAY,CAAE,EAAG,EAAG,EAAG,GAI5B,KAAK,cAAgB,IAAI,IAEzB,KAAK,eAAiB,IAAI,IAC1B,KAAK,kBAAoB,IAAM,CACvB,KAAK,aACL,KAAK,WAAa,GAClB,KAAK,kBAAiB,EAE1C,EAMY,KAAK,iBAAmB,IAAM,CAC1B,KAAK,MAAM,QAAQ+wR,GAAmB,EACtC,KAAK,MAAM,QAAQC,GAAkB,EACrC,KAAK,MAAM,QAAQC,GAAc,CACjD,EACY,KAAK,aAAe,GACpB,KAAK,UAAY,GACjB,KAAK,kBAAoB,EAKzB,KAAK,YAAc,IAAI,IACvB,KAAK,UAAYH,EACjB,KAAK,aAAel0B,EACpB,KAAK,KAAO9jN,EAASA,EAAO,MAAQA,EAAS,KAC7C,KAAK,KAAOA,EAAS,CAAC,GAAGA,EAAO,KAAMA,CAAM,EAAI,GAChD,KAAK,OAASA,EACd,KAAK,MAAQA,EAASA,EAAO,MAAQ,EAAI,EACzCg4O,GAAa,KAAK,KAAK,sBAAsBA,EAAW,IAAI,EAC5D,QAAS50Q,EAAI,EAAGA,EAAI,KAAK,KAAK,OAAQA,IAClC,KAAK,KAAKA,CAAC,EAAE,qBAAuB,GAEpC,KAAK,OAAS,OACd,KAAK,MAAQ,IAAIm0Q,IACxB,CACD,iBAAiBjuQ,EAAMkmB,EAAS,CAC5B,OAAK,KAAK,cAAc,IAAIlmB,CAAI,GAC5B,KAAK,cAAc,IAAIA,EAAM,IAAIknP,EAAqB,EAEnD,KAAK,cAAc,IAAIlnP,CAAI,EAAE,IAAIkmB,CAAO,CAClD,CACD,gBAAgBlmB,KAASZ,EAAM,CAC3B,MAAM0vQ,EAAsB,KAAK,cAAc,IAAI9uQ,CAAI,EACvD8uQ,GAAwB,MAAkDA,EAAoB,OAAO,GAAG1vQ,CAAI,CAC/G,CACD,aAAaY,EAAM,CACf,OAAO,KAAK,cAAc,IAAIA,CAAI,CACrC,CACD,sBAAsB0uQ,EAAW1xQ,EAAM,CACnC,KAAK,eAAe,IAAI0xQ,EAAW1xQ,CAAI,CAC1C,CAID,MAAM85F,EAAUi4K,EAAgB,GAAO,CACnC,IAAIjzQ,EACJ,GAAI,KAAK,SACL,OACJ,KAAK,MACDg7F,aAAoB,YAAcA,EAAS,UAAY,MAC3D,KAAK,SAAWA,EAChB,KAAM,CAAE,SAAA2gJ,EAAU,OAAAoB,EAAQ,cAAArD,CAAa,EAAK,KAAK,QAUjD,GATIA,GAAiB,CAACA,EAAc,SAChCA,EAAc,MAAM1+I,CAAQ,EAEhC,KAAK,KAAK,MAAM,IAAI,IAAI,GACvBh7F,EAAK,KAAK,UAAY,MAAQA,IAAO,QAAkBA,EAAG,SAAS,IAAI,IAAI,EAC5E,KAAK,WAAa,KAAK,KAAK,eAAe,OAAO,KAAK,SAAS,EAC5DizQ,IAAkBl2B,GAAUpB,KAC5B,KAAK,cAAgB,IAErB42B,EAAsB,CACtB,IAAIW,EACJ,MAAMC,EAAsB,IAAO,KAAK,KAAK,sBAAwB,GACrEZ,EAAqBv3K,EAAU,IAAM,CACjC,KAAK,KAAK,sBAAwB,GAClCk4K,GAAeA,EAAW,EAC1BA,EAAc34H,GAAM44H,EAAqB,GAAG,EACxCr4B,GAAsB,yBACtBA,GAAsB,uBAAyB,GAC/C,KAAK,MAAM,QAAQs4B,EAAe,EAE1D,CAAiB,CACJ,CACGz3B,GACA,KAAK,KAAK,mBAAmBA,EAAU,IAAI,EAG3C,KAAK,QAAQ,UAAY,IACzBjC,IACCiC,GAAYoB,IACb,KAAK,iBAAiB,YAAa,CAAC,CAAE,MAAAnkN,EAAO,iBAAA0uO,EAAkB,yBAAA+L,EAA0B,OAAQC,KAAiB,CAC9G,IAAItzQ,EAAI2J,EAAI25C,EAAIG,EAAIC,EACpB,GAAI,KAAK,yBAA0B,CAC/B,KAAK,OAAS,OACd,KAAK,eAAiB,OACtB,MACH,CAED,MAAM6vN,GAAoB5pQ,GAAM3J,EAAK,KAAK,QAAQ,cAAgB,MAAQA,IAAO,OAASA,EAAK05O,EAAc,0BAA4B,MAAQ/vO,IAAO,OAASA,EAAK6pQ,IAChK,CAAE,uBAAAC,EAAwB,0BAAAC,CAA4B,EAAGh6B,EAAc,SAAQ,EAK/Ei6B,EAAgB,CAAC,KAAK,cACxB,CAACzC,GAAU,KAAK,aAAcoC,CAAS,GACvCD,EAMEO,EAA+B,CAACtM,GAAoB+L,EAC1D,GAAM,GAAA/vN,EAAK,KAAK,cAAgB,MAAQA,IAAO,SAAkBA,EAAG,UAChEswN,GACCtM,IACIqM,GAAiB,CAAC,KAAK,kBAAoB,CAC5C,KAAK,aACL,KAAK,aAAe,KAAK,WACzB,KAAK,aAAa,aAAe,QAErC,KAAK,mBAAmB/6O,EAAOg7O,CAA4B,EAC3D,MAAMC,EAAmB,CACrB,GAAGrY,GAAmB+X,EAAkB,QAAQ,EAChD,OAAQE,EACR,WAAYC,CACxC,EAC4Bh6B,EAAc,qBACdm6B,EAAiB,MAAQ,EACzBA,EAAiB,KAAO,IAE5B,KAAK,eAAeA,CAAgB,CACvC,KAOO,CAACvM,GACD,KAAK,oBAAsB,GAC3B8L,GAAgB,IAAI,EAExB,KAAK,OAAM,KAAQ1vN,GAAMD,EAAK,KAAK,SAAS,kBAAoB,MAAQC,IAAO,QAAkBA,EAAG,KAAKD,CAAE,GAE/G,KAAK,aAAe6vN,CACxC,CAAiB,CAER,CACD,SAAU,CACN,IAAItzQ,EAAI2J,EACR,KAAK,QAAQ,UAAY,KAAK,WAAU,EACxC,KAAK,KAAK,MAAM,OAAO,IAAI,GAC1B3J,EAAK,KAAK,SAAU,KAAM,MAAQA,IAAO,QAAkBA,EAAG,OAAO,IAAI,GACzE2J,EAAK,KAAK,UAAY,MAAQA,IAAO,QAAkBA,EAAG,SAAS,OAAO,IAAI,EAC/E,KAAK,SAAW,OAChBmhP,GAAW,UAAU,KAAK,gBAAgB,CAC7C,CAED,aAAc,CACV,KAAK,sBAAwB,EAChC,CACD,eAAgB,CACZ,KAAK,sBAAwB,EAChC,CACD,iBAAkB,CACd,OAAO,KAAK,uBAAyB,KAAK,qBAC7C,CACD,wBAAyB,CACrB,IAAI9qP,EACJ,OAAQ,KAAK,sBACPA,EAAK,KAAK,UAAY,MAAQA,IAAO,OAAS,OAASA,EAAG,uBAAsB,IAClF,EACP,CAED,aAAc,CACV,IAAIA,EACA,KAAK,gBAAiB,IAE1B,KAAK,WAAa,IACjBA,EAAK,KAAK,SAAW,MAAQA,IAAO,QAAkBA,EAAG,QAAQ8zQ,GAAa,EAC/E,KAAK,cACR,CACD,WAAWC,EAAwB,GAAM,CACrC,IAAI/zQ,EAAI2J,EAAI25C,EACZ,GAAI,KAAK,KAAK,kBAAmB,EAC5B35C,GAAM3J,EAAK,KAAK,SAAS,kBAAoB,MAAQ2J,IAAO,QAAkBA,EAAG,KAAK3J,CAAE,EACzF,MACH,CAED,GADA,CAAC,KAAK,KAAK,YAAc,KAAK,KAAK,cAC/B,KAAK,cACL,OACJ,KAAK,cAAgB,GACrB,QAAShC,EAAI,EAAGA,EAAI,KAAK,KAAK,OAAQA,IAAK,CACvC,MAAMkD,EAAO,KAAK,KAAKlD,CAAC,EACxBkD,EAAK,qBAAuB,GAC5BA,EAAK,aAAa,UAAU,CAC/B,CACD,KAAM,CAAE,SAAAy6O,EAAU,OAAAoB,GAAW,KAAK,QAClC,GAAIpB,IAAa,QAAa,CAACoB,EAC3B,OACJ,MAAMS,GAAqBl6L,EAAK,KAAK,QAAQ,iBAAmB,MAAQA,IAAO,OAAS,OAASA,EAAG,SAAQ,EAAG,kBAC/G,KAAK,2BAA6Bk6L,GAAsB,KAAuC,OAASA,EAAkB,KAAK,aAAc,EAAE,EAC/I,KAAK,eAAc,EACnBu2B,GAAyB,KAAK,gBAAgB,YAAY,CAC7D,CAED,WAAY,CAKR,GAJyB,KAAK,kBAIR,CAClB,KAAK,cAAa,EAClB,KAAK,kBAAiB,EACtB,KAAK,MAAM,QAAQC,EAAiB,EACpC,MACH,CACI,KAAK,aAEV,KAAK,WAAa,GAOd,KAAK,eAAe,OACpB,KAAK,eAAe,QAAQC,GAAc,EAC1C,KAAK,eAAe,SAKxB,KAAK,MAAM,QAAQC,GAAmB,EAKtC,KAAK,MAAM,QAAQC,GAAY,EAK/B,KAAK,MAAM,QAAQC,GAAkB,EACrC,KAAK,kBAAiB,EAEtBrpB,GAAU,OAAM,EAChBA,GAAU,UAAS,EACnBA,GAAU,OAAM,EACnB,CACD,mBAAoB,CAChB,KAAK,MAAM,QAAQspB,GAAa,EAChC,KAAK,YAAY,QAAQC,GAAmB,CAC/C,CACD,0BAA2B,CACvB3pB,GAAK,UAAU,KAAK,iBAAkB,GAAO,EAAI,CACpD,CACD,2BAA4B,CAMxBA,GAAK,WAAW,IAAM,CACd,KAAK,cACL,KAAK,KAAK,YAGV,KAAK,KAAK,mBAE9B,CAAa,CACJ,CAID,gBAAiB,CACT,KAAK,UAAY,CAAC,KAAK,WAE3B,KAAK,SAAW,KAAK,UACxB,CACD,cAAe,CACX,IAAI3qP,EAKJ,GAJI,CAAC,KAAK,WAGV,KAAK,aAAY,EACb,EAAE,KAAK,QAAQ,qBAAuB,KAAK,OAAM,IACjD,CAAC,KAAK,eACN,OASJ,GAAI,KAAK,YAAc,CAAC,KAAK,WAAW,SACpC,QAAShC,EAAI,EAAGA,EAAI,KAAK,KAAK,OAAQA,IACrB,KAAK,KAAKA,CAAC,EACnB,aAAY,EAGzB,MAAMu2Q,EAAa,KAAK,OACxB,KAAK,OAAS,KAAK,QAAQ,EAAK,EAChC,KAAK,gBAAkBzR,KACvB,KAAK,cAAgB,GACrB,KAAK,gBAAkB,OACvB,KAAK,gBAAgB,UAAW,KAAK,OAAO,SAAS,GACpD9iQ,EAAK,KAAK,QAAQ,iBAAmB,MAAQA,IAAO,QAAkBA,EAAG,OAAO,gBAAiB,KAAK,OAAO,UAAWu0Q,GAAe,KAAgC,OAASA,EAAW,SAAS,CACxM,CACD,aAAaC,EAAQ,UAAW,CAC5B,IAAIC,EAAmB,GAAQ,KAAK,QAAQ,cAAgB,KAAK,UAC7D,KAAK,QACL,KAAK,OAAO,cAAgB,KAAK,KAAK,aACtC,KAAK,OAAO,QAAUD,IACtBC,EAAmB,IAEnBA,IACA,KAAK,OAAS,CACV,YAAa,KAAK,KAAK,YACvB,MAAAD,EACA,OAAQ9B,EAAkB,KAAK,QAAQ,EACvC,OAAQD,EAAc,KAAK,QAAQ,CACvD,EAES,CACD,gBAAiB,CACb,IAAIzyQ,EACJ,GAAI,CAAC2yQ,EACD,OACJ,MAAM+B,EAAmB,KAAK,eAAiB,KAAK,qBAC9CC,EAAgB,KAAK,iBAAmB,CAAC1D,GAAY,KAAK,eAAe,EACzEzzB,GAAqBx9O,EAAK,KAAK,QAAQ,iBAAmB,MAAQA,IAAO,OAAS,OAASA,EAAG,SAAQ,EAAG,kBACzG40Q,EAAyBp3B,GAAsB,KAAuC,OAASA,EAAkB,KAAK,aAAc,EAAE,EACtIq3B,EAA8BD,IAA2B,KAAK,2BAChEF,IACCC,GACG/1B,GAAa,KAAK,YAAY,GAC9Bi2B,KACJlC,EAAe,KAAK,SAAUiC,CAAsB,EACpD,KAAK,qBAAuB,GAC5B,KAAK,eAAc,EAE1B,CACD,QAAQE,EAAkB,GAAM,CAC5B,MAAMC,EAAU,KAAK,iBACrB,IAAIrT,EAAY,KAAK,oBAAoBqT,CAAO,EAMhD,OAAID,IACApT,EAAY,KAAK,gBAAgBA,CAAS,GAE9CsT,IAAStT,CAAS,EACX,CACH,YAAa,KAAK,KAAK,YACvB,YAAaqT,EACb,UAAArT,EACA,aAAc,CAAE,EAChB,OAAQ,KAAK,EAC7B,CACS,CACD,gBAAiB,CACb,KAAM,CAAE,cAAAhoB,CAAa,EAAK,KAAK,QAC/B,GAAI,CAACA,EACD,OAAOopB,GAAS,EACpB,MAAM9kC,EAAM0b,EAAc,qBAEpB,CAAE,OAAAnhM,CAAM,EAAK,KAAK,KACxB,OAAIA,IACAksN,GAAczmC,EAAI,EAAGzlL,EAAO,OAAO,CAAC,EACpCksN,GAAczmC,EAAI,EAAGzlL,EAAO,OAAO,CAAC,GAEjCylL,CACV,CACD,oBAAoBA,EAAK,CACrB,MAAMi3C,EAAmBnS,KACzB0N,GAAYyE,EAAkBj3C,CAAG,EAKjC,QAAShgO,EAAI,EAAGA,EAAI,KAAK,KAAK,OAAQA,IAAK,CACvC,MAAMkD,EAAO,KAAK,KAAKlD,CAAC,EAClB,CAAE,OAAAu6C,EAAQ,QAAAzmB,CAAS,EAAG5wB,EAC5B,GAAIA,IAAS,KAAK,MAAQq3C,GAAUzmB,EAAQ,aAAc,CAKtD,GAAIymB,EAAO,OAAQ,CACfi4N,GAAYyE,EAAkBj3C,CAAG,EACjC,KAAM,CAAE,OAAQk3C,GAAe,KAAK,KAKhCA,IACAzQ,GAAcwQ,EAAiB,EAAG,CAACC,EAAW,OAAO,CAAC,EACtDzQ,GAAcwQ,EAAiB,EAAG,CAACC,EAAW,OAAO,CAAC,EAE7D,CACDzQ,GAAcwQ,EAAiB,EAAG18N,EAAO,OAAO,CAAC,EACjDksN,GAAcwQ,EAAiB,EAAG18N,EAAO,OAAO,CAAC,CACpD,CACJ,CACD,OAAO08N,CACV,CACD,eAAej3C,EAAKm3C,EAAgB,GAAO,CACvC,MAAMC,EAAiBtS,KACvB0N,GAAY4E,EAAgBp3C,CAAG,EAC/B,QAAShgO,EAAI,EAAGA,EAAI,KAAK,KAAK,OAAQA,IAAK,CACvC,MAAMkD,EAAO,KAAK,KAAKlD,CAAC,EACpB,CAACm3Q,GACDj0Q,EAAK,QAAQ,cACbA,EAAK,QACLA,IAASA,EAAK,MACdqjQ,GAAa6Q,EAAgB,CACzB,EAAG,CAACl0Q,EAAK,OAAO,OAAO,EACvB,EAAG,CAACA,EAAK,OAAO,OAAO,CAC/C,CAAqB,EAEA09O,GAAa19O,EAAK,YAAY,GAEnCqjQ,GAAa6Q,EAAgBl0Q,EAAK,YAAY,CACjD,CACD,OAAI09O,GAAa,KAAK,YAAY,GAC9B2lB,GAAa6Q,EAAgB,KAAK,YAAY,EAE3CA,CACV,CACD,gBAAgBp3C,EAAK,CACjB,IAAIh+N,EACJ,MAAMq1Q,EAAsBvS,KAC5B0N,GAAY6E,EAAqBr3C,CAAG,EACpC,QAAShgO,EAAI,EAAGA,EAAI,KAAK,KAAK,OAAQA,IAAK,CACvC,MAAMkD,EAAO,KAAK,KAAKlD,CAAC,EAGxB,GAFI,CAACkD,EAAK,UAEN,CAAC09O,GAAa19O,EAAK,YAAY,EAC/B,SACJoiQ,GAASpiQ,EAAK,YAAY,GAAKA,EAAK,eAAc,EAClD,MAAM6vQ,EAAYjO,KACZwS,EAAUp0Q,EAAK,iBACrBsvQ,GAAYO,EAAWuE,CAAO,EAC9BxE,GAAoBuE,EAAqBn0Q,EAAK,cAAelB,EAAKkB,EAAK,YAAc,MAAQlB,IAAO,OAAS,OAASA,EAAG,UAAW+wQ,CAAS,CAChJ,CACD,OAAInyB,GAAa,KAAK,YAAY,GAC9BkyB,GAAoBuE,EAAqB,KAAK,YAAY,EAEvDA,CACV,CAID,eAAez8O,EAAO,CAClB,KAAK,YAAcA,EACnB,KAAK,kBAAoB,GACzB,KAAK,KAAK,0BACb,CACD,WAAW9G,EAAS,CAChB,KAAK,QAAU,CACX,GAAG,KAAK,QACR,GAAGA,EACH,UAAWA,EAAQ,YAAc,OAAYA,EAAQ,UAAY,EACjF,CACS,CACD,mBAAoB,CAChB,KAAK,OAAS,OACd,KAAK,OAAS,OACd,KAAK,SAAW,OAChB,KAAK,2BAA6B,OAClC,KAAK,YAAc,OACnB,KAAK,OAAS,OACd,KAAK,cAAgB,EACxB,CAID,oBAAqB,CACjB,IAAI9xB,EAMJ,MAAM2vQ,EAAO,KAAK,UAOlB,GANA,KAAK,oBAAsB,KAAK,kBAAoBA,EAAK,mBACzD,KAAK,mBAAqB,KAAK,iBAAmBA,EAAK,kBAKnD,CAAC,KAAK,mBAAqB,CAAC,KAAK,+BACjC,OACJ,KAAM,CAAE,OAAA5yB,EAAQ,SAAApB,GAAa,KAAK,QAIlC,GAAI,GAAC,KAAK,QAAU,EAAEoB,GAAUpB,IAQhC,IAAI,CAAC,KAAK,aAAe,CAAC,KAAK,eAAgB,CAE3C,MAAM45B,EAAiB,KAAK,6BACxBA,GAAkBA,EAAe,QACjC,KAAK,eAAiBA,EACtB,KAAK,eAAiBzS,KACtB,KAAK,qBAAuBA,KAC5BzB,GAAqB,KAAK,qBAAsB,KAAK,OAAO,UAAWkU,EAAe,OAAO,SAAS,EACtG/E,GAAY,KAAK,eAAgB,KAAK,oBAAoB,GAG1D,KAAK,eAAiB,KAAK,eAAiB,MAEnD,CAKD,GAAI,GAAC,KAAK,gBAAkB,CAAC,KAAK,eAK7B,KAAK,SACN,KAAK,OAAS1N,KACd,KAAK,qBAAuBA,MAK5B,KAAK,gBACL,KAAK,uBACH,GAAA9iQ,EAAK,KAAK,kBAAoB,MAAQA,IAAO,SAAkBA,EAAG,QACpEmhQ,IAAgB,KAAK,OAAQ,KAAK,eAAgB,KAAK,eAAe,MAAM,EAKvE,KAAK,aACE,KAAK,aAEb,KAAK,OAAS,KAAK,eAAe,KAAK,OAAO,SAAS,EAGvDqP,GAAY,KAAK,OAAQ,KAAK,OAAO,SAAS,EAElDtM,GAAc,KAAK,OAAQ,KAAK,WAAW,GAM3CsM,GAAY,KAAK,OAAQ,KAAK,OAAO,SAAS,EAK9C,KAAK,gCAAgC,CACrC,KAAK,+BAAiC,GACtC,MAAM+E,EAAiB,KAAK,6BACxBA,GACA,EAAQA,EAAe,cACnB,EAAQ,KAAK,cACjB,CAACA,EAAe,QAAQ,cACxBA,EAAe,QACf,KAAK,eAAiBA,EACtB,KAAK,eAAiBzS,KACtB,KAAK,qBAAuBA,KAC5BzB,GAAqB,KAAK,qBAAsB,KAAK,OAAQkU,EAAe,MAAM,EAClF/E,GAAY,KAAK,eAAgB,KAAK,oBAAoB,GAG1D,KAAK,eAAiB,KAAK,eAAiB,MAEnD,EACJ,CACD,4BAA6B,CACzB,GAAI,GAAC,KAAK,QACNlN,GAAS,KAAK,OAAO,YAAY,GACjCG,GAAe,KAAK,OAAO,YAAY,GAE3C,OAAK,KAAK,OAAO,gBAAkB,KAAK,OAAO,cAC3C,KAAK,OAAO,OACL,KAAK,OAGL,KAAK,OAAO,4BAE1B,CACD,gBAAiB,CACb,IAAIzjQ,EACJ,KAAM,CAAE,kBAAAw1Q,EAAmB,iBAAAC,CAAkB,EAAG,KAChD,KAAK,kBAAoB,KAAK,iBAAmB,GACjD,MAAM9F,EAAO,KAAK,UACZ+F,EAAW,EAAQ,KAAK,cAAiB,OAAS/F,EACxD,IAAIgG,EAAU,GAKd,GAJIH,IACAG,EAAU,IACVD,GAAYD,IACZE,EAAU,IACVA,EACA,OACJ,KAAM,CAAE,OAAA54B,EAAQ,SAAApB,GAAa,KAAK,QAWlC,GANA,KAAK,gBAAkB,GAAU,GAAA37O,EAAK,KAAK,UAAY,MAAQA,IAAO,SAAkBA,EAAG,iBACvF,KAAK,kBACL,KAAK,kBACJ,KAAK,kBACN,KAAK,YAAc,KAAK,eAAiB,QAEzC,CAAC,KAAK,QAAU,EAAE+8O,GAAUpB,GAC5B,OAKJ60B,GAAY,KAAK,gBAAiB,KAAK,OAAO,SAAS,EAKvDrM,IAAgB,KAAK,gBAAiB,KAAK,UAAW,KAAK,KAAMuR,CAAQ,EACzE,KAAM,CAAE,OAAApuQ,CAAQ,EAAGqoQ,EACnB,GAAI,CAACroQ,EACD,OACC,KAAK,kBACN,KAAK,gBAAkBs7P,KACvB,KAAK,6BAA+BA,MAExC,MAAMgT,EAAiB,KAAK,UAAU,EAChCC,EAAiB,KAAK,UAAU,EAChCC,EAA0B,KAAK,oBAUrC7U,GAAa,KAAK,gBAAiB,KAAK,gBAAiB35P,EAAQ,KAAK,YAAY,EAClF,KAAK,oBAAsBmqQ,GAAyB,KAAK,gBAAiB,KAAK,SAAS,GACpF,KAAK,sBAAwBqE,GAC7B,KAAK,UAAU,IAAMF,GACrB,KAAK,UAAU,IAAMC,KACrB,KAAK,aAAe,GACpB,KAAK,eAAc,EACnB,KAAK,gBAAgB,mBAAoBvuQ,CAAM,EAEtD,CACD,MAAO,CACH,KAAK,UAAY,EAEpB,CACD,MAAO,CACH,KAAK,UAAY,EAEpB,CACD,eAAeyuQ,EAAY,GAAM,CAC7B,IAAI/1Q,EAAI2J,EAAI25C,GACX35C,GAAM3J,EAAK,KAAK,SAAS,kBAAoB,MAAQ2J,IAAO,QAAkBA,EAAG,KAAK3J,CAAE,EACzF+1Q,KAAezyN,EAAK,KAAK,SAAU,KAAM,MAAQA,IAAO,QAAkBA,EAAG,eAAgB,GACzF,KAAK,cAAgB,CAAC,KAAK,aAAa,WACxC,KAAK,aAAe,OAE3B,CACD,mBAAmB1qB,EAAOg7O,EAA+B,GAAO,CAC5D,IAAI5zQ,EAAI2J,EACR,MAAMs8J,EAAW,KAAK,SAChB+vG,GAAwB/vG,GAAa,KAA8B,OAASA,EAAS,eAAiB,GACtGgwG,EAAc,CAAE,GAAG,KAAK,YAAY,EACpCC,EAActT,KACpB,KAAK,eAAiB,KAAK,qBAAuB,OAClD,KAAK,+BAAiC,CAACgR,EACvC,MAAMuC,EAAiBrT,KACjBsT,GAA2BnwG,GAAa,KAA8B,OAASA,EAAS,YAAcjmK,EAAK,KAAK,UAAY,MAAQA,IAAO,OAAS,OAASA,EAAG,QAChK6vQ,KAAkBlmQ,EAAK,KAAK,SAAU,KAAM,MAAQA,IAAO,OAAS,OAASA,EAAG,QAAQ,SAAW,IAAM,EACzGimQ,EAAyB,GAAQwG,GACnC,CAACvG,GACD,KAAK,QAAQ,YAAc,IAC3B,CAAC,KAAK,KAAK,KAAKwG,GAAmB,GACvC,KAAK,kBAAoB,EACzB,KAAK,eAAkBh1B,GAAW,CAC9B,IAAIrhP,EACJ,MAAMiwP,EAAW5O,EAAS,IAC1Bi1B,GAAaJ,EAAY,EAAGt9O,EAAM,EAAGq3N,CAAQ,EAC7CqmB,GAAaJ,EAAY,EAAGt9O,EAAM,EAAGq3N,CAAQ,EAC7C,KAAK,eAAeimB,CAAW,EAC3B,KAAK,gBACL,KAAK,sBACL,KAAK,SACH,GAAAl2Q,EAAK,KAAK,kBAAoB,MAAQA,IAAO,SAAkBA,EAAG,UACpEqhQ,GAAqB8U,EAAgB,KAAK,OAAO,UAAW,KAAK,eAAe,OAAO,SAAS,EAChGI,IAAO,KAAK,eAAgB,KAAK,qBAAsBJ,EAAgBlmB,CAAQ,GAE/EmmB,IACA,KAAK,gBAAkBH,EACvBxG,IAAUwG,EAAaD,EAAsB,KAAK,aAAc/lB,EAAU2f,EAAwBC,CAAY,GAElH,KAAK,KAAK,2BACV,KAAK,eAAc,EACnB,KAAK,kBAAoB5f,CACzC,EACY,KAAK,eAAe,CAAC,CACxB,CACD,eAAen+N,EAAS,CACpB,IAAI9xB,EAAI2J,EACR,KAAK,gBAAgB,gBAAgB,GACpC3J,EAAK,KAAK,oBAAsB,MAAQA,IAAO,QAAkBA,EAAG,KAAI,EACrE,KAAK,gBACJ2J,EAAK,KAAK,aAAa,oBAAsB,MAAQA,IAAO,QAAkBA,EAAG,KAAI,GAEtF,KAAK,mBACLmhP,GAAW,OAAO,KAAK,gBAAgB,EACvC,KAAK,iBAAmB,QAO5B,KAAK,iBAAmBH,GAAK,OAAO,IAAM,CACtC7P,GAAsB,uBAAyB,GAC/C,KAAK,iBAAmBT,IAAQ,EAAGg4B,GAAiB,CAChD,GAAGvgP,EACH,SAAWuvN,GAAW,CAClB,IAAIrhP,EACJ,KAAK,eAAeqhP,CAAM,GACzBrhP,EAAK8xB,EAAQ,YAAc,MAAQ9xB,IAAO,QAAkBA,EAAG,KAAK8xB,EAASuvN,CAAM,CACvF,EACD,WAAY,IAAM,CACd,IAAIrhP,GACHA,EAAK8xB,EAAQ,cAAgB,MAAQ9xB,IAAO,QAAkBA,EAAG,KAAK8xB,CAAO,EAC9E,KAAK,kBAAiB,CACzB,CACrB,CAAiB,EACG,KAAK,eACL,KAAK,aAAa,iBAAmB,KAAK,kBAE9C,KAAK,iBAAmB,MACxC,CAAa,CACJ,CACD,mBAAoB,CAChB,IAAI9xB,EACA,KAAK,eACL,KAAK,aAAa,iBAAmB,OACrC,KAAK,aAAa,gBAAkB,SAEvCA,EAAK,KAAK,SAAQ,KAAQ,MAAQA,IAAO,QAAkBA,EAAG,sBAAqB,EACpF,KAAK,aACD,KAAK,iBACD,KAAK,gBACD,OACZ,KAAK,gBAAgB,mBAAmB,CAC3C,CACD,iBAAkB,CACd,IAAIA,EACA,KAAK,oBACJA,EAAK,KAAK,kBAAoB,MAAQA,IAAO,QAAkBA,EAAG,KAAK,KAAMqyQ,EAAe,EAC7F,KAAK,iBAAiB,QAE1B,KAAK,kBAAiB,CACzB,CACD,yBAA0B,CACtB,MAAM1C,EAAO,KAAK,UAClB,GAAI,CAAE,qBAAA6G,EAAsB,OAAAlvQ,EAAQ,OAAAy1O,EAAQ,aAAA2B,CAAY,EAAKixB,EAC7D,GAAI,GAAC6G,GAAwB,CAAClvQ,GAAU,CAACy1O,GAOzC,IAAI,OAAS4yB,GACT,KAAK,QACL5yB,GACA05B,GAA0B,KAAK,QAAQ,cAAe,KAAK,OAAO,UAAW15B,EAAO,SAAS,EAAG,CAChGz1O,EAAS,KAAK,QAAUw7P,KACxB,MAAM4T,EAAU7V,GAAW,KAAK,OAAO,UAAU,CAAC,EAClDv5P,EAAO,EAAE,IAAMqoQ,EAAK,OAAO,EAAE,IAC7BroQ,EAAO,EAAE,IAAMA,EAAO,EAAE,IAAMovQ,EAC9B,MAAMC,EAAU9V,GAAW,KAAK,OAAO,UAAU,CAAC,EAClDv5P,EAAO,EAAE,IAAMqoQ,EAAK,OAAO,EAAE,IAC7BroQ,EAAO,EAAE,IAAMA,EAAO,EAAE,IAAMqvQ,CACjC,CACDnG,GAAYgG,EAAsBlvQ,CAAM,EAMxCi9P,GAAaiS,EAAsB93B,CAAY,EAO/CuiB,GAAa,KAAK,6BAA8B,KAAK,gBAAiBuV,EAAsB93B,CAAY,EAC3G,CACD,mBAAmB/C,EAAUz6O,EAAM,CAC/B,IAAIlB,EAAI2J,EAAI25C,EACP,KAAK,YAAY,IAAIq4L,CAAQ,GAC9B,KAAK,YAAY,IAAIA,EAAU,IAAIw1B,GAAW,EAEpC,KAAK,YAAY,IAAIx1B,CAAQ,EACrC,IAAIz6O,CAAI,EACdA,EAAK,QAAQ,CACT,YAAalB,EAAKkB,EAAK,QAAQ,0BAA4B,MAAQlB,IAAO,OAAS,OAASA,EAAG,WAC/F,uBAAwBsjD,GAAM35C,EAAKzI,EAAK,QAAQ,0BAA4B,MAAQyI,IAAO,OAAS,OAASA,EAAG,+BAAiC,MAAQ25C,IAAO,OAAS,OAASA,EAAG,KAAK35C,EAAIzI,CAAI,CAClN,CAAa,CACJ,CACD,QAAS,CACL,MAAM2sB,EAAQ,KAAK,WACnB,OAAOA,EAAQA,EAAM,OAAS,KAAO,EACxC,CACD,SAAU,CACN,IAAI7tB,EACJ,KAAM,CAAE,SAAA27O,CAAQ,EAAK,KAAK,QAC1B,OAAOA,IAAa37O,EAAK,KAAK,SAAU,KAAM,MAAQA,IAAO,OAAS,OAASA,EAAG,OAAS,KAAO,IACrG,CACD,aAAc,CACV,IAAIA,EACJ,KAAM,CAAE,SAAA27O,CAAQ,EAAK,KAAK,QAC1B,OAAOA,GAAY37O,EAAK,KAAK,SAAU,KAAM,MAAQA,IAAO,OAAS,OAASA,EAAG,SAAW,MAC/F,CACD,UAAW,CACP,KAAM,CAAE,SAAA27O,CAAQ,EAAK,KAAK,QAC1B,GAAIA,EACA,OAAO,KAAK,KAAK,YAAY,IAAIA,CAAQ,CAChD,CACD,QAAQ,CAAE,WAAAi7B,EAAY,WAAA9yB,EAAY,sBAAAytB,CAAqB,EAAM,GAAI,CAC7D,MAAM1jP,EAAQ,KAAK,WACfA,GACAA,EAAM,QAAQ,KAAM0jP,CAAqB,EACzCqF,IACA,KAAK,gBAAkB,OACvB,KAAK,WAAa,IAElB9yB,GACA,KAAK,WAAW,CAAE,WAAAA,CAAU,CAAE,CACrC,CACD,UAAW,CACP,MAAMj2N,EAAQ,KAAK,WACnB,OAAIA,EACOA,EAAM,SAAS,IAAI,EAGnB,EAEd,CACD,eAAgB,CACZ,KAAM,CAAE,cAAA6rN,CAAa,EAAK,KAAK,QAC/B,GAAI,CAACA,EACD,OAEJ,IAAIm9B,EAAY,GAKhB,KAAM,CAAE,aAAAn4B,CAAc,EAAGhF,EAQzB,IAPIgF,EAAa,QACbA,EAAa,SACbA,EAAa,SACbA,EAAa,WACbm4B,EAAY,IAGZ,CAACA,EACD,OACJ,MAAMC,EAAc,GAEpB,QAAS94Q,EAAI,EAAGA,EAAIo0Q,GAAc,OAAQp0Q,IAAK,CAC3C,MAAM2W,EAAM,SAAWy9P,GAAcp0Q,CAAC,EAElC0gP,EAAa/pO,CAAG,IAChBmiQ,EAAYniQ,CAAG,EAAI+pO,EAAa/pO,CAAG,EACnC+kO,EAAc,eAAe/kO,EAAK,CAAC,EAE1C,CAGD+kO,GAAkB,MAA4CA,EAAc,SAE5E,UAAW/kO,KAAOmiQ,EACdp9B,EAAc,eAAe/kO,EAAKmiQ,EAAYniQ,CAAG,CAAC,EAItD+kO,EAAc,eAAc,CAC/B,CACD,oBAAoBj+E,EAAY,GAAI,CAChC,IAAIz7J,EAAI2J,EAAI25C,EAEZ,MAAMt6C,EAAS,GACf,GAAI,CAAC,KAAK,UAAY,KAAK,MACvB,OAAOA,EACX,GAAK,KAAK,UAINA,EAAO,WAAa,OAHpB,OAAO,CAAE,WAAY,UAKzB,MAAMw0O,GAAqBx9O,EAAK,KAAK,QAAQ,iBAAmB,MAAQA,IAAO,OAAS,OAASA,EAAG,SAAQ,EAAG,kBAC/G,GAAI,KAAK,WACL,YAAK,WAAa,GAClBgJ,EAAO,QAAU,GACjBA,EAAO,cACH+5O,GAAmBtnF,EAAU,aAAa,GAAK,GACnDzyJ,EAAO,UAAYw0O,EACbA,EAAkB,KAAK,aAAc,EAAE,EACvC,OACCx0O,EAEX,MAAM2mQ,EAAO,KAAK,UAClB,GAAI,CAAC,KAAK,iBAAmB,CAAC,KAAK,QAAU,CAACA,EAAK,OAAQ,CACvD,MAAMoH,EAAc,GACpB,OAAI,KAAK,QAAQ,WACbA,EAAY,QACR,KAAK,aAAa,UAAY,OACxB,KAAK,aAAa,QAClB,EACVA,EAAY,cACRh0B,GAAmBtnF,EAAU,aAAa,GAAK,IAEnD,KAAK,cAAgB,CAACmjF,GAAa,KAAK,YAAY,IACpDm4B,EAAY,UAAYv5B,EAClBA,EAAkB,CAAE,EAAE,EAAE,EACxB,OACN,KAAK,aAAe,IAEjBu5B,CACV,CACD,MAAMC,EAAiBrH,EAAK,iBAAmBA,EAAK,aACpD,KAAK,wBAAuB,EAC5B3mQ,EAAO,UAAYyoQ,GAAyB,KAAK,6BAA8B,KAAK,UAAWuF,CAAc,EACzGx5B,IACAx0O,EAAO,UAAYw0O,EAAkBw5B,EAAgBhuQ,EAAO,SAAS,GAEzE,KAAM,CAAE,EAAAh0B,EAAG,EAAAC,GAAM,KAAK,gBACtB+zB,EAAO,gBAAkB,GAAGh0B,EAAE,OAAS,GAAG,KAAKC,EAAE,OAAS,GAAG,MACzD06R,EAAK,gBAKL3mQ,EAAO,QACH2mQ,IAAS,MACFrsN,GAAM35C,EAAKqtQ,EAAe,WAAa,MAAQrtQ,IAAO,OAASA,EAAK,KAAK,aAAa,WAAa,MAAQ25C,IAAO,OAASA,EAAK,EACjI,KAAK,gBACD,KAAK,aAAa,QAClB0zN,EAAe,YAO7BhuQ,EAAO,QACH2mQ,IAAS,KACHqH,EAAe,UAAY,OACvBA,EAAe,QACf,GACJA,EAAe,cAAgB,OAC3BA,EAAe,YACf,EAKlB,UAAWriQ,KAAO8nO,GAAiB,CAC/B,GAAIu6B,EAAeriQ,CAAG,IAAM,OACxB,SACJ,KAAM,CAAE,QAAAsiQ,EAAS,QAAAlI,CAAS,EAAGtyB,GAAgB9nO,CAAG,EAC1CuiQ,EAAYD,EAAQD,EAAeriQ,CAAG,EAAGg7P,CAAI,EACnD,GAAIZ,EAAS,CACT,MAAM9sD,EAAM8sD,EAAQ,OACpB,QAAS/wQ,EAAI,EAAGA,EAAIikN,EAAKjkN,IACrBgL,EAAO+lQ,EAAQ/wQ,CAAC,CAAC,EAAIk5Q,CAE5B,MAEGluQ,EAAO2L,CAAG,EAAIuiQ,CAErB,CAMD,OAAI,KAAK,QAAQ,WACbluQ,EAAO,cACH2mQ,IAAS,KACH5sB,GAAmBtnF,EAAU,aAAa,GAAK,GAC/C,QAEPzyJ,CACV,CACD,eAAgB,CACZ,KAAK,WAAa,KAAK,SAAW,MACrC,CAED,WAAY,CACR,KAAK,KAAK,MAAM,QAAS9H,GAAS,CAAE,IAAIlB,EAAI,OAAQA,EAAKkB,EAAK,oBAAsB,MAAQlB,IAAO,OAAS,OAASA,EAAG,MAAO,CAAE,EACjI,KAAK,KAAK,MAAM,QAAQg0Q,EAAiB,EACzC,KAAK,KAAK,YAAY,OACzB,CACT,CACA,CACA,SAASG,IAAajzQ,EAAM,CACxBA,EAAK,aAAY,CACrB,CACA,SAASkzQ,IAAmBlzQ,EAAM,CAC9B,IAAIlB,EAAI2J,EAAI25C,EACZ,MAAM2iH,IAAajmK,EAAKkB,EAAK,cAAgB,MAAQlB,IAAO,OAAS,OAASA,EAAG,WAAakB,EAAK,SACnG,GAAIA,EAAK,OAAQ,GACbA,EAAK,QACL+kK,GACA/kK,EAAK,aAAa,WAAW,EAAG,CAChC,KAAM,CAAE,UAAW67O,EAAQ,YAAao6B,CAAgB,EAAGj2Q,EAAK,OAC1D,CAAE,cAAAk2Q,CAAa,EAAKl2Q,EAAK,QACzBw0Q,EAAWzvG,EAAS,SAAW/kK,EAAK,OAAO,OAG7Ck2Q,IAAkB,OAClBrU,GAAUvrO,GAAS,CACf,MAAM6/O,EAAe3B,EACfzvG,EAAS,YAAYzuI,CAAI,EACzByuI,EAAS,UAAUzuI,CAAI,EACvBsD,EAAS+lO,GAAWwW,CAAY,EACtCA,EAAa,IAAMt6B,EAAOvlN,CAAI,EAAE,IAChC6/O,EAAa,IAAMA,EAAa,IAAMv8O,CACtD,CAAa,EAEI27O,GAA0BW,EAAenxG,EAAS,UAAW82E,CAAM,GACxEgmB,GAAUvrO,GAAS,CACf,MAAM6/O,EAAe3B,EACfzvG,EAAS,YAAYzuI,CAAI,EACzByuI,EAAS,UAAUzuI,CAAI,EACvBsD,EAAS+lO,GAAW9jB,EAAOvlN,CAAI,CAAC,EACtC6/O,EAAa,IAAMA,EAAa,IAAMv8O,CACtD,CAAa,EAEL,MAAMw8O,EAAc1U,KACpB3B,GAAaqW,EAAav6B,EAAQ92E,EAAS,SAAS,EACpD,MAAMsxG,EAAc3U,KAChB8S,EACAzU,GAAasW,EAAar2Q,EAAK,eAAei2Q,EAAgB,EAAI,EAAGlxG,EAAS,WAAW,EAGzFg7F,GAAasW,EAAax6B,EAAQ92E,EAAS,SAAS,EAExD,MAAMqhG,EAAmB,CAAC2J,GAAYqG,CAAW,EACjD,IAAIjE,EAA2B,GAC/B,GAAI,CAACnyQ,EAAK,WAAY,CAClB,MAAMq0Q,EAAiBr0Q,EAAK,6BAK5B,GAAIq0Q,GAAkB,CAACA,EAAe,WAAY,CAC9C,KAAM,CAAE,SAAUiC,EAAgB,OAAQC,CAAY,EAAKlC,EAC3D,GAAIiC,GAAkBC,EAAc,CAChC,MAAMC,EAAmB5U,KACzBzB,GAAqBqW,EAAkBzxG,EAAS,UAAWuxG,EAAe,SAAS,EACnF,MAAMrB,EAAiBrT,KACvBzB,GAAqB8U,EAAgBp5B,EAAQ06B,EAAa,SAAS,EAC9DvG,GAAUwG,EAAkBvB,CAAc,IAC3C9C,EAA2B,GAElC,CACJ,CACJ,CACDnyQ,EAAK,gBAAgB,YAAa,CAC9B,OAAA67O,EACA,SAAA92E,EACA,MAAOsxG,EACP,YAAAD,EACA,iBAAAhQ,EACA,yBAAA+L,CACZ,CAAS,CACJ,MACQnyQ,EAAK,YACToiD,GAAM35C,EAAKzI,EAAK,SAAS,kBAAoB,MAAQoiD,IAAO,QAAkBA,EAAG,KAAK35C,CAAE,GAO7FzI,EAAK,QAAQ,WAAa,MAC9B,CACA,SAAS2xQ,IAAoB3xQ,EAAM,CAK/BA,EAAK,oBAAsBA,EAAK,kBAAoB,GAAQA,EAAK,QAAUA,EAAK,OAAO,oBAIvFA,EAAK,mBAAqBA,EAAK,iBAAmB,GAAQA,EAAK,QAAUA,EAAK,OAAO,kBACzF,CACA,SAASmzQ,IAAcnzQ,EAAM,CACzBA,EAAK,cAAa,CACtB,CACA,SAAS8yQ,GAAkB9yQ,EAAM,CAC7BA,EAAK,kBAAiB,CAC1B,CACA,SAASgzQ,IAAoBhzQ,EAAM,CAC/B,KAAM,CAAE,cAAAw4O,CAAa,EAAKx4O,EAAK,QAC3Bw4O,GAAkB,MAA4CA,EAAc,SAAU,EAAC,uBACvFA,EAAc,OAAO,qBAAqB,EAE9Cx4O,EAAK,eAAc,CACvB,CACA,SAASkyQ,GAAgBlyQ,EAAM,CAC3BA,EAAK,gBAAe,EACpBA,EAAK,YAAcA,EAAK,eAAiBA,EAAK,OAAS,MAC3D,CACA,SAAS4xQ,IAAmB5xQ,EAAM,CAC9BA,EAAK,mBAAkB,CAC3B,CACA,SAAS6xQ,IAAe7xQ,EAAM,CAC1BA,EAAK,eAAc,CACvB,CACA,SAAS4yQ,IAAc5yQ,EAAM,CACzBA,EAAK,cAAa,CACtB,CACA,SAASozQ,IAAoBzmP,EAAO,CAChCA,EAAM,mBAAkB,CAC5B,CACA,SAASyoP,GAAaz5M,EAAQjkC,EAAOnkD,EAAG,CACpCooF,EAAO,UAAY5kD,GAAI2gB,EAAM,UAAW,EAAGnkD,CAAC,EAC5CooF,EAAO,MAAQ5kD,GAAI2gB,EAAM,MAAO,EAAGnkD,CAAC,EACpCooF,EAAO,OAASjkC,EAAM,OACtBikC,EAAO,YAAcjkC,EAAM,WAC/B,CACA,SAAS++O,GAAQ96M,EAAQz+D,EAAMD,EAAI1pB,EAAG,CAClCooF,EAAO,IAAM5kD,GAAI7Z,EAAK,IAAKD,EAAG,IAAK1pB,CAAC,EACpCooF,EAAO,IAAM5kD,GAAI7Z,EAAK,IAAKD,EAAG,IAAK1pB,CAAC,CACxC,CACA,SAAS8hS,IAAO15M,EAAQz+D,EAAMD,EAAI1pB,EAAG,CACjCkjS,GAAQ96M,EAAO,EAAGz+D,EAAK,EAAGD,EAAG,EAAG1pB,CAAC,EACjCkjS,GAAQ96M,EAAO,EAAGz+D,EAAK,EAAGD,EAAG,EAAG1pB,CAAC,CACrC,CACA,SAAS4hS,IAAoBn1Q,EAAM,CAC/B,OAAQA,EAAK,iBAAmBA,EAAK,gBAAgB,cAAgB,MACzE,CACA,MAAMsyQ,IAA0B,CAC5B,SAAU,IACV,KAAM,CAAC,GAAK,EAAG,GAAK,CAAC,CACzB,EACA,SAASS,IAAe/yQ,EAAM0xQ,EAAW,CAKrC,IAAIgF,EAAa12Q,EAAK,KACtB,QAASlD,EAAIkD,EAAK,KAAK,OAAS,EAAGlD,GAAK,EAAGA,IACvC,GAAYkD,EAAK,KAAKlD,CAAC,EAAE,SAAW,CAChC45Q,EAAa12Q,EAAK,KAAKlD,CAAC,EACxB,KACH,CAGL,MAAM0F,GADgBk0Q,GAAcA,IAAe12Q,EAAK,KAAO02Q,EAAW,SAAW,UACvD,cAAc,wBAAwBhF,CAAS,IAAI,EAC7ElvQ,GACAxC,EAAK,MAAMwC,EAAS,EAAI,CAChC,CACA,SAASm0Q,GAAUrgP,EAAM,CACrBA,EAAK,IAAM,KAAK,MAAMA,EAAK,GAAG,EAC9BA,EAAK,IAAM,KAAK,MAAMA,EAAK,GAAG,CAClC,CACA,SAASw9O,IAASh3C,EAAK,CACnB65C,GAAU75C,EAAI,CAAC,EACf65C,GAAU75C,EAAI,CAAC,CACnB,CACA,SAASy4C,GAA0BW,EAAenxG,EAAU82E,EAAQ,CAChE,OAAQq6B,IAAkB,YACrBA,IAAkB,mBACf,CAACtW,GAAO3oJ,GAAY8tD,CAAQ,EAAG9tD,GAAY4kI,CAAM,EAAG,EAAG,CACnE,CC5xCA,MAAM+6B,IAAyBxF,GAAqB,CAChD,qBAAsB,CAACvxQ,EAAKm6K,IAAWkpE,GAAYrjP,EAAK,SAAUm6K,CAAM,EACxE,cAAe,KAAO,CAClB,EAAG,SAAS,gBAAgB,YAAc,SAAS,KAAK,WACxD,EAAG,SAAS,gBAAgB,WAAa,SAAS,KAAK,SAC/D,GACI,kBAAmB,IAAM,EAC7B,CAAC,ECPKiqF,GAAqB,CACvB,QAAS,MACb,EACM4S,IAAqBzF,GAAqB,CAC5C,cAAgBt3K,IAAc,CAC1B,EAAGA,EAAS,WACZ,EAAGA,EAAS,SACpB,GACI,cAAe,IAAM,CACjB,GAAI,CAACmqK,GAAmB,QAAS,CAC7B,MAAM6S,EAAe,IAAIF,IAAuB,EAAG,CAAE,GACrDE,EAAa,MAAM,MAAM,EACzBA,EAAa,WAAW,CAAE,aAAc,EAAM,GAC9C7S,GAAmB,QAAU6S,CAChC,CACD,OAAO7S,GAAmB,OAC7B,EACD,eAAgB,CAACnqK,EAAU97F,IAAU,CACjC87F,EAAS,MAAM,UAAY97F,IAAU,OAAYA,EAAQ,MAC5D,EACD,kBAAoB87F,GAAqB,OAAO,iBAAiBA,CAAQ,EAAE,WAAa,OAC5F,CAAC,ECdKi9K,IAAgB,CAClB,GAAG7b,IACH,GAAGjT,IACH,GAAGnD,IACH,GAAGqpB,GACP,EAOM6I,GAAuBh8B,IAAkB,CAAC3qO,EAAWuB,IAAWoxO,IAAsB3yO,EAAWuB,EAAQmlQ,IAAevL,IAAwBqL,GAAkB,CAAC,ECZzK,SAASI,KAAS,CACV,MAAEvjS,KAAMyzK,GAAe,EACvB3yD,EAAWo8D,KAkCjB,SACE,OAAK,YAAU,IAAIjgJ,UAAU,uCAAsC7S,UAChE+4O,MAAS,MACV,QAAMlmO,UAAU,+DAA8D7S,SAAA,CAC5Ewe,EAACw4N,IAAU,CAAC/vJ,OApCEmyL,IAAM,CACxB,OAAQ1iL,EAASu0D,SAAQ,CACvB,IAAK,IACI,SAAGr1K,EAAE,gBAAgB,CAAC,GAC/B,IAAK,mBACI,SAAGA,EAAE,eAAe,CAAC,GAC9B,IAAK,WACI,SAAGA,EAAE,gBAAgB,CAAC,GAC/B,IAAK,mBACI,SAAGA,EAAE,gBAAgB,CAAC,GAE/B,IAAK,YACI,SAAGA,EAAE,iBAAiB,CAAC,GAChC,IAAK,mBACI,SAAGA,EAAE,gBAAgB,CAAC,GAC/B,IAAK,uBACI,SAAGA,EAAE,gBAAgB,CAAC,GAC/B,IAAK,6BACI,SAAGA,EAAE,gBAAgB,CAAC,GAC/B,IAAK,YACI,SAAGA,EAAE,iBAAiB,CAAC,GAChC,IAAK,kCACI,SAAGA,EAAE,iBAAiB,CAAC,GAChC,IAAK,UACI,SAAGA,EAAE,eAAe,CAAC,GAC9B,IAAK,iBACI,SAAGA,EAAE,eAAe,CAAC,GAC9B,QACS,gBACX,IAOmC,EAAI,EACnC4oC,EAAA,OACE3L,UAAU,iBACV+N,MAAO,CACLy4P,wBAAyB,OAC3B,EAAEr5Q,SAEDk5Q,KAAOr5H,IAAG,CACTu7F,QAAS,CAAEr+N,QAAS,CAAE,EACtBs+N,QAAS,CAAEt+N,QAAS,CAAE,EACtBu8P,KAAM,CAAEv8P,QAAS,CAAE,EACnB+nO,WAAY,CAAEnlK,SAAU,EAAI,EAAE3/E,SAE9Bwe,EAACs6I,IAAQ,IACC,EACT,EACLt6I,EAAC8mM,GAAM,CAACC,aAAc,GAAO,CAAC,EAC1B,CAAC,EACJ,CAET,CCrEA,MAAMg0D,IAAkBx5Q,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAK,EAAoB4lN,EAAmB,cAAC,OAAQ,CAAE,MAAO,GAAI,OAAQ,GAAI,GAAI,EAAG,KAAM,SAAS,CAAE,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,2MAA4M,OAAQ,UAAW,YAAa,IAAK,cAAe,QAAS,eAAgB,OAAS,GAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,oNAAqN,OAAQ,UAAW,YAAa,IAAK,cAAe,QAAS,eAAgB,OAAS,EAAC,ECAx8B6zD,IAAkBz5Q,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAK,EAAoB4lN,gBAAoB,OAAQ,CAAE,EAAG,QAAU,MAAO,GAAI,OAAQ,GAAI,GAAI,EAAG,KAAM,SAAW,GAAmBA,gBAAoB,IAAK,CAAE,SAAU,wBAA0B,EAAkBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,w0BAAy0B,OAAQ,UAAW,YAAa,IAAK,cAAe,QAAS,eAAgB,OAAO,CAAE,CAAC,EAAmBA,gBAAoB,OAAQ,KAAsBA,EAAmB,cAAC,WAAY,CAAE,GAAI,kBAAkB,EAAoBA,gBAAoB,OAAQ,CAAE,MAAO,GAAI,OAAQ,GAAI,KAAM,QAAS,UAAW,sBAAsB,CAAE,CAAC,CAAC,CAAC,ECA/jD8zD,IAAY15Q,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,gBAAoB,IAAK,CAAE,SAAU,uBAAyB,EAAkBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,mdAAod,OAAQ,UAAW,YAAa,IAAK,cAAe,QAAS,eAAgB,OAAS,EAAC,EAAmBA,gBAAoB,OAAQ,KAAsBA,gBAAoB,WAAY,CAAE,GAAI,iBAAmB,EAAkBA,EAAmB,cAAC,OAAQ,CAAE,MAAO,GAAI,OAAQ,GAAI,KAAM,QAAS,UAAW,qBAAuB,EAAC,CAAC,CAAC,ECAplC+zD,IAAkB35Q,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,MAAO,GAAI,OAAQ,GAAI,GAAI,EAAG,KAAM,SAAS,CAAE,EAAmBA,gBAAoB,IAAK,CAAE,SAAU,uBAAyB,EAAkBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,wtCAAytC,OAAQ,UAAW,YAAa,IAAK,cAAe,QAAS,eAAgB,OAAS,EAAC,EAAmBA,EAAmB,cAAC,OAAQ,KAAsBA,gBAAoB,WAAY,CAAE,GAAI,iBAAiB,EAAoBA,gBAAoB,OAAQ,CAAE,MAAO,GAAI,OAAQ,GAAI,KAAM,QAAS,UAAW,gBAAgB,CAAE,CAAC,CAAC,CAAC,ECEh8D,SAAwBg0D,GAAgB,CAAE1yL,QAAOm7I,OAAM1qI,OAAMqsE,OAAM,GAAGhkK,CAAM,EAAG,CAC7E,SACGw7J,GAAI,CAACp8J,GAAI4kK,EAAK/jK,WACb,OACE6S,UAAU,wEAAuE,GAC7E9S,EAAKC,UAET0e,EAAA,OAAK7L,UAAU,0BAAyB7S,SAAA,CACrCoiO,EACD5jN,EAAA,MAAI3L,UAAU,+BAA8B7S,SAAEinF,EAAU,CAAC,EACtD,EACLzoE,EAAA,KAAG3L,UAAU,0CAAyC7S,SAAE03F,EAAQ,CAAC,EAC9D,EACD,CAEV,CChBA,SAAwBkiL,IAAgB,CAAE55Q,UAAS,EAAG,CACpD,SACE,OAAK6S,UAAU,uDAAsD7S,WAEhE,CAET,CCUA,SAAwB65Q,KAAU,OAC1B,MAAEjkS,KAAMyzK,GAAe,EACvB,CAAC4vF,EAAcC,CAAe,EAAIz2O,GAAM+uB,SAAS,EAAK,EAE5D,SACE,OAAK3e,UAAU,yBAAwB7S,SAAA,CACrC0e,EAACk7P,IAAe,CAAA55Q,SAAA,CACdwe,EAACm7P,GAAe,CACd1yL,MAAOrxG,EAAE,wBAAwB,EACjCwsP,KAAM5jN,EAACs7P,MAAa,EACpBpiL,KAAM9hH,EAAE,uBAAuB,EAC/BmuL,KAAK,mBACN,EACDvlJ,EAACm7P,GAAe,CACd1yL,MAAOrxG,EAAE,wBAAwB,EACjCwsP,KAAM5jN,EAACu7P,MAAa,EACpBriL,KAAM9hH,EAAE,uBAAuB,EAC/BmuL,KAAK,mBACN,EACDvlJ,EAACm7P,GAAe,CACd1yL,MAAOrxG,EAAE,wBAAwB,EACjCwsP,KAAM5jN,EAACw7P,MAAW,EAClBtiL,KAAM9hH,EAAE,uBAAuB,EAC/BmuL,KAAK,oBACN,EACDvlJ,EAACm7P,GAAe,CACd1yL,MAAOrxG,EAAE,8BAA8B,EACvCwsP,KAAM5jN,EAACy7P,MAAa,EACpBviL,KAAM9hH,EAAE,kCAAkC,EAC1CmuL,KAAK,4BACN,KAyBAzQ,OAAKl9H,MAAMwuL,aAAaC,QAAQ,gBAAgB,CAAC,IAAjDvxD,cAAoDqkF,iBACnD,aACAn5N,EAAA,OAAK3L,UAAU,YAAW7S,WACvBsgB,GAAM,CAACzN,UAAU,SAAS+xD,QAASA,IAAMs0K,EAAgB,EAAI,EAAEl5O,UAC9Dwe,EAAA,OACE1R,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,mjBACF4sC,OAAO,QACP,eAAa,IACb,iBAAe,QACf,kBAAgB,QACjB,EACE,EACJnuC,EAAE,oBAAoB,CAAC,EAClB,EACL,CACN,EACc,EACjB4oC,EAAC45N,GAAY,CAACvsO,KAAMotO,EAActtO,aAAcutO,EAAkB,CAAC,EAChE,CAET,CClGA,MAAMghC,GAAc,CAClB,aAAc,CACZ,KAAK,SAAW,gCACjB,CAED,MAAM,eAAep4O,EAAShP,EAAU,GAAI,CAC1C,KAAM,CAAE,aAAAqnP,EAAc,SAAAC,EAAU,KAAAC,CAAI,EAAKvnP,EAEzC,IAAI05H,EAAM,GAAG,KAAK,QAAQ,IAAI1qH,CAAO,GACrC,MAAMw4O,EAAc,IAAI,gBAgBxB,GAbAA,EAAY,OAAO,WAAYF,GAAY,GAAG,EAG1CD,IACF3tH,GAAO2tH,EAAa,WAAW,GAAG,EAAIA,EAAe,IAAIA,CAAY,IAInEE,GACFC,EAAY,OAAO,OAAQD,CAAI,EAI7BhzH,GAAK,SAAU,CAEjB,MAAMu5C,EADmB,CAAC,KAAM,KAAM,IAAI,EACV,SAASv5C,GAAK,QAAQ,EAClDA,GAAK,SACL,KACJizH,EAAY,OAAO,SAAU15E,CAAM,CACpC,CAGDp0C,GAAOA,EAAI,SAAS,GAAG,EACnB,IAAI8tH,EAAY,SAAQ,CAAE,GAC1B,IAAIA,EAAY,SAAQ,CAAE,GAE9B,GAAI,CACF,MAAMvuF,EAAW,MAAM,MAAMv/B,EAAK,CAChC,OAAQ,MACR,QAAS,CACP,eAAgB,kBACjB,CACT,CAAO,EAED,GAAI,CAACu/B,EAAS,GACZ,MAAM,IAAI,MAAM,uBAAuBA,EAAS,MAAM,EAAE,EAG1D,KAAM,CAAE,KAAAv5J,CAAM,EAAG,MAAMu5J,EAAS,KAAI,EACpC,OAAOv5J,CACR,OAAQ4/B,EAAO,CACd,eAAQ,MAAM,mCAAoCA,CAAK,EAChD,EACR,CACF,CACH,CAEA,MAAemoN,IAAA,IAAIL,ICzDbM,GAAkB,CAACjpC,EAAaz+M,EAAU,KAAO,CACrD,KAAM,CAACN,EAAMktB,CAAO,EAAIluB,EAAQ,SAAC,IAAI,EAC/B,CAAC+kN,EAASC,CAAU,EAAIhlN,EAAQ,SAAC,EAAI,EACrC,CAAC4gC,EAAOiO,CAAQ,EAAI7uC,EAAQ,SAAC,IAAI,EAEvCstB,mBAAU,IAAM,EACI,SAAY,CAC5B,GAAI,CACF,MAAMitI,EAAW,MAAMwuF,IAAO,eAAehpC,EAAaz+M,CAAO,EACjE4sB,EAAQqsI,CAAQ,CACjB,OAAQrtL,EAAK,CACZ2hE,EAAS3hE,CAAG,CACpB,QAAgB,CACR83O,EAAW,EAAK,CACjB,CACP,IAGA,EAAK,CAACjF,CAAW,CAAC,EAET,CAAE,KAAA/+M,EAAM,QAAA+jN,EAAS,MAAAnkL,EAC1B,ECzBA,SAASqoN,IAAaC,EAAW,CAC/B,IAAIC,EAAS,GACT/0C,EACA1sM,EA2BG,OAAE0hP,gBAzBsBlkS,GAAA,CACpBikS,EAAA,GACCliP,UAAQzgB,UAAUujB,IAAI,QAAQ,EAC/B7kD,IAAEmkS,MAAQH,EAAUjiP,QAAQqiP,WACrC5hP,EAAawhP,EAAUjiP,QAAQS,YAqBP6hP,iBAlBDA,IAAM,CACpBJ,EAAA,GACCliP,UAAQzgB,UAAU0jB,OAAO,QAAQ,GAgBDs/O,cAbtBA,IAAM,CACjBL,EAAA,GACCliP,UAAQzgB,UAAU0jB,OAAO,QAAQ,GAWcu/O,gBAR5BvkS,GAAA,CAC7B,GAAI,CAACikS,EAAQ,OACbjkS,EAAEimD,eAAe,EAEX6mM,SADI9sP,EAAEmkS,MAAQH,EAAUjiP,QAAQqiP,WACpBl1C,GAAU,EAClBntM,UAAQS,WAAaA,EAAasqM,EAGay3C,CAC7D,CCzBA,MAAMC,IAASA,IAAM,CACb,MAAEtlS,KAAMyzK,GAAe,EACvBqxH,EAAYvrN,SAAO,IAAI,EACvB,CAAEyrN,kBAAiBG,mBAAkBC,gBAAeC,mBACxDR,IAAaC,CAAS,EAElBS,EAASA,IAAM,CACnBT,EAAUjiP,QAAQS,YAAc,KAE5BkiP,EAAUA,IAAM,CACpBV,EAAUjiP,QAAQS,YAAc,KAG5B,CACJ1G,KAAM6oP,EACN9kC,UACAnkL,SACEooN,GAAgB,uBAAwB,CAC1CL,aAAc,iBACf,EAEG5jC,WAAgB,OAAAv2O,SAAK,aAAe,EACpCoyD,IAAc,OAAApyD,SAAK,wBAA0B,IAG/C,OAAK6S,UAAU,kCAAiC7S,UAC9C0e,EAAA,OAAK7L,UAAU,oCAAmC7S,UAChDwe,EAAA,MAAI3L,UAAU,iCAAgC7S,SAC3CpqB,EAAE,iBAAiB,EAClB,EACJ8oC,EAAA,OAAK7L,UAAU,oDAAmD7S,SAAA,CAChEwe,EAAC88P,GAAY,CAAChiP,UAAU,OAAOsrC,QAASu2M,EAAS,EACjD38P,EAAC88P,GAAY,CAAChiP,UAAU,QAAQsrC,QAASw2M,EAAU,CAAC,EACjD,CAAC,EACH,EACL58P,EAAA,OAAK3L,UAAU,yBAAwB7S,WACrC,OACE+B,IAAK24Q,EACLa,YAAaX,EACbY,aAAcT,EACdU,UAAWT,EACXU,YAAaT,EACbpoQ,UAAU,wFACV+N,MAAO,CAAE+6P,eAAgB,QAAS,EAAE37Q,SAEnCq7Q,iBAAQl4Q,IAAKy4Q,2BACZ,OAEE/oQ,UAAU,uEAAsE7S,WAEhF,OACE05G,IACE,gCACCkiK,aAAMtmN,aAANsmN,cAAkBt5C,OAAlBs5C,cAAwBppP,OAAxBopP,cAA8BtmN,aAA9BsmN,cAA0CpvH,MAAO,IAEpD/yC,MAAKmiK,IAAMtmN,aAANsmN,cAAkB30L,QAAS,QACjC,GATI20L,EAAM94R,EAUR,GACN,CACE,EACF,CAAC,EACH,CAET,EAEMw4R,GAAeA,CAAC,CAAEhiP,YAAW,GAAGxmB,CAAK,MAEvC,aACMA,EACJD,UAAU,qEAAoE7S,SAE7Es5B,IAAc,OACb9a,EAAA,OACEqF,KAAK,OACL/W,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRF,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,mBACF4sC,OAAO,UACPpR,YAAY,IACZ,iBAAe,QACf,kBAAgB,QACjB,EACE,EAEL6L,EAAA,OACE1R,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,kBACF4sC,OAAO,UACPpR,YAAY,IACZ,iBAAe,QACf,kBAAgB,QACjB,EACE,EAED,EC9GZ,SAASy3C,IAASiF,EAAS,CACzB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAO,IAAM,iBACrD,CACA,SAASwsN,GAASxsN,EAAS,CACzB,OAAOjF,IAASiF,CAAO,GAAK,MAAM,QAAQA,CAAO,CACnD,CACA,SAASysN,KAAY,CACnB,MAAO,CAAC,EAAE,OAAO,OAAW,KAAe,OAAO,UAAY,OAAO,SAAS,cAChF,CACA,SAASC,GAAgBC,EAAUC,EAAU,CAC3C,MAAMC,EAAe,OAAO,KAAKF,CAAQ,EACnCG,EAAe,OAAO,KAAKF,CAAQ,EACzC,GAAIC,EAAa,SAAWC,EAAa,OAAQ,MAAO,GACxD,MAAMC,EAAe,KAAK,UAAU,OAAO,KAAKJ,EAAS,aAAe,CAAE,EAAC,EACrEK,EAAe,KAAK,UAAU,OAAO,KAAKJ,EAAS,aAAe,CAAE,EAAC,EAC3E,OAAIG,IAAiBC,EAAqB,GACnCH,EAAa,MAAMvmQ,GAAO,CAC/B,MAAM2mQ,EAASN,EAASrmQ,CAAG,EACrB4mQ,EAASN,EAAStmQ,CAAG,EAC3B,OAAI,OAAO2mQ,GAAW,WAAmB,GAAGA,CAAM,IAAO,GAAGC,CAAM,GAC9D,CAACV,GAASS,CAAM,GAAK,CAACT,GAASU,CAAM,EAAUD,IAAWC,EACvDR,GAAgBO,EAAQC,CAAM,CACzC,CAAG,CACH,CACA,SAASC,GAA0BpiG,EAAS,CAC1C,OAAOA,EAAQ,SAAS,KAAK,CAAChkM,EAAGK,IAAML,EAAE,KAAOK,EAAE,KAAO,EAAI,EAAE,EAAE,IAAIs9L,GAAUA,EAAO,OAAO,CAC/F,CACA,SAAS0oG,IAAgBC,EAAUC,EAAU,CAC3C,GAAID,EAAS,SAAWC,EAAS,OAAQ,MAAO,GAChD,MAAMX,EAAWQ,GAA0BE,CAAQ,EAC7CT,EAAWO,GAA0BG,CAAQ,EACnD,OAAOX,EAAS,MAAM,CAACY,EAAS97Q,IAAU,CACxC,MAAM+7Q,EAAUZ,EAASn7Q,CAAK,EAC9B,OAAOi7Q,GAAgBa,EAASC,CAAO,CAC3C,CAAG,CACH,CCnCA,SAASriQ,GAAS60C,EAAS,CACzB,OAAO,OAAOA,GAAY,QAC5B,CACA,SAASsB,GAAStB,EAAS,CACzB,OAAO,OAAOA,GAAY,QAC5B,CACA,SAASlD,GAAUkD,EAAS,CAC1B,OAAO,OAAOA,GAAY,SAC5B,CACA,SAASjF,GAASiF,EAAS,CACzB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAO,IAAM,iBACrD,CACA,SAAS8wJ,GAAQ3qO,EAAG,CAClB,OAAO,KAAK,IAAIA,CAAC,CACnB,CACA,SAASsnS,GAAStnS,EAAG,CACnB,OAAO,KAAK,KAAKA,CAAC,CACpB,CACA,SAASunS,GAASR,EAAQD,EAAQ,CAChC,OAAOn8D,GAAQo8D,EAASD,CAAM,CAChC,CACA,SAASU,IAAUT,EAAQD,EAAQ,CAEjC,GADIC,IAAW,GAAKD,IAAW,GAC3Bn8D,GAAQo8D,CAAM,GAAKp8D,GAAQm8D,CAAM,EAAG,MAAO,GAC/C,MAAMh4E,EAAOy4E,GAAS58D,GAAQo8D,CAAM,EAAGp8D,GAAQm8D,CAAM,CAAC,EACtD,OAAOn8D,GAAQ7b,EAAOi4E,CAAM,CAC9B,CACA,SAASU,IAAmBh6D,EAAK,CAC/B,OAAO,KAAK,MAAMA,EAAM,GAAG,EAAI,GACjC,CACA,SAASi6D,GAAUjuP,EAAO,CACxB,OAAOkuP,GAAWluP,CAAK,EAAE,IAAI,MAAM,CACrC,CACA,SAASmuP,GAAUnuP,EAAO,CACxB,OAAOA,EAAMouP,GAAepuP,CAAK,CAAC,CACpC,CACA,SAASouP,GAAepuP,EAAO,CAC7B,OAAO,KAAK,IAAI,EAAGA,EAAM,OAAS,CAAC,CACrC,CACA,SAASquP,GAAiBruP,EAAOnuB,EAAO,CACtC,OAAOA,IAAUu8Q,GAAepuP,CAAK,CACvC,CACA,SAASsuP,GAAgB/nS,EAAGgoS,EAAU,EAAG,CACvC,OAAO,MAAM,KAAK,MAAMhoS,CAAC,EAAG,CAACyuC,EAAGjlB,IAAMw+Q,EAAUx+Q,CAAC,CACnD,CACA,SAASm+Q,GAAWnxN,EAAQ,CAC1B,OAAO,OAAO,KAAKA,CAAM,CAC3B,CACA,SAASyxN,GAAiBC,EAASC,EAAS,CAC1C,MAAO,CAACD,EAASC,CAAO,EAAE,OAAO,CAACC,EAAeC,KAC/CV,GAAWU,CAAa,EAAE,QAAQloQ,GAAO,CACvC,MAAM2mQ,EAASsB,EAAcjoQ,CAAG,EAC1B4mQ,EAASsB,EAAcloQ,CAAG,EAC1BmoQ,EAAa1zN,GAASkyN,CAAM,GAAKlyN,GAASmyN,CAAM,EACtDqB,EAAcjoQ,CAAG,EAAImoQ,EAAaL,GAAiBnB,EAAQC,CAAM,EAAIA,CAC3E,CAAK,EACMqB,GACN,CAAE,EACP,CACA,SAASn4B,GAAap4E,EAAKjjK,EAAa,CACtC,OAAO,OAAOA,EAAY,WAAe,KAAeijK,aAAejjK,EAAY,UACrF,CAEA,SAAS2zQ,IAAUz7N,EAAO07N,EAAU,CAClC,MAAMC,EAAa,CACjB,MAAA5xO,EACA,OAAA8E,EACA,IAAA7E,CACJ,EACE,SAASD,GAAQ,CACf,MAAO,EACR,CACD,SAAS8E,EAAO37D,EAAG,CACjB,OAAO82D,EAAI92D,CAAC,EAAI,CACjB,CACD,SAAS82D,EAAI92D,EAAG,CACd,OAAOwoS,EAAWxoS,CACnB,CACD,SAAS0oS,EAAQ1oS,EAAGsrB,EAAO,CACzB,OAAI6vD,GAASrO,CAAK,EAAU27N,EAAW37N,CAAK,EAAE9sE,CAAC,EACxC8sE,EAAM07N,EAAUxoS,EAAGsrB,CAAK,CAChC,CAID,MAHa,CACX,QAAAo9Q,CACJ,CAEA,CAEA,SAASC,IAAa,CACpB,IAAI13L,EAAY,GAChB,SAASlrD,EAAIr5B,EAAM2B,EAAMunB,EAAS0H,EAAU,CAC1C,QAAS,EACb,EAAK,CACD,IAAIsrP,EACJ,GAAI,qBAAsBl8Q,EACxBA,EAAK,iBAAiB2B,EAAMunB,EAAS0H,CAAO,EAC5CsrP,EAAiB,IAAMl8Q,EAAK,oBAAoB2B,EAAMunB,EAAS0H,CAAO,MACjE,CACL,MAAMurP,EAAuBn8Q,EAC7Bm8Q,EAAqB,YAAYjzP,CAAO,EACxCgzP,EAAiB,IAAMC,EAAqB,eAAejzP,CAAO,CACnE,CACD,OAAAq7D,EAAU,KAAK23L,CAAc,EACtBr/K,CACR,CACD,SAASu/K,GAAQ,CACf73L,EAAYA,EAAU,OAAO/qD,GAAUA,EAAQ,EAChD,CACD,MAAMqjE,EAAO,CACX,IAAAxjE,EACA,MAAA+iP,CACJ,EACE,OAAOv/K,CACT,CAEA,SAASw/K,IAAWh6O,EAAen6B,EAAamM,EAAQ88C,EAAQ,CAC9D,MAAMmrN,EAAyBL,KACzBM,EAAgB,IAAO,GAC7B,IAAIC,EAAgB,KAChBC,EAAkB,EAClBruB,EAAc,EAClB,SAASr2F,GAAO,CACdukH,EAAuB,IAAIj6O,EAAe,mBAAoB,IAAM,CAC9DA,EAAc,QAAQ5hB,GAChC,CAAK,CACF,CACD,SAASi8P,GAAU,CACjBC,IACAL,EAAuB,MAAK,CAC7B,CACD,SAASnjC,EAAQyjC,EAAW,CAC1B,GAAI,CAACxuB,EAAa,OACbouB,IACHA,EAAgBI,EAChBvoQ,IACAA,KAEF,MAAMwoQ,EAAcD,EAAYJ,EAGhC,IAFAA,EAAgBI,EAChBH,GAAmBI,EACZJ,GAAmBF,GACxBloQ,IACAooQ,GAAmBF,EAErB,MAAM7/B,EAAQ+/B,EAAkBF,EAChCprN,EAAOurL,CAAK,EACR0R,IACFA,EAAclmP,EAAY,sBAAsBixO,CAAO,EAE1D,CACD,SAAShvM,GAAQ,CACXikN,IACJA,EAAclmP,EAAY,sBAAsBixO,CAAO,EACxD,CACD,SAASwjC,GAAO,CACdz0Q,EAAY,qBAAqBkmP,CAAW,EAC5CouB,EAAgB,KAChBC,EAAkB,EAClBruB,EAAc,CACf,CACD,SAAS3tO,GAAQ,CACf+7P,EAAgB,KAChBC,EAAkB,CACnB,CASD,MARa,CACX,KAAA1kH,EACA,QAAA2kH,EACA,MAAAvyO,EACA,KAAAwyO,EACA,OAAAtoQ,EACA,OAAA88C,CACJ,CAEA,CAEA,SAAS2rN,IAAKxmP,EAAMymP,EAAkB,CACpC,MAAMC,EAAgBD,IAAqB,MACrCvwO,EAAalW,IAAS,IACtB+gB,EAAS7K,EAAa,IAAM,IAC5BywO,EAAQzwO,EAAa,IAAM,IAC3Bk0J,EAAO,CAACl0J,GAAcwwO,EAAgB,GAAK,EAC3CE,EAAYC,IACZC,EAAUC,IAChB,SAASC,EAAYC,EAAU,CAC7B,KAAM,CACJ,OAAA7yQ,EACA,MAAAE,CACD,EAAG2yQ,EACJ,OAAO/wO,EAAa9hC,EAASE,CAC9B,CACD,SAASuyQ,GAAe,CACtB,OAAI3wO,EAAmB,MAChBwwO,EAAgB,QAAU,MAClC,CACD,SAASK,GAAa,CACpB,OAAI7wO,EAAmB,SAChBwwO,EAAgB,OAAS,OACjC,CACD,SAAS5lP,EAAU9jD,EAAG,CACpB,OAAOA,EAAIotN,CACZ,CASD,MARa,CACX,OAAArpJ,EACA,MAAA4lO,EACA,UAAAC,EACA,QAAAE,EACA,YAAAE,EACA,UAAAlmP,CACJ,CAEA,CAEA,SAASomP,GAAM7zO,EAAM,EAAGC,EAAM,EAAG,CAC/B,MAAMhQ,EAASqkL,GAAQt0K,EAAMC,CAAG,EAChC,SAAS6zO,EAAWnqS,EAAG,CACrB,OAAOA,EAAIq2D,CACZ,CACD,SAAS+zO,EAAWpqS,EAAG,CACrB,OAAOA,EAAIs2D,CACZ,CACD,SAAS+zO,EAAWrqS,EAAG,CACrB,OAAOmqS,EAAWnqS,CAAC,GAAKoqS,EAAWpqS,CAAC,CACrC,CACD,SAASsqS,EAAUtqS,EAAG,CACpB,OAAKqqS,EAAWrqS,CAAC,EACVmqS,EAAWnqS,CAAC,EAAIq2D,EAAMC,EADFt2D,CAE5B,CACD,SAASuqS,EAAavqS,EAAG,CACvB,OAAKsmD,EACEtmD,EAAIsmD,EAAS,KAAK,MAAMtmD,EAAIs2D,GAAOhQ,CAAM,EAD5BtmD,CAErB,CAWD,MAVa,CACX,OAAAsmD,EACA,IAAAgQ,EACA,IAAAD,EACA,UAAAi0O,EACA,WAAAD,EACA,WAAAD,EACA,WAAAD,EACA,aAAAI,CACJ,CAEA,CAEA,SAASC,GAAQl0O,EAAKO,EAAOxgB,EAAM,CACjC,KAAM,CACJ,UAAAi0P,CACJ,EAAMJ,GAAM,EAAG5zO,CAAG,EACVm0O,EAAUn0O,EAAM,EACtB,IAAIpW,EAAUwqP,EAAY7zO,CAAK,EAC/B,SAAS6zO,EAAY1qS,EAAG,CACtB,OAAQq2C,EAAsBs0L,IAAS8/D,EAAUzqS,GAAKyqS,CAAO,EAA9CH,EAAUtqS,CAAC,CAC3B,CACD,SAASsvB,GAAM,CACb,OAAO4wB,CACR,CACD,SAAS62B,EAAI/2E,EAAG,CACd,OAAAkgD,EAAUwqP,EAAY1qS,CAAC,EAChBupH,CACR,CACD,SAASxjE,EAAI/lD,EAAG,CACd,OAAO4jO,EAAK,EAAG,IAAIt0M,EAAK,EAAGtvB,CAAC,CAC7B,CACD,SAAS4jO,GAAQ,CACf,OAAO4mE,GAAQl0O,EAAKhnC,EAAK,EAAE+mB,CAAI,CAChC,CACD,MAAMkzE,EAAO,CACX,IAAAj6F,EACA,IAAAynD,EACA,IAAAhxB,EACA,MAAA69K,CACJ,EACE,OAAOr6G,CACT,CAEA,SAASohL,IAAY3nP,EAAM4nP,EAAU77O,EAAen6B,EAAa9B,EAAQ+3Q,EAAa3pL,EAAUk2J,EAAWvnC,EAAUi7D,EAAYC,EAAcz/Q,EAAO+tK,EAAc2xG,EAAeC,EAAUC,EAAeC,EAAWC,EAAcC,EAAW,CAC9O,KAAM,CACJ,MAAOvtO,EACP,UAAAha,CACD,EAAGd,EACEsoP,EAAa,CAAC,QAAS,SAAU,UAAU,EAC3CC,EAAkB,CACtB,QAAS,EACb,EACQC,EAAa7C,KACb8C,EAAa9C,KACb+C,EAAoBxB,GAAM,GAAI,GAAG,EAAE,UAAUc,EAAc,QAAQ,EAAE,CAAC,EACtEW,EAAiB,CACrB,MAAO,IACP,MAAO,GACX,EACQC,EAAiB,CACrB,MAAO,IACP,MAAO,GACX,EACQC,EAAYZ,EAAW,GAAK,GAClC,IAAIa,EAAW,GACXC,EAAc,EACdC,EAAa,EACbC,EAAgB,GAChBz4M,EAAgB,GAChB04M,EAAe,GACfC,EAAU,GACd,SAAS1nH,EAAK2nH,GAAU,CACtB,GAAI,CAACf,EAAW,OAChB,SAASgB,GAAcx0G,GAAK,EACtBlhH,GAAU00N,CAAS,GAAKA,EAAUe,GAAUv0G,EAAG,IAAGy0G,GAAKz0G,EAAG,CAC/D,CACD,MAAMnrK,GAAOk+Q,EACbY,EAAW,IAAI9+Q,GAAM,YAAamrK,IAAOA,GAAI,eAAc,EAAI0zG,CAAe,EAAE,IAAI7+Q,GAAM,YAAa,OAAiB6+Q,CAAe,EAAE,IAAI7+Q,GAAM,WAAY,MAAe,EAAE,IAAIA,GAAM,aAAc2/Q,EAAa,EAAE,IAAI3/Q,GAAM,YAAa2/Q,EAAa,EAAE,IAAI3/Q,GAAM,cAAe6/Q,EAAE,EAAE,IAAI7/Q,GAAM,cAAe6/Q,EAAE,EAAE,IAAI7/Q,GAAM,QAASs+I,GAAO,EAAI,CACtV,CACD,SAASo+H,GAAU,CACjBoC,EAAW,MAAK,EAChBC,EAAW,MAAK,CACjB,CACD,SAASe,GAAgB,CACvB,MAAM9/Q,GAAOy/Q,EAAUp9O,EAAgB67O,EACvCa,EAAW,IAAI/+Q,GAAM,YAAa+/Q,GAAMlB,CAAe,EAAE,IAAI7+Q,GAAM,WAAY6/Q,EAAE,EAAE,IAAI7/Q,GAAM,YAAa+/Q,GAAMlB,CAAe,EAAE,IAAI7+Q,GAAM,UAAW6/Q,EAAE,CACzJ,CACD,SAASG,EAAYhgR,GAAM,CACzB,MAAMigR,GAAWjgR,GAAK,UAAY,GAClC,OAAO4+Q,EAAW,SAASqB,EAAQ,CACpC,CACD,SAASC,IAAa,CAGpB,OAFc3B,EAAWW,EAAiBD,GAC7BQ,EAAU,QAAU,OAChB,CAClB,CACD,SAASU,GAAan5P,GAAOyrP,GAAe,CAC1C,MAAMplN,GAAOzuD,EAAM,IAAIg8Q,GAAS5zP,EAAK,EAAI,EAAE,EACrCo5P,GAAY/B,EAAa,WAAWr3P,GAAO,CAACu3P,CAAQ,EAAE,SAC5D,OAAIA,GAAYtgE,GAAQj3L,EAAK,EAAIg4P,EAA0BoB,GACvD3B,GAAahM,GAAsB2N,GAAY,GAC5C/B,EAAa,QAAQhxN,GAAK,IAAG,EAAI,CAAC,EAAE,QAC5C,CACD,SAASuyN,GAAKz0G,GAAK,CACjB,MAAMk1G,GAAa98B,GAAap4E,GAAKjjK,CAAW,EAChDu3Q,EAAUY,GACVb,EAAejB,GAAY8B,IAAc,CAACl1G,GAAI,SAAWi0G,EACzDA,EAAWvE,GAASz0Q,EAAO,IAAG,EAAIouF,EAAS,IAAG,CAAE,GAAK,EACjD,EAAA6rL,IAAcl1G,GAAI,SAAW,KAC7B60G,EAAY70G,GAAI,MAAM,IAC1Bo0G,EAAgB,GAChBpB,EAAY,YAAYhzG,EAAG,EAC3BizG,EAAW,YAAY,CAAC,EAAE,YAAY,CAAC,EACvCh4Q,EAAO,IAAIouF,CAAQ,EACnBsrL,IACAT,EAAclB,EAAY,UAAUhzG,EAAG,EACvCm0G,EAAanB,EAAY,UAAUhzG,GAAK/5H,CAAS,EACjDu7H,EAAa,KAAK,aAAa,GAChC,CACD,SAASozG,GAAK50G,GAAK,CAEjB,GADmB,CAACo4E,GAAap4E,GAAKjjK,CAAW,GAC/BijK,GAAI,QAAQ,QAAU,EAAG,OAAO00G,GAAG10G,EAAG,EACxD,MAAMm1G,GAAanC,EAAY,UAAUhzG,EAAG,EACtCo1G,GAAYpC,EAAY,UAAUhzG,GAAK/5H,CAAS,EAChDovO,GAAa3F,GAASyF,GAAYjB,CAAW,EAC7CoB,GAAY5F,GAAS0F,GAAWjB,CAAU,EAChD,GAAI,CAACx4M,GAAiB,CAAC24M,IACjB,CAACt0G,GAAI,aACTrkG,EAAgB05M,GAAaC,GACzB,CAAC35M,IAAe,OAAO+4M,GAAG10G,EAAG,EAEnC,MAAMi3B,GAAO+7E,EAAY,YAAYhzG,EAAG,EACpCq1G,GAAahC,IAAegB,EAAe,IAC/CpB,EAAW,YAAY,EAAG,EAAE,YAAY,GAAI,EAC5C1zB,EAAU,MAAK,EACftkP,EAAO,IAAIgxB,EAAUgrK,EAAI,CAAC,EAC1Bj3B,GAAI,eAAc,CACnB,CACD,SAAS00G,GAAG10G,GAAK,CAEf,MAAMsnG,GADkB4L,EAAa,WAAW,EAAG,EAAK,EAClB,QAAUz/Q,EAAM,IAAG,EACnD8hR,GAAWvC,EAAY,UAAUhzG,EAAG,EAAI+0G,GAAU,EAClDl5P,GAAQm5P,GAAa/oP,EAAUspP,EAAQ,EAAGjO,EAAa,EACvDkO,GAAc7F,IAAU4F,GAAU15P,EAAK,EACvC45P,GAAQzB,EAAY,GAAKwB,GACzBE,GAAWnC,EAAeiC,GAAc,GAC9C75M,EAAgB,GAChBy4M,EAAgB,GAChBR,EAAW,MAAK,EAChBX,EAAW,YAAYwC,EAAK,EAAE,YAAYC,EAAQ,EAClD19D,EAAS,SAASn8L,GAAO,CAACu3P,CAAQ,EAClCkB,EAAU,GACV9yG,EAAa,KAAK,WAAW,CAC9B,CACD,SAASruB,GAAM6sB,GAAK,CACdq0G,IACFr0G,GAAI,gBAAe,EACnBA,GAAI,eAAc,EAClBq0G,EAAe,GAElB,CACD,SAASsB,IAAc,CACrB,OAAOvB,CACR,CAMD,MALa,CACX,KAAAxnH,EACA,QAAA2kH,EACA,YAAAoE,EACJ,CAEA,CAEA,SAASC,IAAYzqP,EAAMpuB,EAAa,CAEtC,IAAI84Q,EACAC,EACJ,SAASC,EAAS/1G,EAAK,CACrB,OAAOA,EAAI,SACZ,CACD,SAASg2G,EAAUh2G,EAAKi2G,EAAS,CAE/B,MAAMC,EAAQ,UADGD,GAAW9qP,EAAK,UACG,IAAM,IAAM,GAAG,GACnD,OAAQitN,GAAap4E,EAAKjjK,CAAW,EAAIijK,EAAMA,EAAI,QAAQ,CAAC,GAAGk2G,CAAK,CACrE,CACD,SAASP,EAAY31G,EAAK,CACxB,OAAA61G,EAAa71G,EACb81G,EAAY91G,EACLg2G,EAAUh2G,CAAG,CACrB,CACD,SAASm2G,EAAYn2G,EAAK,CACxB,MAAMi3B,EAAO++E,EAAUh2G,CAAG,EAAIg2G,EAAUF,CAAS,EAC3CM,EAAUL,EAAS/1G,CAAG,EAAI+1G,EAASF,CAAU,EAAI,IACvD,OAAAC,EAAY91G,EACRo2G,IAASP,EAAa71G,GACnBi3B,CACR,CACD,SAASo/E,EAAUr2G,EAAK,CACtB,GAAI,CAAC61G,GAAc,CAACC,EAAW,MAAO,GACtC,MAAMQ,EAAWN,EAAUF,CAAS,EAAIE,EAAUH,CAAU,EACtDU,EAAWR,EAAS/1G,CAAG,EAAI+1G,EAASF,CAAU,EAC9CO,EAAUL,EAAS/1G,CAAG,EAAI+1G,EAASD,CAAS,EAAI,IAChDj6P,EAAQy6P,EAAWC,EAEzB,OADgBA,GAAY,CAACH,GAAWtjE,GAAQj3L,CAAK,EAAI,GACxCA,EAAQ,CAC1B,CAOD,MANa,CACX,YAAA85P,EACA,YAAAQ,EACA,UAAAE,EACA,UAAAL,CACJ,CAEA,CAEA,SAASQ,KAAY,CACnB,SAAS3F,EAAQh8Q,EAAM,CACrB,KAAM,CACJ,UAAA4hR,EACA,WAAAhJ,EACA,YAAAhjO,EACA,aAAAC,CACD,EAAG71C,EASJ,MARe,CACb,IAAK4hR,EACL,MAAOhJ,EAAahjO,EACpB,OAAQgsO,EAAY/rO,EACpB,KAAM+iO,EACN,MAAOhjO,EACP,OAAQC,CACd,CAEG,CAID,MAHa,CACX,QAAAmmO,CACJ,CAEA,CAEA,SAAS6F,IAAc/F,EAAU,CAC/B,SAASE,EAAQ,EAAG,CAClB,OAAOF,GAAY,EAAI,IACxB,CAID,MAHa,CACX,QAAAE,CACJ,CAEA,CAEA,SAAS8F,IAAct2P,EAAWmhJ,EAAczkK,EAAa65Q,EAAQzrP,EAAM0rP,EAAaC,EAAW,CACjG,MAAMC,EAAe,CAAC12P,CAAS,EAAE,OAAOu2P,CAAM,EAC9C,IAAIhjQ,EACA6qE,EACAu4L,EAAa,GACbC,EAAY,GAChB,SAASC,EAASriR,EAAM,CACtB,OAAOs2B,EAAK,YAAY2rP,EAAU,QAAQjiR,CAAI,CAAC,CAChD,CACD,SAAS+3J,EAAK2nH,EAAU,CACtB,GAAI,CAACsC,EAAa,OAClBp4L,EAAgBy4L,EAAS72P,CAAS,EAClC22P,EAAaJ,EAAO,IAAIM,CAAQ,EAChC,SAASC,EAAgBtjQ,EAAS,CAChC,UAAWC,KAASD,EAAS,CAC3B,GAAIojQ,EAAW,OACf,MAAMG,EAActjQ,EAAM,SAAWuM,EAC/Bg3P,EAAaT,EAAO,QAAQ9iQ,EAAM,MAAM,EACxCwjQ,EAAWF,EAAc34L,EAAgBu4L,EAAWK,CAAU,EAC9DE,EAAUL,EAASE,EAAc/2P,EAAYu2P,EAAOS,CAAU,CAAC,EAErE,GADiBvkE,GAAQykE,EAAUD,CAAQ,GAC3B,GAAK,CACnB/C,EAAS,OAAM,EACf/yG,EAAa,KAAK,QAAQ,EAC1B,KACD,CACF,CACF,CACD5tJ,EAAiB,IAAI,eAAeC,GAAW,EACzCirC,GAAU+3N,CAAW,GAAKA,EAAYtC,EAAU1gQ,CAAO,IACzDsjQ,EAAgBtjQ,CAAO,CAE/B,CAAK,EACD9W,EAAY,sBAAsB,IAAM,CACtCg6Q,EAAa,QAAQliR,GAAQ+e,EAAe,QAAQ/e,CAAI,CAAC,CAC/D,CAAK,CACF,CACD,SAAS08Q,GAAU,CACjB0F,EAAY,GACRrjQ,GAAgBA,EAAe,YACpC,CAKD,MAJa,CACX,KAAAg5I,EACA,QAAA2kH,CACJ,CAEA,CAEA,SAASiG,IAAWnuL,EAAUouL,EAAgBC,EAAkBz8Q,EAAQ08Q,EAAcpE,EAAc,CAClG,IAAIqE,EAAiB,EACjBxuI,EAAkB,EAClByuI,EAAiBF,EACjBG,EAAiBvE,EACjBwE,EAAc1uL,EAAS,MACvB2uL,EAAsB,EAC1B,SAASC,GAAO,CACd,MAAMC,EAAej9Q,EAAO,IAAK,EAAGouF,EAAS,IAAG,EAC1C8uL,EAAY,CAACN,EACnB,IAAIO,EAAiB,EACrB,OAAID,GACFP,EAAiB,EACjBF,EAAiB,IAAIz8Q,CAAM,EAC3BouF,EAAS,IAAIpuF,CAAM,EACnBm9Q,EAAiBF,IAEjBR,EAAiB,IAAIruL,CAAQ,EAC7BuuL,GAAkBM,EAAeL,EACjCD,GAAkBE,EAClBC,GAAeH,EACfvuL,EAAS,IAAIuuL,CAAc,EAC3BQ,EAAiBL,EAAcC,GAEjC5uI,EAAkBqmI,GAAS2I,CAAc,EACzCJ,EAAsBD,EACfrmL,CACR,CACD,SAAS2mL,GAAU,CACjB,MAAMphF,EAAOh8L,EAAO,IAAK,EAAGw8Q,EAAe,IAAG,EAC9C,OAAO3kE,GAAQ7b,CAAI,EAAI,IACxB,CACD,SAAS3kH,GAAW,CAClB,OAAOulM,CACR,CACD,SAAS5rP,GAAY,CACnB,OAAOm9G,CACR,CACD,SAAS5pD,GAAW,CAClB,OAAOo4L,CACR,CACD,SAASU,GAAkB,CACzB,OAAOC,EAAYZ,CAAY,CAChC,CACD,SAASa,GAAkB,CACzB,OAAOC,EAAYlF,CAAY,CAChC,CACD,SAASgF,EAAYpwS,EAAG,CACtB,OAAA0vS,EAAiB1vS,EACVupH,CACR,CACD,SAAS+mL,EAAYtwS,EAAG,CACtB,OAAA2vS,EAAiB3vS,EACVupH,CACR,CACD,MAAMA,EAAO,CACX,UAAAzlE,EACA,SAAAqmD,EACA,SAAAkN,EACA,KAAAy4L,EACA,QAAAI,EACA,gBAAAG,EACA,gBAAAF,EACA,YAAAG,EACA,YAAAF,CACJ,EACE,OAAO7mL,CACT,CAEA,SAASgnL,IAAa9jE,EAAOvrH,EAAUpuF,EAAQg4Q,EAAYE,EAAe,CACxE,MAAMwF,EAAoBxF,EAAc,QAAQ,EAAE,EAC5CyF,EAAsBzF,EAAc,QAAQ,EAAE,EAC9C0F,EAAgBxG,GAAM,GAAK,GAAI,EACrC,IAAIh0Q,EAAW,GACf,SAASy6Q,GAAkB,CAGzB,MAFI,EAAAz6Q,GACA,CAACu2M,EAAM,WAAW35M,EAAO,IAAK,IAC9B,CAAC25M,EAAM,WAAWvrH,EAAS,IAAK,GAErC,CACD,SAASopL,EAAUkD,EAAa,CAC9B,GAAI,CAACmD,EAAe,EAAI,OACxB,MAAMC,EAAOnkE,EAAM,WAAWvrH,EAAS,KAAK,EAAI,MAAQ,MAClD2vL,EAAalmE,GAAQ8B,EAAMmkE,CAAI,EAAI1vL,EAAS,IAAG,CAAE,EACjD4vL,EAAeh+Q,EAAO,IAAK,EAAGouF,EAAS,IAAG,EAC1CqsL,EAAWmD,EAAc,UAAUG,EAAaJ,CAAmB,EACzE39Q,EAAO,SAASg+Q,EAAevD,CAAQ,EACnC,CAACC,GAAe7iE,GAAQmmE,CAAY,EAAIN,IAC1C19Q,EAAO,IAAI25M,EAAM,UAAU35M,EAAO,IAAK,EAAC,EACxCg4Q,EAAW,YAAY,EAAE,EAAE,gBAAe,EAE7C,CACD,SAASiG,EAAan+M,EAAQ,CAC5B18D,EAAW,CAAC08D,CACb,CAMD,MALa,CACX,gBAAA+9M,EACA,UAAArG,EACA,aAAAyG,CACJ,CAEA,CAEA,SAASC,IAAcxI,EAAU1jI,EAAamsI,EAAcC,EAAeC,EAAgB,CACzF,MAAMC,EAAelH,GAAM,CAACplI,EAAc0jI,EAAU,CAAC,EAC/C6I,EAAeC,IACfC,EAAqBC,IACrBC,EAAiBC,IACvB,SAASC,EAAkB3oG,EAAO4oG,EAAM,CACtC,OAAOrK,GAASv+F,EAAO4oG,CAAI,GAAK,CACjC,CACD,SAASJ,GAAyB,CAChC,MAAMK,EAAYR,EAAa,CAAC,EAC1BS,EAAUlK,GAAUyJ,CAAY,EAChCh7O,EAAMg7O,EAAa,YAAYQ,CAAS,EACxCv7O,EAAM+6O,EAAa,QAAQS,CAAO,EAAI,EAC5C,OAAO5H,GAAM7zO,EAAKC,CAAG,CACtB,CACD,SAASg7O,GAAiB,CACxB,OAAOL,EAAa,IAAI,CAACc,EAAazmR,IAAU,CAC9C,KAAM,CACJ,IAAA+qC,EACA,IAAAC,CACD,EAAG86O,EACEQ,EAAOR,EAAa,UAAUW,CAAW,EACzCt6L,EAAU,CAACnsF,EACX0mR,EAASlK,GAAiBmJ,EAAc3lR,CAAK,EACnD,OAAImsF,EAAgBnhD,EAChB07O,GACAL,EAAkBt7O,EAAKu7O,CAAI,EAAUv7O,EACrCs7O,EAAkBr7O,EAAKs7O,CAAI,EAAUt7O,EAClCs7O,CACb,CAAK,EAAE,IAAIK,GAAe,WAAWA,EAAY,QAAQ,CAAC,CAAC,CAAC,CACzD,CACD,SAASP,GAAmB,CAC1B,GAAI5sI,GAAe0jI,EAAW2I,EAAgB,MAAO,CAACC,EAAa,GAAG,EACtE,GAAIF,IAAkB,YAAa,OAAOG,EAC1C,KAAM,CACJ,IAAAh7O,EACA,IAAAC,CACD,EAAGi7O,EACJ,OAAOF,EAAa,MAAMh7O,EAAKC,CAAG,CACnC,CAKD,MAJa,CACX,eAAAm7O,EACA,mBAAAF,CACJ,CAEA,CAEA,SAASW,IAAYptI,EAAaqtI,EAAa97P,EAAM,CACnD,MAAMigB,EAAM67O,EAAY,CAAC,EACnB97O,EAAMhgB,EAAOigB,EAAMwuG,EAAc8iI,GAAUuK,CAAW,EAK5D,MAHa,CACX,MAFYjI,GAAM7zO,EAAKC,CAAG,CAG9B,CAEA,CAEA,SAAS87O,IAAattI,EAAa2nE,EAAOvrH,EAAUmxL,EAAS,CAE3D,MAAMh8O,EAAMo2K,EAAM,IAAM,GAClBn2K,EAAMm2K,EAAM,IAAM,GAClB,CACJ,WAAA09D,EACA,WAAAC,CACJ,EAAMF,GAAM7zO,EAAKC,CAAG,EAClB,SAASg8O,EAAWxuP,EAAW,CAC7B,OAAIA,IAAc,EAAUsmP,EAAWlpL,EAAS,IAAG,CAAE,EACjDp9D,IAAc,GAAWqmP,EAAWjpL,EAAS,IAAG,CAAE,EAC/C,EACR,CACD,SAAS7qE,EAAKyN,EAAW,CACvB,GAAI,CAACwuP,EAAWxuP,CAAS,EAAG,OAC5B,MAAMyuP,EAAeztI,GAAehhH,EAAY,IAChDuuP,EAAQ,QAAQ/xS,GAAKA,EAAE,IAAIiyS,CAAY,CAAC,CACzC,CAID,MAHa,CACX,KAAAl8P,CACJ,CAEA,CAEA,SAASm8P,IAAe/lE,EAAO,CAC7B,KAAM,CACJ,IAAAn2K,EACA,OAAAhQ,CACD,EAAGmmL,EACJ,SAASn9M,EAAItvB,EAAG,CACd,MAAM2oL,EAAkB3oL,EAAIs2D,EAC5B,OAAOhQ,EAASqiI,EAAkB,CAACriI,EAAS,CAC7C,CAID,MAHa,CACX,IAAAh3B,CACJ,CAEA,CAEA,SAASmjR,IAAYzvP,EAAM0U,EAAWg7O,EAAeC,EAAYC,EAAgB,CAC/E,KAAM,CACJ,UAAAhJ,EACA,QAAAE,CACD,EAAG9mP,EACE,CACJ,YAAA6vP,CACD,EAAGD,EACEE,EAAaC,EAAc,EAAC,IAAIr7O,EAAU,OAAO,EACjDs7O,EAAQC,IACRhC,EAAeiC,IACrB,SAASH,GAAe,CACtB,OAAOF,EAAYF,CAAU,EAAE,IAAIn7O,GAASowO,GAAUpwO,CAAK,EAAEsyO,CAAO,EAAItyO,EAAM,CAAC,EAAEoyO,CAAS,CAAC,EAAE,IAAIj/D,EAAO,CACzG,CACD,SAASsoE,GAAmB,CAC1B,OAAON,EAAW,IAAIh7Q,GAAQ+6Q,EAAc9I,CAAS,EAAIjyQ,EAAKiyQ,CAAS,CAAC,EAAE,IAAIgI,GAAQ,CAACjnE,GAAQinE,CAAI,CAAC,CACrG,CACD,SAASsB,GAAiB,CACxB,OAAOL,EAAYG,CAAK,EAAE,IAAI,GAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAACpB,EAAMtmR,IAAUsmR,EAAOkB,EAAWxnR,CAAK,CAAC,CACvF,CAKD,MAJa,CACX,MAAA0nR,EACA,aAAA/B,CACJ,CAEA,CAEA,SAASkC,IAAcC,EAAclC,EAAeiB,EAAaZ,EAAoBqB,EAAgBS,EAAc,CACjH,KAAM,CACJ,YAAAR,CACD,EAAGD,EACE,CACJ,IAAAv8O,EACA,IAAAC,CACD,EAAGi7O,EACE+B,EAAgBC,IACtB,SAASA,GAAsB,CAC7B,MAAMC,EAAsBX,EAAYQ,CAAY,EAC9CI,EAAe,CAACL,GAAgBlC,IAAkB,YACxD,OAAIiB,EAAY,SAAW,EAAU,CAACkB,CAAY,EAC9CI,EAAqBD,EAClBA,EAAoB,MAAMn9O,EAAKC,CAAG,EAAE,IAAI,CAAClzB,EAAO9X,EAAOq9L,IAAW,CACvE,MAAMlxG,EAAU,CAACnsF,EACX0mR,EAASlK,GAAiBn/E,EAAQr9L,CAAK,EAC7C,GAAImsF,EAAS,CACX,MAAMqlF,EAAQ8qG,GAAUj/E,EAAO,CAAC,CAAC,EAAI,EACrC,OAAOo/E,GAAgBjrG,CAAK,CAC7B,CACD,GAAIk1G,EAAQ,CACV,MAAMl1G,EAAQ+qG,GAAewL,CAAY,EAAIzL,GAAUj/E,CAAM,EAAE,CAAC,EAAI,EACpE,OAAOo/E,GAAgBjrG,EAAO8qG,GAAUj/E,CAAM,EAAE,CAAC,CAAC,CACnD,CACD,OAAOvlL,CACb,CAAK,CACF,CAID,MAHa,CACX,cAAAkwQ,CACJ,CAEA,CAEA,SAASI,IAAar9P,EAAM87P,EAAartI,EAAa2nE,EAAOknE,EAAc,CACzE,KAAM,CACJ,WAAAtJ,EACA,aAAAE,EACA,UAAAD,CACD,EAAG79D,EACJ,SAASmnE,EAAYC,EAAW,CAC9B,OAAOA,EAAU,OAAM,EAAG,KAAK,CAACjzS,EAAGK,IAAM0pO,GAAQ/pO,CAAC,EAAI+pO,GAAQ1pO,CAAC,CAAC,EAAE,CAAC,CACpE,CACD,SAAS6yS,EAAehhR,EAAQ,CAC9B,MAAMw3N,EAAWj0M,EAAOk0P,EAAaz3Q,CAAM,EAAIw3Q,EAAUx3Q,CAAM,EACzDihR,EAAkB5B,EAAY,IAAI,CAACP,EAAMtmR,KAAW,CACxD,KAAM0oR,EAASpC,EAAOtnD,EAAU,CAAC,EACjC,MAAAh/N,CACD,EAAC,EAAE,KAAK,CAAC2oR,EAAIC,IAAOvpE,GAAQspE,EAAG,IAAI,EAAItpE,GAAQupE,EAAG,IAAI,CAAC,EAClD,CACJ,MAAA5oR,CACN,EAAQyoR,EAAgB,CAAC,EACrB,MAAO,CACL,MAAAzoR,EACA,SAAAg/N,CACN,CACG,CACD,SAAS0pD,EAASlhR,EAAQgxB,EAAW,CACnC,MAAM+E,EAAU,CAAC/1B,EAAQA,EAASgyI,EAAahyI,EAASgyI,CAAW,EACnE,GAAI,CAACzuH,EAAM,OAAOvjB,EAClB,GAAI,CAACgxB,EAAW,OAAO8vP,EAAY/qP,CAAO,EAC1C,MAAMsrP,EAAkBtrP,EAAQ,OAAOzoD,GAAKknS,GAASlnS,CAAC,IAAM0jD,CAAS,EACrE,OAAIqwP,EAAgB,OAAeP,EAAYO,CAAe,EACvDvM,GAAU/+O,CAAO,EAAIi8G,CAC7B,CACD,SAASsvI,EAAQ9oR,EAAOw4B,EAAW,CACjC,MAAMuwP,EAAalC,EAAY7mR,CAAK,EAAIqoR,EAAa,IAAG,EAClDrpD,EAAW0pD,EAASK,EAAYvwP,CAAS,EAC/C,MAAO,CACL,MAAAx4B,EACA,SAAAg/N,CACN,CACG,CACD,SAASgqD,EAAWhqD,EAAUsnD,EAAM,CAClC,MAAM9+Q,EAAS6gR,EAAa,IAAG,EAAKrpD,EAC9B,CACJ,MAAAh/N,EACA,SAAUipR,CAChB,EAAQT,EAAehhR,CAAM,EACnB0hR,EAAe,CAACn+P,GAAQg0P,EAAWv3Q,CAAM,EAC/C,GAAI,CAAC8+Q,GAAQ4C,EAAc,MAAO,CAChC,MAAAlpR,EACA,SAAAg/N,CACN,EACI,MAAM+pD,EAAalC,EAAY7mR,CAAK,EAAIipR,EAClCE,EAAenqD,EAAW0pD,EAASK,EAAY,CAAC,EACtD,MAAO,CACL,MAAA/oR,EACA,SAAUmpR,CAChB,CACG,CAMD,MALa,CACX,WAAAH,EACA,QAAAF,EACA,SAAAJ,CACJ,CAEA,CAEA,SAASU,IAASt9B,EAAWu9B,EAAcC,EAAe9J,EAAYC,EAAc4I,EAAct6G,EAAc,CAC9G,SAASw2C,EAAS/8M,EAAQ,CACxB,MAAM+hR,EAAe/hR,EAAO,SACtBgiR,EAAYhiR,EAAO,QAAU6hR,EAAa,IAAG,EACnDhB,EAAa,IAAIkB,CAAY,EACzBA,IACE/J,EAAW,WACb1zB,EAAU,MAAK,GAEfA,EAAU,OAAM,EAChBA,EAAU,OAAO,CAAC,EAClBA,EAAU,OAAM,IAGhB09B,IACFF,EAAc,IAAID,EAAa,IAAK,GACpCA,EAAa,IAAI7hR,EAAO,KAAK,EAC7BumK,EAAa,KAAK,QAAQ,EAE7B,CACD,SAASixD,EAAStqP,EAAG4xS,EAAM,CACzB,MAAM9+Q,EAASi4Q,EAAa,WAAW/qS,EAAG4xS,CAAI,EAC9C/hE,EAAS/8M,CAAM,CAChB,CACD,SAASxH,EAAMtrB,EAAG8jD,EAAW,CAC3B,MAAMixP,EAAcJ,EAAa,MAAO,EAAC,IAAI30S,CAAC,EACxC8yB,EAASi4Q,EAAa,QAAQgK,EAAY,IAAG,EAAIjxP,CAAS,EAChE+rL,EAAS/8M,CAAM,CAChB,CAKD,MAJa,CACX,SAAAw3N,EACA,MAAAh/N,CACJ,CAEA,CAEA,SAAS0pR,IAAWluO,EAAM2nO,EAAQ6E,EAAezjE,EAAUi7D,EAAYmK,EAAY57G,EAAc67G,EAAY,CAC3G,MAAMC,EAAuB,CAC3B,QAAS,GACT,QAAS,EACb,EACE,IAAIC,EAAmB,EACvB,SAAS3wH,EAAK2nH,EAAU,CACtB,GAAI,CAAC8I,EAAY,OACjB,SAASlG,EAAgB1jR,EAAO,CAG9B,GAFgB,IAAI,KAAM,EAAC,QAAO,EACP8pR,EACZ,GAAI,OACnB/7G,EAAa,KAAK,iBAAiB,EACnCvyH,EAAK,WAAa,EAClB,MAAM1jC,EAAQkwQ,EAAc,UAAUlwQ,GAASA,EAAM,SAAS9X,CAAK,CAAC,EAC/D0Z,GAAS5B,CAAK,IACnB0nQ,EAAW,YAAY,CAAC,EACxBj7D,EAAS,MAAMzsM,EAAO,CAAC,EACvBi2J,EAAa,KAAK,YAAY,EAC/B,CACD47G,EAAW,IAAI,SAAU,UAAWI,EAAkB,EAAK,EAC3D5G,EAAO,QAAQ,CAAC6G,EAAOpG,IAAe,CACpC+F,EAAW,IAAIK,EAAO,QAASz9G,GAAO,EAChClhH,GAAUu+N,CAAU,GAAKA,EAAW9I,EAAUv0G,CAAG,IACnDm3G,EAAgBE,CAAU,CAE7B,EAAEiG,CAAoB,CAC7B,CAAK,CACF,CACD,SAASE,EAAiBrkR,EAAO,CAC3BA,EAAM,OAAS,QAAOokR,EAAmB,IAAI,KAAI,EAAG,UACzD,CAID,MAHa,CACX,KAAA3wH,CACJ,CAEA,CAEA,SAAS8wH,GAASx5P,EAAc,CAC9B,IAAIrxB,EAAQqxB,EACZ,SAASzsB,GAAM,CACb,OAAO5E,CACR,CACD,SAASqsD,EAAI/2E,EAAG,CACd0qB,EAAQ8qR,EAAex1S,CAAC,CACzB,CACD,SAAS+lD,EAAI/lD,EAAG,CACd0qB,GAAS8qR,EAAex1S,CAAC,CAC1B,CACD,SAAS8iO,EAAS9iO,EAAG,CACnB0qB,GAAS8qR,EAAex1S,CAAC,CAC1B,CACD,SAASw1S,EAAex1S,EAAG,CACzB,OAAOglC,GAAShlC,CAAC,EAAIA,EAAIA,EAAE,IAAG,CAC/B,CAOD,MANa,CACX,IAAAsvB,EACA,IAAAynD,EACA,IAAAhxB,EACA,SAAA+8K,CACJ,CAEA,CAEA,SAAS2yE,GAAUzyP,EAAM9K,EAAW,CAClC,MAAMpQ,EAAYkb,EAAK,SAAW,IAAMxiD,EAAIC,EACtC2rP,EAAiBl0M,EAAU,MACjC,IAAIw9P,EAAiB,KACjBx/Q,EAAW,GACf,SAAS11B,EAAER,EAAG,CACZ,MAAO,eAAeA,CAAC,aACxB,CACD,SAASS,EAAET,EAAG,CACZ,MAAO,mBAAmBA,CAAC,SAC5B,CACD,SAAS2pB,EAAGmJ,EAAQ,CAClB,GAAIoD,EAAU,OACd,MAAMy/Q,EAAYlO,IAAmBzkP,EAAK,UAAUlwB,CAAM,CAAC,EACvD6iR,IAAcD,IAClBtpD,EAAe,UAAYtkN,EAAU6tQ,CAAS,EAC9CD,EAAiBC,EAClB,CACD,SAAS5E,EAAan+M,EAAQ,CAC5B18D,EAAW,CAAC08D,CACb,CACD,SAASk2M,GAAQ,CACX5yQ,IACJk2N,EAAe,UAAY,GACtBl0M,EAAU,aAAa,OAAO,GAAGA,EAAU,gBAAgB,OAAO,EACxE,CAMD,MALa,CACX,MAAA4wP,EACA,GAAAn/Q,EACA,aAAAonR,CACJ,CAEA,CAEA,SAAS6E,IAAY5yP,EAAMwlP,EAAU1jI,EAAa+pI,EAAYgH,EAAoB7C,EAAOb,EAAajxL,EAAUutL,EAAQ,CAEtH,MAAMqH,EAAWpO,GAAUmO,CAAkB,EACvCE,EAAYrO,GAAUmO,CAAkB,EAAE,QAAO,EACjDG,EAAaC,EAAW,EAAG,OAAOC,EAAW,GACnD,SAASC,EAAiBC,EAASxsR,EAAM,CACvC,OAAOwsR,EAAQ,OAAO,CAACx1S,EAAG4oB,IACjB5oB,EAAIi1S,EAAmBrsR,CAAC,EAC9BI,CAAI,CACR,CACD,SAASysR,EAAYD,EAASlvQ,EAAK,CACjC,OAAOkvQ,EAAQ,OAAO,CAACx1S,EAAG4oB,IACH2sR,EAAiBv1S,EAAGsmC,CAAG,EACtB,EAAItmC,EAAE,OAAO,CAAC4oB,CAAC,CAAC,EAAI5oB,EACzC,CAAE,EACN,CACD,SAAS01S,EAAgB16O,EAAQ,CAC/B,OAAOo3O,EAAM,IAAI,CAACpB,EAAMtmR,KAAW,CACjC,MAAOsmR,EAAO/C,EAAWvjR,CAAK,EAAI,GAAiBswC,EACnD,IAAKg2O,EAAOpJ,EAAW,GAAiB5sO,CACzC,EAAC,CACH,CACD,SAAS26O,EAAeH,EAASx6O,EAAQ46O,EAAW,CAClD,MAAMC,EAAcH,EAAgB16O,CAAM,EAC1C,OAAOw6O,EAAQ,IAAI9qR,GAAS,CAC1B,MAAMs6O,EAAU4wC,EAAY,EAAI,CAAC1xI,EAC3B4xI,EAAUF,EAAY1xI,EAAc,EACpC6xI,EAAYH,EAAY,MAAQ,QAChCI,EAAYH,EAAYnrR,CAAK,EAAEqrR,CAAS,EAC9C,MAAO,CACL,MAAArrR,EACA,UAAAsrR,EACA,cAAerB,GAAS,EAAE,EAC1B,UAAWE,GAAUzyP,EAAMyrP,EAAOnjR,CAAK,CAAC,EACxC,OAAQ,IAAM41F,EAAS,IAAK,EAAG01L,EAAYhxC,EAAU8wC,CAC7D,CACA,CAAK,CACF,CACD,SAAST,GAAc,CACrB,MAAM/uQ,EAAMirQ,EAAY,CAAC,EACnBiE,EAAUC,EAAYN,EAAW7uQ,CAAG,EAC1C,OAAOqvQ,EAAeH,EAAStxI,EAAa,EAAK,CAClD,CACD,SAASoxI,GAAY,CACnB,MAAMhvQ,EAAMshQ,EAAW2J,EAAY,CAAC,EAAI,EAClCiE,EAAUC,EAAYP,EAAU5uQ,CAAG,EACzC,OAAOqvQ,EAAeH,EAAS,CAACtxI,EAAa,EAAI,CAClD,CACD,SAAS+xI,GAAU,CACjB,OAAOb,EAAW,MAAM,CAAC,CACvB,MAAA1qR,CACN,IAAU,CACJ,MAAMwrR,EAAehB,EAAS,OAAOtsR,GAAKA,IAAM8B,CAAK,EACrD,OAAO6qR,EAAiBW,EAActO,CAAQ,GAAK,EACzD,CAAK,CACF,CACD,SAASnyP,GAAO,CACd2/P,EAAW,QAAQY,GAAa,CAC9B,KAAM,CACJ,OAAA9jR,EACA,UAAAgV,EACA,cAAAivQ,CACD,EAAGH,EACEI,EAAgBlkR,IAClBkkR,IAAkBD,EAAc,IAAG,IACvCjvQ,EAAU,GAAGkvQ,CAAa,EAC1BD,EAAc,IAAIC,CAAa,EACrC,CAAK,CACF,CACD,SAASlO,GAAQ,CACfkN,EAAW,QAAQY,GAAaA,EAAU,UAAU,MAAK,CAAE,CAC5D,CAOD,MANa,CACX,QAAAC,EACA,MAAA/N,EACA,KAAAzyP,EACA,WAAA2/P,CACJ,CAEA,CAEA,SAASiB,IAAc/+P,EAAWmhJ,EAAc69G,EAAa,CAC3D,IAAIvmP,EACAm+O,EAAY,GAChB,SAASrqH,EAAK2nH,EAAU,CACtB,GAAI,CAAC8K,EAAa,OAClB,SAASlI,EAAgBv+O,EAAW,CAClC,UAAWC,KAAYD,EACrB,GAAIC,EAAS,OAAS,YAAa,CACjC07O,EAAS,OAAM,EACf/yG,EAAa,KAAK,eAAe,EACjC,KACD,CAEJ,CACD1oI,EAAmB,IAAI,iBAAiBF,GAAa,CAC/Cq+O,IACAn4N,GAAUugO,CAAW,GAAKA,EAAY9K,EAAU37O,CAAS,IAC3Du+O,EAAgBv+O,CAAS,CAEjC,CAAK,EACDE,EAAiB,QAAQzY,EAAW,CAClC,UAAW,EACjB,CAAK,CACF,CACD,SAASkxP,GAAU,CACbz4O,GAAkBA,EAAiB,aACvCm+O,EAAY,EACb,CAKD,MAJa,CACX,KAAArqH,EACA,QAAA2kH,CACJ,CAEA,CAEA,SAAS+N,IAAaj/P,EAAWu2P,EAAQp1G,EAAcnyH,EAAW,CAChE,MAAMkwO,EAAuB,GAC7B,IAAIC,EAAc,KACdC,EAAiB,KACjBC,EACAzI,EAAY,GAChB,SAASrqH,GAAO,CACd8yH,EAAuB,IAAI,qBAAqB7rQ,GAAW,CACrDojQ,IACJpjQ,EAAQ,QAAQC,GAAS,CACvB,MAAMrgB,EAAQmjR,EAAO,QAAQ9iQ,EAAM,MAAM,EACzCyrQ,EAAqB9rR,CAAK,EAAIqgB,CACtC,CAAO,EACD0rQ,EAAc,KACdC,EAAiB,KACjBj+G,EAAa,KAAK,cAAc,EACtC,EAAO,CACD,KAAMnhJ,EAAU,cAChB,UAAAgvB,CACN,CAAK,EACDunO,EAAO,QAAQ6G,GAASiC,EAAqB,QAAQjC,CAAK,CAAC,CAC5D,CACD,SAASlM,GAAU,CACbmO,GAAsBA,EAAqB,aAC/CzI,EAAY,EACb,CACD,SAAS0I,EAAiBC,EAAQ,CAChC,OAAO9P,GAAWyP,CAAoB,EAAE,OAAO,CAAC5+O,EAAM02O,IAAe,CACnE,MAAM5jR,EAAQ,SAAS4jR,CAAU,EAC3B,CACJ,eAAA16B,CACR,EAAU4iC,EAAqB9rR,CAAK,EAG9B,OAFoBmsR,GAAUjjC,GACP,CAACijC,GAAU,CAACjjC,IACAh8M,EAAK,KAAKltC,CAAK,EAC3CktC,CACR,EAAE,CAAE,EACN,CACD,SAASlpC,EAAImoR,EAAS,GAAM,CAC1B,GAAIA,GAAUJ,EAAa,OAAOA,EAClC,GAAI,CAACI,GAAUH,EAAgB,OAAOA,EACtC,MAAMjE,EAAemE,EAAiBC,CAAM,EAC5C,OAAIA,IAAQJ,EAAchE,GACrBoE,IAAQH,EAAiBjE,GACvBA,CACR,CAMD,MALa,CACX,KAAA5uH,EACA,QAAA2kH,EACA,IAAA95Q,CACJ,CAEA,CAEA,SAASooR,IAAW10P,EAAM0vP,EAAeC,EAAYlE,EAAQkJ,EAAa/iR,EAAa,CACrF,KAAM,CACJ,YAAAo1Q,EACA,UAAAJ,EACA,QAAAE,CACD,EAAG9mP,EACE40P,EAAcjF,EAAW,CAAC,GAAKgF,EAC/BE,EAAWC,IACXC,EAASC,IACTnJ,EAAa8D,EAAW,IAAI3I,CAAW,EACvC6L,EAAqBoC,IAC3B,SAASH,GAAkB,CACzB,GAAI,CAACF,EAAa,MAAO,GACzB,MAAMM,EAAYvF,EAAW,CAAC,EAC9B,OAAOhoE,GAAQ+nE,EAAc9I,CAAS,EAAIsO,EAAUtO,CAAS,CAAC,CAC/D,CACD,SAASoO,GAAgB,CACvB,GAAI,CAACJ,EAAa,MAAO,GACzB,MAAMxsQ,EAAQxW,EAAY,iBAAiBgzQ,GAAU6G,CAAM,CAAC,EAC5D,OAAO,WAAWrjQ,EAAM,iBAAiB,UAAU0+P,CAAO,EAAE,CAAC,CAC9D,CACD,SAASmO,GAAkB,CACzB,OAAOtF,EAAW,IAAI,CAACh7Q,EAAMrM,EAAOksC,IAAU,CAC5C,MAAMigD,EAAU,CAACnsF,EACX0mR,EAASlK,GAAiBtwO,EAAOlsC,CAAK,EAC5C,OAAImsF,EAAgBo3L,EAAWvjR,CAAK,EAAIusR,EACpC7F,EAAenD,EAAWvjR,CAAK,EAAIysR,EAChCvgP,EAAMlsC,EAAQ,CAAC,EAAEs+Q,CAAS,EAAIjyQ,EAAKiyQ,CAAS,CACzD,CAAK,EAAE,IAAIj/D,EAAO,CACf,CAOD,MANa,CACX,WAAAkkE,EACA,mBAAAgH,EACA,SAAAgC,EACA,OAAAE,CACJ,CAEA,CAEA,SAASI,IAAen1P,EAAMwlP,EAAUoK,EAAgBv8P,EAAMq8P,EAAeC,EAAYkF,EAAUE,EAAQ5G,EAAgB,CACzH,KAAM,CACJ,UAAAvH,EACA,QAAAE,EACA,UAAAhmP,CACD,EAAGd,EACEo1P,EAAgBpzQ,GAAS4tQ,CAAc,EAC7C,SAASyF,EAAS5+P,EAAO6+P,EAAW,CAClC,OAAO5Q,GAAUjuP,CAAK,EAAE,OAAOjwB,GAAKA,EAAI8uR,IAAc,CAAC,EAAE,IAAI9uR,GAAKiwB,EAAM,MAAMjwB,EAAGA,EAAI8uR,CAAS,CAAC,CAChG,CACD,SAASC,EAAO9+P,EAAO,CACrB,OAAKA,EAAM,OACJiuP,GAAUjuP,CAAK,EAAE,OAAO,CAACkvK,EAAQ6vF,EAAOltR,IAAU,CACvD,MAAMmtR,EAAQ7Q,GAAUj/E,CAAM,GAAK,EAC7BlxG,EAAUghM,IAAU,EACpBzG,EAASwG,IAAU3Q,GAAepuP,CAAK,EACvCi/P,EAAQhG,EAAc9I,CAAS,EAAI+I,EAAW8F,CAAK,EAAE7O,CAAS,EAC9D+O,EAAQjG,EAAc9I,CAAS,EAAI+I,EAAW6F,CAAK,EAAE1O,CAAO,EAC5D8O,EAAO,CAACviQ,GAAQohE,EAAU3zD,EAAU+zP,CAAQ,EAAI,EAChDgB,EAAO,CAACxiQ,GAAQ27P,EAASluP,EAAUi0P,CAAM,EAAI,EAC7CrtH,EAAYigD,GAAQguE,EAAQE,GAAQH,EAAQE,EAAK,EACvD,OAAIttR,GAASo/J,EAAY89G,EAAW2I,GAAgBxoF,EAAO,KAAK6vF,CAAK,EACjExG,GAAQrpF,EAAO,KAAKlvK,EAAM,MAAM,EAC7BkvK,CACb,EAAO,EAAE,EAAE,IAAI,CAACmwF,EAAaxtR,EAAOq9L,IAAW,CACzC,MAAMowF,EAAe,KAAK,IAAIpwF,EAAOr9L,EAAQ,CAAC,GAAK,CAAC,EACpD,OAAOmuB,EAAM,MAAMs/P,EAAcD,CAAW,CAClD,CAAK,EAhByB,EAiB3B,CACD,SAASjG,EAAYp5P,EAAO,CAC1B,OAAO2+P,EAAgBC,EAAS5+P,EAAOm5P,CAAc,EAAI2F,EAAO9+P,CAAK,CACtE,CAID,MAHa,CACX,YAAAo5P,CACJ,CAEA,CAEA,SAASmG,IAAOlyO,EAAM5uB,EAAWu2P,EAAQ1/O,EAAen6B,EAAa0oB,EAAS+7I,EAAc,CAE1F,KAAM,CACJ,MAAAvsH,EACA,KAAMmsO,EACN,UAAAn1P,EACA,WAAA4vC,EACA,KAAAr9C,EACA,SAAA8zD,EACA,SAAA8gM,EACA,cAAAC,EACA,gBAAAgO,EACA,eAAgBrG,EAChB,UAAA1H,EACA,cAAA+F,EACA,YAAAxC,EACA,YAAAwI,EACA,UAAA7L,EACA,WAAA6J,CACD,EAAG53P,EAEE6zP,EAAiB,EACjBxC,EAAYN,MACZqE,EAAgB/D,EAAU,QAAQz2P,CAAS,EAC3Cy6P,EAAalE,EAAO,IAAIE,EAAU,OAAO,EACzC3rP,EAAOwmP,IAAKyP,EAAYn1P,CAAS,EACjC0kP,EAAWxlP,EAAK,YAAY0vP,CAAa,EACzC1H,EAAgBuD,IAAc/F,CAAQ,EACtC9wO,EAAY6wO,IAAUz7N,EAAO07N,CAAQ,EACrC4K,EAAe,CAAC/8P,GAAQ,CAAC,CAAC66P,EAC1ByG,EAActhQ,GAAQ,CAAC,CAAC66P,EACxB,CACJ,WAAArC,EACA,mBAAAgH,EACA,SAAAgC,EACA,OAAAE,CACJ,EAAML,IAAW10P,EAAM0vP,EAAeC,EAAYlE,EAAQkJ,EAAa/iR,CAAW,EAC1Eg+Q,EAAiBuF,IAAen1P,EAAMwlP,EAAUqK,EAAax8P,EAAMq8P,EAAeC,EAAYkF,EAAUE,EAAQ5G,CAAc,EAC9H,CACJ,MAAA6B,EACA,aAAA/B,CACJ,EAAMwB,IAAYzvP,EAAM0U,EAAWg7O,EAAeC,EAAYC,CAAc,EACpE9tI,GAAc,CAAC8iI,GAAUoL,CAAK,EAAIpL,GAAUiO,CAAkB,EAC9D,CACJ,eAAApE,GACA,mBAAAF,EACJ,EAAMP,IAAcxI,EAAU1jI,GAAamsI,EAAcC,EAAeC,CAAc,EAC9EgB,GAAciB,EAAe3B,GAAiBR,EAC9C,CACJ,MAAAxkE,EACD,EAAGylE,IAAYptI,GAAaqtI,GAAa97P,CAAI,EAExC/qB,GAAQk/Q,GAAQ3C,GAAesK,EAAW,EAAGz+M,EAAYr9C,CAAI,EAC7Du+P,GAAgBtpR,GAAM,QACtB+nR,GAAe3L,GAAU+G,CAAM,EAE/B1tQ,GAAS,CAAC,CACd,YAAAo4Q,GACA,WAAArO,GACA,aAAAsG,GACA,QAAS,CACP,KAAA/6P,EACD,CACL,IAAQ,CACCA,IAAM+6P,GAAa,UAAU+H,GAAY,YAAW,CAAE,EAC3DrO,GAAW,KAAI,CACnB,EACQjtN,GAAS,CAAC,CACd,WAAAitN,GACA,UAAAhjQ,GACA,SAAAo5E,GACA,eAAAouL,GACA,iBAAAC,GACA,aAAA6J,GACA,YAAAC,GACA,YAAAF,GACA,UAAA/hC,GACA,aAAA/9E,GACA,aAAA+3G,GACA,QAAS,CACP,KAAA/6P,EACD,CACF,EAAE+yN,KAAU,CACX,MAAMkwC,GAAexO,GAAW,UAC1ByO,GAAe,CAACnI,GAAa,kBAC7BoI,GAAanjQ,GAAOijQ,GAAeA,IAAgBC,GACrDC,IAAc,CAACL,GAAY,gBAC7B/hC,GAAU,KAAI,EACd/9E,GAAa,KAAK,QAAQ,GAEvBmgH,IAAYngH,GAAa,KAAK,QAAQ,EAC3C,MAAMogH,GAAuBv4L,GAAS,MAAQkoJ,GAAQmmC,GAAiB,IAAK,GAAI,EAAInmC,IACpFkmC,GAAe,IAAImK,EAAoB,EACnCpjQ,KACF+iQ,GAAa,KAAKtO,GAAW,UAAW,GACxCuO,GAAY,KAAI,GAElBvxQ,GAAU,GAAGwnQ,GAAe,IAAK,EACrC,EACQl4B,GAAY2xB,IAAWh6O,EAAen6B,EAAa,IAAMmM,GAAO24Q,EAAM,EAAGtwC,IAASvrL,GAAO67N,GAAQtwC,EAAK,CAAC,EAEvGmkC,GAAW,IACXoM,GAAgBxH,GAAY7mR,GAAM,IAAK,GACvC41F,GAAWq0L,GAASoE,EAAa,EACjCpK,GAAmBgG,GAASoE,EAAa,EACzCrK,GAAiBiG,GAASoE,EAAa,EACvC7mR,GAASyiR,GAASoE,EAAa,EAC/B7O,GAAauE,IAAWnuL,GAAUouL,GAAgBC,GAAkBz8Q,GAAQq3E,EAAUojM,EAAQ,EAC9FxC,EAAe2I,IAAar9P,EAAM87P,GAAartI,GAAa2nE,GAAO35M,EAAM,EACzE+8M,GAAW6kE,IAASt9B,GAAW9rP,GAAOspR,GAAe9J,GAAYC,EAAcj4Q,GAAQumK,CAAY,EACnGugH,GAAiBpH,IAAe/lE,EAAK,EACrCwoE,GAAatM,KACbkR,GAAe1C,IAAaj/P,EAAWu2P,EAAQp1G,EAAc6/G,CAAe,EAC5E,CACJ,cAAA5F,EACJ,EAAMH,IAAcC,EAAclC,EAAeiB,GAAaZ,GAAoBqB,EAAgBS,EAAY,EACtGyG,GAAa9E,IAAWluO,EAAM2nO,EAAQ6E,GAAezjE,GAAUi7D,GAAYmK,GAAY57G,EAAc67G,CAAU,EAE/GwE,GAAS,CACb,cAAA3qP,EACA,YAAAn6B,EACA,aAAAykK,EACA,cAAAq5G,EACA,WAAAC,EACA,UAAAv7B,GACA,KAAAp0N,EACA,YAAa2nP,IAAY3nP,EAAM8jB,EAAM/X,EAAen6B,EAAa9B,GAAQ26Q,IAAYzqP,EAAMpuB,CAAW,EAAGssF,GAAUk2J,GAAWvnC,GAAUi7D,GAAYC,EAAcz/Q,GAAO+tK,EAAc2xG,EAAeC,EAAUC,EAAeC,EAAWoC,GAAUlC,CAAS,EAC7P,WAAA4J,GACA,cAAAjK,EACA,MAAA1/Q,GACA,cAAAspR,GACA,MAAAnoE,GACA,SAAAvrH,GACA,eAAAouL,GACA,iBAAAC,GACA,QAAAjyP,EACA,cAAekxP,IAAct2P,EAAWmhJ,EAAczkK,EAAa65Q,EAAQzrP,EAAM0rP,EAAaC,CAAS,EACvG,WAAA7D,GACA,aAAcyF,IAAa9jE,GAAO6iE,GAAgBx8Q,GAAQg4Q,GAAYE,CAAa,EACnF,aAAcoH,IAAattI,GAAa2nE,GAAO6iE,GAAgB,CAACpuL,GAAUouL,GAAgBC,GAAkBz8Q,EAAM,CAAC,EACnH,eAAA8mR,GACA,eAAgBzH,GAAY,IAAIyH,GAAe,GAAG,EAClD,YAAAzH,GACA,aAAApH,EACA,SAAAl7D,GACA,YAAa+lE,IAAY5yP,EAAMwlP,EAAU1jI,GAAa+pI,EAAYgH,EAAoB7C,EAAOb,GAAa7C,GAAgBb,CAAM,EAChI,WAAAqL,GACA,cAAe7C,IAAc/+P,EAAWmhJ,EAAc69G,CAAW,EACjE,aAAA2C,GACA,aAAAxG,GACA,cAAAC,GACA,eAAAV,EACA,OAAA9/Q,GACA,UAAW2iR,GAAUzyP,EAAM9K,CAAS,CACxC,EACE,OAAOwhQ,EACT,CAEA,SAASK,KAAe,CACtB,IAAI9oM,EAAY,GACZs1I,EACJ,SAAS9hE,EAAK2nH,EAAU,CACtB7lD,EAAM6lD,CACP,CACD,SAAS4N,EAAaniH,EAAK,CACzB,OAAO5mF,EAAU4mF,CAAG,GAAK,EAC1B,CACD,SAASoM,EAAKpM,EAAK,CACjB,OAAAmiH,EAAaniH,CAAG,EAAE,QAAQ32L,GAAKA,EAAEqlP,EAAK1uD,CAAG,CAAC,EACnCtuE,CACR,CACD,SAAS0wL,EAAGpiH,EAAKvxL,EAAI,CACnB,OAAA2qG,EAAU4mF,CAAG,EAAImiH,EAAaniH,CAAG,EAAE,OAAO,CAACvxL,CAAE,CAAC,EACvCijH,CACR,CACD,SAASk/H,EAAI5wD,EAAKvxL,EAAI,CACpB,OAAA2qG,EAAU4mF,CAAG,EAAImiH,EAAaniH,CAAG,EAAE,OAAO32L,GAAKA,IAAMoF,CAAE,EAChDijH,CACR,CACD,SAASu/K,GAAQ,CACf73L,EAAY,EACb,CACD,MAAMsY,EAAO,CACX,KAAAk7D,EACA,KAAAwf,EACA,IAAAwkD,EACA,GAAAwxD,EACA,MAAAnR,CACJ,EACE,OAAOv/K,CACT,CAEA,MAAMzjC,IAAiB,CACrB,MAAO,SACP,KAAM,IACN,UAAW,KACX,OAAQ,KACR,cAAe,YACf,UAAW,MACX,eAAgB,EAChB,gBAAiB,EACjB,YAAa,CAAE,EACf,SAAU,GACV,cAAe,GACf,KAAM,GACN,UAAW,GACX,SAAU,GACV,WAAY,EACZ,OAAQ,GACR,UAAW,GACX,YAAa,GACb,YAAa,GACb,WAAY,EACd,EAEA,SAASo0N,IAAetlR,EAAa,CACnC,SAASulR,EAAa3T,EAAUC,EAAU,CACxC,OAAOwB,GAAiBzB,EAAUC,GAAY,CAAE,EACjD,CACD,SAAS2T,EAAe98P,EAAS,CAC/B,MAAM88P,EAAiB98P,EAAQ,aAAe,GACxC+8P,EAAsB1S,GAAWyS,CAAc,EAAE,OAAO/2C,GAASzuO,EAAY,WAAWyuO,CAAK,EAAE,OAAO,EAAE,IAAIA,GAAS+2C,EAAe/2C,CAAK,CAAC,EAAE,OAAO,CAACziQ,EAAG05S,IAAgBH,EAAav5S,EAAG05S,CAAW,EAAG,CAAE,GAC7M,OAAOH,EAAa78P,EAAS+8P,CAAmB,CACjD,CACD,SAASE,EAAoBC,EAAa,CACxC,OAAOA,EAAY,IAAIl9P,GAAWqqP,GAAWrqP,EAAQ,aAAe,EAAE,CAAC,EAAE,OAAO,CAACtT,EAAKywQ,IAAiBzwQ,EAAI,OAAOywQ,CAAY,EAAG,CAAE,GAAE,IAAI7lR,EAAY,UAAU,CAChK,CAMD,MALa,CACX,aAAAulR,EACA,eAAAC,EACA,oBAAAG,CACJ,CAEA,CAEA,SAASG,IAAeC,EAAgB,CACtC,IAAIC,EAAgB,GACpB,SAASn2H,EAAK2nH,EAAUxnG,EAAS,CAC/B,OAAAg2G,EAAgBh2G,EAAQ,OAAO,CAAC,CAC9B,QAAAtnJ,CACN,IAAUq9P,EAAe,eAAer9P,CAAO,EAAE,SAAW,EAAK,EAC7Ds9P,EAAc,QAAQr8G,GAAUA,EAAO,KAAK6tG,EAAUuO,CAAc,CAAC,EAC9D/1G,EAAQ,OAAO,CAACj3K,EAAK4wK,IAAW,OAAO,OAAO5wK,EAAK,CACxD,CAAC4wK,EAAO,IAAI,EAAGA,CACrB,CAAK,EAAG,CAAE,EACP,CACD,SAAS6qG,GAAU,CACjBwR,EAAgBA,EAAc,OAAOr8G,GAAUA,EAAO,QAAO,CAAE,CAChE,CAKD,MAJa,CACX,KAAA9Z,EACA,QAAA2kH,CACJ,CAEA,CAEA,SAASyR,GAAc/zO,EAAMg0O,EAAaC,EAAa,CACrD,MAAMhsP,EAAgB+X,EAAK,cACrBlyC,EAAcm6B,EAAc,YAC5B4rP,EAAiBT,IAAetlR,CAAW,EAC3ComR,EAAiBN,IAAeC,CAAc,EAC9CM,EAAgBtS,KAChBtvG,EAAe0gH,MACf,CACJ,aAAAI,EACA,eAAAC,EACA,oBAAAG,CACD,EAAGI,EACE,CACJ,GAAAV,EACA,IAAAxxD,EACA,KAAAxkD,CACD,EAAG5K,EACE6hH,EAASC,EACf,IAAIrM,EAAY,GACZ4K,EACA0B,EAAcjB,EAAar0N,IAAgB+0N,GAAc,aAAa,EACtEv9P,EAAU68P,EAAaiB,CAAW,EAClCC,EAAa,GACbC,EACApjQ,EACAu2P,EACJ,SAAS8M,GAAgB,CACvB,KAAM,CACJ,UAAWC,GACX,OAAQC,EACT,EAAGn+P,EAEJpF,GADwBijC,GAASqgO,EAAa,EAAI10O,EAAK,cAAc00O,EAAa,EAAIA,KACvD10O,EAAK,SAAS,CAAC,EAC9C,MAAM40O,GAAevgO,GAASsgO,EAAU,EAAIvjQ,EAAU,iBAAiBujQ,EAAU,EAAIA,GACrFhN,EAAS,CAAE,EAAC,MAAM,KAAKiN,IAAgBxjQ,EAAU,QAAQ,CAC1D,CACD,SAASyjQ,EAAar+P,GAAS,CAC7B,MAAMo8P,GAASV,IAAOlyO,EAAM5uB,EAAWu2P,EAAQ1/O,EAAen6B,EAAa0oB,GAAS+7I,CAAY,EAChG,GAAI/7I,GAAQ,MAAQ,CAACo8P,GAAO,YAAY,QAAO,EAAI,CACjD,MAAMkC,GAAqB,OAAO,OAAO,GAAIt+P,GAAS,CACpD,KAAM,EACd,CAAO,EACD,OAAOq+P,EAAaC,EAAkB,CACvC,CACD,OAAOlC,EACR,CACD,SAASmC,EAASC,GAAaC,GAAa,CACtCjN,IACJsM,EAAcjB,EAAaiB,EAAaU,EAAW,EACnDx+P,EAAU88P,EAAegB,CAAW,EACpCC,EAAaU,IAAeV,EAC5BE,IACA7B,EAASiC,EAAar+P,CAAO,EAC7Bi9P,EAAoB,CAACa,EAAa,GAAGC,EAAW,IAAI,CAAC,CACnD,QAAA/9P,EACD,IAAKA,EAAO,CAAC,CAAC,EAAE,QAAQsxJ,IAASqsG,EAAc,IAAIrsG,GAAO,SAAUusG,CAAU,CAAC,EAC3E79P,EAAQ,SACbo8P,EAAO,UAAU,GAAGA,EAAO,SAAS,IAAG,CAAE,EACzCA,EAAO,UAAU,OACjBA,EAAO,aAAa,OACpBA,EAAO,WAAW,KAAKnwL,EAAI,EAC3BmwL,EAAO,aAAa,KAAKnwL,EAAI,EAC7BmwL,EAAO,cAAc,KAAKnwL,EAAI,EAC9BmwL,EAAO,cAAc,KAAKnwL,EAAI,EAC1BmwL,EAAO,QAAQ,MAAMA,EAAO,YAAY,OACxCxhQ,EAAU,cAAgBu2P,EAAO,QAAQiL,EAAO,YAAY,KAAKnwL,EAAI,EACzE+xL,EAAaN,EAAe,KAAKzxL,GAAM8xL,CAAU,GAClD,CACD,SAASF,EAAWW,GAAaC,GAAa,CAC5C,MAAMroN,GAAasoN,IACnBC,IACAJ,EAAS1B,EAAa,CACpB,WAAAzmN,EACN,EAAOooN,EAAW,EAAGC,EAAW,EAC5B1iH,EAAa,KAAK,QAAQ,CAC3B,CACD,SAAS4iH,GAAa,CACpBvC,EAAO,YAAY,UACnBA,EAAO,WAAW,QAClBA,EAAO,UAAU,QACjBA,EAAO,YAAY,QACnBA,EAAO,cAAc,UACrBA,EAAO,cAAc,UACrBA,EAAO,aAAa,UACpBA,EAAO,UAAU,UACjBsB,EAAe,QAAO,EACtBC,EAAc,MAAK,CACpB,CACD,SAAS7R,GAAU,CACb0F,IACJA,EAAY,GACZmM,EAAc,MAAK,EACnBgB,IACA5iH,EAAa,KAAK,SAAS,EAC3BA,EAAa,MAAK,EACnB,CACD,SAASw2C,EAASvkN,GAAO4wR,GAAMp4P,GAAW,CACpC,CAACxG,EAAQ,QAAUwxP,IACvB4K,EAAO,WAAW,gBAAe,EAAG,YAAYwC,KAAS,GAAO,EAAI5+P,EAAQ,QAAQ,EACpFo8P,EAAO,SAAS,MAAMpuR,GAAOw4B,IAAa,CAAC,EAC5C,CACD,SAASq4P,EAAWD,GAAM,CACxB,MAAMniO,GAAO2/N,EAAO,MAAM,IAAI,CAAC,EAAE,MACjC7pE,EAAS91J,GAAMmiO,GAAM,EAAE,CACxB,CACD,SAASE,EAAWF,GAAM,CACxB,MAAM7sN,GAAOqqN,EAAO,MAAM,IAAI,EAAE,EAAE,MAClC7pE,EAASxgJ,GAAM6sN,GAAM,CAAC,CACvB,CACD,SAASG,GAAgB,CAEvB,OADa3C,EAAO,MAAM,IAAI,CAAC,EAAE,QACjBsC,GACjB,CACD,SAASM,GAAgB,CAEvB,OADa5C,EAAO,MAAM,IAAI,EAAE,EAAE,QAClBsC,GACjB,CACD,SAASO,GAAiB,CACxB,OAAO7C,EAAO,cACf,CACD,SAASE,GAAiB,CACxB,OAAOF,EAAO,eAAe,IAAIA,EAAO,SAAS,IAAG,CAAE,CACvD,CACD,SAASsC,GAAqB,CAC5B,OAAOtC,EAAO,MAAM,KACrB,CACD,SAAS8C,GAAqB,CAC5B,OAAO9C,EAAO,cAAc,KAC7B,CACD,SAASG,GAAe,CACtB,OAAOH,EAAO,aAAa,KAC5B,CACD,SAAS+C,IAAkB,CACzB,OAAO/C,EAAO,aAAa,IAAI,EAAK,CACrC,CACD,SAAS90G,IAAU,CACjB,OAAO02G,CACR,CACD,SAASoB,IAAiB,CACxB,OAAOhD,CACR,CACD,SAAS9O,IAAW,CAClB,OAAO9jO,CACR,CACD,SAAS61O,IAAgB,CACvB,OAAOzkQ,CACR,CACD,SAAS0kQ,IAAa,CACpB,OAAOnO,CACR,CACD,MAAMllL,GAAO,CACX,cAAA8yL,EACA,cAAAC,EACA,cAAAK,GACA,eAAAD,GACA,QAAAtT,EACA,IAAA3gD,EACA,GAAAwxD,EACA,KAAAh2G,EACA,QAAAW,GACA,mBAAA43G,EACA,OAAAtB,EACA,SAAAtQ,GACA,WAAAuR,EACA,WAAAC,EACA,eAAAxC,EACA,eAAA2C,EACA,SAAA1sE,EACA,mBAAAmsE,EACA,WAAAY,GACA,aAAA/C,EACA,gBAAA4C,EACJ,EACE,OAAAZ,EAASf,EAAaC,CAAW,EACjC,WAAW,IAAM1hH,EAAa,KAAK,MAAM,EAAG,CAAC,EACtC9vE,EACT,CACAsxL,GAAc,cAAgB,OC/nD9B,SAASgC,GAAiBv/P,EAAU,GAAIsnJ,EAAU,GAAI,CACpD,MAAMk4G,EAAgBnjO,SAAOr8B,CAAO,EAC9By/P,EAAgBpjO,SAAOirH,CAAO,EAC9B,CAACwnG,EAAU4Q,CAAW,EAAIhhQ,EAAQ,WAClC,CAACy9C,EAAUC,CAAW,EAAI19C,EAAQ,WAClCk/P,EAAS30L,cAAY,IAAM,CAC3B6lL,GAAUA,EAAS,OAAO0Q,EAAc,QAASC,EAAc,OAAO,CAC9E,EAAK,CAAC3Q,CAAQ,CAAC,EACb9iO,mBAAU,IAAM,CACVi9N,GAAgBuW,EAAc,QAASx/P,CAAO,IAClDw/P,EAAc,QAAUx/P,EACxB49P,IACJ,EAAK,CAAC59P,EAAS49P,CAAM,CAAC,EACpB5xO,YAAU,IAAM,CACV29N,IAAgB8V,EAAc,QAASn4G,CAAO,IAClDm4G,EAAc,QAAUn4G,EACxBs2G,IACJ,EAAK,CAACt2G,EAASs2G,CAAM,CAAC,EACpB5xO,YAAU,IAAM,CACd,GAAIg9N,IAAW,GAAI7sM,EAAU,CAC3BohN,GAAc,cAAgBgC,GAAiB,cAC/C,MAAMI,EAAcpC,GAAcphN,EAAUqjN,EAAc,QAASC,EAAc,OAAO,EACxF,OAAAC,EAAYC,CAAW,EAChB,IAAMA,EAAY,SAC/B,MACMD,EAAY,MAAS,CAE3B,EAAK,CAACvjN,EAAUujN,CAAW,CAAC,EACnB,CAACtjN,EAAa0yM,CAAQ,CAC/B,CACAyQ,GAAiB,cAAgB,OClCjC;AAAA;AAAA;AAAA;AAAA;AAAA,GAOA,IAAIpgR,IAAoB,CACtB,MAAO,6BACP,MAAO,GACP,OAAQ,GACR,QAAS,YACT,KAAM,OACN,OAAQ,eACR,YAAa,EACb,cAAe,QACf,eAAgB,OAClB,ECjBA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUA,MAAMC,IAAeC,GAAWA,EAAO,QAAQ,qBAAsB,OAAO,EAAE,cAAc,OACtFC,GAAmB,CAACC,EAAUC,IAAa,CAC/C,MAAMC,EAAYC,EAAU,WAC1B,CAAC,CAAE,MAAAC,EAAQ,eAAgB,KAAAC,EAAO,GAAI,YAAAC,EAAc,EAAG,oBAAAC,EAAqB,UAAAC,EAAY,GAAI,SAAA7S,EAAU,GAAG8S,CAAI,EAAI/Q,IACxGgR,EAAa,cAClB,MACA,CACE,IAAAhR,EACA,GAAGkQ,IACH,MAAOS,EACP,OAAQA,EACR,OAAQD,EACR,YAAaG,EAAsB,OAAOD,CAAW,EAAI,GAAK,OAAOD,CAAI,EAAIC,EAC7E,UAAW,CAAC,SAAU,UAAUT,IAAYG,CAAQ,CAAC,GAAIQ,CAAS,EAAE,KAAK,GAAG,EAC5E,GAAGC,CACJ,EACD,CACE,GAAGR,EAAS,IAAI,CAAC,CAACU,EAAKC,CAAK,IAAMF,EAAa,cAACC,EAAKC,CAAK,CAAC,EAC3D,GAAG,MAAM,QAAQjT,CAAQ,EAAIA,EAAW,CAACA,CAAQ,CAClD,CACT,CAEA,EACE,OAAAuS,EAAU,YAAc,GAAGF,CAAQ,GAC5BE,CACT,ECnCA;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMmgR,GAAYtgR,GAAiB,YAAa,CAC9C,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAQ,CAAE,EAC/C,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,CAAC,ECZD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMugR,GAAavgR,GAAiB,aAAc,CAChD,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,EACzC,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAQ,CAAE,CAChD,CAAC,ECZD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMwgR,GAAWxgR,GAAiB,WAAY,CAC5C,CAAC,OAAQ,CAAE,EAAG,SAAU,IAAK,QAAQ,CAAE,EACvC,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAQ,CAAE,EACxC,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,EAC9E,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,CAAC,ECdD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMygR,IAAczgR,GAAiB,cAAe,CAClD,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAQ,CAAE,EAC/C,CAAC,OAAQ,CAAE,EAAG,4DAA6D,IAAK,QAAQ,CAAE,CAC5F,CAAC,ECZD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMc,GAAQd,GAAiB,QAAS,CAAC,CAAC,OAAQ,CAAE,EAAG,kBAAmB,IAAK,QAAQ,CAAE,CAAC,CAAC,ECT3F;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMe,IAAcf,GAAiB,cAAe,CAClD,CAAC,OAAQ,CAAE,EAAG,eAAgB,IAAK,QAAQ,CAAE,CAC/C,CAAC,ECXD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAM0gR,IAAe1gR,GAAiB,eAAgB,CACpD,CAAC,OAAQ,CAAE,EAAG,6DAA8D,IAAK,QAAQ,CAAE,EAC3F,CACE,OACA,CACE,EAAG,2EACH,IAAK,QACN,CACF,EACD,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAQ,CAAE,CAC7C,CAAC,ECnBD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAM2gR,GAAW3gR,GAAiB,WAAY,CAC5C,CAAC,OAAQ,CAAE,EAAG,6DAA8D,IAAK,QAAQ,CAAE,EAC3F,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAQ,CAAE,EACxD,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAQ,CAAE,EACxC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,EACzC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,CAAC,ECfD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAM4gR,GAAO5gR,GAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,EAC/D,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,QAAQ,CAAE,EACjE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,IAAK,GAAI,IAAK,GAAI,KAAM,IAAK,QAAQ,CAAE,EAChE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,KAAM,IAAK,QAAQ,CAAE,CACnE,CAAC,ECdD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAM6gR,IAAc7gR,GAAiB,cAAe,CAClD,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,EAChE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,QAAQ,CAAE,EAClE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,QAAQ,CAAE,EAClE,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,EACzC,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAQ,CAAE,EACxC,CAAC,OAAQ,CAAE,EAAG,iCAAkC,IAAK,QAAQ,CAAE,CACjE,CAAC,EChBD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAM8gR,IAAY9gR,GAAiB,YAAa,CAC9C,CACE,OACA,CACE,EAAG,kHACH,IAAK,QACN,CACF,CACH,CAAC,ECjBD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAM+gR,IAAS/gR,GAAiB,SAAU,CACxC,CACE,OACA,CACE,EAAG,01BACH,IAAK,QACN,CACF,CACH,CAAC,ECjBD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMghR,IAAOhhR,GAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAE,EAAG,sBAAuB,IAAK,QAAQ,CAAE,EACpD,CAAC,OAAQ,CAAE,EAAG,cAAe,IAAK,QAAQ,CAAE,CAC9C,CAAC,ECZD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAM4yD,IAAM5yD,GAAiB,MAAO,CAClC,CACE,OACA,CACE,EAAG,oFACH,IAAK,QACN,CACF,EACD,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,CAAC,EClBD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMihR,IAAajhR,GAAiB,aAAc,CAChD,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,SAAU,EACvF,CAAC,SAAU,CAAE,GAAI,IAAK,GAAI,KAAM,EAAG,IAAK,IAAK,SAAU,CACzD,CAAC,ECZD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMyvF,IAAOzvF,GAAiB,OAAQ,CACpC,CAAC,WAAY,CAAE,OAAQ,oBAAqB,IAAK,QAAQ,CAAE,EAC3D,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,QAAQ,CAAE,EACjE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,KAAM,IAAK,QAAQ,CAAE,CACnE,CAAC,ECmBKkhR,GAAkB7wR,gBAAiD,IAAI,EAE7E,SAAS8wR,IAAc,CACftzR,QAAUwC,aAAiB6wR,EAAe,EAEhD,GAAI,CAACrzR,EACG,UAAIgzB,MAAM,gDAAgD,EAG3DhzB,QACT,CAEA,MAAMuzR,GAAW/wR,EAAM+P,WAIrB,CACE,CACE9C,cAAc,aACdsuJ,OACAy1H,SACAr5G,UACAvnK,YACA7S,WACA,GAAGD,CACL,EACAgC,IACG,CACH,KAAM,CAAC2xR,EAAa33D,CAAG,EAAIs2D,GACzB,CACE,GAAGr0H,EACHxlI,KAAM9oB,IAAgB,aAAe,IAAM,KAE7C0qK,CACF,EACM,CAAC03G,EAAe6B,CAAgB,EAAIlxR,WAAe,EAAK,EACxD,CAACovR,EAAe+B,CAAgB,EAAInxR,WAAe,EAAK,EAExDqxI,EAAWrxI,cAAmBs5N,GAAqB,CAClDA,IAIYA,IAAI+1D,eAAe,EACnB/1D,IAAI81D,eAAe,EACtC,EAAG,CAAE,GAECD,EAAanvR,cAAkB,IAAM,CACzCs5N,WAAK61D,YAAW,EACf,CAAC71D,CAAG,CAAC,EAEF41D,EAAalvR,cAAkB,IAAM,CACzCs5N,WAAK41D,YAAW,EACf,CAAC51D,CAAG,CAAC,EAEFjsN,EAAgBrN,cACnB+D,GAA+C,CAC1CA,EAAMmP,MAAQ,aAChBnP,EAAMm2B,eAAe,EACVi1P,KACFprR,EAAMmP,MAAQ,eACvBnP,EAAMm2B,eAAe,EACVg1P,IACb,EAEF,CAACC,EAAYD,CAAU,CACzB,EAEAlvR,mBAAgB,IAAM,CAChB,CAACs5N,GAAO,CAAC03D,GAIbA,EAAO13D,CAAG,GACT,CAACA,EAAK03D,CAAM,CAAC,EAEhBhxR,YAAgB,IAAM,CACpB,GAAKs5N,EAILjoF,SAASioF,CAAG,EACR0zD,KAAG,SAAU37I,CAAQ,EACrB27I,KAAG,SAAU37I,CAAQ,EAElB,IAAM,CACNmqF,eAAI,SAAUnqF,EAAQ,CAC7B,EACC,CAACioF,EAAKjoF,CAAQ,CAAC,EAGhBt1H,EAAC80Q,GAAgBxzR,SAAQ,CACvBI,MAAO,CACLwzR,cACA33D,MACA/9D,OACAtuJ,YACEA,KAAgBsuJ,iBAAMxlI,QAAS,IAAM,WAAa,cACpDo5P,aACAD,aACAG,gBACAD,eACF,EAAE7xR,WAEF,OACE+B,MACA8xR,iBAAkB/jR,EAClB+C,UAAWwL,GAAG,WAAYxL,CAAS,EACnC2yD,KAAK,SACL,uBAAqB,WAAU,GAC3BzlE,EAAKC,WAGN,EACmB,CAE9B,CACF,EACAwzR,GAAShwR,YAAc,WAEvB,MAAMswR,GAAkBrxR,EAAM+P,WAG5B,CAAC,CAAEK,YAAW,GAAG9S,CAAM,EAAGgC,IAAQ,CAC5B,MAAE2xR,cAAahkR,cAAaqsN,OAAQw3D,GAAY,EAEtD,SACE,OACExxR,IAAK2xR,EACL7gR,UAAU,qDAAoD7S,UAE9Dwe,EAAA,OACEzc,MACA8Q,UAAWwL,GACT,cACA3O,IAAgB,aAAe,QAAU,iBACzCmD,CACF,EAAE,GACE9S,EACL,EACDye,EAAA,OAAK3L,UAAU,kHAAiH7S,UAC7H+7N,iBAAKq2D,eACJr2D,EAAIq2D,aAAajvR,IAAI,CAAC8gB,EAAGnjB,MAErB,OAEE8jE,QAASA,IAAM,CACbm3J,WAAK1W,SAASvkN,EAChB,EACA+R,UAAWwL,GACT,yDACF,EAAEre,WAEF,OACE6S,UAAWwL,GAAG,oCAAqC,CACjD,gBAAgB09M,iBAAKy1D,wBAAyB1wR,EAC/C,EACF,GAZIA,CAaF,CAER,EACA,CAAC,EACH,CAET,CAAC,EACDgzR,GAAgBtwR,YAAc,kBAE9B,MAAMuwR,GAAetxR,EAAM+P,WAGzB,CAAC,CAAEK,YAAW,GAAG9S,CAAM,EAAGgC,IAAQ,CAC5B,MAAE2N,eAAgB6jR,GAAY,EAEpC,SACE,OACExxR,MACAyjE,KAAK,QACL,uBAAqB,QACrB3yD,UAAWwL,GACT,qCACA3O,IAAgB,aAAe,OAAS,OACxCmD,CACF,EAAE,GACE9S,EACL,CAEL,CAAC,EACDg0R,GAAavwR,YAAc,eAE3B,MAAMwwR,GAAmBvxR,EAAM+P,WAG7B,CAAC,CAAEK,YAAWsM,UAAU,gBAAiBzM,OAAO,OAAQ,GAAG3S,CAAM,EAAGgC,IAAQ,CACtE,MAAE2N,cAAakiR,aAAYE,iBAAkByB,GAAY,EAE/D,SACGjzQ,GAAM,CACLve,MACAod,UACAzM,OACAG,UAAWwL,GACT,oEACA3O,IAAgB,aACZ,kCACA,8CACJmD,CACF,EACAnH,SAAU,CAAComR,EACXltN,QAASgtN,EAAW,GAChB7xR,EAAKC,SAAA,CAETwe,EAACk0Q,GAAS,CAAC3uQ,OAAO,UAAUlR,UAAU,UAAW,EACjD2L,EAAA,QAAM3L,UAAU,UAAS7S,SAAC,iBAAoB,CAAC,EACzC,CAEZ,CAAC,EACDg0R,GAAiBxwR,YAAc,mBAE/B,MAAMywR,GAAexxR,EAAM+P,WAGzB,CAAC,CAAEK,YAAWsM,UAAU,gBAAiBzM,OAAO,OAAQ,GAAG3S,CAAM,EAAGgC,IAAQ,CACtE,MAAE2N,cAAaiiR,aAAYE,iBAAkB0B,GAAY,EAE/D,SACGjzQ,GAAM,CACLve,MACAod,UACAzM,OACAG,UAAWwL,GACT,mEACA3O,IAAgB,aACZ,mCACA,iDACJmD,CACF,EACAnH,SAAU,CAACmmR,EACXjtN,QAAS+sN,EAAW,GAChB5xR,EAAKC,SAAA,CAETwe,EAACm0Q,GAAU,CAAC5uQ,OAAO,UAAUlR,UAAU,UAAW,EAClD2L,EAAA,QAAM3L,UAAU,UAAS7S,SAAC,aAAgB,CAAC,EACrC,CAEZ,CAAC,EACDi0R,GAAazwR,YAAc,eCrR3B,MAAM83D,IAAiB,CACrB,OAAQ,GACR,YAAa,CAAE,EACf,MAAO,IACP,KAAM,GACN,WAAY,GACZ,cAAe,GACf,kBAAmB,GACnB,iBAAkB,GAClB,eAAgB,GAChB,SAAU,IACZ,EAEA,SAAS44N,IAAetS,EAAUrmI,EAAO,CACvC,MAAMosI,EAAc/F,EAAS,iBAC7B,OAAI,OAAOrmI,GAAU,SACZosI,EAAY,IAAI,IAAMpsI,CAAK,EAE7BA,EAAMosI,EAAa/F,CAAQ,CACpC,CACA,SAASuS,IAAoBvS,EAAUxB,EAAU,CAC/C,MAAMgU,EAAgBxS,EAAS,WAC/B,OAAOxB,GAAYA,EAASgU,CAAa,GAAKA,CAChD,CAEA,SAASC,GAAS/D,EAAc,GAAI,CAClC,IAAIx9P,EACA8uP,EACA0C,EACA/oI,EACA+4I,EAAiB,KACjBtpQ,EAAU,EACVupQ,EAAiB,GACjBC,EAAc,GACdC,EAAwB,GACxB/C,EAAO,GACX,SAASz3H,EAAKy6H,EAAkBvE,EAAgB,CAC9CvO,EAAW8S,EACX,KAAM,CACJ,aAAA/E,EACA,eAAAC,CACD,EAAGO,EACES,EAAcjB,EAAar0N,IAAgB+4N,GAAS,aAAa,EACjEx9D,EAAa84D,EAAaiB,EAAaN,CAAW,EAExD,GADAx9P,EAAU88P,EAAe/4D,CAAU,EAC/B+qD,EAAS,eAAc,EAAG,QAAU,EAAG,OAC3C8P,EAAO5+P,EAAQ,KACfwxP,EAAY,GACZ/oI,EAAQ24I,IAAetS,EAAU9uP,EAAQ,KAAK,EAC9C,KAAM,CACJ,WAAA23P,EACA,cAAAlmP,CACN,EAAQq9O,EAAS,iBACP+S,EAAc,CAAC,CAAC/S,EAAS,eAAgB,EAAC,QAAQ,UAClDtlO,EAAO63O,IAAoBvS,EAAU9uP,EAAQ,QAAQ,EAC3D23P,EAAW,IAAIlmP,EAAe,mBAAoBqwP,CAAgB,EAC9DD,GACF/S,EAAS,GAAG,cAAeoB,CAAW,EAEpC2R,GAAe,CAAC7hQ,EAAQ,mBAC1B8uP,EAAS,GAAG,YAAa8B,CAAS,EAEhC5wP,EAAQ,kBACV23P,EAAW,IAAInuO,EAAM,aAAcu4O,CAAU,EAE3C/hQ,EAAQ,kBAAoB,CAACA,EAAQ,mBACvC23P,EAAW,IAAInuO,EAAM,aAAcw4O,CAAU,EAE3ChiQ,EAAQ,eACV8uP,EAAS,GAAG,kBAAmBmT,CAAY,EAEzCjiQ,EAAQ,eAAiB,CAACA,EAAQ,mBACpC23P,EAAW,IAAI7I,EAAS,cAAa,EAAI,WAAYoT,CAAa,EAEhEliQ,EAAQ,YAAYkiQ,GACzB,CACD,SAASpW,GAAU,CACjBgD,EAAS,IAAI,cAAeoB,CAAW,EAAE,IAAI,YAAaU,CAAS,EAAE,IAAI,kBAAmBqR,CAAY,EACxGA,IACAzQ,EAAY,GACZiQ,EAAiB,EAClB,CACD,SAASU,GAAW,CAClB,KAAM,CACJ,YAAA7qR,CACN,EAAQw3Q,EAAS,iBACbx3Q,EAAY,aAAa4gB,CAAO,EAChCA,EAAU5gB,EAAY,WAAWmlD,EAAMgsF,EAAMqmI,EAAS,mBAAoB,EAAC,EAC3E0S,EAAiB,IAAI,OAAO,UAC5B1S,EAAS,KAAK,mBAAmB,CAClC,CACD,SAASsT,GAAa,CACpB,KAAM,CACJ,YAAA9qR,CACN,EAAQw3Q,EAAS,iBACbx3Q,EAAY,aAAa4gB,CAAO,EAChCA,EAAU,EACVspQ,EAAiB,KACjB1S,EAAS,KAAK,uBAAuB,CACtC,CACD,SAASoT,GAAgB,CACvB,GAAI,CAAA1Q,EACJ,IAAI6Q,EAAgB,EAAI,CACtBV,EAAwB,GACxB,MACD,CACIF,GAAgB3S,EAAS,KAAK,eAAe,EAClDqT,IACAV,EAAiB,GAClB,CACD,SAASQ,GAAe,CAClBzQ,IACAiQ,GAAgB3S,EAAS,KAAK,eAAe,EACjDsT,IACAX,EAAiB,GAClB,CACD,SAASK,GAAmB,CAC1B,GAAIO,EAAgB,EAClB,OAAAV,EAAwBF,EACjBQ,EAAY,EAEjBN,GAAuBO,GAC5B,CACD,SAASG,GAAmB,CAC1B,KAAM,CACJ,cAAA5wP,CACN,EAAQq9O,EAAS,iBACb,OAAOr9O,EAAc,kBAAoB,QAC1C,CACD,SAASy+O,GAAc,CAChBwR,GAAaO,GACnB,CACD,SAASrR,GAAY,CACd8Q,GAAaQ,GACnB,CACD,SAASH,GAAa,CACpBL,EAAc,GACdO,GACD,CACD,SAASD,GAAa,CACpBN,EAAc,GACdQ,GACD,CACD,SAASh7B,EAAKo7B,EAAc,CACtB,OAAOA,EAAiB,MAAa1D,EAAO0D,GAChDJ,GACD,CACD,SAASnW,GAAO,CACV0V,GAAgBQ,GACrB,CACD,SAASpyQ,GAAQ,CACX4xQ,GAAgBS,GACrB,CACD,SAASK,GAAY,CACnB,OAAOd,CACR,CACD,SAAShlO,GAAO,CACd,KAAM,CACJ,MAAAzuD,CACN,EAAQ8gR,EAAS,iBACPzxQ,EAAYrP,EAAM,MAAK,EAAG,IAAI,CAAC,EAAE,MACjC2rD,EAAYm1N,EAAS,eAAc,EAAG,OAAS,EAC/C0T,EAAOxiQ,EAAQ,gBAAkB3iB,IAAcs8C,EAOrD,GANIm1N,EAAS,gBACXA,EAAS,WAAW8P,CAAI,EAExB9P,EAAS,SAAS,EAAG8P,CAAI,EAE3B9P,EAAS,KAAK,iBAAiB,EAC3B0T,EAAM,OAAOP,IACjBC,GACD,CACD,SAASO,GAAgB,CACvB,GAAI,CAACjB,EAAgB,OAAO,KAC5B,MAAMkB,EAAej6I,EAAMqmI,EAAS,mBAAoB,GAClD6T,EAAqB,IAAI,KAAM,EAAC,QAAO,EAAKnB,EAClD,OAAOkB,EAAeC,CACvB,CAYD,MAXa,CACX,KAAM,WACN,QAASnF,EACT,KAAAr2H,EACA,QAAA2kH,EACA,KAAA5kB,EACA,KAAA6kB,EACA,MAAAl8P,EACA,UAAA0yQ,EACA,cAAAE,CACJ,CAEA,CACAlB,GAAS,cAAgB,OC7KzB,MAAMqB,IAAiBA,IAAM,CAC3B,MAAMx9H,EAAWlF,KACH3J,GAAe,EAC7B,KAAM,CAACssI,EAAUC,CAAW,EAAIpkQ,EAAS65B,gBAAOwqO,WAAa,IAAI,EAC3D,CACJrjQ,KAAMsjQ,EACNv/C,UACAnkL,SACEooN,GAAgB,uBAAwB,CAC1CL,aAAc,wCAAwCv1D,aAAaC,QACjE,aACF,CAAC,iBACF,EAcG0xB,OAZJz3L,YAAU,IAAM,CACd,MAAM63F,EAAeA,IAAM,CACbtrF,SAAOwqO,WAAa,IAAI,GAG/Bv4P,+BAAiB,SAAUq5G,CAAY,EAEvC,IAAM,CACJn5G,2BAAoB,SAAUm5G,CAAY,EAErD,EAAG,CAAE,GAED4/F,IAEA,OAAK1jO,UAAU,+EAA8E7S,WAC3F,OAAK6S,UAAU,gEAA+D7S,UAC5Ewe,EAAA,OAAK3L,UAAU,oCAAqC,EACpD6L,EAAA,OAAK7L,UAAU,mHAAkH7S,UAC/Hwe,EAAA,OAAK3L,UAAU,0BAA2B,EAC1C2L,EAAA,OAAK3L,UAAU,0BAA2B,EAC1C2L,EAAA,OAAK3L,UAAU,yBAA0B,EACzC2L,EAAA,OAAK3L,UAAU,2BAA4B,CAAC,EACzC,CAAC,EACH,EACF,EAELu/C,IAAc,OAAApyD,SAAK,wBAA0B,IAG9CwzR,GAAQ,CACPp5G,QAAS,CACPi6G,GAAS,CACP94I,MAAO,IACR,CAAC,EAEJ1oI,UAAU,mFAAkF7S,SAAA,CAE5Fwe,EAACs1Q,GAAe,CAAA9zR,SACb81R,iBAAiB3yR,IAAI,CAAC6M,EAAMlP,MAC1BizR,GAAY,CAEXlhR,UAAU,+EAA8E7S,UAExFwe,EAAA,OACE3L,UAAU,qCACV6mG,IACE,6BACA1pG,EAAKslD,WAAWkwG,MAAMhzI,KAAK,CAAC,EAAE8iC,WAAWk3F,IAE3C/yC,IAAI,SACL,EACD/6F,EAAA,OAAK7L,UAAU,4GAA2G7S,UACxHwe,EAAA,MAAI3L,UAAU,iFAAgF7S,SAC3FgQ,EAAKslD,WAAW2xB,MACf,EACJzoE,EAAA,MAAI3L,UAAU,6DAA4D7S,SACvEgQ,EAAKslD,WAAW09K,IACf,GACHhjO,EAAKslD,WAAWygO,cACdz1Q,GAAM,CACLnB,QAAQ,gBACRylD,QAASA,IAAM,CACT50D,EAAKslD,WAAWtC,SACdhjD,EAAKslD,WAAWtC,OAAOgjO,SACzB3qO,OAAOx/C,KAAKmE,EAAKslD,WAAWtC,OAAO7zD,GAAI,QAAQ,EAEtC6Q,IAAKslD,WAAWtC,OAAO7zD,EAAE,EAGxC,EACA0T,UAAU,iBAAgB7S,WAE1B,QAAM6S,UAAU,qCAAoC7S,SACjDgQ,EAAKslD,WAAWygO,WACb,EACA,CACT,EACE,CAAC,GArCDj1R,CAsCO,EAED,GAChB,CAAC60R,KAAa3B,GAAgB,EAAE,EAChC,CAAC2B,GAAYn3Q,EAACy1Q,IAAc,EAAC,EACtB,CAEd,ECnHMgC,IAAsBA,IAAM,CAC1B,MACJzjQ,KAAM0jQ,EACN3/C,UACAnkL,SACEooN,GAAgB,sBAAsB,EAEtCjkC,WAAgB,OAAAv2O,SAAK,aAAe,EACpCoyD,IAAc,OAAApyD,SAAK,wBAA0B,IAG/C,OAAK6S,UAAU,oHAAmH7S,UAChIwe,EAAA,MAAI3L,UAAU,yDAAwD7S,SACnEk2R,iBAAY5gO,WAAWoiC,KACtB,EACJl5E,EAAA,OACEk7F,IACEw8K,WAAY5gO,WAAWkwG,MAAMhzI,KAAK8iC,WAAWk3F,IACzC,6BACA0pI,EAAW5gO,WAAWkwG,MAAMhzI,KAAK8iC,WAAWk3F,IAC5C,GAEN/yC,IAAKy8K,iBAAY5gO,WAAWoiC,KAC7B,CAAC,EACC,CAET,EC3BMy+L,GAAgBp2R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,IAAK,OAAQ,IAAK,QAAS,cAAe,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,IAAK,CAAE,QAAS,EAAK,EAAkBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,qHAAsH,KAAM,SAAS,CAAE,CAAC,EAAmBA,gBAAoB,IAAK,CAAE,QAAS,EAAK,EAAkBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,kNAAmN,KAAM,SAAS,CAAE,CAAC,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,gNAAiN,KAAM,SAAW,GAAmBA,gBAAoB,OAAQ,CAAE,EAAG,iGAAkG,KAAM,SAAS,CAAE,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,4WAA6W,KAAM,SAAS,CAAE,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,mFAAoF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,kFAAmF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,gFAAiF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,oFAAqF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,oFAAqF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,gGAAiG,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,iYAAkY,KAAM,UAAW,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,mFAAoF,KAAM,SAAW,GAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,oFAAqF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,iFAAkF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,mFAAoF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,oFAAqF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,oGAAqG,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,kGAAmG,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,ycAA0c,KAAM,UAAW,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,mFAAoF,KAAM,SAAW,GAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,oFAAqF,KAAM,SAAW,GAAmBA,gBAAoB,OAAQ,CAAE,EAAG,gFAAiF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,mFAAoF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,oFAAqF,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,mEAAoE,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,2mCAA4mC,KAAM,SAAS,CAAE,EAAmBA,EAAmB,cAAC,IAAK,CAAE,QAAS,GAAM,EAAkBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,oNAAqN,KAAM,SAAS,CAAE,CAAC,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,wMAAyM,KAAM,SAAW,GAAmBA,gBAAoB,OAAQ,CAAE,EAAG,iHAAkH,KAAM,SAAW,GAAmBA,gBAAoB,OAAQ,CAAE,EAAG,iHAAkH,OAAQ,QAAS,YAAa,MAAO,cAAe,QAAS,eAAgB,OAAO,CAAE,CAAC,ECAnoPywE,GAAiBr2R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,qJAAsJ,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,EAAC,ECOhd0wE,IAAcA,IAAM,OAClB,MAAEzgT,KAAMyzK,GAAe,EACvB6O,EAAWlF,KACXsjI,EAAc1xE,aAAaC,QAAQ,aAAa,EAChD0xE,EACJ3xE,aAAaC,QAAQ,gBAAgB,KACrCvxD,OAAKl9H,MAAMwuL,aAAaC,QAAQ,gBAAgB,CAAC,IAAjDvxD,cAAoDqkF,iBAClD,YAEEnlN,EAAO,CAEX,GAAI8jQ,IAAgB,MAAQC,EACxB,GACA,CACE,CACEtvM,MAAOrxG,EAAE,gCAAgC,EACzCsxG,YAAatxG,EAAE,2CAA2C,EAC1DwsP,OAAOo0D,GAAa,CAAC3jR,UAAU,4BAA6B,EAC5DkxJ,KAAM,kCACP,EAEP,CACE98E,MAAOrxG,EAAE,6BAA6B,EACtCsxG,YAAatxG,EAAE,wCAAwC,EACvDwsP,OACE,OACEt1N,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BACN/Q,UAAU,4BAA2B7S,UAErCwe,EAAA,QACErnC,EAAE,moCACF0sC,KAAK,UACN,EACDrF,EAAA,QACErnC,EAAE,kFACF0sC,KAAK,UACN,EACDrF,EAAA,QACErnC,EAAE,8QACF0sC,KAAK,UACN,EACDrF,EAAA,QACErnC,EAAE,iuBACF0sC,KAAK,UACN,EACDrF,EAAA,QACErnC,EAAE,kPACF0sC,KAAK,UACN,EACDrF,EAAA,QACErnC,EAAE,y7CACF0sC,KAAK,UACN,EACDrF,EAAA,QACErnC,EAAE,wgBACF0sC,KAAK,UACN,CAAC,EACC,EAEPkgJ,KAAM,SACR,GAGF,SACE,OAAKlxJ,UAAU,4BAA2B7S,UACxC0e,EAAA,OAAK7L,UAAU,yCAAwC7S,UACrDwe,EAAA,MAAI3L,UAAU,iCAAgC7S,SAC3CpqB,EAAE,iBAAiB,EAClB,EACH2gT,GAAeD,IAAgB,KAAO,OACpCh2Q,GAAM,CACL5N,KAAK,KACLyM,QAAQ,gBACRylD,QAASA,IAAM,CACbszF,EAAS,WAAW,CACtB,EAAEl4J,SAEDpqB,EAAE,4BAA4B,EACzB,CACT,EACE,EAIL4oC,EAAA,OAAK3L,UAAU,uEAAsE7S,SAClFwyB,EAAKrvB,IAAI,CAAC6M,EAAMlP,MACd21R,IAAI,CACH1yH,KAAM/zJ,EAAK+zJ,KAEX98E,MAAOj3E,EAAKi3E,MACZC,YAAal3E,EAAKk3E,YAClBk7I,KAAMpyN,EAAKoyN,IAAK,EAHXthO,CAIN,CACF,EACE,CAAC,EACH,CAET,EAEM21R,IAAOA,CAAC,CAAE1yH,OAAM98E,QAAOm7I,OAAMl7I,aAAY,MAE1Cq0E,GAAI,CAACp8J,GAAI4kK,EAAMlxJ,UAAU,oCAAmC7S,WAE3D,OAAK6S,UAAU,oGAAmG7S,UAChHwe,EAAA,MAAI3L,UAAU,+BAA8B7S,SAAEinF,EAAU,EACxDzoE,EAAA,KAAG3L,UAAU,qCAAoC7S,SAAEknF,EAAe,EAClExoE,EAAA,OACE,cAAY,OACZ7L,UAAU,mDAAkD7S,SAE3DoiO,GACD5jN,EAAC0nD,GAAU,CAACrzD,UAAU,4BAA6B,CAAC,EACjD,CAAC,EACH,EACD,ECzHJ6jR,IAAWA,MAEb,OAAK7jR,UAAU,6EAA4E7S,SAAA,CACxF01R,QAAgB,IAChBW,IAAW,EAAE,EACd73Q,EAACy3Q,IAAqB,IACrB/a,MAAM,EAAE,CAAC,EACP,ECXHyb,IAAkB52R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,qeAAse,OAAQ,QAAS,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,EAAC,ECA/xBixE,IAAiB72R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,s5BAAu5B,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,EAAC,ECDjtCkxE,GAAmBj4B,GAAgB,CACvC,IAAI91P,EACJ,MAAM29E,EAA4B,IAAI,IAChCK,EAAW,CAACu4F,EAAS/yH,IAAY,CACrC,MAAMx8B,EAAY,OAAOuvJ,GAAY,WAAaA,EAAQv2K,CAAK,EAAIu2K,EACnE,GAAI,CAAC,OAAO,GAAGvvJ,EAAWhnB,CAAK,EAAG,CAChC,MAAMguR,EAAgBhuR,EACtBA,EAASwjD,IAA4B,OAAOx8B,GAAc,UAAYA,IAAc,MAAQA,EAAY,OAAO,OAAO,GAAIhnB,EAAOgnB,CAAS,EAC1I22D,EAAU,QAASE,GAAaA,EAAS79E,EAAOguR,CAAa,CAAC,CAC/D,CACL,EACQ9qR,EAAW,IAAMlD,EAMjBizN,EAAM,CAAE,SAAAj1I,EAAU,SAAA96E,EAAU,gBALV,IAAMrD,EAKqB,UAJhCg+E,IACjBF,EAAU,IAAIE,CAAQ,EACf,IAAMF,EAAU,OAAOE,CAAQ,EAEoB,EACtDh+E,EAAeG,EAAQ81P,EAAY93K,EAAU96E,EAAU+vN,CAAG,EAChE,OAAOA,CACT,EACMg7D,IAAen4B,GAAgBA,EAAci4B,GAAgBj4B,CAAW,EAAIi4B,GClB5EG,IAAY9/L,GAAQA,EAC1B,SAAS+/L,IAASl7D,EAAKtlL,EAAWugP,IAAU,CAC1C,MAAM7iO,EAAQ1xD,GAAM,qBAClBs5N,EAAI,UACJ,IAAMtlL,EAASslL,EAAI,UAAU,EAC7B,IAAMtlL,EAASslL,EAAI,iBAAiB,CACxC,EACEt5N,UAAM,cAAc0xD,CAAK,EAClBA,CACT,CACA,MAAM+iO,GAAct4B,GAAgB,CAClC,MAAM7iC,EAAMg7D,IAAYn4B,CAAW,EAC7Bu4B,EAAiB1gP,GAAawgP,IAASl7D,EAAKtlL,CAAQ,EAC1D,cAAO,OAAO0gP,EAAep7D,CAAG,EACzBo7D,CACT,EACM72K,GAAUs+I,GAAgBA,EAAcs4B,GAAWt4B,CAAW,EAAIs4B,GCflED,GAAW32K,GAAO,CAAC/zD,EAAKznD,KAAS,CACrC,QAAS,CACP,KAAM,GACN,aAAc,GACd,SAAU,GACV,YAAa,GACb,iBAAkB,GAClB,MAAO,EACR,EACD,WAAasyR,GAAY7qO,EAAI,CAAE,QAAA6qO,CAAO,CAAE,EACxC,gBAAiB,GACjB,mBAAqBvrR,GAAS0gD,EAAI,CAAE,gBAAiB1gD,CAAI,CAAE,EAC3D,oBAAqB,GACrB,uBAAyBA,GAAS0gD,EAAI,CAAE,oBAAqB1gD,CAAI,CAAE,EACnE,gBAAiB,CAAE,EACnB,mBAAqBwrR,GAAY9qO,EAAI,CAAE,gBAAiB8qO,CAAO,CAAE,EACjE,gBAAiB,GACjB,mBAAqBxrR,GAAS0gD,EAAI,CAAE,gBAAiB1gD,CAAI,CAAE,EAE3D,qBAAsB,CACpB,KAAM,GACN,aAAc,CAAE,KAAM,GAAI,GAAI,EAAI,EAClC,SAAU,CAAE,KAAM,GAAI,GAAI,EAAI,EAC9B,YAAa,CAAE,KAAM,GAAI,GAAI,EAAI,EACjC,MAAO,CAAE,KAAM,GAAI,GAAI,EAAI,CAC5B,EACD,wBAA0BurR,GAAY7qO,EAAI,CAAE,qBAAsB6qO,CAAO,CAAE,EAE3E,iBAAkB,CAAE,EACpB,mBAAoB,CAAE,EACtB,QAAS,GAET,0BAA2B,KAC3B,0BAA2B,GAC3B,6BAA+BC,GAC7B9qO,EAAI,CAAE,0BAA2B8qO,EAAS,EAC5C,6BAA+BxrR,GAC7B0gD,EAAI,CAAE,0BAA2B1gD,EAAM,EAEzC,wBAAyB,KACzB,wBAAyB,GACzB,2BAA6BwrR,GAC3B9qO,EAAI,CAAE,wBAAyB8qO,EAAS,EAC1C,2BAA6BxrR,GAAS0gD,EAAI,CAAE,wBAAyB1gD,CAAI,CAAE,EAE3E,cAAe,MAAOurR,EAAU,KAAO,OACrC7qO,EAAI,CAAE,QAAS,EAAI,CAAE,EAErB,GAAI,CACF,MAAM,IAAI,QAASq+F,GAAY,WAAWA,EAAS,GAAG,CAAC,EACvD,KAAM,CAAC0sI,EAAaC,CAAa,EAAI,MAAM,QAAQ,IAAI,CACrD7iD,GAAM,IAAI,qCAAsC,CAAE,OAAQ0iD,CAAO,CAAE,EACnE1iD,GAAM,IAAI,uBAAwB,CAAE,OAAQ0iD,CAAO,CAAE,CAC7D,CAAO,EAED7qO,EAAI,CACF,iBAAkB+qO,EAAY,MAAQ,CAAE,EAExC,qBAAoBt2R,EAAAu2R,EAAc,OAAd,YAAAv2R,EAAoB,UAAW,CAAE,EACrD,QAAS,EACjB,CAAO,CACF,OAAQoxD,EAAO,CACd,QAAQ,MAAM,0BAA2BA,CAAK,EAC9C7F,EAAI,CAAE,QAAS,EAAK,CAAE,CACvB,CACF,EAED,aAAc,IAAM,CAClBA,EAAI,CACF,QAAS,CACP,KAAM,GACN,aAAc,GACd,SAAU,GACV,YAAa,GACb,iBAAkB,GAClB,MAAO,EACR,CACP,CAAK,EACDznD,EAAK,EAAC,cAAc,EAAE,CACvB,CACH,EAAE,EClFI0yR,IAAaA,CAAC,CAAE9/L,OAAM9yB,SAAQ,MAEhC,UACE,aAAW,qBACXA,UACA/xD,UAAU,oGAAmG7S,UAE7Gwe,EAAA,QAAM3L,UAAU,2CAA0C7S,SAAE03F,EAAW,EACvEl5E,EAAA,OACEoF,MAAM,6BACN/Q,UAAU,8BACVgR,KAAK,OACLC,QAAQ,YACRC,OAAO,eAAc/jB,WAErB,QACEmmE,cAAc,QACdniD,eAAe,QACfrR,YAAa,EACbx7B,EAAE,uBACH,EACE,CAAC,EACA,ECdNsgT,IAAoBA,CAAC,CAAEC,eAAc,IAAM,CACzC,MAAE9hT,GAAMyzK,GAAe,EACvB,CAAE+tI,UAASO,aAAYC,qBAAoBC,0BAC/CC,GAAgB,EAEZC,EAAc,CAClB,CACE7yR,KAAM,OACNwyF,KAAM0/L,EAAQlyR,MAEhB,CACEA,KAAM,eACNwyF,KAAM0/L,EAAQY,cAEhB,CACE9yR,KAAM,WACNwyF,KAAM0/L,EAAQa,UAEhB,CACE/yR,KAAM,cACNwyF,KAAM0/L,EAAQc,aAEhB,CACEhzR,KAAM,QACNwyF,KAAM0/L,EAAQxb,MACf,EAGGuc,EAAqBA,IAAM,CACpBR,EAAA,CACTzyR,KAAM,GACN8yR,aAAc,GACdC,SAAU,GACVC,YAAa,GACbtc,MAAO,GACR,EAEa8b,EAAA,CACZxyR,KAAM,GACN8yR,aAAc,GACdC,SAAU,GACVC,YAAa,GACbtc,MAAO,GACR,GAGH,SACE,OAAK/oQ,UAAU,wDAAuD7S,UACpEwe,EAAA,MAAI3L,UAAU,sCAAqC7S,SAAEpqB,EAAE,SAAS,EAAM,EACtE8oC,EAAA,OAAK7L,UAAU,6EAA4E7S,UACzFwe,EAAA,OAAK3L,UAAU,gEAA+D7S,SAC3E+3R,EAAY50R,IAAci1R,GACrB,CAACA,EAAK1gM,MAAQ0gM,EAAK1gM,OAAS,MAAQ0gM,EAAK1gM,OAAS,KAC7C,OAEN8/L,IAAU,CACT5yN,QAASA,IAAM,CACMuzN,GACrB,EAEAzgM,KAAM0gM,EAAK1gM,KACXxyF,KAAMkzR,EAAKlzR,MAFNkzR,EAAKlzR,IAGX,CAEJ,EACE,EACLwZ,EAAA,OAAK7L,UAAU,4DAA2D7S,SAAA,CACxE0e,EAAC4B,GAAM,CACLzN,UAAU,SACV+xD,QAASA,IAAMgzN,EAAmB,EAAI,EACtCz4Q,QAAQ,gBAAenf,SAAA,CAEvBwe,EAAC65Q,IAAU,EAAE,EAAC,IAAEziT,EAAE,eAAe,CAAC,EAC5B,EACR8oC,EAAC4B,GAAM,CACLzN,UAAU,qBACV+xD,QAASA,IAAMizN,EAAuB,EAAI,EAAE73R,SAAA,CAE5Cwe,EAAC85Q,IAAO,EAAE,EAAC,IAAE1iT,EAAE,yBAAyB,CAAC,EACnC,CAAC,EACN,CAAC,EACH,CAAC,EACH,CAET,ECxFM2iT,GAAYA,CAAC,CACjBv4R,WACAinF,QAAQ,kBACRC,cACAr0E,YACA,GAAGC,CACL,MAEI,OACED,UAAWwL,GACT,sEACAxL,CACF,EAAE,GACEC,EAAI9S,SAAA,CAERwe,EAACg6Q,GAAa,CAAC3lR,UAAU,OAAQ,EACjC2L,EAAA,MAAI3L,UAAU,gBAAe7S,SAAEinF,EAAU,EACzCzoE,EAAA,KAAG3L,UAAU,6BAA4B7S,SAAEknF,EAAe,EAC1D1oE,EAAA,OAAK3L,UAAU,uDAAsD7S,WAEhE,CAAC,EACH,EClBHy4R,GAAcA,CAAC,CAAEpB,UAASqB,WAAW,GAAM9zN,UAAS,GAAG9xD,CAAK,IAAM,OAChE,MAAEl9B,KAAMyzK,GAAe,EACvB,CAAE9kE,SAAUsC,GAAS,EACrB9kF,EAAMU,GAAM0sD,SAClBimL,GAAkBrzO,EAAK,IAAM42R,EAAe,EAAK,CAAC,EAClD,KAAM,CAACC,EAAaD,CAAc,EAAInnQ,WAAS,EAAK,EAC9CqnQ,EAAsB,CAC1B,CACEz2D,OACE,OACEt1N,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,qwBACF4sC,OAAO,UACPpR,YAAY,UACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EAEP4gD,QAASA,IAAM,CACDhvF,IAAE,6BAA6B,CAAC,CAC9C,GAEF,CACEwsP,OACE,OACEt1N,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,ohCACF4sC,OAAO,UACPpR,YAAY,UACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EAEP4gD,QAASA,IAAM,CACDhvF,IAAE,6BAA6B,CAAC,CAC9C,GAEF,CACEwsP,OACE,OACEt1N,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,07BACF4sC,OAAO,UACPpR,YAAY,UACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EAEP4gD,QAASA,IAAM,CACDhvF,IAAE,6BAA6B,CAAC,CAC9C,GAEF,CACEwsP,OACE,OACEt1N,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,qgBACF4sC,OAAO,UACPpR,YAAY,UACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EAEP4gD,QAASA,IAAM,CACDhvF,IAAE,6BAA6B,CAAC,CAC9C,EACD,EAGGkjT,EAAwB,CAC5B,CACE12D,OACE,OACEt1N,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,wKACF4sC,OAAO,UACPpR,YAAY,UACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EAEP4gD,QAASA,IAAM,CACDhvF,IAAE,6BAA6B,CAAC,CAC9C,GAEF,CACEwsP,OACE,OACEt1N,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,qgBACF4sC,OAAO,UACPpR,YAAY,UACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EAEP4gD,QAASA,IAAM,CACDhvF,IAAE,6BAA6B,CAAC,CAC9C,EACD,EAGGmjT,EAAqBtmR,GAAU,CACnC,GAAIA,IAAU,EACL,OACLA,MAAO,UACPgmG,gBAAiB,WAGrB,GAAIhmG,IAAU,EACL,OACLA,MAAO,UACPgmG,gBAAiB,WAGrB,GAAIhmG,IAAU,EACL,OACLA,MAAO,UACPgmG,gBAAiB,UAErB,EAGIugL,EAAuB58G,GAAA,CACrB73F,EAAA,CACJ2C,YAAak1F,EACbj9J,QAAS,UACV,GAGG1M,GACJ4kR,iBAAS4B,sBAAuB,GAC5B,GACA5B,iBAAS4B,sBAAuB,GAC9B,IACA5B,iBAAS4B,uBAAwB,EAC/B,GAGJhB,IACJZ,mBAASY,WAATZ,cAAmBprO,MAAM,KAAKgP,MAAMylF,UAAU22I,iBAAS6B,cAGvDx6Q,SAACw6P,GAAOr5H,IAAG,CACT99I,MACAomP,SAAU,CAAEjrO,MAAO,GAAK,EACxBrK,UAAU,4EAA2E,GACjFC,EAAI9S,UAER0e,EAAA,OACEkC,MAAO,CACL63F,gBACIsgL,EAAkBtmR,CAAK,EAAEgmG,gBAE7BhmG,MACIsmR,EAAkBtmR,CAAK,EAAEA,KAE/B,EACAI,UAAU,8FAA6F7S,UAEvGwe,EAAA,OACE1R,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,2wBACF4sC,OAAO,eACPpR,YAAY,MACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EACLxF,EAAA,QAAAxe,SAAOq3R,iBAAS8B,sBAA4B,CAAC,EAC1C,EACL36Q,EAAA,OAAKomD,UAAkB/xD,UAAU,wBAAuB7S,WACtD,OAAK6S,UAAU,6BAA4B7S,UACzCwe,EAAA,QAAM3L,UAAU,qCAAoC7S,SACjDpqB,EAAEqiT,CAAQ,EACP,EACNz5Q,EAAA,QAAM3L,UAAU,6BAA4B7S,SAAEq3R,iBAASnyR,KAAW,EAClEsZ,EAAA,QAAM3L,UAAU,qCAAoC7S,UACjDq3R,iBAAS+B,aAAa/B,iBAASzb,OAC5B,CAAC,EACJ,CACF,GACJgd,GACCp6Q,EAAC06P,GAAOr5H,IAAG,CACTu7F,QAAS,CACPr+N,QAAS,EACT0qB,SAAU,QACZ,EACA4zM,QAAS,CACPt+N,QAAS,EACT0qB,SAAU,SACZ,EACAq9M,WAAY,CAAEnlK,SAAU,EAAI,EAC5B9sE,UAAU,kDAAiD7S,WAE3D,OAAK6S,UAAU,mCAAkC7S,UAC/Cwe,EAAA,MAAI3L,UAAU,qCAAoC7S,SAC/CpqB,EAAE,cAAc,EACf,EACJ8oC,EAAA,OAAK7L,UAAU,yCAAwC7S,SACpD04R,IACCG,EAAoB11R,IAAI,CAACgf,EAAQrhB,IAC/B0d,EAAA,UAEEomD,QAASA,IAAMziD,EAAOyiD,QAAQ,EAC9B,aAAYziD,EAAOu1E,KACnB7kF,UAAU,iHAAgH7S,SAEzHmiB,EAAOigN,IALHthO,GAMC,CACT,EACF,CAAC43R,GACAI,EAAsB31R,IAAI,CAACgf,EAAQrhB,IACjC0d,EAAA,UAEEomD,QAASA,IAAMziD,EAAOyiD,QAAQ,EAC9B,aAAYziD,EAAOu1E,KACnB7kF,UAAU,iHAAgH7S,SAEzHmiB,EAAOigN,MALHthO,CAMC,CACT,CAAC,EACD,CAAC,EACH,EACK,EAEbo4Q,KAAO/2P,OAAM,CACZ2iO,WAAY,CAAEnlK,SAAU,EAAI,EAC5B/a,QAASA,IAAM+zN,EAAe,CAACC,CAAW,EAC1C/lR,UAAU,oDAAmD7S,WAE7D,OACE8M,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BACN/Q,UAAW,aAAa+lR,EAAc,aAAe,EAAE,GAAG54R,WAE1D,QACE7oB,EAAE,wBACF4sC,OAAO,UACPpR,YAAY,IACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EACQ,CAAC,EACN,CAEhB,ECnTMq1Q,GAAkBA,MAEpB,OAAKxmR,UAAU,8FAA6F7S,UAC1G0e,EAAA,OAAK7L,UAAU,0BAAyB7S,UACtCwe,EAAA,OAAK3L,UAAU,mCAAwC,EACvD6L,EAAA,OAAK7L,UAAU,sBAAqB7S,UAClCwe,EAAA,OAAK3L,UAAU,+BAAoC,EACnD2L,EAAA,OAAK3L,UAAU,+BAAoC,CAAC,EACjD,CAAC,EACH,EACL6L,EAAA,OAAK7L,UAAU,2BAA0B7S,UACvCwe,EAAA,OAAK3L,UAAU,iCAAsC,EACrD2L,EAAA,OAAK3L,UAAU,gCAAqC,CAAC,EAClD,EACL6L,EAAA,OAAK7L,UAAU,4CAA2C7S,UACxDwe,EAAA,OAAK3L,UAAU,oCAAyC,EACxD2L,EAAA,OAAK3L,UAAU,8BAAmC,CAAC,EAChD,CAAC,EACH,EClB4C9T,GAAE,CAAC,EAAEA,EAAE2U,IAAI,CAAC,GAAG,GAAG,mBAAmB,EAAE,CAAC,MAAM/9B,EAAEC,GAAE89B,EAAE3U,CAAC,EAAE,EAAE,kBAAkBppB,GAAGA,EAAE,SAAS,EAAE,EAAE,EAAE,eAAc,CAAE,CAAC,EAAE+9B,GAAE,CAAC99B,EAAEc,IAAI,CAAC,UAAUg9B,KAAKh9B,EAAE,OAAO,CAAC,MAAMf,EAAEe,EAAE,OAAOg9B,CAAC,EAAE/9B,GAAGA,EAAE,KAAK,mBAAmBA,EAAE,IAAIopB,GAAEppB,EAAE,IAAI+9B,EAAE99B,CAAC,EAAED,EAAE,MAAMA,EAAE,KAAK,QAAQe,GAAGqoB,GAAEroB,EAAEg9B,EAAE99B,CAAC,CAAC,CAAC,CAAC,EAAED,IAAE,CAACopB,EAAEppB,IAAI,CAACA,EAAE,2BAA2B+9B,GAAE3U,EAAEppB,CAAC,EAAE,MAAM6B,EAAE,CAAE,EAAC,UAAUk8B,KAAK3U,EAAE,CAAC,MAAMvpB,EAAEI,GAAED,EAAE,OAAO+9B,CAAC,EAAE,EAAE,OAAO,OAAO3U,EAAE2U,CAAC,GAAG,GAAG,CAAC,IAAIl+B,GAAGA,EAAE,GAAG,CAAC,EAAE,GAAGwpB,IAAErpB,EAAE,OAAO,OAAO,KAAKopB,CAAC,EAAE2U,CAAC,EAAE,CAAC,MAAM3U,EAAE,OAAO,OAAO,CAAE,EAACnpB,GAAE4B,EAAEk8B,CAAC,CAAC,EAAEh9B,GAAEqoB,EAAE,OAAO,CAAC,EAAEroB,GAAEc,EAAEk8B,EAAE3U,CAAC,CAAC,MAAMroB,GAAEc,EAAEk8B,EAAE,CAAC,CAAC,CAAC,OAAOl8B,CAAC,EAAEwnB,IAAE,CAACppB,EAAEc,IAAId,EAAE,KAAKA,GAAGA,EAAE,WAAWc,EAAE,GAAG,CAAC,ECAvd,SAASg9B,GAAEA,EAAEl+B,EAAEY,EAAE,CAAC,OAAgBZ,IAAT,SAAaA,EAAE,IAAaY,IAAT,SAAaA,EAAE,IAAI,SAAS2oB,EAAE,EAAE3nB,EAAE,CAAC,GAAG,CAAC,OAAO,QAAQ,QAAQ,SAASxB,EAAED,EAAE,CAAC,GAAG,CAAC,IAAIE,GAAGL,EAAE,QAA6J,QAAQ,QAAQk+B,EAAWt9B,EAAE,OAAX,OAAgB,eAAe,UAAU,EAAE2oB,EAAE,OAAO,OAAO,CAAC,WAAW,EAAE,EAAEvpB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAASI,EAAE,CAAC,OAAOwB,EAAE,2BAA2BV,GAAE,GAAGU,CAAC,EAAE,CAAC,OAAOhB,EAAE,IAAI2oB,EAAEnpB,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,OAAOc,EAAE,CAAC,OAAOf,EAAEe,CAAC,CAAC,CAAC,OAAOb,GAAGA,EAAE,KAAKA,EAAE,KAAK,OAAOF,CAAC,EAAEE,CAAC,EAAE,EAAE,SAASa,EAAE,CAAC,GAAG,CAACA,EAAE,MAAM,MAAMA,EAAE,MAAM,CAAC,OAAO,CAAE,EAAC,OAAOd,KAAG89B,EAAEh9B,EAAElB,EAAE,CAAC4B,EAAE,2BAAmCA,EAAE,eAAV,OAAwBs8B,EAAE,OAAO,CAAE,GAAE,OAAO,SAASh9B,EAAEd,EAAE,CAAC,GAAGc,EAAEd,EAAE,IAAI,IAAIc,EAAEd,EAAE,IAAI,EAAE,CAAC,QAAQA,EAAE,QAAQ,KAAKA,EAAE,IAAI,GAAGJ,EAAE,CAAC,IAAIk+B,EAAEh9B,EAAEd,EAAE,IAAI,EAAE,MAAMQ,EAAEs9B,GAAGA,EAAE99B,EAAE,IAAI,EAAEc,EAAEd,EAAE,IAAI,EAAED,GAAEC,EAAE,KAAKJ,EAAEkB,EAAEd,EAAE,KAAKQ,EAAE,GAAG,OAAOA,EAAER,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,CAAC,OAAOc,CAAC,EAAE,EAAE,GAAGU,CAAC,CAAC,EAAE,IAAIs8B,EAAEl+B,CAAC,CAAC,CAAC,CAAC,OAAOkB,EAAE,CAAC,OAAO,QAAQ,OAAOA,CAAC,CAAC,CAAC,CAAC,CCAriC,MAAe4iT,GAAA,yiKCaTC,GAAeA,CAAC,CAAE9J,KAAI+J,eAAcxmD,MAAK,IAAM,CAC7C,MAAEp9P,KAAMyzK,GAAe,EAE7B,SACG3hG,GAAW,CAAA1nD,SAAA,CACVwe,EAACupC,GAAkB,CAAC7/C,QAAO,GAAAlI,SAAEw5R,EAAiC,EAC9D96Q,EAAC6pC,GAAkB,CAAAvoD,SAAA,CACjBwe,EAACqrC,GAAiB,CAAA7pD,WACf2oD,GAAgB,CAAA3oD,SAAEgzO,EAAuB,EACzB,EACnBt0N,EAACorC,GAAiB,CAACj3C,UAAU,sBAAqB7S,SAAA,CAChDwe,EAAC4qC,GAAiB,CAAAppD,SAAEpqB,EAAE,eAAe,EAAqB,EAC1D4oC,EAACwqC,GAAiB,CAAC4b,QAAS6qN,EAAGzvR,SAC5BpqB,EAAE,eAAe,EACD,CAAC,EACH,CAAC,EACF,CAAC,EACV,CAEjB,ECpBM6jT,GAAeA,CAAC,CACpBliQ,SAAU,CAAEryB,OAAO,iBAAkBsnJ,MAAK3oJ,MAAK,EAC/CwzR,UACAqC,sBACF,IAAM,CACJ,MAAMxhI,EAAWlF,KACX,CAAEp9K,KAAMyzK,GAAe,EAEvB,CAACswI,EAAcC,CAAe,EAAIpoQ,WAAS,IAAI,EAC/C,CAAE+yD,SAAUsC,GAAS,EACrBzwB,EAAWjH,SAAO,IAAI,EAEtB0qO,EAAe,MAAOnjT,EAAGwuB,IAAS,CACtCxuB,EAAEimD,eAAe,EAEjB,MAAMm9P,EAAOpjT,EAAE4xB,OAAO6xD,MAAM,CAAC,EAE7B,GAAI2/N,EAAM,CACFlsD,QAAW,IAAImsD,SACZv/H,SAAO,OAAQs/H,CAAI,EAE5BE,EAAqBpsD,EAAU/pO,CAAI,CACrC,GAGIm2R,EAAuB,MAAOpsD,EAAU/pO,IAAS,OAGjD,IACI+mL,QAAM,MAAM8pD,GAAM5J,KACtB,wBAAwBusD,EAAQv0S,EAAE,IAAI+gB,CAAI,GAC1C+pO,CACF,EACqB8rD,UACdh7R,EAAK,CACZ,MAAMu7R,EAAYxwD,IAAW/qO,IAAIqtL,SAASv5J,OAAb9zB,cAAmB2xD,MAAM,EAChDk0B,EAAA,CACJ2C,YAAa+yM,EACb96Q,QAAS,QACV,CACH,GAGI+6Q,EAAgBr2R,GAAS,CACb+1R,EAAA,CAAEO,SAAUt2R,EAAM,EAElCu2R,oBAAoBC,aAAa,GAG7BC,EAAuB,SAAY,OACnC,IACI1vG,QAAM,MAAM8pD,GAAMh0K,OACtB,wBAAwB22N,EAAQv0S,EAAE,IAAI62S,EAAaQ,QAAQ,EAC7D,EACqBT,UACdh7R,EAAK,CACZ,MAAMu7R,EAAYxwD,IAAW/qO,IAAIqtL,SAASv5J,OAAb9zB,cAAmB2xD,MAAM,EAChDk0B,EAAA,CACJ2C,YAAa+yM,EACb96Q,QAAS,QACV,CACH,GAGF,OAAIqtI,IAEA,OAAK35I,UAAU,+FAA8F7S,UAC3G0e,EAAA,OAAK7L,UAAU,0BAAyB7S,UACtCwe,EAAA,OAAKk7F,IAAK6gL,GAAe9gL,IAAI,kBAAkB5mG,UAAU,UAAW,EACpE2L,EAAA,OAAK3L,UAAU,sBAAqB7S,WAClC,MAAI6S,UAAU,qCAAoC7S,SAAEkF,EAAS,EAE1D,CAAC,EACH,EACLwZ,EAAA,OAAK7L,UAAU,oBAAmB7S,UAChCwe,EAAA,UACEomD,QAASA,IAAMszF,EAAS,qBAAqB1L,CAAG,EAAE,EAClD,aAAW,QACX35I,UAAU,gDAA+C7S,WAEzD,OACE8M,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,+GACF4sC,OAAO,UACPpR,YAAY,OACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EACC,EACRxF,EAAC+6Q,GAAY,CACXC,eACE,UACE50N,QAASA,IAAMs1N,EAAar2R,CAAI,EAChC,aAAW,MACXgP,UAAU,gDAA+C7S,WAEzD,OACE8M,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,kTACF4sC,OAAO,UACPpR,YAAY,IACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EACC,EAEVgvN,KAAMp9P,EAAE,0CAA0C,EAClD65S,GAAI6K,EACL,CAAC,EACC,CAAC,EACH,IAIL,OACE11N,QAAgBluF,GAAA,CACd0/E,EAAS39B,QAAQ+nH,OACnB,EACA3tI,UAAU,wHAAuH7S,UAEjIwe,EAAA,SACEvX,SAAWvwB,GAAMmjT,EAAanjT,CAAO,EACrCqrB,IAAKq0D,EACLvyD,KAAK,OACL22R,OAAO,uBACP3nR,UAAU,SACX,EACD6L,EAAA,OAAK7L,UAAU,0BAAyB7S,UACtC0e,EAAA,OACE5R,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,UAElCwe,EAAA,QAAMxoC,EAAE,MAAMC,EAAE,IAAI62B,MAAM,KAAKF,OAAO,KAAKqnH,GAAG,KAAKpwG,KAAK,UAAW,EACnErF,EAAA,QACErnC,EAAE,+6BACF4sC,OAAO,UACPpR,YAAY,UACZwzD,cAAc,QACdniD,eAAe,QAChB,EACDxF,EAAA,QACExoC,EAAE,MACFC,EAAE,IACF62B,MAAM,KACNF,OAAO,KACPqnH,GAAG,KACHlwG,OAAO,UACPpR,YAAY,IACb,CAAC,EACC,EACL+L,EAAA,OAAK7L,UAAU,sBAAqB7S,UAClC0e,EAAA,MAAI7L,UAAU,qCAAoC7S,SAC/CkF,GAAK,IAAEtvB,EAAE,iCAAiC,EAAG,IAC9C4oC,EAAA,QAAM3L,UAAU,gCAA+B7S,SAC5CpqB,EAAE,wBAAwB,EACvB,CAAC,EACL,EACJ4oC,EAAA,QAAM3L,UAAU,sCAAqC7S,SAClDpqB,EAAE,0BAA0B,EACzB,CAAC,EACJ,CAAC,EACH,CAAC,EACH,CAGX,ECjMM6kT,IAAoB16R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,GAAyB4lN,gBAAoB,SAAU,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,KAAM,UAAW,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,46BAA66B,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAO,CAAE,CAAC,ECAr0C+0E,GAAgB36R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,GAAyB4lN,gBAAoB,SAAU,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,KAAM,UAAW,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,0FAA2F,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAO,CAAE,CAAC,ECA/eg1E,IAAqB56R,GAA0B4lN,EAAmB,cAAC,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,SAAU,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,KAAM,SAAS,CAAE,EAAmBA,gBAAoB,IAAK,CAAE,SAAU,uBAAyB,EAAkBA,gBAAoB,OAAQ,CAAE,EAAG,oIAAqI,OAAQ,UAAW,YAAa,EAAG,iBAAkB,GAAI,cAAe,QAAS,eAAgB,OAAO,CAAE,EAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,wIAAyI,OAAQ,UAAW,YAAa,EAAG,iBAAkB,GAAI,cAAe,QAAS,eAAgB,OAAS,GAAmBA,EAAmB,cAAC,OAAQ,CAAE,EAAG,8BAA+B,OAAQ,UAAW,YAAa,EAAG,iBAAkB,GAAI,cAAe,QAAS,eAAgB,QAAS,CAAC,EAAmBA,gBAAoB,OAAQ,KAAsBA,gBAAoB,WAAY,CAAE,GAAI,iBAAmB,EAAkBA,gBAAoB,OAAQ,CAAE,MAAO,GAAI,OAAQ,GAAI,KAAM,QAAS,UAAW,kBAAoB,EAAC,CAAC,CAAC,ECA91Ci1E,IAAe76R,GAA0B4lN,EAAmB,cAAC,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,SAAU,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,KAAM,SAAS,CAAE,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,4dAA6d,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAO,CAAE,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,8CAA+C,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,EAAC,ECAjhCk1E,IAAgB96R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,GAAyB4lN,gBAAoB,SAAU,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,KAAM,UAAW,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,ymBAA0mB,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAO,CAAE,CAAC,ECA9/Bm1E,IAAiB/6R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,GAAyB4lN,gBAAoB,SAAU,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,KAAM,UAAW,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,24CAA44C,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAO,CAAE,CAAC,ECAjyDo1E,IAAeh7R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,GAAyB4lN,gBAAoB,SAAU,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,KAAM,UAAW,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,86BAA+6B,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAO,CAAE,CAAC,ECAl0Cq1E,IAAkBj7R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,GAAyB4lN,gBAAoB,SAAU,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,KAAM,UAAW,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,+zBAAg0B,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAO,CAAE,CAAC,ECAttCs1E,IAAal7R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,GAAyB4lN,gBAAoB,SAAU,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,KAAM,UAAW,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,2mBAA4mB,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAO,CAAE,CAAC,ECA7/Bu1E,IAAiBn7R,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,GAAyB4lN,gBAAoB,SAAU,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,KAAM,UAAW,EAAmBA,gBAAoB,OAAQ,CAAE,EAAG,s6CAAu6C,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAO,CAAE,CAAC,ECD5zDw1E,IAAa,CACjB,CACE,GAAI,EACJ,MAAO,sBACP,MAAO,qBACT,EACA,CACE,GAAI,EACJ,MAAO,0BACP,MAAO,yBACT,EACA,CACE,GAAI,EACJ,MAAO,iCACP,MAAO,gCACT,EACA,CACE,GAAI,EACJ,MAAO,+BACP,MAAO,8BACT,EACA,CACE,GAAI,EACJ,MAAO,aACP,MAAO,YACT,EACA,CACE,GAAI,EACJ,MAAO,sBACP,MAAO,qBACT,EACA,CACE,GAAI,EACJ,MAAO,yBACP,MAAO,wBACT,EACA,CACE,GAAI,EACJ,MAAO,gBACP,MAAO,eACT,EACA,CACE,GAAI,EACJ,MAAO,yBACP,MAAO,wBACT,EACA,CACE,GAAI,GACJ,MAAO,QACP,MAAO,OACT,CACF,ECpCA,SAASC,GAAY,CAAEC,cAAa,GAAGt7R,CAAM,EAAG,OAC9C,MAAMk4R,GAAWkD,MAAWp4R,QAAY3rB,EAAEukC,QAAU0/Q,CAAW,IAA9CF,cAAiDr4S,GAElE,GAAIm1S,EACF,OAAQA,EAAQ,CACd,IAAK,GACH,SAAQqD,IAAU,IAAKv7R,EAAQ,EACjC,IAAK,GACH,SAAQw7R,IAAwB,IAAKx7R,EAAQ,EAC/C,IAAK,GACH,SAAQy7R,IAA8B,IAAKz7R,EAAQ,EACrD,IAAK,GACH,SAAQ07R,IAAuB,IAAK17R,EAAQ,EAC9C,IAAK,GACH,SAAQ27R,IAAa,IAAK37R,EAAQ,EACpC,IAAK,GACH,SAAQ47R,IAAS,IAAK57R,EAAQ,EAChC,IAAK,GACH,SAAQ67R,IAAwB,IAAK77R,EAAQ,EAC/C,IAAK,GACH,SAAQ87R,IAAc,IAAK97R,EAAQ,EACrC,IAAK,GACH,SAAQ+7R,IAAkB,IAAK/7R,EAAQ,EACzC,IAAK,IACH,SAAQg8R,GAAS,IAAKh8R,EAAQ,EAChC,QACE,SAAQg8R,GAAS,IAAKh8R,EAAQ,CAClC,KAEA,UAAQg8R,GAAS,IAAKh8R,EAAQ,CAElC,CC1CA,MAAMi8R,IAAWxpR,aACf,CACE,CAAEK,YAAW3S,QAAO+G,WAAU8mE,cAAalqE,OAAO,OAAQ,GAAGiP,CAAK,EAClE/Q,IACG,CACH,KAAM,CAACmzE,EAAWC,CAAY,EAAI3jD,WAAS,EAAK,EAE1CyqQ,EAA8B9mN,KAAa+mN,CAAU,EAE3D,SACE,OAAKrpR,UAAU,kBAAiB7S,UAC9Bwe,EAAA,SACEomD,QAASA,IAAM7iE,EAAI02B,QAAQoN,MAAM,EACjChzB,UAAWwF,GACT,4FACA,CACE,QAAS68D,GAAah1E,EACtB,QAAS,CAACg1E,GAAa,CAACh1E,EAE5B,EAAEF,SAED+tE,EACI,EACPvvD,EAAA,SACEzc,MACA8B,OACAgP,UAAWwF,GACT,0DACAxF,CACF,EACA+1E,QAASA,IAAMqzM,EAAY,EAAI,EAC/BhvO,OAAQA,IAAMgvO,EAAY,EAAK,EAC/B/7R,QACA+G,WAAmB,GACf6L,EACL,CAAC,EACC,CAET,CACF,ECpCMqpR,GAAkB3pR,aACtB,CAAC,CAAEtS,QAAO+G,WAAU8mE,cAAaquN,eAAcC,WAAU,EAAGt6R,IAAQ,CAClE,MAAMu6R,EACJv4L,oBAAQlsE,WAAWy0B,QAAQ,wBAAyB,KAEhDhlD,EAA0Bd,GAAA,CACxB+1R,QAAe/1R,EAAM8B,OAAOpI,MAAMosD,QAAQ,SAAU,EAAE,EAAEo0F,OACxD87I,EAAellQ,SAASilQ,EAAc,EAAE,EAE1CA,IAAiB,GACnBt1R,EAAS,IAAI,EACJ,CAAC0lD,MAAM6vO,CAAY,GAAKA,GAAgB,UACjDv1R,EAASu1R,CAAY,CACvB,EAGF,SACE,OAAK3pR,UAAU,kCAAiC7S,SAAA,CAC9Cwe,EAACi+Q,IAAc,CAACJ,YAAsBD,eAA6B,EACnE59Q,EAACw9Q,IAAQ,CACPj6R,MACA8B,KAAK,OACL64R,UAAU,UACVx8R,MAAOo8R,EAAuBp8R,CAAK,EACnC+G,SAAUK,EACVymE,cACAl7D,UAAU,4BACX,CAAC,EACC,CAET,CACF,EAEM4pR,IAAiBA,CAAC,CAAEJ,YAAWD,cAAa,IAAM,OAChD,MAAExmT,KAAMyzK,GAAe,EACvBv2H,EAAU,CACd,CAAE5yB,MAAO,MAAOyb,MAAO,KACvB,CAAEzb,MAAO,MAAOyb,MAAO,KACvB,CAAEzb,MAAO,MAAOyb,MAAO,KACvB,CAAEzb,MAAO,MAAOyb,MAAO,KACvB,CAAEzb,MAAO,MAAOyb,MAAO/lC,EAAE,oBAAoB,EAAG,EAIhD8oC,SAACslI,IAAiB,CAAC9jJ,MAAOm8R,EAAWxtR,cAAeutR,EAAap8R,SAC/Dwe,CAACwlI,MAAoB,CAAC97I,QAAO,GAAAlI,WAC3B,UAAQ6S,UAAU,SAAS,aAAW,oBAAmB7S,WACvD,OAAK6S,UAAU,mGAAkG7S,WAC/G,QAAM6S,UAAU,gBAAe7S,UAC5B8yB,IAAQ/vB,QAAiBsyD,EAAOn1D,QAAUm8R,CAAS,IAAnDvpQ,cAAsDnX,MACnD,EACH,EACC,EACY,EACrBqoI,KAAoB,CACnBt2G,KAAK,MACL2U,WAAY,EACZxvC,UAAU,iDAAgD7S,SAEzDgkJ,MAAkB,CAAAhkJ,SAChB8yB,EAAQ3vB,IACPqb,KAACwlI,GAAiB,CAEhB9jJ,MAAOm1D,EAAOn1D,MACd4zI,SAAUA,IAAMsoJ,EAAa/mO,EAAOn1D,KAAK,EACzC2S,UAAU,oEAAmE7S,WAE7E,QAAM6S,UAAU,gBAAe7S,SAAEq1D,EAAO15C,MAAY,GAL/C05C,EAAOn1D,KAMK,CACpB,EACiB,EACA,CAAC,EACN,CAEvB,EC/EA,SAASy8R,IAAyB3mT,EAAG,CACpC,OAAOA,GAAKA,EAAE,YAAc,OAAO,UAAU,eAAe,KAAKA,EAAG,SAAS,EAAIA,EAAE,QAAaA,CACjG,CAEA,IAAI4mT,GAAc,CAAC,QAAS,EAAE,EAE9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOA,IAAIC,IAAcD,GAAY,QAE1BE,GAEJ,SAASC,KAAoB,CAC5B,OAAID,KACJA,GAAuB,EACtB,SAAUxlM,EAAQ7+G,EAAS,EAC1B,SAAS/B,EAAGd,EAAG,CACZ0hH,EAAO,QAAU1hH,GACpB,GAAgB,OAAO,KAAtB,IAA6B,KAAOinT,IAAc,UAAW,CAC3D,OAAO,UAAW,CACd,IAAInmT,EAAI,CACJ,KAAM,SAASA,EAAGd,EAAG,CACjB,OAAO,eAAeA,EAAG,aAAc,CACnC,MAAO,EACV,GAAGA,EAAE,QAAU,OAChBA,EAAE,QAAU,CACR,YAAa,IACb,YAAa,IACb,eAAgB,CAAE,IAAK,GAAK,EAC5B,iBAAkB,CAAE,IAAK,GAAK,EAC9B,YAAa,CAAE,IAAK,GAAK,EACzB,iBAAkB,IAClB,WAAY,KACZ,KAAM,KACN,MAAO,KACP,WAAY,UAAW,CAAE,EACzB,aAAc,UAAW,CAAE,EAC3B,UAAW,UAAW,CAAE,EACxB,OAAQ,EACR,OAAQ,GACR,WAAY,GACZ,mBAAoB,GACpB,qBAAsB,GACtB,WAAY,GACZ,iBAAkB,GAClB,gBAAiB,GACjB,MAAO,KACP,UAAW,UAAW,CAAE,EACxB,aAAc,KACd,cAAe,SAASc,EAAGd,EAAG,CAC1B,OAAqB,OAAOA,EAAE,cAAvB,WAAsCA,EAAE,aAAa,KAAK,KAAMc,EAAGd,CAAC,EAAIc,CAClF,EACD,cAAe,KACf,SAAU,KACV,gBAAiB,GACjB,gBAAiB,GACjB,gBAAiB,UAAW,CAAE,EAC9B,0BAA2B,IAC3B,aAAc,GACd,WAAY,GACZ,aAAc,GACd,WAAY,GACZ,YAAa,GACb,eAAgB,GAChB,WAAY,KACZ,mBAAoB,GACpB,WAAY,GACZ,kBAAmB,CAAE,OAAQ,MAAO,MAAO,WAAY,QAAU,EACjE,WAAY,KACZ,cAAe,KACf,eAAgB,KAChB,uBAAwB,OACxB,WAAY,GACZ,SAAU,GACV,eAAgB,GAChB,gBAAiB,GACjB,qBAAsB,MACtB,OAAQ,KACR,UAAW,OACX,qBAAsB,GACtB,eAAgB,GAChB,wBAAyB,GACzB,uBAAwB,IACxB,YAAa,CAAE,CACrC,CACe,EACD,KAAM,SAASA,EAAGd,EAAG,CACjB,OAAO,eAAeA,EAAG,aAAc,CACnC,MAAO,EACV,GAAGA,EAAE,QAAU,OAChBA,EAAE,QAAU,CACR,EAAG,CACC,UAAW,WACX,iBAAkB,GACrB,EACD,EAAG,CACC,UAAW,oBACX,iBAAkB,GACrB,EACD,IAAK,CACD,UAAW,yBACd,CACvB,CACe,EACD,IAAK,SAASc,EAAGd,EAAG,CAChB,OAAO,eAAeA,EAAG,aAAc,CACnC,MAAO,EAC7B,CAAmB,EAAGA,EAAE,QAAU,SAASc,EAAGd,EAAGJ,EAAG,CAC9B,GAAeA,IAAX,OAAc,OAAOkB,EAAE,OAASA,EAAE,OAAOd,CAAC,EAAI,KAClDc,EAAE,OAASA,EAAE,QAAU,GAAIA,EAAE,OAAOd,CAAC,EAAIJ,CAC/D,CACe,EACD,KAAM,SAASkB,EAAGd,EAAGJ,EAAG,CACpB,OAAO,eAAeI,EAAG,aAAc,CACnC,MAAO,EAC7B,CAAmB,EAAGA,EAAE,MAAQ,OAAQA,EAAE,IAAM,SAASc,EAAGd,EAAG,CACzC,IAAIJ,EAAGwpB,EACP,OAAAnpB,EAAE,KAAK,CAAC,CAAC,GAAKa,IAAMlB,EAAI,KAAK,CAAC,EAAE,cAAewpB,EAAI,KAAK,CAAC,EAAGtoB,EAAE,MAAM,GAAG,EAAE,QAAS,SAASA,EAAG,CAC1F,IAAIN,EAAIs9B,EAAEh9B,EAAE,MAAM,GAAG,EAAG,CAAC,GACxB,SAASA,EAAGsoB,EAAG,CACZ,IAAI5oB,EAAGT,EAAG+9B,EAAI,GACd,GAAIh9B,EAAE,OAAS,EAAG,GAAed,IAAX,OAAc,IAAKQ,EAAI,EAAGT,EAAIH,EAAEkB,CAAC,EAAEsoB,CAAC,EAAE,OAAQ5oB,EAAIT,EAAGS,IAAKs9B,EAAE,KAAK,CACnF,GAAIh9B,EACJ,UAAWsoB,GAAKA,EAAE,OAAS,EAAIA,EAAI,SACnC,QAASxpB,EAAEkB,CAAC,EAAEsoB,CAAC,EAAE5oB,CAAC,CACpD,CAA+B,OAAQs9B,EAAE,KAAK,CACZ,GAAIh9B,EACJ,UAAWsoB,GAAKA,EAAE,OAAS,EAAIA,EAAI,SACnC,QAASppB,CAC3C,CAA+B,UAAYopB,EAAE,OAAS,GAAG,QAASzpB,KAAKC,EAAG,QAASupB,KAAKvpB,EAAED,CAAC,EAAG,GAAIwpB,IAAMC,EAAG,GAAeppB,IAAX,OAAc,IAAKQ,EAAI,EACxGT,EAAIH,EAAED,CAAC,EAAEwpB,CAAC,EAAE,OAAQ3oB,EAAIT,EAAGS,IAAKs9B,EAAE,KAAK,CACnC,GAAIn+B,EACJ,UAAWwpB,EACX,QAASvpB,EAAED,CAAC,EAAEwpB,CAAC,EAAE3oB,CAAC,CACpD,CAA+B,OAAQs9B,EAAE,KAAK,CACZ,GAAIn+B,EACJ,UAAWwpB,EACX,QAASnpB,CAC3C,CAA+B,EACD,OAAO89B,CACrC,GAA6Bt9B,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,EAAE,QAAS,SAASM,EAAG,CAChC,IAAId,EAAIc,EAAE,GAAIN,EAAIM,EAAE,SACnB,SAASA,EAAGd,EAAGQ,EAAG,CACf,GAAIM,KAAKlB,GAAK,EAAG,GAAIwpB,EAAE,oBAAsBA,EAAE,oBAAoBtoB,EAAGN,EAAG,EAAE,EAAI4oB,EAAE,aAAeA,EAAE,YAAY,KAAK,OAAOtoB,CAAC,EAAGN,CAAC,EAClHR,IAAb,SAAgB,QAASD,KAAKH,EAAEkB,CAAC,EAAGlB,EAAEkB,CAAC,EAAEf,CAAC,EAAE,OAAOH,EAAEkB,CAAC,EAAEf,CAAC,EAAE,QAAQS,CAAC,EAAG,CAAC,OAAQZ,EAAEkB,CAAC,EAAEd,CAAC,EAAE,OAAOJ,EAAEkB,CAAC,EAAEd,CAAC,EAAE,QAAQQ,CAAC,EAAG,CAAC,CACvH,GAACR,EAAGc,EAAE,UAAWN,CAAC,CACjD,EACuB,IACM,IACV,EAAER,EAAE,GAAK,SAASc,EAAGd,EAAG,CACrB,GAAIC,EAAE,KAAK,CAAC,CAAC,EAAG,CACZ,IAAIL,EAAI,KAAK,CAAC,EAAE,cAAewpB,EAAI,KAAK,CAAC,EACzCtoB,EAAE,MAAM,GAAG,EAAE,QAAS,SAASA,EAAG,CAC9B,IAAIN,EAAIs9B,EAAEh9B,EAAE,MAAM,GAAG,EAAG,CAAC,EAAGf,EAAIS,EAAE,CAAC,EAAGb,EAAIa,EAAE,CAAC,GAC5C,SAASM,EAAGN,EAAG,CACZ4oB,EAAE,iBAAmBA,EAAE,iBAAiBtoB,EAAGd,EAAG,EAAE,EAAIopB,EAAE,aAAeA,EAAE,YAAY,KAAK,OAAOtoB,CAAC,EAAGd,CAAC,EACpGJ,EAAEkB,CAAC,EAAIlB,EAAEkB,CAAC,GAAK,CAAE,EAAElB,EAAEkB,CAAC,EAAEN,CAAC,EAAIZ,EAAEkB,CAAC,EAAEN,CAAC,GAAK,GAAIZ,EAAEkB,CAAC,EAAEN,CAAC,EAAE,KAAKR,CAAC,CAC5F,GAAgCD,EAAcJ,IAAX,OAAe,SAAWA,CAAC,CAC9D,EACuB,CACD,OAAO,IAC7B,EAAqBK,EAAE,QAAU,SAASc,EAAG,CACvB,IAAId,EAAI,UACR,GAAIC,EAAE,KAAK,CAAC,CAAC,EAAG,QAASL,EAAI,KAAK,CAAC,EAAE,cAAewpB,EAAI,KAAK,CAAC,EAAG0U,EAAgB,OAAOh9B,GAAnB,SAAuBA,EAAE,MAAM,GAAG,EAAI,CAAEA,EAAE,IAAM,EAAEnB,EAAI,EAAGA,EAAIm+B,EAAE,OAAQn+B,IAAK,CAC7I,IAAIwpB,EAAI2U,EAAEn+B,CAAC,EAAE,MAAM,GAAG,EAAGiC,EAAIunB,EAAE,CAAC,EAAGtpB,EAAIspB,EAAE,CAAC,GAAK,SAC/C,GAAe3nB,IAAX,QAA6B3B,IAAb,SAAgB,CAChC,IAAI0B,EAAGG,EAAI,CACP,QAAS,GACT,WAAY,GACZ,SAAU,GACV,OAAQ,UAAU,CAAC,CACrD,EAC8B,GAAIF,EAAE,YAAa,CACf,GAAI,CACgBI,IAAZ,SAAeF,EAAE,UAAY,aAAcH,EAAI,IAAI,WAAWK,EAAGF,CAAC,GAAQH,EAAI,IAAI,YAAYK,EAAGF,CAAC,CACzG,MAAW,EACPH,EAAIC,EAAE,YAAY,aAAa,GAAG,gBAAgBI,EAAGF,EAAE,QAASA,EAAE,WAAYA,EAAE,MAAM,CAC1F,CACDZ,EAAE,SAAYN,EAAE,SAASe,EAAGT,CAAC,EAAGsoB,EAAE,cAAc7nB,CAAC,CACpD,MAAOA,EAAIC,EAAE,kBAAmB,GAAE,UAAYI,EAAGL,EAAE,OAAS,UAAU,CAAC,EAAGT,EAAE,SAAYN,EAAE,SAASe,EAAGT,CAAC,EAAGsoB,EAAE,UAAU,KAAO7nB,EAAE,UAAWA,CAAC,CAC/I,SAAqB3B,EAAEgC,CAAC,IAAd,OAAiB,CACxB,UAAU,CAAC,EAAI,UAAU,CAAC,EAAE,KAAO,UAAU,CAAC,EAAI7B,EAAE,QAAQ,MAAM,UAAU,CAAC,CAAC,EAC9E,UAAU,CAAC,EAAE,OAAS,UAAU,MAAM,CAAC,EACvC,IAAIG,EAAIN,EAAEgC,CAAC,GACG/B,IAAb,SAAiB,OAAO,OAAOK,CAAC,EAAE,KAAM,EAAGA,EAAEL,CAAC,GAAG,QAAS,SAASiB,EAAG,CACnE,OAAOA,EAAE,MAAMsoB,EAAGppB,CAAC,CACrD,EAC2B,CACJ,CACD,OAAO,IAC7B,EACkB,IAAIopB,EAAID,EAAEvpB,EAAE,IAAI,CAAC,EAAGY,EAAI2oB,EAAEvpB,EAAE,GAAG,CAAC,EAAGG,EAAIopB,EAAEvpB,EAAE,IAAI,CAAC,EAChD,SAASk+B,EAAEh9B,EAAGd,EAAG,CACb,OAAO,SAASc,EAAG,CACf,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAOA,CAChC,EAACA,CAAC,GAAK,SAASA,EAAGd,EAAG,CACnB,IAAIJ,EAAYkB,GAAR,KAAY,KAAsB,OAAO,OAAtB,KAAgCA,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC/F,GAAYlB,GAAR,KAAW,CACX,IAAIwpB,EAAG5oB,EAAGT,EAAG+9B,EAAGn+B,EAAI,GAAIwpB,EAAI,GAAI3nB,EAAI,GACpC,GAAI,CACA,GAAIzB,GAAKH,EAAIA,EAAE,KAAKkB,CAAC,GAAG,KAAYd,IAAN,EAAgB,KAAM,EAAEmpB,GAAKC,EAAIrpB,EAAE,KAAKH,CAAC,GAAG,QAAUD,EAAE,KAAKypB,EAAE,KAAK,EAAGzpB,EAAE,SAAWK,GAAImpB,EAAI,GAAI,CACjI,OAAQroB,EAAG,CACRU,EAAI,GAAIhB,EAAIM,CAC9C,QAAwC,CACN,GAAI,CACA,GAAI,CAACqoB,GAAavpB,EAAE,QAAV,OAAqBk+B,EAAIl+B,EAAE,OAAQ,EAAE,OAAOk+B,CAAC,IAAMA,GAAI,MACvG,QAA4C,CACN,GAAIt8B,EAAG,MAAMhB,CAChB,CACJ,CACD,OAAOb,CACV,CACJ,EAACmB,EAAGd,CAAC,GAAK,SAASc,EAAGd,EAAG,CACtB,GAAKc,EACL,IAAgB,OAAOA,GAAnB,SAAsB,OAAOnB,EAAEmB,EAAGd,CAAC,EACvC,IAAIJ,EAAI,OAAO,UAAU,SAAS,KAAKkB,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADalB,IAAb,UAAkBkB,EAAE,cAAgBlB,EAAIkB,EAAE,YAAY,MACxClB,IAAV,OAAyBA,IAAV,MAAa,OAAO,MAAM,KAAKkB,CAAC,EACnD,GAAoBlB,IAAhB,aAAqB,2CAA2C,KAAKA,CAAC,EAAG,OAAOD,EAAEmB,EAAGd,CAAC,EACpH,EAAwBc,EAAGd,CAAC,GAAK,UAAW,CAClB,MAAM,IAAI,UAAU;AAAA,mFAA2I,CACzL,GACmB,CACD,SAASL,EAAEmB,EAAGd,EAAG,EACJA,GAAR,MAAaA,EAAIc,EAAE,UAAYd,EAAIc,EAAE,QACtC,QAASlB,EAAI,EAAGwpB,EAAI,IAAI,MAAMppB,CAAC,EAAGJ,EAAII,EAAGJ,IAAKwpB,EAAExpB,CAAC,EAAIkB,EAAElB,CAAC,EACxD,OAAOwpB,CACV,CACD,SAASD,EAAEroB,EAAG,CACV,OAAOA,GAAKA,EAAE,WAAaA,EAAI,CAC3B,QAASA,CACnC,CACmB,CACD,IAAIU,EAAI4nB,EAAE,QAAQ,SAClB,SAASnpB,EAAEa,EAAG,CACV,OAAOA,aAAa,OACvB,CACD,IAAIc,EAAI5B,EAAE,MAAQ,OACJ,OAAOopB,EAAE,QAAQ,aAA/B,WAA6CppB,EAAE,MAAQ4B,EAAIwnB,EAAE,QAAQ,YAAcA,EAAE,QAAQ,OAAS5nB,GAAKA,EAAE,aAAexB,EAAE,MAAQ4B,EAAI,SAASd,EAAGd,EAAG,CACrJA,EAAIA,GAAK,CACL,QAAS,GACT,WAAY,GACZ,SAAU,GACV,OAAQ,MAClC,EACsB,IAAIJ,EAAI4B,EAAE,YAAY,aAAa,EACnC,OAAO5B,EAAE,gBAAgBkB,EAAGd,EAAE,QAASA,EAAE,WAAYA,EAAE,MAAM,EAAGJ,CACnE,EAAEgC,EAAE,UAAYwnB,EAAE,QAAQ,MAAM,WAA4B,OAAO,MAAtB,MAAgCppB,EAAE,MAAQ4B,EAAI,MAC/F,EACD,IAAK,SAASd,EAAGd,EAAG,CAChB,SAASJ,EAAEkB,EAAG,CACV,OAAOlB,EAAkB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAASkB,EAAG,CACvF,OAAO,OAAOA,CACjB,EAAG,SAASA,EAAG,CACZ,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAC5I,EAAyBlB,EAAEkB,CAAC,CACT,CACD,OAAO,eAAed,EAAG,aAAc,CACnC,MAAO,EACV,GAAGA,EAAE,QAAU,SAASc,GAAI,CACzB,IAAId,EAAGopB,EAAG5oB,EAAGT,EAAG+9B,EAAGn+B,EAAGwpB,EAAI,UAAU,CAAC,GAAK,GAAI3nB,EAAI,EAAGvB,EAAI,UAAU,OAAQ2B,EAAI,GAG/E,IAFa,OAAOunB,GAApB,YAA0BvnB,EAAIunB,EAAGA,EAAI,UAAU3nB,CAAC,GAAK,GAAIA,KAC5C5B,EAAEupB,CAAC,IAAhB,UAAmC,OAAOA,GAArB,aAA2BA,EAAI,IAC9C3nB,EAAIvB,EAAGuB,IAAK,IAAaxB,EAAI,UAAUwB,CAAC,IAAxB,KAA4B,IAAK4nB,KAAKppB,EAAGQ,EAAI2oB,EAAEC,CAAC,EAAGD,KAAOppB,EAAIC,EAAEopB,CAAC,KAAOxnB,GAAK7B,IAA4B,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAtD,oBAA4D+9B,EAAI,MAAM,QAAQ/9B,CAAC,KAAO+9B,GAAKA,EAAI,GACxMn+B,EAAIa,GAAK,MAAM,QAAQA,CAAC,EAAIA,EAAI,IAAMb,EAAIa,GAA2B,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAtD,kBAA0DA,EAAI,CAAE,EAC/G2oB,EAAEC,CAAC,EAAItoB,EAAEc,EAAGjC,EAAGI,CAAC,GAAgBA,IAAX,SAAiBopB,EAAEC,CAAC,EAAIrpB,IAC7C,OAAOopB,CAC7B,CACe,EACD,KAAM,SAASroB,EAAGd,EAAGJ,EAAG,CACpB,OAAO,eAAeI,EAAG,aAAc,CACnC,MAAO,EACV,GAAGA,EAAE,QAAU,OAChB,IAAIopB,EAAIzpB,EAAEC,EAAE,IAAI,CAAC,EAAGY,EAAIb,EAAEC,EAAE,GAAG,CAAC,EAAGG,EAAIH,EAAE,IAAI,EAAGk+B,EAAIn+B,EAAEC,EAAE,GAAG,CAAC,EAC5D,SAASD,EAAEmB,EAAG,CACV,OAAOA,GAAKA,EAAE,WAAaA,EAAI,CAC3B,QAASA,CACnC,CACmB,CACD,IAAIqoB,EAAIC,EAAE,QAAQ,SAClB,SAAS5nB,EAAEV,EAAG,CACV,OAAOA,aAAaU,EAAIV,EAAI,gBAAgBU,EAAI,KAAcV,GAAR,MAAaA,IAAMsoB,EAAE,UAAY,KAAK,CAAC,EAAItoB,EAAE,SAAWA,EAAeA,EAAE,CAAC,IAAd,QAAmBA,EAAE,CAAC,EAAE,SAAWA,EAAE,CAAC,EAAIqoB,EAAE,cAAcroB,CAAC,EAClK,KAAK,CAAC,IAAjB,QAA+B,KAAK,CAAC,IAAf,OAAqB,KAAK,CAAC,EAAE,cAAgB,KAAK,CAAC,EAAE,eAAiB,MAAQ,IAAIU,EAAEV,CAAC,CAC9G,CACDU,EAAE,UAAY,CACV,GAAIzB,EAAE,GACN,IAAKA,EAAE,IACP,QAASA,EAAE,OACd,EAAEyB,EAAE,OAASs8B,EAAE,QAASt8B,EAAE,KAAOhB,EAAE,QAASgB,EAAE,MAAQzB,EAAE,MACzDC,EAAE,QAAUwB,CACf,EACD,KAAM,SAASV,EAAGd,EAAGJ,EAAG,CACpB,OAAO,eAAeI,EAAG,aAAc,CACnC,MAAO,EAC7B,CAAmB,EAAGA,EAAE,OAASA,EAAE,OAASA,EAAE,GAAK,OACjC,IAAIopB,EAAG5oB,GAAK4oB,EAAIxpB,EAAE,IAAI,IAAMwpB,EAAE,WAAaA,EAAI,CAC3C,QAASA,CAC/B,EACsBrpB,EAAIS,EAAE,QAAQ,WAAaA,EAAE,QAAQ,UAAU,WAAa,GAChER,EAAE,GAAKD,EAAE,QAAQ,OAAO,EAAI,GAAKA,EAAE,QAAQ,UAAU,EAAI,EAAGC,EAAE,OAASQ,EAAE,QAAQ,WAAaA,EAAE,QAAQ,UAAU,eAAiBA,EAAE,QAAQ,UAAU,cAAc,QAAUA,EAAE,QAAQ,WAAaA,EAAE,QAAQ,UAAU,gBAAkB,iBAAkBA,EAAE,QAChQR,EAAE,OAAS,UAAU,KAAKD,CAAC,CAC9B,EACD,KAAM,SAASe,EAAGd,EAAG,CACjB,OAAO,eAAeA,EAAG,aAAc,CACnC,MAAO,EACV,GAAGA,EAAE,YAAc,SAASc,EAAG,CAC5B,OAAOA,EAAE,QAAQlB,EAAG,MAAM,CAChD,EACkB,IAAIA,EAAI,IAAI,OAAO,MAAQ,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,GAAK,EAAC,KAAK,KAAK,EAAI,IAAK,KAAK,CACrI,EACD,KAAM,SAASkB,EAAGd,EAAGJ,EAAG,CACpB,SAASwpB,EAAEtoB,EAAG,CACV,OAAOsoB,EAAkB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAStoB,EAAG,CACvF,OAAO,OAAOA,CACjB,EAAG,SAASA,EAAG,CACZ,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAC5I,EAAyBsoB,EAAEtoB,CAAC,CACT,CACD,OAAO,eAAed,EAAG,aAAc,CACnC,MAAO,EACV,GAAGA,EAAE,cAAgB,OACtB,IAAIQ,EAAGT,EAAIH,EAAE,IAAI,EAAGk+B,GAAKt9B,EAAIZ,EAAE,IAAI,IAAMY,EAAE,WAAaA,EAAI,CACxD,QAASA,CAC/B,EAAqBb,EAAIC,EAAE,IAAI,EAAGupB,EAAIvpB,EAAE,IAAI,EAAG4B,EAAI5B,EAAE,IAAI,EAAGK,EAAIL,EAAE,IAAI,EAAGgC,EAAIhC,EAAE,IAAI,EACjE,SAASC,GAAI,CAC4I,oJAAAA,EAAI,UAAW,CAChK,OAAOG,CACjC,EACsB,IAAIc,EAAGd,EAAI,GAAIJ,EAAI,OAAO,UAAWY,EAAIZ,EAAE,eAAgBG,EAAI,OAAO,gBAAkB,SAASe,GAAGd,EAAGJ,GAAG,CACtGkB,GAAEd,CAAC,EAAIJ,GAAE,KACnC,EAAyBk+B,EAAkB,OAAO,QAArB,WAA8B,OAAS,CAAE,EAAEn+B,EAAIm+B,EAAE,UAAY,aAAc3U,EAAI2U,EAAE,eAAiB,kBAAmBt8B,EAAIs8B,EAAE,aAAe,gBACjJ,SAAS79B,EAAEa,GAAGd,EAAGJ,GAAG,CAChB,OAAO,OAAO,eAAekB,GAAGd,EAAG,CAC/B,MAAOJ,GACP,WAAY,GACZ,aAAc,GACd,SAAU,EACxC,CAA2B,EAAGkB,GAAEd,CAAC,CACV,CACD,GAAI,CACAC,EAAE,GAAI,EAAE,CACX,MAAW,CACRA,EAAI,SAASa,EAAGd,GAAGJ,GAAG,CAClB,OAAOkB,EAAEd,EAAC,EAAIJ,EAC5C,CACuB,CACD,SAASgC,EAAEd,GAAGd,EAAGJ,GAAGwpB,GAAG,CACnB,IAAI5oB,GAAIR,GAAKA,EAAE,qBAAqByB,GAAIzB,EAAIyB,GAAGq8B,GAAI,OAAO,OAAOt9B,GAAE,SAAS,EAAGb,GAAI,IAAIgB,GAAEyoB,IAAK,EAAE,EAChG,OAAOrpB,EAAE+9B,GAAG,UAAW,CACnB,MAAOl9B,GAAEE,GAAGlB,GAAGD,EAAC,CACnB,GAAGm+B,EACP,CACD,SAASv8B,EAAET,GAAGd,EAAGJ,GAAG,CAChB,GAAI,CACA,MAAO,CACH,KAAM,SACN,IAAKkB,GAAE,KAAKd,EAAGJ,EAAC,CAClD,CAC2B,OAAQkB,GAAG,CACR,MAAO,CACH,KAAM,QACN,IAAKA,EACvC,CAC2B,CACJ,CACDd,EAAE,KAAO4B,EACT,IAAIF,EAAI,iBAAkBxB,EAAI,iBAAkB2B,EAAI,YAAaF,GAAI,YAAatB,GAAI,GACtF,SAASoB,IAAI,CAAE,CACf,SAASZ,IAAI,CAAE,CACf,SAAST,IAAI,CAAE,CACf,IAAID,GAAI,GACRF,EAAEE,GAAGR,EAAI,UAAW,CAChB,OAAO,IACjC,GACsB,IAAIsC,GAAI,OAAO,eAAgBG,GAAIH,IAAKA,GAAEA,GAAEZ,GAAE,CAAE,EAAC,CAAC,EAClDe,IAAKA,KAAMxC,GAAKY,EAAE,KAAK4B,GAAGzC,CAAC,IAAMQ,GAAIiC,IACrC,IAAIL,GAAI3B,GAAE,UAAYqB,GAAE,UAAY,OAAO,OAAOtB,EAAC,EACnD,SAASkuC,GAAEvtC,GAAG,CACV,CAAE,OAAQ,QAAS,QAAU,EAAC,QAAS,SAASd,EAAG,CAC/CC,EAAEa,GAAGd,EAAI,SAASc,GAAG,CACjB,OAAO,KAAK,QAAQd,EAAGc,EAAC,CAC1D,EACA,EACuB,CACD,SAASQ,GAAER,GAAGd,EAAG,CACb,SAASJ,GAAEG,GAAG+9B,GAAGn+B,GAAGwpB,GAAG,CACnB,IAAI3nB,GAAID,EAAET,GAAEf,EAAC,EAAGe,GAAGg9B,EAAC,EACpB,GAAgBt8B,GAAE,OAAd,QAAoB,CACpB,IAAIvB,GAAIuB,GAAE,IAAKI,GAAI3B,GAAE,MACrB,OAAO2B,IAAiBwnB,EAAExnB,EAAC,GAAf,UAAoBpB,EAAE,KAAKoB,GAAG,SAAS,EAAI5B,EAAE,QAAQ4B,GAAE,OAAO,EAAE,KAAM,SAASd,GAAG,CAC1FlB,GAAE,OAAQkB,GAAGnB,GAAGwpB,EAAC,CACpB,EAAI,SAASroB,GAAG,CACblB,GAAE,QAASkB,GAAGnB,GAAGwpB,EAAC,CACxD,CAAqC,EAAGnpB,EAAE,QAAQ4B,EAAC,EAAE,KAAM,SAASd,GAAG,CACjCb,GAAE,MAAQa,GAAGnB,GAAEM,EAAC,CACnB,EAAI,SAASa,GAAG,CACb,OAAOlB,GAAE,QAASkB,GAAGnB,GAAGwpB,EAAC,CAC/D,EAC+B,CACDA,GAAE3nB,GAAE,GAAG,CACV,CACD,IAAIs8B,GACJ/9B,EAAE,KAAM,UAAW,CACf,MAAO,SAASe,GAAGsoB,GAAG,CAClB,SAAS5oB,IAAI,CACT,OAAO,IAAIR,EAAG,SAASA,GAAGQ,GAAG,CACzBZ,GAAEkB,GAAGsoB,GAAGppB,GAAGQ,EAAC,CACtD,EACmC,CACD,OAAOs9B,GAAIA,GAAIA,GAAE,KAAKt9B,GAAGA,EAAC,EAAIA,IACjC,CAC/B,CAA2B,CACJ,CACD,SAASI,GAAEZ,GAAGJ,EAAGwpB,GAAG,CAChB,IAAI5oB,GAAIkB,EACR,OAAO,SAAS3B,GAAG+9B,GAAG,CAClB,GAAIt9B,KAAMqB,EAAG,MAAM,IAAI,MAAM,8BAA8B,EAC3D,GAAIrB,KAAMmB,GAAG,CACT,GAAgB5B,KAAZ,QAAe,MAAM+9B,GACzB,MAAO,CACH,MAAOh9B,EACP,KAAM,EAC5C,CAC+B,CACD,IAAKsoB,GAAE,OAASrpB,GAAGqpB,GAAE,IAAM0U,KAAM,CAC7B,IAAIn+B,GAAIypB,GAAE,SACV,GAAIzpB,GAAG,CACH,IAAIwpB,GAAI6kC,GAAEruD,GAAGypB,EAAC,EACd,GAAID,GAAG,CACH,GAAIA,KAAM9oB,GAAG,SACb,OAAO8oB,EACV,CACJ,CACD,GAAeC,GAAE,SAAb,OAAqBA,GAAE,KAAOA,GAAE,MAAQA,GAAE,YAA0BA,GAAE,SAAd,QAAsB,CAC9E,GAAI5oB,KAAMkB,EAAG,MAAMlB,GAAImB,GAAGynB,GAAE,IAC5BA,GAAE,kBAAkBA,GAAE,GAAG,CAC/D,MAAsDA,GAAE,SAAf,UAAyBA,GAAE,OAAO,SAAUA,GAAE,GAAG,EACxD5oB,GAAIqB,EACJ,IAAIL,GAAID,EAAEvB,GAAGJ,EAAGwpB,EAAC,EACjB,GAAiB5nB,GAAE,OAAf,SAAqB,CACrB,GAAIhB,GAAI4oB,GAAE,KAAOznB,GAAIzB,EAAGsB,GAAE,MAAQnB,GAAG,SACrC,MAAO,CACH,MAAOmB,GAAE,IACT,KAAM4nB,GAAE,IAClD,CACmC,CACW5nB,GAAE,OAAd,UAAuBhB,GAAImB,GAAGynB,GAAE,OAAS,QAASA,GAAE,IAAM5nB,GAAE,IAC/D,CAC/B,CACuB,CACD,SAASwsD,GAAEhuD,GAAGJ,EAAG,CACb,IAAIwpB,GAAIxpB,EAAE,OAAQY,GAAIR,GAAE,SAASopB,EAAC,EAClC,GAAI5oB,KAAMM,EAAG,OAAOlB,EAAE,SAAW,KAAkBwpB,KAAZ,SAAiBppB,GAAE,SAAS,SAAWJ,EAAE,OAAS,SACzFA,EAAE,IAAMkB,EAAGktD,GAAEhuD,GAAGJ,CAAC,EAAeA,EAAE,SAAd,UAAsCwpB,KAAb,WAAmBxpB,EAAE,OAAS,QAC3EA,EAAE,IAAM,IAAI,UAAU,oCAAsCwpB,GAAI,UAAU,GAAI/oB,GAC9E,IAAIN,GAAIwB,EAAEf,GAAGR,GAAE,SAAUJ,EAAE,GAAG,EAC9B,GAAgBG,GAAE,OAAd,QAAoB,OAAOH,EAAE,OAAS,QAASA,EAAE,IAAMG,GAAE,IAAKH,EAAE,SAAW,KAC/ES,GACA,IAAIy9B,GAAI/9B,GAAE,IACV,OAAO+9B,GAAIA,GAAE,MAAQl+B,EAAEI,GAAE,UAAU,EAAI89B,GAAE,MAAOl+B,EAAE,KAAOI,GAAE,QAAsBJ,EAAE,SAAf,WAA0BA,EAAE,OAAS,OACzGA,EAAE,IAAMkB,GAAIlB,EAAE,SAAW,KAAMS,IAAKy9B,IAAKl+B,EAAE,OAAS,QAASA,EAAE,IAAM,IAAI,UAAU,kCAAkC,EACrHA,EAAE,SAAW,KAAMS,GACtB,CACD,SAASgC,GAAEvB,GAAG,CACV,IAAId,EAAI,CACJ,OAAQc,GAAE,CAAC,CACzC,EAC0B,KAAKA,KAAMd,EAAE,SAAWc,GAAE,CAAC,GAAI,KAAKA,KAAMd,EAAE,WAAac,GAAE,CAAC,EAAGd,EAAE,SAAWc,GAAE,CAAC,GAC/E,KAAK,WAAW,KAAKd,CAAC,CACzB,CACD,SAASO,GAAEO,GAAG,CACV,IAAId,EAAIc,GAAE,YAAc,GACxBd,EAAE,KAAO,SAAU,OAAOA,EAAE,IAAKc,GAAE,WAAad,CACnD,CACD,SAASW,GAAEG,GAAG,CACV,KAAK,WAAa,CAAE,CAChB,OAAQ,MACtC,GAA+BA,GAAE,QAAQuB,GAAG,IAAI,EAAG,KAAK,MAAM,EAAE,CACzC,CACD,SAAShB,GAAErB,GAAG,CACV,GAAIA,IAAYA,KAAP,GAAU,CACf,IAAIJ,EAAII,GAAEL,CAAC,EACX,GAAIC,EAAG,OAAOA,EAAE,KAAKI,EAAC,EACtB,GAAkB,OAAOA,GAAE,MAAvB,WAA6B,OAAOA,GACxC,GAAI,CAAC,MAAMA,GAAE,MAAM,EAAG,CAClB,IAAID,GAAI,GAAI+9B,GAAI,SAASl+B,IAAI,CACzB,KAAM,EAAEG,GAAIC,GAAE,QAAU,GAAIQ,EAAE,KAAKR,GAAGD,EAAC,EAAG,OAAOH,GAAE,MAAQI,GAAED,EAAC,EAAGH,GAAE,KAAO,GAAIA,GAC9E,OAAOA,GAAE,MAAQkB,EAAGlB,GAAE,KAAO,GAAIA,EACvE,EACkC,OAAOk+B,GAAE,KAAOA,EACnB,CACJ,CACD,MAAM,IAAI,UAAU1U,EAAEppB,EAAC,EAAI,kBAAkB,CAChD,CACD,OAAOa,GAAE,UAAYT,GAAGL,EAAEgC,GAAG,cAAe,CACxC,MAAO3B,GACP,aAAc,EACxC,CAAuB,EAAGL,EAAEK,GAAG,cAAe,CACpB,MAAOS,GACP,aAAc,EACjB,GAAGA,GAAE,YAAcZ,EAAEG,GAAGoB,EAAG,mBAAmB,EAAGxB,EAAE,oBAAsB,SAASc,GAAG,CAClF,IAAId,EAAkB,OAAOc,IAArB,YAA0BA,GAAE,YACpC,MAAO,CAAC,CAACd,IAAMA,IAAMa,KAA8Bb,EAAE,aAAeA,EAAE,QAA5C,oBACpD,EAAyBA,EAAE,KAAO,SAASc,GAAG,CACpB,OAAO,OAAO,eAAiB,OAAO,eAAeA,GAAGV,EAAC,GAAKU,GAAE,UAAYV,GAAGH,EAAEa,GAAGU,EAAG,mBAAmB,GAC1GV,GAAE,UAAY,OAAO,OAAOiB,EAAC,EAAGjB,EAC1D,EAAyBd,EAAE,MAAQ,SAASc,GAAG,CACrB,MAAO,CACH,QAASA,EACvC,CACA,EAAyButC,GAAE/sC,GAAE,SAAS,EAAGrB,EAAEqB,GAAE,UAAW6nB,EAAI,UAAW,CAC7C,OAAO,IACV,GAAInpB,EAAE,cAAgBsB,GAAGtB,EAAE,MAAQ,SAASc,GAAGlB,EAAGwpB,GAAG5oB,GAAGT,GAAG,CAC7CA,KAAX,SAAiBA,GAAI,SACrB,IAAI+9B,GAAI,IAAIx8B,GAAEM,EAAEd,GAAGlB,EAAGwpB,GAAG5oB,EAAC,EAAGT,EAAC,EAC9B,OAAOC,EAAE,oBAAoBJ,CAAC,EAAIk+B,GAAIA,GAAE,KAAM,EAAC,KAAM,SAASh9B,GAAG,CAC7D,OAAOA,GAAE,KAAOA,GAAE,MAAQg9B,GAAE,MAC1D,EACuB,EAAEuQ,GAAEtsC,EAAC,EAAG9B,EAAE8B,GAAGP,EAAG,WAAW,EAAGvB,EAAE8B,GAAGpC,EAAI,UAAW,CAC/C,OAAO,IACV,GAAIM,EAAE8B,GAAG,WAAa,UAAW,CAC9B,MAAO,oBACV,GAAI/B,EAAE,KAAO,SAASc,GAAG,CACtB,IAAId,EAAI,OAAOc,EAAC,EAAGlB,GAAI,GACvB,QAASwpB,MAAKppB,EAAGJ,GAAE,KAAKwpB,EAAC,EACzB,OAAOxpB,GAAE,UAAW,SAASkB,IAAI,CAC7B,KAAMlB,GAAE,QAAU,CACd,IAAIwpB,GAAIxpB,GAAE,MACV,GAAIwpB,MAAKppB,EAAG,OAAOc,GAAE,MAAQsoB,GAAGtoB,GAAE,KAAO,GAAIA,EAChD,CACD,OAAOA,GAAE,KAAO,GAAIA,EAClD,CACuB,EAAEd,EAAE,OAASqB,GAAGV,GAAE,UAAY,CAC3B,YAAaA,GACb,MAAO,SAASX,GAAG,CACf,GAAI,KAAK,KAAO,EAAG,KAAK,KAAO,EAAG,KAAK,KAAO,KAAK,MAAQc,EAAG,KAAK,KAAO,GAAI,KAAK,SAAW,KAC9F,KAAK,OAAS,OAAQ,KAAK,IAAMA,EAAG,KAAK,WAAW,QAAQP,EAAC,EAAG,CAACP,GAAG,QAASJ,KAAK,KAAcA,EAAE,OAAO,CAAC,IAAlB,KAAuBY,EAAE,KAAK,KAAMZ,CAAC,GAAK,CAAC,MAAM,CAACA,EAAE,MAAM,CAAC,CAAC,IAAM,KAAKA,CAAC,EAAIkB,EACvK,EACD,KAAM,UAAW,CACb,KAAK,KAAO,GACZ,IAAIA,GAAI,KAAK,WAAW,CAAC,EAAE,WAC3B,GAAgBA,GAAE,OAAd,QAAoB,MAAMA,GAAE,IAChC,OAAO,KAAK,IACf,EACD,kBAAmB,SAASd,GAAG,CAC3B,GAAI,KAAK,KAAM,MAAMA,GACrB,IAAIJ,EAAI,KACR,SAASwpB,GAAEA,GAAG5oB,GAAG,CACb,OAAOb,GAAE,KAAO,QAASA,GAAE,IAAMK,GAAGJ,EAAE,KAAOwpB,GAAG5oB,KAAMZ,EAAE,OAAS,OAAQA,EAAE,IAAMkB,GACjF,CAAC,CAACN,EACL,CACD,QAAST,GAAI,KAAK,WAAW,OAAS,EAAGA,IAAK,EAAG,EAAEA,GAAG,CAClD,IAAI+9B,GAAI,KAAK,WAAW/9B,EAAC,EAAGJ,GAAIm+B,GAAE,WAClC,GAAeA,GAAE,SAAb,OAAqB,OAAO1U,GAAE,KAAK,EACvC,GAAI0U,GAAE,QAAU,KAAK,KAAM,CACvB,IAAI3U,GAAI3oB,EAAE,KAAKs9B,GAAG,UAAU,EAAGt8B,GAAIhB,EAAE,KAAKs9B,GAAG,YAAY,EACzD,GAAI3U,IAAK3nB,GAAG,CACR,GAAI,KAAK,KAAOs8B,GAAE,SAAU,OAAO1U,GAAE0U,GAAE,SAAU,EAAE,EACnD,GAAI,KAAK,KAAOA,GAAE,WAAY,OAAO1U,GAAE0U,GAAE,UAAU,CACtD,SAAU3U,IACP,GAAI,KAAK,KAAO2U,GAAE,SAAU,OAAO1U,GAAE0U,GAAE,SAAU,EAAE,MAChD,CACH,GAAI,CAACt8B,GAAG,MAAM,IAAI,MAAM,wCAAwC,EAChE,GAAI,KAAK,KAAOs8B,GAAE,WAAY,OAAO1U,GAAE0U,GAAE,UAAU,CACtD,CACJ,CACJ,CACJ,EACD,OAAQ,SAASh9B,GAAGd,EAAG,CACnB,QAASJ,GAAI,KAAK,WAAW,OAAS,EAAGA,IAAK,EAAG,EAAEA,GAAG,CAClD,IAAIwpB,GAAI,KAAK,WAAWxpB,EAAC,EACzB,GAAIwpB,GAAE,QAAU,KAAK,MAAQ5oB,EAAE,KAAK4oB,GAAG,YAAY,GAAK,KAAK,KAAOA,GAAE,WAAY,CAC9E,IAAIrpB,GAAIqpB,GACR,KACH,CACJ,CACDrpB,KAAkBe,KAAZ,SAAgCA,KAAf,aAAqBf,GAAE,QAAUC,GAAKA,GAAKD,GAAE,aAAeA,GAAI,MACvF,IAAI+9B,GAAI/9B,GAAIA,GAAE,WAAa,GAC3B,OAAO+9B,GAAE,KAAOh9B,GAAGg9B,GAAE,IAAM99B,EAAGD,IAAK,KAAK,OAAS,OAAQ,KAAK,KAAOA,GAAE,WACvEM,IAAK,KAAK,SAASy9B,EAAC,CACvB,EACD,SAAU,SAASh9B,GAAGd,EAAG,CACrB,GAAgBc,GAAE,OAAd,QAAoB,MAAMA,GAAE,IAChC,OAAmBA,GAAE,OAAd,SAAqCA,GAAE,OAAjB,WAAwB,KAAK,KAAOA,GAAE,IAAmBA,GAAE,OAAf,UAAuB,KAAK,KAAO,KAAK,IAAMA,GAAE,IACzH,KAAK,OAAS,SAAU,KAAK,KAAO,OAAsBA,GAAE,OAAf,UAAuBd,IAAM,KAAK,KAAOA,GACtFK,EACH,EACD,OAAQ,SAASS,GAAG,CAChB,QAASd,EAAI,KAAK,WAAW,OAAS,EAAGA,GAAK,EAAG,EAAEA,EAAG,CAClD,IAAIJ,GAAI,KAAK,WAAWI,CAAC,EACzB,GAAIJ,GAAE,aAAekB,GAAG,OAAO,KAAK,SAASlB,GAAE,WAAYA,GAAE,QAAQ,EAAGW,GAAEX,EAAC,EAAGS,EACjF,CACJ,EACD,MAAO,SAASS,GAAG,CACf,QAASd,EAAI,KAAK,WAAW,OAAS,EAAGA,GAAK,EAAG,EAAEA,EAAG,CAClD,IAAIJ,GAAI,KAAK,WAAWI,CAAC,EACzB,GAAIJ,GAAE,SAAWkB,GAAG,CAChB,IAAIsoB,GAAIxpB,GAAE,WACV,GAAgBwpB,GAAE,OAAd,QAAoB,CACpB,IAAI5oB,GAAI4oB,GAAE,IACV7oB,GAAEX,EAAC,CACN,CACD,OAAOY,EACV,CACJ,CACD,MAAM,IAAI,MAAM,uBAAuB,CAC1C,EACD,cAAe,SAASR,GAAGJ,EAAGwpB,GAAG,CAC7B,OAAO,KAAK,SAAW,CACnB,SAAU/nB,GAAErB,EAAC,EACb,WAAYJ,EACZ,QAASwpB,EAC3C,EAA4C,KAAK,SAAhB,SAA2B,KAAK,IAAMtoB,GAAIT,EAChD,CACJ,EAAEL,CACN,CACD,SAASuB,EAAET,EAAGd,EAAG,CACb,IAAIJ,EAAmB,OAAO,OAAtB,KAAgCkB,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC5E,GAAI,CAAClB,EAAG,CACJ,GAAI,MAAM,QAAQkB,CAAC,IAAMlB,EAAI,SAASkB,EAAGd,EAAG,CACxC,GAAKc,EACL,IAAgB,OAAOA,GAAnB,SAAsB,OAAOY,EAAEZ,EAAGd,CAAC,EACvC,IAAIJ,EAAI,OAAO,UAAU,SAAS,KAAKkB,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADalB,IAAb,UAAkBkB,EAAE,cAAgBlB,EAAIkB,EAAE,YAAY,MACxClB,IAAV,OAAyBA,IAAV,MAAa,OAAO,MAAM,KAAKkB,CAAC,EACnD,GAAoBlB,IAAhB,aAAqB,2CAA2C,KAAKA,CAAC,EAAG,OAAO8B,EAAEZ,EAAGd,CAAC,EACxH,EAA4Bc,CAAC,IAAMd,EAAG,CACRJ,IAAMkB,EAAIlB,GACV,IAAIwpB,EAAI,EAAG5oB,EAAI,UAAW,GAC1B,MAAO,CACH,EAAGA,EACH,EAAG,UAAW,CACV,OAAO4oB,GAAKtoB,EAAE,OAAS,CACnB,KAAM,EAChD,EAA0C,CACA,KAAM,GACN,MAAOA,EAAEsoB,GAAG,CACtD,CACmC,EACD,EAAG,SAAStoB,EAAG,CACX,MAAMA,CACT,EACD,EAAGN,CACrC,CAC2B,CACD,MAAM,IAAI,UAAU;AAAA,mFAAuI,CAC9J,CACD,IAAIT,EAAG+9B,EAAI,GAAIn+B,EAAI,GACnB,MAAO,CACH,EAAG,UAAW,CACVC,EAAIA,EAAE,KAAKkB,CAAC,CACf,EACD,EAAG,UAAW,CACV,IAAIA,EAAIlB,EAAE,OACV,OAAOk+B,EAAIh9B,EAAE,KAAMA,CACtB,EACD,EAAG,SAASA,EAAG,CACXnB,EAAI,GAAII,EAAIe,CACf,EACD,EAAG,UAAW,CACV,GAAI,CACAg9B,GAAal+B,EAAE,QAAV,MAAoBA,EAAE,OAAM,CACnE,QAAwC,CACN,GAAID,EAAG,MAAMI,CAChB,CACJ,CAC3B,CACmB,CACD,SAAS2B,EAAEZ,EAAGd,EAAG,EACJA,GAAR,MAAaA,EAAIc,EAAE,UAAYd,EAAIc,EAAE,QACtC,QAASlB,EAAI,EAAGwpB,EAAI,IAAI,MAAMppB,CAAC,EAAGJ,EAAII,EAAGJ,IAAKwpB,EAAExpB,CAAC,EAAIkB,EAAElB,CAAC,EACxD,OAAOwpB,CACV,CACD,SAASlpB,EAAEY,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAGT,EAAG+9B,EAAG,CAC5B,GAAI,CACA,IAAIn+B,EAAImB,EAAEf,CAAC,EAAE+9B,CAAC,EAAG3U,EAAIxpB,EAAE,KAC1B,OAAQmB,EAAG,CACR,OAAO,KAAKlB,EAAEkB,CAAC,CAClB,CACDnB,EAAE,KAAOK,EAAEmpB,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAKC,EAAG5oB,CAAC,CAC/C,CACD,IAAIqB,EAAGF,EAAGtB,EAAIL,EAAE,cAAgB,CAC5B,SAAU,SAASc,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAG,CAC9B,IAAIs9B,EAAI,KAAK,UAAWj+B,EAAIi+B,EAAE,KAAMv8B,EAAIu8B,EAAE,cAAep8B,EAAIo8B,EAAE,QAAS59B,EAAI,KAAM2B,EAAIN,EAAErB,CAAC,EAAGyB,EAAIb,EAAE,IAAKW,EAAID,EAAE,MAAM,KAAKs8B,EAAG59B,CAAC,EAAGW,EAAIhB,EAAE,UAAU,KAAK,KAAMiB,EAAGU,EAAE,UAAU,KAAKs8B,CAAC,EAAGr8B,EAAG5B,CAAC,EACtL,GAAegB,IAAX,OAAc,OAAOA,EACzB,GAAIc,IAAMwnB,EAAE,KAAK,WAAaxnB,IAAMwnB,EAAE,KAAK,QAAUppB,EAAE,QAAU4B,IAAMwnB,EAAE,KAAK,kBAAoBroB,EAAE,SAAWa,IAAMwnB,EAAE,KAAK,GAAK,EAAE,UAAWjpB,GAAIY,EAAE,eAAgB,EACpKb,EAAE,aAAa,KAAK69B,EAAG59B,EAAGyB,EAAGF,CAAC,KAAO9B,EAAE,aAAaO,EAAGsB,EAAE,UAAU,KAAKs8B,EAAG,EAAE,EAAGp8B,EAAE,EAAGZ,EAAGZ,EAAE,UAAU,UAAS,IAAOsB,EAAE,UAAU,KAAKs8B,CAAC,EAAE,KAAK,EAAE,CAAC,UAAYn8B,IAAMwnB,EAAE,KAAK,KAAOxnB,IAAMwnB,EAAE,KAAK,SAAU,CACnMroB,EAAE,eAAc,EAChB,IAAIV,EAAIoB,EAAE,SAAS,KAAKs8B,EAAGt8B,EAAE,qBAAqB,KAAKs8B,CAAC,CAAC,EACzDt8B,EAAE,MAAM,KAAKs8B,EAAG59B,EAAGY,EAAE,SAAWW,EAAE,MAAQrB,EAAGA,EAAG,EAAE,CACrD,MAAMuB,IAAMwnB,EAAE,KAAK,MAAQ,CAACroB,EAAE,UAAYa,IAAMwnB,EAAE,KAAK,QAAUroB,EAAE,eAAgB,EACpFU,EAAE,MAAM,KAAKs8B,EAAG59B,EAAG,EAAGY,EAAE,SAAWW,EAAE,MAAQ,EAAG,EAAE,GAAK5B,EAAE,cAAgB8B,IAAMwnB,EAAE,KAAK,QAAiBroB,EAAE,SAAT,OAAuBnB,EAAE,UAAUO,EAAG,GAAI,GAAI49B,EAAE,UAAU,MAAM,EAAE,CAAC,EAAGj8B,EAAE,QAAQ,OAAO,GAAKF,IAAMwnB,EAAE,KAAK,QAAUroB,EAAE,UAAYA,EAAE,SAAsBg9B,EAAE,YAAY,aAAzB,OAA6Cj+B,EAAE,aAAT,IAAuB8B,IAAMwnB,EAAE,KAAK,IAAaroB,EAAE,WAAT,IAAqBW,EAAE,IAAMD,EAAE,aAAa,KAAKs8B,EAAGr8B,EAAE,IAAK,EAAE,EACpXG,EAAE,QAAQ,KAAKk8B,EAAGr8B,EAAE,IAAM,CAAC,EAAE,MAAM,SAA1C,IAAoDA,EAAE,MAAOA,EAAE,MAAQD,EAAE,aAAa,KAAKs8B,EAAGr8B,EAAE,IAAK,EAAE,EACvGA,EAAE,OAAS,GAAKA,EAAE,IAAM,IAAMX,EAAE,eAAgB,EAAEU,EAAE,MAAM,KAAKs8B,EAAG59B,EAAGuB,EAAE,MAAOA,EAAE,GAAG,KAAOA,EAAE,MAAQD,EAAE,SAAS,KAAKs8B,EAAGr8B,EAAE,MAAO,EAAE,EAClIA,EAAE,IAAMD,EAAE,SAAS,KAAKs8B,EAAGr8B,EAAE,MAAO,EAAE,EAAGA,EAAE,IAAMC,EAAE,YAAcD,EAAE,MAAOA,EAAE,OAASC,EAAE,aAAeZ,EAAE,eAAgB,EACxHU,EAAE,MAAM,KAAKs8B,EAAG59B,EAAGuB,EAAE,MAAOA,EAAE,GAAG,IAAMX,EAAE,WAAajB,EAAE,kBAA2BA,EAAE,aAAT,GAAsB8B,IAAMwnB,EAAE,KAAK,WAAa,WAAY,UAAW,CAC/I,IAAIroB,GAAIU,EAAE,MAAM,KAAKs8B,EAAG59B,CAAC,EACzBsB,EAAE,MAAM,KAAKs8B,EAAG59B,EAAGY,GAAE,KAAK,CACxD,EAA8B,CAAC,EAAIa,IAAMwnB,EAAE,KAAK,WAAa,WAAY,UAAW,CACtD,IAAIroB,GAAIU,EAAE,kBAAkB,KAAKs8B,EAAG59B,EAAE,UAAU,SAAS,KAAK,EAC9DsB,EAAE,kBAAkB,KAAKs8B,EAAG59B,EAAE,UAAU,SAAS,GAAG,EACpD49B,EAAE,MAAQt8B,EAAE,MAAM,KAAKs8B,EAAG59B,EAAGY,IAAKA,KAAMY,EAAE,WAAa,EAAI,EAAE,EAAIF,EAAE,MAAM,KAAKs8B,EAAG59B,EAAGY,IAAWA,KAAN,EAAU,EAAI,EAAE,CAC5G,EAAG,CAAC,EAAeg9B,EAAE,eAAb,QAA6BA,EAAE,aAAah9B,CAAC,GAAKb,EAAE,YAAY,KAAK69B,EAAGr8B,CAAC,EAAI5B,EAAE,WAAa,CAACA,EAAE,YAAcA,EAAE,WAAa,CAACA,EAAE,WACxI2B,EAAE,MAAM,KAAKs8B,EAAG59B,EAAGuB,EAAE,MAAOA,EAAE,KAAK,GACnC,OAAOq8B,EAAE,YAAcn8B,GAAKwnB,EAAE,KAAK,SAAWxnB,GAAKwnB,EAAE,KAAK,aAAc2U,EAAE,UAAuBn8B,IAAX,QAAgBA,EAAE,OAAS,GAAK,EAAiBzB,EAAE,QAAQ,YAAW,IAApC,YAA0CyB,GAAKwnB,EAAE,KAAK,OAC9K9oB,EAAE,cAAc,KAAK,KAAMS,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,CAAC,CAC3C,EACD,cAAe,SAASM,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAG,CACnC,IAAIT,EAAI,KAAK,WAAa,KAAM+9B,EAAI/9B,EAAE,KAAM6B,EAAI7B,EAAE,cAAeF,EAAIE,EAAE,QAASwB,EAAIxB,EAAE,GAAI2B,EAAIE,EAAEL,CAAC,EAAGrB,EAAIY,EAAE,IAC1G,GAAWd,IAAP,IAAYc,EAAE,SAAWA,EAAE,QAAU,CAACf,EAAE,WAAa,EAAEe,EAAE,SAAWA,EAAE,SAAWf,EAAE,YACnF,GAAIG,EAAG,CACH,IAAI2B,EAAGF,EAAI3B,EAAI,CACX,MAAOQ,EACP,IAAKA,CACR,EAAGgB,EAAE,MAAM,KAAKzB,EAAGwB,CAAC,EACrBvB,IAAME,EAAI49B,EAAE,YAAY59B,CAAC,GAAKA,GAAIL,EAAE,eAAiB,GACrD,IAAIQ,EAAIJ,EAAE,QAAQ,KAAKF,EAAG4B,EAAGzB,EAAGkpB,EAAG,OAAQ,OAAQ,OAAQppB,CAAC,EAC5D,GAAWK,IAAP,KAAamB,EAAE,aAAa,KAAKzB,EAAG,EAAE,EAAG8B,EAAexB,EAAE,QAAb,OAAqBA,EAAE,MAAQmB,EAAE,SAAS,KAAKzB,EAAGM,EAAE,IAAI,MAAQA,EAAE,IAAI,MAAQA,EAAE,GAAG,EACpIR,EAAE,EAAIgC,GAAIA,EAAIi8B,EAAE,cAA2Bz9B,EAAE,QAAb,OAAqBmB,EAAE,aAAa,KAAKzB,EAAG8B,CAAC,EAAIA,EAC1EjC,IAAP,KAAa,WAAY,UAAW,CAChCk+B,EAAE,gBAAgB,KAAKv8B,EAAGrB,EAAGG,CAAC,CACpE,EAAsC,CAAC,EAAGR,EAAE,gBAAyBQ,IAAP,IAAW,CACnC,IAAIoB,GAAID,EAAE,UAAU,KAAKzB,CAAC,KACtBJ,EAAE,aAAa4B,EAAGE,GAAGI,EAAGf,EAAUd,IAAP,EAAQ,CAC1C,CACD,GAAIc,EAAE,iBAAkBd,EAAG,OAAcK,IAAP,KAAaA,EAAE,gBAAkBwB,GAAIxB,CAC1E,OACEH,IAAMipB,EAAE,KAAK,OAASppB,EAAE,YAAcA,EAAE,UAAU,EAAE,IAAMA,EAAE,UAAYA,EAAE,UAAU,EAAE,EAC7F,WAAY,UAAW,CACnB2B,EAAE,QAAQ,QAAQ,CAChD,EAA8B,CAAC,EACR,EACD,YAAaG,EAAIhC,EAAC,EAAG,KAAM,SAASiB,EAAEd,EAAG,CACrC,IAAIJ,EAAGwpB,EAAG5oB,EAAGT,EAAGopB,EAAGlpB,EACnB,OAAOJ,EAAG,EAAC,KAAM,SAASiB,EAAG,CACzB,OAAS,OAAQA,EAAE,KAAOA,EAAE,KAAI,CAC9B,IAAK,GACHlB,EAAI,SAASkB,EAAGlB,EAAGwpB,EAAG5oB,EAAGs9B,EAAG,CACxB,IAAI3U,EAAI3nB,EAAE,MAAM,KAAKV,EAAGlB,EAAG,OAAQ,OAAQ,EAAE,EAAGK,GAAImpB,EAAE,OAAO,EAAGD,EAAE,KAAK,EAAGvnB,GAAIwnB,EAAE,OAAOD,EAAE,IAAKC,EAAE,MAAM,EACtG,GAAInpB,KAAMa,EAAE,MAAQU,EAAE,kBAAkB,KAAKV,CAAC,EAAE,MAAO,EAAC,QAAO,EAAKU,EAAE,kBAAkB,KAAKV,CAAC,GAAG,MAAM,EAAGqoB,EAAE,KAAK,EAAE,KAAK,EAAE,IAAMlpB,GAAI,IACpI2B,KAAMd,EAAE,MAAQU,EAAE,kBAAkB,KAAKV,CAAC,EAAE,MAAO,EAAC,QAAO,EAAKU,EAAE,kBAAkB,KAAKV,CAAC,GAAG,MAAMqoB,EAAE,GAAG,EAAE,KAAK,EAAE,IAAMvnB,GAAI,IAC3HpB,EAAIP,GAAIO,EAAIoB,GAAGd,EAAE,OAAgBf,EAAE,eAAT,GAAuB,CAC7CS,EAAIA,EAAE,MAAM,EAAE,EACd,IAAIX,GAAG6B,GAAIH,EAAEC,EAAE,kBAAkB,KAAKV,CAAC,CAAC,EACxC,GAAI,CACA,IAAKY,GAAE,EAAC,EAAI,EAAE7B,GAAI6B,GAAE,EAAG,GAAE,MAAQ,CAC7B,IAAIxB,GAAIL,GAAE,MACVW,EAAE,CAAC,IAAMN,IAAKM,EAAE,MAAK,CACxB,CACJ,OAAQM,GAAG,CACRY,GAAE,EAAEZ,EAAC,CACnD,QAAoD,CACNY,GAAE,EAAC,CACN,CACDlB,EAAIA,EAAE,QAAS,EAAC,KAAK,EAAE,CAC1B,CACD,IAAIqB,GAAIrB,EACR,GAAkB,OAAOs9B,GAArB,WAAwB,CACxB,IAAYj8B,GAAIi8B,EAAE,KAAKh9B,EAAGe,GAAG9B,CAAC,KAA1B,GAA8B,MAAO,GACzC8B,KAAMA,GAAIunB,EACb,IACGzpB,EAAE,UAAUC,EAAG,GAAI,GAAIiC,GAAE,SAAQ,EAAG,MAAM,EAAE,EAAG7B,CAAC,CAC1F,EAAqCopB,EAAI,KAAM5oB,EAAI,KAAK,UAAWT,EAAIS,EAAE,KAAM2oB,EAAI3oB,EAAE,UAAU,EAAE,EAAGA,EAAE,eAAiB,GACrFR,EAAE,eAAiBA,EAAE,cAAc,QAAUC,EAAID,EAAE,cAAc,QAAQ,YAAY,EAAI89B,EAAE,QAAQ,eAAiBA,EAAE,QAAQ,cAAc,UAAY79B,EAAI69B,EAAE,QAAQ,cAAc,QAAQ,MAAM,GAClMl+B,EAAEY,EAAG4oB,EAAGD,EAAGlpB,EAAGF,EAAE,aAAa,EAAGC,EAAE,iBAEpC,IAAK,GACL,IAAK,MACH,OAAOc,EAAE,MACZ,CAC/B,EAA8BA,EAAG,IAAI,CACrC,CAAyB,EAAEa,EAAI,UAAW,CAChB,IAAIb,EAAI,KAAMd,EAAI,UAClB,OAAO,IAAI,QAAS,SAASJ,EAAGwpB,EAAG,CAC/B,IAAI5oB,EAAIqB,EAAE,MAAMf,EAAGd,CAAC,EACpB,SAASD,EAAEe,EAAG,CACVZ,EAAEM,EAAGZ,EAAGwpB,EAAGrpB,EAAG+9B,EAAG,OAAQh9B,CAAC,CAC7B,CACD,SAASg9B,EAAEh9B,EAAG,CACVZ,EAAEM,EAAGZ,EAAGwpB,EAAGrpB,EAAG+9B,EAAG,QAASh9B,CAAC,CAC9B,CACDf,EAAE,MAAM,CACtC,EACuB,EAAE,SAASe,EAAG,CACX,OAAOa,EAAE,MAAM,KAAM,SAAS,CACxD,GACsB,mBAAoB,SAASb,EAAG,CAC5B,IAAId,EAAI,KAAK,UAAWJ,EAAII,EAAE,KAAMopB,EAAIppB,EAAE,cACtCQ,EAAGs9B,EAAI,KAAM79B,EAAI69B,EAAE,UAAU,UAAU,EAAE,EAAGj+B,GAAKG,EAAE,MAAQwB,EAAE,UAAU,KAAKxB,CAAC,EAAE,MAAO,EAAC,QAAO,EAAKwB,EAAE,UAAU,KAAKxB,CAAC,GAAG,KAAK,EAAE,EAAGuB,EAAIC,EAAE,MAAM,KAAKxB,EAAG89B,EAAG,OAAQ,OAAQ,EAAE,EAC/K,GAAIj+B,IAAMI,EAAG,CACT,GAAIO,EAAI,SAASM,EAAGsoB,EAAG5oB,EAAG,CACtB,QAAST,EAAG+9B,EAAGn+B,GAAGwpB,GAAIroB,EAAE,OAAO,EAAGN,EAAE,KAAK,EAAE,MAAM,EAAE,EAAGP,GAAIa,EAAE,OAAON,EAAE,KAAK,EAAE,MAAM,EAAE,EAAGX,GAAIupB,EAAE,OAAO,EAAG5oB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAGe,GAAI6nB,EAAE,OAAO5oB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAGkB,GAAIynB,GAAE,QAAUtpB,GAAE,OAASspB,GAAE,OAAStpB,GAAE,OAAQK,GAAID,GAAE,QAAUsB,GAAE,OAAStB,GAAE,OAASsB,GAAE,OAAQM,GAAI,GAAIF,GAAI,CAAE,EAAEtB,GAAI,IAAK8oB,GAAE,OAASznB,IAAKynB,GAAE,KAAK9oB,EAAC,EAC7S,KAAMR,GAAE,OAAS6B,IAAK7B,GAAE,KAAKQ,EAAC,EAC9B,KAAMJ,GAAE,OAASC,IAAKD,GAAE,QAAQI,EAAC,EACjC,KAAMkB,GAAE,OAASrB,IAAKqB,GAAE,QAAQlB,EAAC,EACjC,IAAIoB,GAAI0nB,GAAE,OAAOlpB,EAAC,EAAGY,GAAIhB,GAAE,OAAO0B,EAAC,EACnC,IAAKu8B,EAAI,EAAG/9B,EAAI0B,GAAE,OAAQq8B,EAAI/9B,EAAG+9B,IAAK,OAAQn+B,GAAIiC,EAAE,eAAe,KAAK5B,EAAGwB,EAAE,kBAAkB,KAAKxB,EAAG89B,CAAC,CAAC,EACzGj8B,GAAC,CACC,IAAK,aACHhB,GAAEi9B,EAAI,CAAC,IAAMr8B,GAAEq8B,CAAC,GAAKt9B,EAAE,OAASiB,GAAE,OAAS,GAAKE,GAAE,KAAKF,GAAEq8B,CAAC,CAAC,EAAGA,EAAI/9B,EAClE,MAEF,IAAK,wBACL,IAAK,wBACH0B,GAAEq8B,CAAC,IAAMz9B,GAAIG,EAAE,MAAQs9B,EAAI/9B,EAC3B,MAEF,QACE0B,GAAEq8B,CAAC,IAAMj9B,GAAEi9B,CAAC,IAAMr8B,GAAEq8B,EAAI,CAAC,IAAMz9B,IAAKoB,GAAEq8B,EAAI,CAAC,IAAMn+B,IAAgB8B,GAAEq8B,EAAI,CAAC,IAAlB,SAAwBj9B,GAAEi9B,CAAC,IAAMn+B,IAAKkB,GAAEi9B,EAAI,CAAC,IAAMz9B,KAAMQ,GAAEi9B,CAAC,IAAMz9B,GAAIQ,GAAEi9B,EAAI,CAAC,IAAMz9B,IAAKQ,GAAEi9B,CAAC,IAAMr8B,GAAEq8B,EAAI,CAAC,GAAKj8B,GAAI,aACvKF,GAAE,KAAKF,GAAEq8B,CAAC,CAAC,EAAGt9B,EAAE,QAASA,EAAE,OAASiB,GAAEq8B,CAAC,IAAMn+B,IAAK8B,GAAEq8B,CAAC,IAAMz9B,KAAMoB,GAAEq8B,EAAI,CAAC,IAAMz9B,IAAKQ,GAAEi9B,CAAC,IAAMr8B,GAAEq8B,CAAC,GAAKj9B,GAAEi9B,EAAI,CAAC,IAAMr8B,GAAEq8B,EAAI,CAAC,IAAMj8B,GAAI,wBAClIF,GAAE,KAAKF,GAAEq8B,CAAC,CAAC,EAAGt9B,EAAE,SAAWiB,GAAEq8B,CAAC,IAAMz9B,IAAKwB,GAAI,yBAA0BL,EAAE,OAAO,KAAKxB,EAAGwB,EAAE,kBAAkB,KAAKxB,EAAG89B,CAAC,EAAG,EAAE,GAAKj9B,GAAEi9B,CAAC,IAAMl+B,EAAE,aAAeY,EAAE,OAASs9B,EAAI/9B,GAAK8B,GAAI,aACjLF,GAAE,KAAKF,GAAEq8B,CAAC,CAAC,EAAGt9B,EAAE,QAASA,EAAE,OAC9B,CACD,MAAO,CACH,OAAQqB,GACR,KAAMF,GACN,MAAOnB,CAC7C,CAC+B,EAACP,EAAGJ,EAAG0B,CAAC,GAAIu8B,EAAE,UAAU,YAAcA,EAAE,eAAe,gBAAkBA,GAAKA,EAAE,MAAO,KACpFn+B,EAAE,aAAam+B,EAAGt8B,EAAE,UAAU,KAAKxB,CAAC,CAAC,EAAGwB,EAAE,MAAM,KAAKxB,EAAG89B,EAAGv8B,EAAE,MAAOA,EAAE,IAAK,EAAE,EACjF,CAACxB,EAAE,QAAUC,EAAE,gBAAmCc,EAAE,YAAnB,cAAiDN,EAAE,SAAnB,cAA6BR,EAAE,YAAa,MAAO,GACpH,OAAoCc,EAAE,YAA9B,yBAA4DN,EAAE,SAAnB,cAA6BR,EAAE,YAAcA,EAAE,eAAiB,GAAKA,EAAE,eAAiB,GAC3IQ,EAAE,OAAM,CACN,IAAK,aACL,IAAK,wBACHA,EAAE,KAAK,QAAS,SAASM,EAAGlB,EAAG,CAC3B,IAAIY,EAAI,IAAI4oB,EAAE,MAAM,UAAU,EAC9B5oB,EAAE,IAAMM,EAAGd,EAAE,UAAY,GAAIK,EAAE,cAAc,KAAKy9B,EAAGt9B,CAAC,CAC5F,CAAqC,EAAE,WAAY,UAAW,CACxBR,EAAE,IAAI,QAAQ,OAAO,CACxB,EAAG,CAAC,EACL,MAEF,IAAK,wBACH,IAAI0B,EAAI,IAAI0nB,EAAE,MAAM,SAAS,EAC7B1nB,EAAE,IAAMynB,EAAE,KAAK,UAAW9oB,EAAE,SAAS,KAAKy9B,EAAGp8B,CAAC,EAC9C,MAEF,WACM/B,EAAE,iBAAiBm+B,EAAG79B,CAAC,EAAGuB,EAAE,MAAM,KAAKxB,EAAG89B,EAAGv8B,EAAE,MAAOA,EAAE,IAAK,EAAE,CACtE,CACDT,EAAE,eAAc,CACnB,CACJ,EACD,cAAe,SAASA,EAAG,CACvB,IAAId,EAAI,KAAK,UAAWJ,EAAII,EAAE,cAAeopB,EAAI,KAAM5oB,EAAIM,GAAKA,EAAE,OAASA,EAAE,OAAO,CAAC,EAAI,UAAU,CAAC,EACzFN,IAAX,SAAiBA,EAAI4oB,EAAE,UAAU,UAAU,EAAE,MAAQzpB,EAAE,iBAAiBypB,EAAG5oB,EAAG,IAAIZ,EAAE,MAAM,OAAO,GAAekB,GAAKA,EAAE,OAASA,EAAE,OAAO,CAAC,EAAI,UAAU,CAAC,KAArD,MAAuD,GAC1JA,EAAE,QAAqBA,EAAE,OAAO,CAAC,IAArB,QAAqC,UAAU,CAAC,IAAtB,SAA4BU,EAAE,MAAM,KAAKxB,EAAGopB,EAAGtoB,EAAE,OAASA,EAAE,OAAO,CAAC,EAAI,UAAU,CAAC,CAAC,CAC9H,EACD,WAAY,SAASA,EAAG,CACpB,IAAId,EAAI,KAAK,UAAWJ,EAAII,EAAE,KAAMopB,EAAIppB,GAAKA,EAAE,UAAS,EACxDJ,EAAE,iBAAmBwpB,IAAM5nB,EAAE,UAAU,KAAKxB,CAAC,EAAE,KAAK,EAAE,MAASL,EAAE,aAAa,KAAM6B,EAAE,UAAU,KAAKxB,CAAC,EAAGwB,EAAE,SAAS,KAAKxB,EAAGwB,EAAE,qBAAqB,KAAKxB,CAAC,CAAC,CAAC,EACpJJ,EAAE,qBAAT,IAAsCI,EAAE,aAAT,IAAuBC,EAAE,WAAW,KAAKD,EAAGwB,EAAE,UAAU,KAAKxB,CAAC,CAAC,GAAYwB,EAAE,qBAAqB,KAAKxB,CAAC,IAApC,IAAyCK,EAAE,WAAW,MAAM,KAAM,CAAES,EAAG,EAAE,CAAE,EAC9Kd,EAAE,UAAYA,GAAKA,EAAE,UAAU,EAAE,CACpC,EACD,aAAc,SAASc,EAAG,CACtB,KAAK,UAAU,gBAAkB,EACpC,EACD,gBAAiB,UAAW,CACxB,IAAIA,EAAI,KAAK,UAAWd,EAAIc,EAAE,KAAMlB,EAAI,KACxCkB,EAAE,WAAa,GAAId,EAAE,uBAAyBJ,EAAE,UAAU,YAAcA,EAAE,eAAe,gBAAkBA,MAASD,EAAE,yBAAyBC,EAAGkB,EAAE,mBAAmB,CAC1K,EACD,WAAY,SAASA,EAAGd,EAAG,CACvB,IAAIJ,EAAI,KAAK,UACbA,EAAE,UACF,IAAIwpB,EAAI,KACR,IAAKA,EAAE,UAAU,YAAcA,EAAE,eAAe,gBAAkBA,EAAG,CACjE,IAAI5oB,EAAIgB,EAAE,0BAA0B,KAAK5B,EAAG4B,EAAE,MAAM,KAAK5B,EAAGwpB,CAAC,EAAGppB,CAAC,EACtDQ,IAAX,QAAgBgB,EAAE,MAAM,KAAK5B,EAAGwpB,EAAG5oB,CAAC,CACvC,CACJ,EACD,SAAU,SAASM,EAAG,CAClB,IAAId,EAAI,KAAK,UAAWJ,EAAII,EAAE,QAASopB,EAAI,KAAM5oB,EAAIgB,EAAE,MAAM,KAAKxB,EAAGopB,CAAC,EAAGrpB,EAAIC,EAAE,MAAQwB,EAAE,UAAU,KAAKxB,CAAC,EAAE,MAAMQ,EAAE,IAAKA,EAAE,KAAK,EAAIgB,EAAE,UAAU,KAAKxB,CAAC,EAAE,MAAMQ,EAAE,MAAOA,EAAE,GAAG,EAAGoB,EAAI5B,EAAE,MAAQD,EAAE,QAAS,EAAC,KAAK,EAAE,EAAIA,EAAE,KAAK,EAAE,EAC5N+9B,EAAE,QAAQ,WAAaA,EAAE,QAAQ,UAAU,UAAYA,EAAE,QAAQ,UAAU,UAAU,UAAUl8B,CAAC,EAAIk8B,EAAE,QAAQ,eAAiBA,EAAE,QAAQ,cAAc,SAAWA,EAAE,QAAQ,cAAc,QAAQ,OAAQl8B,CAAC,EAC3M3B,EAAE,aAAa,KAAKD,EAAGopB,EAAGD,EAAE,KAAK,OAAQ3oB,CAAC,KAAOb,EAAE,aAAaypB,EAAG5nB,EAAE,UAAU,KAAKxB,CAAC,EAAGJ,EAAE,EAAGkB,EAAGd,EAAE,YAAcA,EAAE,UAAU,EAAE,CAAC,CAClI,EACD,UAAW,SAASc,EAAG,CACnB,IAAId,EAAI,KAAK,UAAWJ,EAAII,EAAE,KAAMopB,EAAIppB,EAAE,cAC1CA,EAAE,QAAU,EACZ,IAAIQ,EAAI4oB,EAAE,IAAI,EAAGrpB,EAAI,KACrB,GAAIA,EAAE,UAAW,IACTJ,EAAE,yBAAyBI,EAAGC,EAAE,mBAAmB,EACvD,IAAI89B,EAAI/9B,EAAE,UAAU,UAAS,EAAIopB,EAAI3nB,EAAE,UAAU,KAAKxB,CAAC,EAAE,MAAK,EACvD89B,IAAP,KAAal+B,EAAE,uBAAgC4B,EAAE,qBAAqB,KAAKxB,CAAC,IAApC,IAAyC89B,IAAMt8B,EAAE,kBAAkB,KAAKxB,CAAC,EAAE,KAAK,EAAE,EAAImpB,EAAI,GAAKxpB,EAAE,kBAAkB,KAAKK,EAAGmpB,CAAC,GAC7JlpB,EAAE,WAAW,KAAKD,EAAGmpB,CAAC,IAA7B,KAAmC,WAAY,UAAW,CACtD3oB,EAAE,QAAQ,YAAY,CACxD,EAAkC,CAAC,EAAGZ,EAAE,kBAAoB4B,EAAE,aAAa,KAAKxB,EAAG,EAAE,EAAGmpB,EAAIvpB,EAAE,qBAAuB,CAAE,EAAG4B,EAAE,kBAAkB,KAAKxB,CAAC,EAAE,MAAK,OACzHL,EAAE,aAAaI,EAAGopB,EAAG,OAAQroB,CAAC,GAAIg9B,EAAI99B,EAAE,UAAU,EAAE,EAAGA,EAAE,YAAc89B,IAAYA,GAAN,IAAW99B,EAAE,WAAawB,EAAE,kBAAkB,KAAKxB,CAAC,EAAE,KAAK,EAAE,GAAKA,EAAE,WAAawB,EAAE,kBAAkB,KAAKxB,CAAC,EAAE,KAAK,EAAE,GAAKA,EAAE,QAAQ,eAAe,OAAS,KAAOA,EAAE,UAAY89B,EACjQt9B,EAAE,QAAQ,QAAQ,EACrB,CACJ,EACD,gBAAiB,UAAW,CACxB,IAAIM,EAAI,KAAK,UAAWd,EAAIc,EAAE,KAAK,gBAAiBlB,EAAI,KACxD,GAAIkB,EAAE,WAAa,IAAKlB,EAAE,UAAU,YAAcA,EAAE,eAAe,gBAAkBA,EAAG,CACpF,IAAIwpB,GAAKtoB,EAAE,MAAQU,EAAE,kBAAkB,KAAKV,CAAC,EAAE,MAAO,EAAC,QAAS,EAAGU,EAAE,kBAAkB,KAAKV,CAAC,GAAG,KAAK,EAAE,EACvGd,MAASL,EAAE,yBAAyBC,EAAGwpB,CAAC,CAC3C,CACJ,EACD,YAAa,UAAW,CACpB,IAAItoB,EAAI,KAAK,UAAWd,EAAIc,EAAE,KAC9BA,EAAE,YAAcA,EAAE,UAAU,EAAE,GAAKA,EAAE,IAAI,QAAQ,QAAQ,EAAUU,EAAE,qBAAqB,KAAKV,CAAC,IAApC,IAAyCA,EAAE,WAAaA,EAAE,UAAW,IAAKU,EAAE,kBAAkB,KAAKV,CAAC,EAAE,KAAK,EAAE,GAAKA,EAAE,UAAU,EAAE,EAC5Ld,EAAE,iBAA0BC,EAAE,WAAW,KAAKa,EAAGU,EAAE,UAAU,KAAKV,CAAC,CAAC,IAA/C,IAAoDA,EAAE,UAAU,EAAE,EACvFd,EAAE,qBAAuBc,EAAE,UAAUA,EAAE,cAAa,EAAI,EAAE,EAAG,WAAY,UAAW,IAC5EnB,EAAE,aAAamB,EAAE,GAAIU,EAAE,UAAU,KAAKV,CAAC,CAAC,CAC1E,EAA8B,CAAC,EACR,EACD,WAAY,UAAW,CACnB,IAAIA,EAAI,KAAK,UACbA,EAAE,aAAe,GAAI,WAAY,UAAW,IACpCnB,EAAE,iBAAiBmB,EAAE,GAAIA,EAAE,UAAU,EAAE,CAAC,CAC/C,EAAG,CAAC,CACR,CACvB,CACe,EACD,KAAM,SAASA,EAAGd,EAAGJ,EAAG,CACpB,OAAO,eAAeI,EAAG,aAAc,CACnC,MAAO,EACV,GAAGA,EAAE,WAAa,OACnB,IAAIopB,EAAG5oB,EAAIZ,EAAE,IAAI,EAAGG,GAAKqpB,EAAIxpB,EAAE,IAAI,IAAMwpB,EAAE,WAAaA,EAAI,CACxD,QAASA,CAC/B,EAAqB0U,EAAIl+B,EAAE,IAAI,EAAGD,EAAIC,EAAE,IAAI,EAC1BI,EAAE,WAAa,CACX,GAAI,SAASc,EAAGd,EAAGJ,EAAG,CAClB,IAAIwpB,EAAItoB,EAAE,UAAU,cAAeqoB,EAAI,SAASnpB,EAAG,CAC/CA,EAAE,gBAAkBA,EAAIA,EAAE,eAAiBA,EAAG,UAAU,CAAC,EAAIA,GAC7D,IAAImpB,EAAG3nB,EAAI,KAAMvB,EAAIuB,EAAE,UAAWI,EAAI3B,EAAIA,EAAE,KAAO,OACnD,GAAeA,IAAX,QAA2B,KAAK,WAAhB,OAA0B,CAC1C,IAAIJ,EAAIupB,EAAE,KAAK5nB,EAAG,iBAAiB,EACnC4nB,EAAE5nB,CAAC,EAAE,IAAG,EAAI3B,GAAK,IAAIE,EAAE,QAAQF,CAAC,EAAE,KAAK2B,CAAC,CAC1E,KAAqC,CACH,GAAI,CAAE,SAAU,QAAS,UAAY,EAAC,SAASxB,EAAE,IAAI,GAAgB,KAAK,WAAhB,QAA4B,EAAEwB,EAAE,UAAYA,EAAE,UAAY,EAAgBxB,EAAE,OAAhB,WAAwBA,EAAE,SAAWA,EAAE,MAAQ89B,EAAE,KAAK,GAAYl8B,EAAE,aAAT,IAAuB5B,EAAE,MAAQ89B,EAAE,KAAK,MAAO,CAC5N,OAAQ99B,EAAE,KAAI,CACZ,IAAK,QACH,GAAWC,EAAE,iBAAT,GAAyB,OAAOA,EAAE,eAAiB,GAAID,EAAE,iBAC7D,MAEF,IAAK,QACL,IAAK,QACH,OAAOC,EAAE,iBAAmBA,EAAE,gBAAkB,GAAIa,EAAE,KAAI,KAAQN,EAAE,yBAAyBM,GAAIb,EAAE,MAAQN,EAAE,kBAAkB,KAAKM,CAAC,EAAE,MAAO,EAAC,QAAO,EAAKN,EAAE,kBAAkB,KAAKM,CAAC,GAAG,KAAK,EAAE,CAAC,EAChM,WAAY,UAAW,CACnBa,EAAE,MAAK,CACrD,EAA8Cc,EAAE,sBAAsB,EAAG,KAAOunB,EAAI,UAAW,KAAK,WAAY,UAAW,CAC7EroB,EAAE,WAAalB,EAAE,MAAM4B,EAAG2nB,CAAC,CACzE,EAA8C,CAAC,EACR,CACD,IAAI5nB,EAAI3B,EAAE,MAAM4B,EAAG,SAAS,EAC5B,OAAcD,IAAP,KAAavB,EAAE,eAAgB,EAAEA,EAAE,mBAAoBuB,CACjE,CACDvB,EAAE,eAAc,CACnB,CAC/B,EAC0B,CAAE,SAAU,SAAU,SAASA,CAAC,GAAKmpB,EAAIA,EAAE,KAAKroB,CAAC,EAAYA,EAAE,OAAX,MAAmBsoB,EAAEtoB,EAAE,IAAI,EAAE,GAAGd,EAAGmpB,CAAC,GAAKC,EAAEtoB,CAAC,EAAE,GAAGd,EAAGmpB,CAAC,EACzGroB,EAAE,UAAU,OAAOd,CAAC,EAAIc,EAAE,UAAU,OAAOd,CAAC,GAAK,CAAE,EAAEc,EAAE,UAAU,OAAOd,CAAC,EAAE,KAAKmpB,CAAC,CACpF,EACD,IAAK,SAASroB,EAAGd,EAAG,CAChB,GAAIc,EAAE,WAAaA,EAAE,UAAU,OAAQ,CACnC,IAAIlB,EAAIkB,EAAE,UAAU,cAAesoB,EAAItoB,EAAE,UAAU,OACnD,QAASN,KAAKR,KAAOopB,EAAI,IAAIppB,CAAC,EAAIc,EAAE,UAAU,OAAOd,CAAC,GAAIopB,EAAG,CACzD,QAASrpB,EAAIqpB,EAAE5oB,CAAC,EAAGT,EAAE,OAAS,GAAK,CAC/B,IAAI+9B,EAAI/9B,EAAE,MACV,CAAE,SAAU,OAAS,EAAC,SAASS,CAAC,EAAaM,EAAE,OAAX,MAAmBlB,EAAEkB,EAAE,IAAI,EAAE,IAAIN,EAAGs9B,CAAC,EAAIl+B,EAAEkB,CAAC,EAAE,IAAIN,EAAGs9B,CAAC,CAC7F,CACD,OAAOh9B,EAAE,UAAU,OAAON,CAAC,CAC9B,CACJ,CACJ,CACvB,CACe,EACD,IAAK,SAASM,EAAGd,EAAGJ,EAAG,CACnB,IAAIwpB,EAAG5oB,EAAIZ,EAAE,IAAI,EAAGG,GAAKqpB,EAAIxpB,EAAE,IAAI,IAAMwpB,EAAE,WAAaA,EAAI,CACxD,QAASA,CACZ,EAAE0U,EAAIl+B,EAAE,IAAI,EAAGD,EAAIC,EAAE,IAAI,EAAGupB,EAAIvpB,EAAE,IAAI,EACvC,SAAS4B,EAAEV,EAAGd,EAAG,CACb,OAAO,SAASc,EAAG,CACf,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAOA,CAChC,EAACA,CAAC,GAAK,SAASA,EAAGd,EAAG,CACnB,IAAIJ,GAAYkB,GAAR,KAAY,KAAsB,OAAO,OAAtB,KAAgCA,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC/F,GAAYlB,IAAR,KAAW,CACX,IAAIwpB,GAAG5oB,GAAGT,GAAG+9B,GAAGn+B,GAAI,GAAIwpB,GAAI,GAAI3nB,GAAI,GACpC,GAAI,CACA,GAAIzB,IAAKH,GAAIA,GAAE,KAAKkB,CAAC,GAAG,KAAYd,IAAN,EAAgB,KAAM,EAAEmpB,IAAKC,GAAIrpB,GAAE,KAAKH,EAAC,GAAG,QAAUD,GAAE,KAAKypB,GAAE,KAAK,EAAGzpB,GAAE,SAAWK,GAAImpB,GAAI,GAAI,CACjI,OAAQroB,GAAG,CACRU,GAAI,GAAIhB,GAAIM,EAC9C,QAAwC,CACN,GAAI,CACA,GAAI,CAACqoB,IAAavpB,GAAE,QAAV,OAAqBk+B,GAAIl+B,GAAE,OAAQ,EAAE,OAAOk+B,EAAC,IAAMA,IAAI,MACvG,QAA4C,CACN,GAAIt8B,GAAG,MAAMhB,EAChB,CACJ,CACD,OAAOb,EACV,CACJ,EAACmB,EAAGd,CAAC,GAAK,SAASc,EAAGd,EAAG,CACtB,GAAKc,EACL,IAAgB,OAAOA,GAAnB,SAAsB,OAAOb,EAAEa,EAAGd,CAAC,EACvC,IAAIJ,GAAI,OAAO,UAAU,SAAS,KAAKkB,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADalB,KAAb,UAAkBkB,EAAE,cAAgBlB,GAAIkB,EAAE,YAAY,MACxClB,KAAV,OAAyBA,KAAV,MAAa,OAAO,MAAM,KAAKkB,CAAC,EACnD,GAAoBlB,KAAhB,aAAqB,2CAA2C,KAAKA,EAAC,EAAG,OAAOK,EAAEa,EAAGd,CAAC,EACpH,EAAwBc,EAAGd,CAAC,GAAK,UAAW,CAClB,MAAM,IAAI,UAAU;AAAA,mFAA2I,CACzL,GACmB,CACD,SAASC,EAAEa,EAAGd,EAAG,EACJA,GAAR,MAAaA,EAAIc,EAAE,UAAYd,EAAIc,EAAE,QACtC,QAASlB,EAAI,EAAGwpB,EAAI,IAAI,MAAMppB,CAAC,EAAGJ,EAAII,EAAGJ,IAAKwpB,EAAExpB,CAAC,EAAIkB,EAAElB,CAAC,EACxD,OAAOwpB,CACV,CACD,SAASxnB,EAAEd,EAAG,CACV,OAAOc,EAAkB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAASd,EAAG,CACvF,OAAO,OAAOA,CACjB,EAAG,SAASA,EAAG,CACZ,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAC5I,EAAyBc,EAAEd,CAAC,CACT,CACD,SAASjB,EAAEiB,EAAGd,EAAG,CACb,QAASJ,EAAI,EAAGA,EAAII,EAAE,OAAQJ,IAAK,CAC/B,IAAIwpB,EAAIppB,EAAEJ,CAAC,EACXwpB,EAAE,WAAaA,EAAE,YAAc,GAAIA,EAAE,aAAe,GAAI,UAAWA,IAAMA,EAAE,SAAW,IACtF,OAAO,eAAetoB,GAAIN,GAAI4oB,EAAE,IAAKrpB,GAAI,OAAQA,GAAI,SAASe,GAAGd,GAAG,CAChE,GAAiB4B,EAAEd,EAAC,IAAhB,UAA8BA,KAAT,KAAY,OAAOA,GAC5C,IAAIlB,GAAIkB,GAAE,OAAO,WAAW,EAC5B,GAAelB,KAAX,OAAc,CACd,IAAIwpB,GAAIxpB,GAAE,KAAKkB,GAAGd,IAAK,SAAS,EAChC,GAAiB4B,EAAEwnB,EAAC,IAAhB,SAAmB,OAAOA,GAC9B,MAAM,IAAI,UAAU,8CAA8C,CACrE,CACD,OAAqBppB,KAAb,SAAiB,OAAS,QAAQc,EAAC,CAC9C,EAACN,GAAG,QAAQ,EAAgBoB,EAAE7B,EAAC,IAAhB,SAAoBA,GAAI,OAAOA,EAAC,GAAIqpB,CAAC,CACxD,CACD,IAAI5oB,GAAGT,EACV,CACDH,EAAE,IAAI,EACN,IAAI2B,EAAIxB,EAAE,QAAQ,cAAe2B,EAAI,UAAW,CAC5C,SAASZ,EAAEd,EAAGJ,GAAGwpB,GAAG5oB,GAAG,EAClB,SAASM,GAAGd,GAAG,CACZ,GAAI,EAAEc,cAAad,IAAI,MAAM,IAAI,UAAU,mCAAmC,CAC5G,GAA4B,KAAMc,CAAC,EAAG,KAAK,KAAOd,EAAG,KAAK,OAASJ,GAAG,KAAK,KAAOwpB,GAAG,KAAK,UAAY5oB,GAAG,KAAK,MAAQ,IAAI,KAAK,EAAG,EAAG,CAAC,EAC5G,KAAK,eAAeR,EAAG,KAAK,KAAM,KAAK,SAAS,CACnD,CACD,IAAIA,EAAGJ,EACP,OAAOI,EAAIc,GAAIlB,EAAI,CAAE,CACjB,IAAK,OACL,IAAK,UAAW,CACZ,OAAkB,KAAK,QAAhB,SAA0B,KAAK,MAAQ,IAAI,KAAK,EAAG,EAAG,CAAC,EAAG,KAAK,eAAe,OAAQ,KAAK,KAAM,KAAK,SAAS,GACtH,KAAK,KACR,CAC3B,EAAyB,CACC,IAAK,iBACL,MAAO,SAASkB,EAAGd,GAAGJ,GAAG,CACrB,IAAIwpB,GAAG5oB,GAAI,GACX,IAAKyB,EAAEjC,EAAC,EAAE,UAAY,EAAGopB,GAAInnB,EAAEjC,EAAC,EAAE,KAAK,KAAK,MAAM,GAAK,GAAIopB,GAAE,OAAS5oB,GAAG,CACrE,IAAIT,GAAI,OAAO,KAAKqpB,GAAE,CAAC,CAAC,EAAG0U,GAAI/9B,GAAIqpB,GAAE,CAAC,EAAE,CAAC,EAAI,IAAMA,GAAE,CAAC,EAAGzpB,GAAI,OAC7D,GAAemB,IAAX,OAAc,CACd,GAAIf,GAAG,CACH,IAAIyB,GAAIS,EAAEjC,EAAC,EAAE,UAAWC,GAAI,EAAE,KAAKL,GAAGwpB,GAAE,MAAOppB,GAAGJ,IAAKA,GAAE,OAAO,EAChEqC,EAAEjC,EAAC,EAAE,UAAYwB,GAAG7B,GAAImB,EAAE,MAAM,EAAGA,EAAE,QAAQb,GAAE,UAAU,CAAC,CAAC,CAAC,CACtG,KAA6C,CACH,QAAS2B,GAAIwnB,GAAE,CAAC,EAAE,CAAC,EAAGvpB,GAAIupB,GAAE,MAAOxpB,KAAMI,GAAE,YAAY,GAAG,OAAOopB,GAAE,MAAO,GAAG,EAAE,OAAOD,EAAE,QAAQ,KAAKvpB,GAAGC,EAAC,EAAE,MAAM,WAAW,CAAC,GAAKspB,EAAE,QAAQ,KAAKvpB,GAAGC,EAAC,EAAE,MAAM,eAAiB+B,IAAK/B,KACnLW,GAAIX,GACJ,IAAI0B,GAAI1B,GAAIupB,GAAE,MACdzpB,GAAImB,EAAE,MAAM,EAAGS,IAAKlB,EAAEy9B,EAAC,GAAKz9B,EAAEy9B,EAAC,EAAE,CAAC,GAAKA,GAAE,MAAM,CAClD,CACDh9B,EAAIA,EAAE,MAAMnB,GAAE,MAAM,CACvB,CACD,OAAO,UAAU,eAAe,KAAKU,EAAGy9B,EAAC,GAAK,KAAK,SAAS,KAAMn+B,GAAGm+B,GAAGz9B,EAAEy9B,EAAC,EAAE,CAAC,EAAGz9B,EAAEy9B,EAAC,EAAE,CAAC,CAAC,CAC3F,CACJ,CAC3B,EAAyB,CACC,IAAK,WACL,MAAO,SAASh9B,EAAGd,GAAGJ,GAAGwpB,GAAG5oB,GAAG,CAC3B,GAAeR,KAAX,OAAc,OAAQopB,GAAC,CACzB,IAAK,OACHtoB,EAAEsoB,EAAC,EAAIppB,GAAGc,EAAE,MAAQsoB,EAAC,EAAIppB,GAAE,QAAQ,MAAO,GAAG,EAC7C,MAEF,IAAK,QACH,GAAcJ,KAAV,OAA0BA,KAAX,OAAc,CAC7BkB,EAAEsoB,EAAC,EAAIilB,EAAYzuC,KAAV,MAAciC,EAAE,WAAW,MAAM,EAAG,EAAE,EAAE,UAAW,SAASf,GAAG,CACpE,OAAOd,GAAE,YAAW,IAAOc,GAAE,YAAW,CAClF,GAA4C,EAAIe,EAAE,WAAW,MAAM,GAAI,EAAE,EAAE,UAAW,SAASf,GAAG,CACxD,OAAOd,GAAE,YAAW,IAAOc,GAAE,YAAW,CAClF,GAA4C,EAAG,CAAC,EAAGA,EAAEsoB,EAAC,EAAatoB,EAAEsoB,EAAC,IAAZ,KAAgB,GAAKtoB,EAAEsoB,EAAC,EAAE,SAAQ,EAAItoB,EAAE,MAAQsoB,EAAC,EAAItoB,EAAEsoB,EAAC,EAC5E,KACH,CAEH,QACEtoB,EAAEsoB,EAAC,EAAIppB,GAAE,QAAQ,UAAW,GAAG,EAAGc,EAAE,MAAQsoB,EAAC,EAAIppB,GAAE,QAAQ,MAAO,GAAG,CACxE,CACD,GAAeQ,KAAX,OAAc,CACd,IAAIT,GAAIe,EAAEsoB,EAAC,GACAA,KAAV,OAAsB,SAASrpB,EAAC,IAAjB,IAAkCqpB,KAAZ,SAAuB,SAASrpB,EAAC,IAAhB,KAA8B,SAASe,EAAE,GAAG,IAArB,IAAgC,SAASA,EAAE,KAAK,IAAtB,GAAkCA,EAAE,OAAT,IAA4BA,EAAE,OAAb,QAAqBA,EAAE,MAAM,YAAY,KAAM,EAAG,EAAE,GAC9LsoB,KAAV,QAAgBznB,EAAI,GAAU,SAAS5B,EAAC,IAAhB,IAAsBA,GAAI,IAAiBqpB,KAAZ,UAAkBznB,EAAI,IAClEynB,KAAX,SAAiBznB,EAAI,GAAI5B,GAAE,OAASM,EAAET,EAAC,EAAE,CAAC,IAAMG,GAAIsuC,EAAEtuC,GAAGM,EAAET,EAAC,EAAE,CAAC,EAAG,EAAE,KAAaG,KAAP,IAAY,CAAC,MAAMA,EAAC,GAAgBqpB,KAAX,SAAiB5oB,GAAE,KAAKM,EAAE,MAAOf,EAAC,CACxI,CACJ,CAC3B,EAAyB,CACC,IAAK,QACL,MAAO,UAAW,CACd,KAAK,MAAQ,IAAI,KAAK,EAAG,EAAG,CAAC,CAChC,CAC3B,EAAyB,CACC,IAAK,SACL,MAAO,UAAW,CACd,KAAK,MAAQ,OAAQ,KAAK,IAC7B,CAC3B,KAA8BF,EAAEG,EAAE,UAAWJ,CAAC,EAAG,OAAO,eAAeI,EAAG,YAAa,CAC7D,SAAU,EACb,GAAGc,CACP,IAAIZ,EAAK,IAAI,OAAM,YAAa,EAAE2B,EAAI9B,EAAE,QAAQ,UAAU,KAAM4B,EAAI,GAAItB,EAAI,CACzE,EAAG,CAAE,wBAAyB,KAAK,UAAU,QAAS,MAAO,KAAK,UAAU,OAAS,EACrF,GAAI,CAAE,yBAA0B,KAAK,UAAU,QAAS,MAAO,UAAW,CACtE,OAAOguC,EAAE,KAAK,UAAU,QAAQ,KAAK,IAAI,EAAG,CAAC,CACvE,CAAyB,EACH,IAAK,CAAE,EAAI,EACX,KAAM,CAAE,EAAI,EACZ,EAAG,CAAE,eAAgB,SAASvtC,EAAG,CAC7B,IAAId,EAAIc,EAAI,SAASA,CAAC,EAAI,EAC1B,OAAOd,EAAI,GAAKA,IAAK,KAAK,UAAU,SAAS,KAAK,KAAMA,CAAC,CAC5D,EAAE,QAAS,UAAW,CACnB,OAAO,KAAK,UAAU,SAAS,KAAK,IAAI,EAAI,CACtE,CAAyB,EACH,GAAI,CAAE,gBAAiB,SAASc,EAAG,CAC/B,IAAId,EAAIc,EAAI,SAASA,CAAC,EAAI,EAC1B,OAAOd,EAAI,GAAKA,IAAK,KAAK,UAAU,SAAS,KAAK,KAAMA,CAAC,CAC5D,EAAE,QAAS,UAAW,CACnB,OAAOquC,EAAE,KAAK,UAAU,SAAS,KAAK,IAAI,EAAI,EAAG,CAAC,CAC5E,CAAyB,EACH,IAAK,CAAExsC,EAAE,WAAW,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,EAAG,SAASf,EAAG,CACpD,IAAId,EAAI6B,EAAE,WAAW,MAAM,EAAG,EAAE,EAAE,UAAW,SAAS7B,EAAG,CACrD,OAAOc,EAAE,YAAW,IAAOd,EAAE,YAAW,CACtE,GAC0B,OAAcA,IAAP,IAAY,KAAK,UAAU,SAAS,KAAK,KAAMA,CAAC,CAC1D,EAAE,QAAS,UAAW,CACnB,OAAO6B,EAAE,WAAW,MAAM,EAAG,EAAE,EAAE,KAAK,UAAU,SAAS,KAAK,IAAI,CAAC,CAC7F,CAAyB,EACH,KAAM,CAAEA,EAAE,WAAW,MAAM,GAAI,EAAE,EAAE,KAAK,GAAG,EAAG,SAASf,EAAG,CACtD,IAAId,EAAI6B,EAAE,WAAW,MAAM,GAAI,EAAE,EAAE,UAAW,SAAS7B,EAAG,CACtD,OAAOc,EAAE,YAAW,IAAOd,EAAE,YAAW,CACtE,GAC0B,OAAcA,IAAP,IAAY,KAAK,UAAU,SAAS,KAAK,KAAMA,CAAC,CAC1D,EAAE,QAAS,UAAW,CACnB,OAAO6B,EAAE,WAAW,MAAM,GAAI,EAAE,EAAE,KAAK,UAAU,SAAS,KAAK,IAAI,CAAC,CAC9F,CAAyB,EACH,GAAI,CAAE,WAAY,SAASf,EAAG,CAC1B,IAAId,EAAK,IAAI,OAAM,YAAW,EAAG,SAAQ,EAAG,MAAM,EAAG,CAAC,EACtD,KAAK,UAAU,YAAY,KAAK,KAAM,GAAG,OAAOA,CAAC,EAAE,OAAOc,CAAC,CAAC,CAC/D,EAAE,OAAQ,UAAW,CAClB,OAAOutC,EAAE,KAAK,UAAU,YAAY,KAAK,IAAI,EAAG,CAAC,CACpD,EAAE,CAAG,EACN,KAAM,CAAE,WAAY,KAAK,UAAU,YAAa,OAAQ,UAAW,CAC/D,OAAOA,EAAE,KAAK,UAAU,YAAY,KAAK,IAAI,EAAG,CAAC,CACpD,EAAE,CAAG,EACN,EAAG,CAAE,eAAgB,KAAK,UAAU,SAAU,QAAS,KAAK,UAAU,QAAU,EAChF,GAAI,CAAE,gBAAiB,KAAK,UAAU,SAAU,QAAS,UAAW,CAChE,OAAOA,EAAE,KAAK,UAAU,SAAS,KAAK,IAAI,EAAG,CAAC,CACxE,CAAyB,EACH,GAAI,CAAE,SAASvtC,EAAG,CACd,MAAO,SAAS,OAAOA,EAAG,GAAG,CAChC,EAAE,KAAK,UAAU,SAAU,QAAS,SAASA,EAAG,CAC7C,OAAO,KAAK,UAAU,QAChD,CAAyB,EACH,EAAG,CAAE,iBAAkB,KAAK,UAAU,SAAU,QAAS,KAAK,UAAU,QAAU,EAClF,GAAI,CAAE,uBAAwB,KAAK,UAAU,SAAU,QAAS,UAAW,CACvE,OAAOutC,EAAE,KAAK,UAAU,SAAS,KAAK,IAAI,EAAG,CAAC,CACxE,CAAyB,EACH,GAAI,CAAE,SAASvtC,EAAG,CACd,MAAO,SAAS,OAAOA,EAAG,GAAG,CAChC,EAAE,KAAK,UAAU,SAAU,QAAS,SAASA,EAAG,CAC7C,OAAO,UAAW,CACd,OAAOutC,EAAE,KAAK,UAAU,SAAS,KAAK,IAAI,EAAGvtC,CAAC,CAC5E,CACA,CAAyB,EACH,EAAG,CAAE,cAAe,KAAK,UAAU,WAAY,UAAW,KAAK,UAAU,UAAY,EACrF,GAAI,CAAE,4CAA6C,KAAK,UAAU,WAAY,UAAW,UAAW,CAChG,OAAOutC,EAAE,KAAK,UAAU,WAAW,KAAK,IAAI,EAAG,CAAC,CAC1E,CAAyB,EACH,EAAG,CAAE,cAAe,KAAK,UAAU,WAAY,UAAW,KAAK,UAAU,UAAY,EACrF,GAAI,CAAE,4CAA6C,KAAK,UAAU,WAAY,UAAW,UAAW,CAChG,OAAOA,EAAE,KAAK,UAAU,WAAW,KAAK,IAAI,EAAG,CAAC,CAC1E,CAAyB,EACH,EAAG,CAAE,WAAY,KAAK,UAAU,gBAAiB,eAAgB,UAAW,CACxE,OAAOA,EAAE,KAAK,UAAU,gBAAgB,KAAK,IAAI,EAAG,CAAC,CACxD,EAAE,CAAG,EACN,EAAG,CAAE,WAAY,KAAK,UAAU,gBAAiB,eAAgB,UAAW,CACxE,OAAOA,EAAE,KAAK,UAAU,gBAAgB,KAAK,IAAI,EAAG,CAAC,CACxD,EAAE,CAAG,EACN,EAAG,CAAE,OAAQxtC,EAAG,OAAQT,EAAG,CAAG,EAC9B,GAAI,CAAE,QAASS,EAAG,OAAQT,EAAG,CAAG,EAChC,EAAG,CAAE,OAAQS,EAAG,OAAQT,EAAG,CAAG,EAC9B,GAAI,CAAE,QAASS,EAAG,OAAQT,EAAG,CAAG,EAChC,EAAG,CAAE,KAAM,OAAQ,IAAK,UAAW,CAC/B,IAAIU,EAAI,KAAK,SAAQ,EAAG,MAAM,UAAU,EAAE,CAAC,EAC3C,OAAAA,EAAE,SAAS,GAAG,IAAMA,GAAKA,EAAIA,EAAE,QAAQ,IAAK,GAAG,EAAE,eAAe,MAAM,GAAG,EAAE,IAAK,SAASA,EAAG,CACxF,OAAOU,EAAEV,EAAG,CAAC,EAAE,CAAC,CAC9C,GAA8B,KAAK,EAAE,GACJA,CACjC,CAAyB,EACH,EAAG,CAAE,EAAI,EACT,EAAG,CAAE,EAAI,CACZ,EAAEW,EAAI,CACH,QAAS,aACT,QAAS,WACT,YAAa,wBACb,eAAgB,8BACtC,EACkB,SAASZ,EAAEC,EAAG,CACV,IAAId,EAAI,KAAK,WACbc,EAAE,cAAc,SAAS,GAAG,EAAI,KAAK,SAASd,EAAI,EAAE,EAAIc,EAAE,cAAc,SAAS,GAAG,GAAKd,GAAK,IAAM,KAAK,SAASA,EAAI,EAAE,CAC3H,CACD,SAASI,GAAI,CACT,IAAIU,EAAI,KAAK,WACb,OAAQA,EAAIA,GAAK,KAAO,GAAK,KAAO,IACvC,CACD,SAASX,EAAEW,EAAG,CACV,IAAId,EAAI,OAAO,KAAKc,EAAE,CAAC,CAAC,EACxB,GAAId,GAAgBA,EAAE,CAAC,IAAd,OAAiB,CACtB,IAAIJ,EAAIS,EAAES,EAAE,CAAC,EAAE,CAAC,EAAI,GAAG,EAAE,MAAM,EAAE,EACjC,OAAOlB,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAEI,EAAE,CAAC,CAAC,EAAGJ,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAEI,EAAE,CAAC,CAAC,EAAGJ,CAChD,CACD,GAAIS,EAAES,EAAE,CAAC,CAAC,EAAG,OAAOT,EAAES,EAAE,CAAC,CAAC,CAC7B,CACD,SAASmB,EAAEnB,EAAG,CACV,GAAI,CAACA,EAAE,UAAW,CACd,IAAId,EAAI,GAAIJ,EAAI,GAChB,QAASwpB,KAAK/oB,EAAG,GAAI,QAAQ,KAAK+oB,CAAC,EAAG,CAClC,IAAI5oB,GAAI4oB,EAAE,CAAC,EAAI,OACRxpB,EAAE,QAAQY,EAAC,IAAlB,IAAuBZ,EAAE,KAAKY,EAAC,CAClC,MAAaR,EAAE,QAAQopB,EAAE,CAAC,CAAC,IAArB,IAA0BppB,EAAE,KAAKopB,EAAE,CAAC,CAAC,EAC5CtoB,EAAE,UAAY,KAAOlB,EAAE,OAAS,EAAIA,EAAE,KAAK,GAAG,EAAI,IAAM,IAAMI,EAAE,KAAK,IAAI,EAAI,QAC7Ec,EAAE,UAAY,IAAI,OAAOA,EAAE,UAAW,GAAG,CAC5C,CACD,OAAOA,EAAE,SACZ,CACD,SAASsB,EAAEtB,EAAGd,EAAGJ,EAAG,CAChB,GAAI,CAAC+B,EAAG,MAAO,GACf,GAAeb,EAAE,SAAb,QAAuB,CAAC,SAASA,EAAE,MAAM,GAAK,IAAI,KAAKA,EAAE,KAAK,YAAa,EAAE,SAASA,EAAE,QAAQ,EAAIA,EAAE,MAAQA,EAAE,KAAK,SAAU,EAAG,EAAG,CAAC,EAAE,QAAS,GAAIA,EAAE,KAAeA,EAAE,KAAV,OAAkB,CAAC,SAASA,EAAE,OAAO,GAAgBA,EAAE,UAAb,QAA+BA,EAAE,UAAT,KAAqB,IAAI,KAAKA,EAAE,KAAK,YAAW,EAAI,SAASA,EAAE,QAAQ,EAAIA,EAAE,MAAQA,EAAE,KAAK,SAAQ,EAAK,EAAG,CAAC,EAAE,QAAO,GAAMA,EAAE,IAAK,OAAOd,EAC9W,GAAYc,EAAE,KAAV,KAAe,CACf,IAAIsoB,EAAI,EAAE,KAAK,KAAMppB,EAAE,IAAKJ,EAAG,KAAK,OAAO,EAC3C,GAAIwpB,EAAE,aAA0BA,EAAE,YAAY,CAAC,IAA1B,QAA+BppB,EAAE,IAAMopB,EAAE,kBAAoB,EAAG,OAAOppB,EAAE,OAASA,EAAE,IAAM,EAC/GA,CAC1B,SAAsCc,EAAE,KAAK,SAAQ,GAApB,GAAkCA,EAAE,KAAV,MAA4Bd,EAAE,IAAb,OAAgB,OAAOc,EAAE,IAAM,KACrFA,EAAE,KAAK,QAAQ,CAAC,EAAGA,EAAE,KAAK,SAAS,CAAC,EAAGd,EAAE,OAAS,CAAE,CAChD,IAAKA,EAAE,IACP,EAAG,GAC7B,EAAyB,CACC,IAAKA,EAAE,IAAM,EACb,EAAGA,EAAE,CACR,GAAIA,EAAE,MAAQL,EAAE,SAAS,KAAK,KAAMK,EAAE,IAAM,CAAC,EAAGA,EACjD,MAAO,EACV,CACD,SAAS+B,EAAEjB,EAAGd,EAAGJ,EAAGwpB,EAAG,CACnB,IAAIrpB,GAAG+9B,GAAGn+B,GAAI,GAAIwpB,GAAI,EAAG3nB,GAAI,GAAIvB,GAAI,GACrC,IAAKgC,EAAErC,CAAC,EAAE,UAAY,EAAGG,GAAIkC,EAAErC,CAAC,EAAE,KAAKkB,CAAC,GAAK,GAAaf,GAAE,CAAC,IAAZ,KAAeyB,GAAI,OAAS,CACzE,GAAexB,IAAX,OAAc,GAAI,CAACwB,KAAMs8B,GAAI39B,EAAEJ,EAAC,GAAIJ,IAAK,IAAMm+B,GAAE,CAAC,EAAI,IAAKl+B,EAAE,aAAsBA,EAAE,cAAT,IAAwBK,GAAEkpB,EAAC,EAAIvpB,EAAE,YAAYG,GAAE,MAAQH,EAAE,YAAY,MAAM,EAC3JK,GAAE,GAAG,OAAOF,GAAE,MAAO,GAAG,EAAE,OAAOH,EAAE,YAAYG,GAAE,MAAQH,EAAE,YAAY,MAAM,CAAC,CAAC,EAAIG,GAAE,CAAC,EAAE,OAAO,CAAC,GAAKE,GAAEkpB,EAAC,EAAIppB,GAAE,CAAC,EAAE,OAAO,CAAC,MAAQ,QAAQA,GAAE,CAAC,EAAC,CAC3I,IAAK,IACHJ,IAAK,IACL,MAEF,IAAK,IACHA,IAAK,KACL,MAEF,QACEA,OAASa,EAAE,aAAaT,GAAE,CAAC,CAAC,EAAGE,GAAEkpB,EAAC,EAAIppB,GAAE,CAAC,EAAE,OAAO,CAAC,CACjF,KAAqC,CAACyB,KAAMs8B,GAAI39B,EAAEJ,EAAC,GAAeqpB,IAAP,IAAY0U,GAAE,CAAC,EAAGn+B,IAAKm+B,GAAE,CAAC,EAAE,KAAK99B,EAAE,IAAI,EAAQ89B,GAAE,CAAC,EAAIn+B,IAAKK,EAAE,MAAQ89B,GAAE,CAAC,CAAC,EAAIn+B,IAAKI,GAAE,CAAC,EAAQJ,IAAK,GAAG,OAAO6B,GAAI,KAAO,EAAE,EAAE,OAAOzB,GAAE,CAAC,CAAC,EACvKopB,KAAK3nB,GAAI,EACZ,CACD,OAAkBxB,IAAX,SAAiBJ,EAAE,YAAcK,IAAIN,EAC/C,CACD,SAAS0uC,EAAEvtC,EAAGd,EAAGJ,EAAG,CAChB,IAAKkB,EAAI,OAAOA,CAAC,EAAGd,EAAIA,GAAK,EAAGc,EAAE,OAASd,GAAKc,EAAIlB,EAAIkB,EAAI,IAAM,IAAMA,EACxE,OAAOA,CACV,CACD,SAASQ,EAAER,EAAGd,EAAGJ,EAAG,CAChB,OAAmB,OAAOkB,GAAnB,SAAuB,IAAIY,EAAEZ,EAAGd,EAAGJ,EAAG,IAAI,EAAIkB,GAAkBc,EAAEd,CAAC,IAAhB,UAAqB,OAAO,UAAU,eAAe,KAAKA,EAAG,MAAM,EAAIA,EAAI,MACxI,CACD,SAASF,EAAEE,EAAGd,EAAG,CACb,OAAO+B,EAAE/B,EAAE,YAAa,CACpB,KAAMc,CACT,EAAEd,CAAC,CACP,CACD,SAAS,EAAEc,EAAGd,EAAGJ,EAAG,CAChB,IAAIwpB,EAAG5oB,GAAGT,GAAI,KAAM+9B,GAAI,EAAGn+B,GAAI,EAC/B,IAAKsC,EAAEjC,CAAC,EAAE,UAAY,EAAGQ,GAAIyB,EAAEjC,CAAC,EAAE,KAAKA,EAAE,WAAW,GAAK,CACrD,IAAIwB,GAAI,OAAO,KAAKhB,GAAE,CAAC,CAAC,EACxB,GAAIgB,GAAG7B,GAAI,SAAS6B,GAAE,CAAC,CAAC,MAAQ,CAC5B,QAASvB,GAAIO,GAAE,CAAC,EAAE,CAAC,EAAGoB,GAAIk8B,GAAG/9B,KAAMC,EAAE,YAAY,GAAG,OAAOQ,GAAE,MAAO,GAAG,EAAE,OAAO2oB,EAAE,QAAQ,KAAKppB,GAAG6B,EAAC,EAAE,MAAM,WAAW,CAAC,GAAKunB,EAAE,QAAQ,KAAKppB,GAAG6B,EAAC,EAAE,MAAM,eAAiB3B,IAAK2B,MACtKjC,GAAIiC,GAAIk8B,MAAf,IAAsBn+B,GAAIa,GAAE,CAAC,EAAE,OAClC,CACD,IAAKs9B,IAAKn+B,KAAMmB,EAAI,EAAG,CACnB,IAAIjB,GAAI,GACR,GAAID,GAAKA,EAAE,MAAMkB,CAAC,EAAG,CACjB,IAAIS,GAAI,OAAO,KAAKvB,EAAE,WAAW,EAAE,OAAQ,SAASA,GAAG,CACnD,QAASopB,GAAI5oB,GAAE,MAAQ,EAAG4oB,GAAI0U,GAAG1U,KAAK,GAAIppB,KAAM,GAAG,OAAOopB,GAAG,GAAG,EAAE,OAAOxpB,EAAE,MAAMkB,CAAC,EAAE,CAAC,EAAE,MAAM,WAAW,EAAG,MAAO,GAClH,MAAO,EAC7C,GACkCjB,GAAI0B,GAAE,OAAS,EAAIvB,EAAE,YAAYuB,GAAE,CAAC,CAAC,EAAI3B,EAAE,MAAMkB,CAAC,EAAE,CAAC,EAAE,MAAM,WAChE,CACD,GAAWN,GAAE,CAAC,EAAE,QAAQX,EAAC,IAArB,GAAwB,CACxBupB,EAAI5oB,GAAGA,GAAIyB,EAAEjC,CAAC,EAAE,KAAKA,EAAE,WAAW,EAClC,KACH,CACJ,CACJ,CACD,MAAO,CACH,iBAAkB89B,GAAIn+B,GACtB,UAAWa,GACX,YAAa4oB,CACvC,CACmB,CACDrpB,EAAE,QAAQ,cAAc,CACpB,SAAU,CACN,KAAM,SAASe,EAAG,CACd,GAAIA,EAAE,aAAe,GAAIT,EAAE,EAAIwB,EAAE,cAAc,KAAK,GAAG,EAAGf,EAAE,YAAcW,EAAEX,EAAE,WAAW,GAAKA,EAAE,YAChGA,EAAE,SAAWA,EAAE,OAAS,SAASA,EAAE,OAAO,SAAU,GAAGA,EAAE,OAAS,GAAI,CAClE,QAASd,EAAI,GAAIJ,EAAI,EAAGA,EAAIkB,EAAE,OAAQlB,IAAKI,GAAKc,EAAE,YAClDA,EAAE,YAAcd,EAAGc,EAAE,OAAS,CACjC,CACD,OAAOA,EAAE,cAAgBW,EAAEX,EAAE,aAAa,GAAKA,EAAE,eAAiBA,EAAE,YACpEA,EAAE,aAAeW,EAAEX,EAAE,YAAY,GAAKA,EAAE,cAAgBA,EAAE,YAAaA,EAAE,MAAQiB,EAAEjB,EAAE,YAAa,OAAQA,CAAC,EAC3GA,EAAE,IAAMQ,EAAER,EAAE,IAAKA,EAAE,YAAaA,CAAC,EAAGA,EAAE,IAAMQ,EAAER,EAAE,IAAKA,EAAE,YAAaA,CAAC,EAAG,IAC3E,EACD,YAAa,GACb,YAAa,cACb,cAAe,KACf,aAAc,KACd,IAAK,KACL,IAAK,KACL,0BAA2B,GAC3B,cAAe,SAASA,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,GAAGT,GAAG+9B,GAAGn+B,GAAG,CAC5C,GAAIA,GAAG,MAAO,GACd,GAAI,MAAMC,CAAC,GAAKkB,EAAEd,CAAC,IAAMJ,EAAG,CACxB,IAAIupB,GAAI,EAAE,KAAK,KAAMnpB,EAAGQ,GAAGT,EAAC,EAC5B,GAAIopB,GAAE,WAAaA,GAAE,UAAU,CAAC,IAAMvpB,GAAKupB,GAAE,YAAY,CAAC,EAAE,OAAS,EAAG,CACpE,IAAI3nB,GAAIrB,EAAEgpB,GAAE,WAAW,EAAE,CAAC,EAC1B,GAAI,IAAI,OAAO3nB,EAAC,EAAE,KAAK,IAAMV,EAAEd,EAAI,CAAC,CAAC,EAAG,OAAOc,EAAEd,CAAC,EAAIc,EAAEd,EAAI,CAAC,EAAGc,EAAEd,EAAI,CAAC,EAAI,IAC3E,CACI,MAAO,GACP,OAAQc,EACR,kBAAmB,CACf,MAAOd,EAAI,EACX,IAAKA,EAAI,CACZ,EACD,IAAKA,EAAI,CACnD,CACmC,CACJ,CACD,MAAO,EACV,EACD,eAAgB,SAASc,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,GAAGT,GAAG+9B,GAAGn+B,GAAG,CAC7C,IAAI6B,GAAGvB,GAAG2B,GAAI,KACd,GAAIk8B,GAAG,MAAO,GACd,GAAW1U,IAAP,OAAe5nB,GAAI,EAAE,KAAKI,GAAG5B,EAAI,EAAGQ,GAAGT,EAAC,GAAG,aAAeyB,GAAE,mBAAqBxB,GAAKwB,GAAE,YAAY,CAAC,EAAE,OAAS,GAAgBnB,EAAEmB,GAAE,YAAY,CAAC,CAAC,IAA7B,SAAmCA,GAAI,EAAE,KAAKI,GAAG5B,EAAI,EAAGQ,GAAGT,EAAC,GAAG,aAAeyB,GAAE,mBAAqBxB,EAAI,GAAKwB,GAAE,YAAY,CAAC,EAAE,OAAS,GAAgBnB,EAAEmB,GAAE,YAAY,CAAC,CAAC,IAA7B,UAAoCvB,GAAIE,EAAEqB,GAAE,WAAW,EAAE,CAAC,GACrTvB,KAAX,SAA4BF,GAAE,eAAeC,EAAI,CAAC,IAAjC,QAAsC,IAAI,OAAOC,EAAC,EAAE,KAAKL,EAAI,GAAG,GAAKkB,EAAEd,CAAC,EAAIJ,EAC7FkB,EAAEd,EAAI,CAAC,EAAI,IAAKopB,EAAI,CAChB,IAAKppB,EAAI,EACT,MAAOA,CACzC,GAAmC,IAAI,OAAOC,EAAC,EAAE,KAAK,IAAML,CAAC,IAAMkB,EAAEd,CAAC,EAAI,IAAKc,EAAEd,EAAI,CAAC,EAAIJ,EAAGwpB,EAAI,CAC/D,IAAKppB,EAAI,CACZ,IAAWopB,IAAP,IAAW,OAAOA,EACvB,GAAIA,EAAE,QAAUtoB,EAAIsoB,EAAE,OAAQppB,EAAIopB,EAAE,MAAO5nB,GAAI,EAAE,KAAKI,GAAG5B,EAAGQ,GAAGT,EAAC,GAAG,aAAeyB,GAAE,YAAY,CAAC,GAAgBnB,EAAEmB,GAAE,YAAY,CAAC,CAAC,IAA7B,OAAgC,CAClI,IAAI3B,GAAIM,EAAEqB,GAAE,WAAW,EACvBvB,GAAIJ,GAAE,CAAC,EACP,IAAI0B,GAAIT,EAAE,MAAMU,GAAE,iBAAkBA,GAAE,iBAAmBA,GAAE,YAAY,CAAC,EAAE,MAAM,EAChF,GAAW,IAAI,OAAOvB,EAAC,EAAE,KAAKsB,GAAE,KAAK,EAAE,CAAC,IAApC,IAA+CC,GAAE,YAAY,CAAC,EAAE,SAAvB,GAAiCzB,GAAE,eAAeyB,GAAE,gBAAgB,GAAKzB,GAAE,eAAeyB,GAAE,iBAAmB,CAAC,IAAMzB,GAAE,eAAeyB,GAAE,iBAAmB,CAAC,EAAE,MAAQ,KAC1M3B,GAAE,CAAC,GAAb,OAAgB,QAAS6B,GAAIynB,EAAE,gBAAgB,KAAKvnB,GAAG,GAAI,EAAG,OAAQ,EAAE,EAAGC,GAAI7B,EAAI,EAAG6B,GAAIf,EAAE,OAAQe,KAAKf,EAAEe,EAAC,EAAIH,GAAEG,EAAC,EACnH9B,GAAE,eAAe,OAAOC,EAAI,EAAG,CAAC,CACnC,CACD,IAAI2B,GAAIynB,EAAG3nB,GAAIH,EAAE,KAAKM,GAAGd,EAAE,KAAK,EAAE,EAAGN,GAAE,YAAaA,EAAC,EACrD,OAAOmB,IAAK,CAAC,MAAMF,GAAE,KAAK,QAAS,KAAMjB,GAAE,cAAgBmB,GAAI,SAASb,GAAGd,GAAGJ,GAAG,CAC7E,GAAIkB,GAAE,OAASA,GAAE,QAAS,CACtB,IAAIsoB,GAAIlpB,EAAE,SAAQ,EAAIM,GAAIM,GAAE,QAAQ,QAAQ,UAAW,EAAE,EAAGf,EAAIqpB,GAAE,MAAM,EAAG5oB,GAAE,MAAM,EAAGs9B,GAAI1U,GAAE,MAAM5oB,GAAE,MAAM,EAC1G,GAAUA,GAAE,SAAR,GAAkBA,KAAMT,EAAG,CAC3B,IAAIJ,GAAI,IAAI,KAAKO,EAAGY,GAAE,MAAQ,EAAGA,GAAE,GAAG,EACtCA,GAAE,KAAOnB,GAAE,QAAO,IAAO,CAACC,GAAE,KAAOA,GAAE,IAAI,KAAK,QAAS,GAAID,GAAE,QAAS,KAAMmB,GAAE,KAAK,YAAYZ,CAAC,EAChGY,GAAE,KAAOsoB,GAAGppB,GAAE,OAAS,CAAE,CACrB,IAAKA,GAAE,IAAM,EACb,EAAG89B,GAAE,CAAC,CACpD,EAA6C,CACC,IAAK99B,GAAE,IAAM,EACb,EAAG89B,GAAE,CAAC,CACT,GACJ,CACJ,CACD,OAAO99B,EACV,EAACyB,GAAGE,GAAGnB,EAAC,GAAImB,GAAI,SAASb,GAAGd,GAAGJ,GAAGwpB,GAAG5oB,GAAG,CACrC,GAAI,CAACR,GAAG,OAAOA,GACf,GAAIA,IAAKJ,GAAE,KAAO,CAAC,MAAMA,GAAE,IAAI,KAAK,QAAO,CAAE,EAAG,CAC5C,IAAIG,EACJ,IAAKe,GAAE,MAAO,EAAEmB,EAAErC,EAAC,EAAE,UAAY,EAAGG,EAAIkC,EAAErC,EAAC,EAAE,KAAKA,GAAE,WAAW,GAAK,CAChE,IAAIk+B,GACJ,IAAKA,GAAI39B,EAAEJ,CAAC,IAAM+9B,GAAE,CAAC,EAAG,CACpB,QAASn+B,GAAIm+B,GAAE,CAAC,EAAG3U,GAAIroB,GAAEg9B,GAAE,CAAC,CAAC,EAAGt8B,GAAI5B,GAAE,IAAIk+B,GAAE,CAAC,CAAC,EAAG79B,GAAIL,GAAE,IAAMA,GAAE,IAAIk+B,GAAE,CAAC,CAAC,EAAIt8B,GAAI,EAAGI,GAAI,GAAI/B,GAAI,GAAI0B,GAAI,EAAGA,GAAIC,GAAE,OAAQD,KAAgB6nB,GAAE,eAAe7nB,GAAIxB,EAAE,KAAK,IAAvC,QAA4CF,IAAK+B,GAAEL,EAAC,EAAI4nB,GAAE5nB,EAAC,EACvL1B,GAAIA,IAAKspB,GAAE5nB,EAAC,EAAIC,GAAED,EAAC,IAAMA,GAAIxB,EAAE,OAAS,GAAKopB,GAAE5nB,EAAC,EAAIC,GAAED,EAAC,GAAKK,GAAEL,EAAC,EAAI4nB,GAAE5nB,EAAC,EAAG1B,GAAI,IAAM+B,GAAEL,EAAC,EAAIC,GAAED,EAAC,EAClFu8B,GAAE,CAAC,IAAd,QAAmB3U,GAAE,OAAS,GAAK5nB,IAAKC,IAAKvB,KAAM2B,IAAK,SAASA,GAAE,KAAK,EAAE,CAAC,EAAI,GAAG,SAAU,EAAC,MAAM,EAAE,GAC1Fk8B,GAAE,CAAC,IAAd,QAAmBt8B,IAAKvB,IAAKL,GAAE,IAAI,KAAK,QAAO,EAAKkB,GAAE,KAAK,QAAO,IAAOc,GAAEL,EAAC,EAAItB,GAAEsB,EAAC,IACnF5B,GAAE,KAAKmB,GAAE,MAAOc,GAAE,KAAK,EAAE,CAAC,CAC7B,CACJ,CACD5B,GAAIJ,GAAE,IAAI,KAAK,QAAS,GAAIkB,GAAE,KAAK,QAAO,EAAIA,GAAE,OAAM,CACzD,CACD,OAAOd,IAAKJ,GAAE,MAAQ,MAAMA,GAAE,IAAI,KAAK,QAAS,KAAMI,GAAIJ,GAAE,IAAI,KAAK,QAAS,GAAIkB,GAAE,KAAK,QAAO,IAChGd,EAClC,EAAgCyB,GAAGE,GAAIS,EAAE,KAAKR,GAAGH,GAAGE,GAAGnB,EAAC,EAAGA,GAAGT,EAAC,GAAeC,IAAX,QAAgB2B,IAAKynB,EAAE,MAAQppB,EAAI,CACpE,OAAQ+B,EAAEvB,GAAE,YAAaiB,GAAGjB,EAAC,EAAE,MAAM,EAAE,EACvC,kBAAmB,CACf,MAAOR,EACP,IAAKopB,EAAE,GACV,EACD,IAAKA,EAAE,OAASA,EAAE,GACrB,EAAGznB,EACP,EACD,UAAW,SAASb,EAAGd,EAAGJ,EAAGwpB,EAAG,CAC5BtoB,EAAE,SAAWA,EAAE,MAAQg9B,EAAE,KAAK,aAAe,KAAK,UAAU,UAAUl9B,EAAE,IAAI,KAAMwoB,CAAC,CAAC,EACpF7nB,EAAE,IAAI,EAAE,QAAQ,UAAU,EAC7B,EACD,SAAU,SAAST,EAAGd,EAAGJ,EAAG,CACxB,OAAOI,GAAI+B,EAAEnC,EAAE,aAAc0B,EAAE,KAAK,KAAMR,EAAGlB,EAAE,YAAaA,CAAC,EAAGA,EAAG,EAAE,CACxE,EACD,OAAQ,SAASkB,EAAGd,EAAGJ,EAAGwpB,EAAG,CACzB,GAASppB,EAAE,UAAU,QAAQ,MAAM,GAA/B,EAAkC,OAAOc,EAAE,cAC/C,GAASd,EAAE,UAAU,QAAQ,MAAM,GAA/B,EAAkC,OAAOc,EAAE,cAC/C,IAAIN,GAAI2oB,EAAE,QAAQ,KAAK,KAAM,CAAEvpB,EAAI,CAAC,CAAE,EACtC,OAAYY,GAAE,MAAM,IAAI,QAAQ,MAAM,GAA/B,GAA0CZ,IAAN,GAAWY,IAAKA,GAAE,QAAU,OAAO,aAAas9B,EAAE,QAAQ,KAAK,GAAKt9B,IAAKA,GAAE,MAAM,MAAQ,OAAO,aAAas9B,EAAE,QAAQ,KAAK,EAAIh9B,EAAE,YAAW,EAAKA,EAAE,aAClM,EACD,aAAc,SAASA,EAAGd,EAAG,CACzB,OAA2B,OAAO,UAAU,SAAS,KAAKc,CAAC,IAApD,kBAA0DA,EAAIF,EAAEE,EAAGd,CAAC,GAAIc,CAClF,EACD,WAAY,GACZ,iBAAkB,GAClB,eAAgB,GAChB,WAAY,GACZ,UAAW,UACX,YAAa,EAChB,CACvB,CAAmB,CACJ,EACD,KAAM,SAASA,EAAGd,EAAGJ,EAAG,CACpB,IAAIwpB,EAAG5oB,GAAK4oB,EAAIxpB,EAAE,IAAI,IAAMwpB,EAAE,WAAaA,EAAI,CAC3C,QAASA,CAC/B,EACkB5oB,EAAE,QAAQ,cAAc,OAAO,GAAIA,EAAE,QAAQ,UAAU,KAAM,CACzD,SAAU,CAAE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,SAAU,UAAW,YAAa,WAAY,SAAU,WAAY,QAAU,EAC3I,WAAY,CAAE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,UAAY,EAC5N,cAAe,CAAE,KAAM,KAAM,KAAM,IAAM,CAC/D,CAAmB,CACJ,EACD,KAAM,SAASM,EAAGd,EAAGJ,EAAG,CACpB,IAAIwpB,EAAG5oB,GAAK4oB,EAAIxpB,EAAE,IAAI,IAAMwpB,EAAE,WAAaA,EAAI,CAC3C,QAASA,CAC/B,EAAqBrpB,EAAIH,EAAE,IAAI,EAAGk+B,EAAIl+B,EAAE,IAAI,EAC1B,SAASD,EAAEmB,EAAG,CACV,OAAO,SAASA,EAAG,CACf,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAOqoB,EAAEroB,CAAC,CAC1D,EAAwBA,CAAC,GAAK,SAASA,EAAG,CAChB,GAAmB,OAAO,OAAtB,KAAwCA,EAAE,OAAO,QAAQ,GAAzB,MAAsCA,EAAE,YAAY,GAAtB,KAAyB,OAAO,MAAM,KAAKA,CAAC,CACjH,EAACA,CAAC,GAAK,SAASA,EAAGd,EAAG,CACnB,GAAKc,EACL,IAAgB,OAAOA,GAAnB,SAAsB,OAAOqoB,EAAEroB,EAAGd,CAAC,EACvC,IAAIJ,EAAI,OAAO,UAAU,SAAS,KAAKkB,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADalB,IAAb,UAAkBkB,EAAE,cAAgBlB,EAAIkB,EAAE,YAAY,MACxClB,IAAV,OAAyBA,IAAV,MAAa,OAAO,MAAM,KAAKkB,CAAC,EACnD,GAAoBlB,IAAhB,aAAqB,2CAA2C,KAAKA,CAAC,EAAG,OAAOupB,EAAEroB,EAAGd,CAAC,EACpH,EAAwBc,CAAC,GAAK,UAAW,CACf,MAAM,IAAI,UAAU;AAAA,mFAAsI,CACpL,GACmB,CACD,SAASqoB,EAAEroB,EAAGd,EAAG,EACJA,GAAR,MAAaA,EAAIc,EAAE,UAAYd,EAAIc,EAAE,QACtC,QAASlB,EAAI,EAAGwpB,EAAI,IAAI,MAAMppB,CAAC,EAAGJ,EAAII,EAAGJ,IAAKwpB,EAAExpB,CAAC,EAAIkB,EAAElB,CAAC,EACxD,OAAOwpB,CACV,CACD5oB,EAAE,QAAQ,kBAAkB,CACxB,EAAG,CACC,UAAW,oBACX,OAAQ,OACX,EACD,IAAK,CACD,UAAW,uBACX,OAAQ,OACX,EACD,IAAK,CACD,UAAW,cACX,OAAQ,OACX,CACvB,CAAmB,EACD,IAAIgB,EAAI,qCACR,SAASvB,EAAEa,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAG,CACtB,GAAIZ,EAAI,EAAI,IAAcI,EAAE,OAAOJ,EAAI,CAAC,IAAtB,KAA2BkB,EAAId,EAAE,OAAOJ,EAAI,CAAC,EAAIkB,EAAGA,EAAIlB,EAAI,EAAI,IAAcI,EAAE,OAAOJ,EAAI,CAAC,IAAtB,IAA0BI,EAAE,OAAOJ,EAAI,CAAC,EAAIkB,EAAI,IAAMA,GAAKA,EAAI,KAAOA,EAC9JN,EAAE,QAAU,SAASM,CAAC,EAAI,KAAOU,EAAE,KAAK,KAAOV,EAAE,OAAO,CAAC,CAAC,EAAG,CACzD,IAAIf,EAAI,GAAG,OAAOJ,EAAEK,EAAE,OAAO,MAAM,EAAGJ,CAAC,CAAC,EAAG,CAAE,IAAKkB,EAAE,OAAO,CAAC,CAAC,CAAE,EAC/D,GAAIf,EAAE,KAAK,EAAE,EAAE,MAAM,KAAK,EAAE,OAAS,EAAG,MAAO,CAC3C,kBAAmB,GACnB,OAAQA,EACR,MAAOH,EAAI,CACzC,CACuB,CACD,OAAO4B,EAAE,KAAKV,CAAC,CAClB,CACDN,EAAE,QAAQ,cAAc,CACpB,QAAS,CACL,MAAO,yDACV,EACD,IAAK,CACD,MAAO,oBACP,WAAY,GACZ,WAAY,GACZ,WAAY,EACf,EACD,GAAI,CACA,KAAM,8BACN,YAAa,CACT,EAAG,CACC,UAAWP,CACd,EACD,EAAG,CACC,UAAWA,CACd,EACD,EAAG,CACC,UAAWA,CACd,EACD,EAAG,CACC,UAAWA,CACd,CACJ,EACD,SAAU,SAASa,EAAGd,EAAGJ,EAAG,CACxB,OAAOkB,CACV,EACD,UAAW,UACX,YAAa,CACT,IAAK,GACR,CACJ,EACD,MAAO,CACH,KAAM,SAASA,EAAG,CACd,IAAId,EAAIc,EAAE,UAAWlB,EAAIkB,EAAE,WAAYsoB,EAAI,4EAA6E5oB,EAAI4oB,EAC5H,GAAIppB,EAAG,QAASD,EAAI,EAAGA,EAAIH,EAAGG,IAAKS,GAAK,IAAI,OAAOR,CAAC,EAAE,OAAOopB,EAAG,GAAG,EACnE,OAAO5oB,CACV,EACD,OAAQ,GACR,OAAQ,QACR,UAAW,KACX,WAAY,EACZ,0BAA2B,GAC3B,cAAe,SAASM,EAAGd,EAAG,CAC1B,OAAQc,EAAIA,EAAE,YAAa,GAAE,QAAQ,UAAW,EAAE,CACrD,EACD,YAAa,CACT,IAAK,CACD,UAAW,4CACd,EACD,IAAK,CACD,UAAW,cACd,CACJ,EACD,SAAU,SAASA,EAAGd,EAAGJ,EAAG,CACxB,OAAOkB,CACV,EACD,UAAW,OACd,EACD,IAAK,CACD,KAAM,mBACT,EACD,IAAK,CACD,KAAM,YACN,YAAa,CACT,EAAG,CACC,UAAW,4BACX,OAAQ,OACX,CACJ,EACD,gBAAiB,GACjB,WAAY,EACf,EACD,IAAK,CACD,KAAM,cACN,eAAgB,SAASA,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAGb,EAAGwpB,EAAG,CAC1C,IAAI3nB,EAAIs8B,EAAE,gBAAgB,KAAK,KAAM,GAAI/9B,EAAE,qBAAqB,KAAK,IAAI,EAAG,GAAI,EAAE,EAClF,MAAO,6EAA6E,KAAKyB,EAAE,KAAK,EAAE,CAAC,CACtG,CACJ,CACvB,CAAmB,CACJ,EACD,IAAK,SAASV,EAAGd,EAAGJ,EAAG,CACnB,IAAIwpB,EAAG5oB,EAAIZ,EAAE,IAAI,EAAGG,GAAKqpB,EAAIxpB,EAAE,IAAI,IAAMwpB,EAAE,WAAaA,EAAI,CACxD,QAASA,CAC/B,EAAqB0U,EAAIl+B,EAAE,IAAI,EAAGD,EAAIC,EAAE,IAAI,EACtBupB,EAAIppB,EAAE,QAAQ,cAClB,SAASyB,EAAEV,EAAGd,EAAG,CACb,QAASJ,EAAI,GAAIwpB,EAAI,EAAGA,EAAItoB,EAAE,OAAQsoB,IAAKrpB,EAAE,QAAQ,UAAU,YAAYe,EAAE,OAAOsoB,CAAC,CAAC,GAAKppB,EAAE,YAAYc,EAAE,OAAOsoB,CAAC,CAAC,GAAKppB,EAAE,eAAe,CAAC,IAAMc,EAAE,OAAOsoB,CAAC,GAAKppB,EAAE,eAAe,CAAC,IAAMc,EAAE,OAAOsoB,CAAC,GAAKppB,EAAE,iBAAiB,CAAC,IAAMc,EAAE,OAAOsoB,CAAC,GAAKppB,EAAE,iBAAiB,CAAC,IAAMc,EAAE,OAAOsoB,CAAC,GAAKppB,EAAE,YAAY,CAAC,IAAMc,EAAE,OAAOsoB,CAAC,GAAKppB,EAAE,YAAY,CAAC,IAAMc,EAAE,OAAOsoB,CAAC,GAAKppB,EAAE,mBAAqBc,EAAE,OAAOsoB,CAAC,EAAIxpB,GAAK,KAAOkB,EAAE,OAAOsoB,CAAC,EAAIxpB,GAAKkB,EAAE,OAAOsoB,CAAC,EAC/a,OAAOxpB,CACV,CACD,SAASK,EAAEa,EAAGd,EAAGJ,EAAGwpB,EAAG,CACnB,GAAItoB,EAAE,OAAS,GAAKd,EAAI,IAAM,CAACJ,EAAE,gBAAkBwpB,GAAI,CACnD,IAAI5oB,EAAIM,EAAE,QAAQlB,EAAE,UAAU,EAAGG,EAAI,GACrCH,EAAE,eAAe,OAASkB,EAAEA,EAAE,OAAS,CAAC,IAAMf,EAAI,GAAIe,EAAE,UAAkBN,IAAP,KAAaM,EAAE,KAAKlB,EAAE,UAAU,EACnGY,EAAIM,EAAE,OAAS,GACf,QAASg9B,EAAI,EAAGA,GAAK99B,EAAG89B,IAAK,SAASh9B,EAAEN,EAAIs9B,CAAC,CAAC,IAAMh9B,EAAEN,EAAIs9B,CAAC,EAAI,IAClE,CACD,OAAO/9B,GAAKe,EAAE,KAAKlB,EAAE,eAAe,IAAI,EAAGkB,CAC9C,CACD,SAASc,EAAEd,EAAGd,EAAG,CACb,IAAIJ,EAAI,EACR,QAASwpB,KAAatoB,IAAR,MAAclB,EAAID,EAAE,SAAS,KAAK,KAAMK,EAAE,eAAe,OAAS,CAAC,GACjFA,EAAE,MAAO,IAAKopB,EAAI,SAASA,CAAC,IAAMxpB,GAAG,QAASY,EAAI,EAAGT,EAAIC,EAAE,MAAMopB,CAAC,EAAE,OAAQ5oB,EAAIT,EAAGS,IAAK,IAAgBR,EAAE,eAAeopB,CAAC,IAA7B,QAA0CtoB,IAAR,MAAcd,EAAE,MAAMopB,CAAC,EAAE5oB,CAAC,EAAE,MAAM,MAAQM,EAAG,OAAOsoB,GAAgBppB,EAAE,eAAeopB,CAAC,IAA7B,QAA0CtoB,IAAR,IAAY,EAAI,GAC1O,OAAOlB,CACV,CACD,SAASC,EAAEiB,EAAGd,EAAG,CACb,QAASJ,EAAI,GAAIwpB,EAAI,EAAG5oB,EAAIR,EAAE,eAAe,OAAQopB,EAAI5oB,EAAG4oB,IAAK,CAC7D,IAAIrpB,EAAIC,EAAE,eAAeopB,CAAC,EAC1B,GAAIrpB,GAAKA,EAAE,MAAM,MAAQe,EAAG,CACxBlB,EAAIwpB,EACJ,KACH,CACJ,CACD,OAAOxpB,CACV,CACD,SAAS2B,EAAET,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAG,CACtB,IAAIT,EAAIC,EAAE,OAASA,EAAE,OAAO,QAAQQ,EAAE,UAAU,EAAI,GAAIs9B,GAAY/9B,IAAP,IAAYqpB,GAAK5oB,EAAE,aAAe,IAAI,OAAOA,EAAE,YAAY,CAAC,EAAE,SAAS,EAAE,KAAKM,CAAC,EAC5I,MAAO,CAACsoB,GAAK5oB,EAAE,aAAsBT,IAAP,IAAY+9B,GAAa99B,EAAE,eAAeD,CAAC,GAA1B,KAA8B,CACzE,OAAQ,CACJ,IAAKA,IAAMH,EAAIG,EAAI,EAAIA,EACvB,EAAGS,EAAE,UACR,EACD,IAAKZ,CACR,EAAGk+B,CACP,CACD/9B,EAAE,QAAQ,cAAc,CACpB,QAAS,CACL,KAAM,SAASe,EAAG,CACdA,EAAE,OAAS,EAAGA,EAAE,iBAAmBA,EAAE,YAAcA,EAAE,QAAkBA,EAAE,SAAV,MAA6BA,EAAE,aAAV,IAAuBA,EAAE,eAAiB,IAAcA,EAAE,aAAV,IAAuBA,EAAE,eAAiB,IAAMA,EAAE,eAAiB,IAC/LA,EAAE,iBAAV,MAA6BA,EAAE,0BAA4B,QAASA,EAAE,YAAY,OAAS,IAAMA,EAAE,YAAcA,EAAE,YAAY,OAAO,CAAC,GACtHA,EAAE,uBAAnB,cAAkDA,EAAE,cAAT,KAAyBA,EAAE,qBAAuB,OAC7F,IAAId,EAAI,IAAKJ,EAAIkB,EAAE,WACZA,EAAE,eAAT,IAAoCA,EAAE,iBAAb,QAA+Bd,EAAI,IAAKc,EAAE,qBAAwCA,EAAE,uBAAnB,aAA0C,MAAQA,EAAE,qBAC9IA,EAAE,eAAiB,GAAI,MAAMA,EAAE,MAAM,IAAMA,EAAE,OAAS,GAAIA,EAAE,YAAc,GAAIlB,EAAYkB,EAAE,aAAV,IAAuB,IAAM,IACxGA,EAAE,aAAT,IAAkCA,EAAE,YAAYlB,CAAC,IAA1B,SAAgCkB,EAAE,YAAYlB,CAAC,EAAI,CAAE,EAAEkB,EAAE,YAAYlB,CAAC,EAAE,UAAY,IAAMkB,EAAE,WAAa,IAChIA,EAAE,YAAYlB,CAAC,EAAE,YAAckB,EAAE,WAAYA,EAAE,YAAYlB,CAAC,EAAE,OAAS,GAAIkB,EAAE,YAAYlB,CAAC,EAAE,UAAY,MAAQkB,EAAE,eAAiB,GACnIA,EAAE,aAAe,IACjB,IAAIsoB,EAAGrpB,EAAI,MACX,GAAIA,GAAKyB,EAAEV,EAAE,OAAQA,CAAC,EAAUA,EAAE,iBAAT,IAAsCA,EAAE,YAAYA,EAAE,cAAc,IAAzC,SAA+CA,EAAE,YAAYA,EAAE,cAAc,EAAI,CAAE,EACvIA,EAAE,YAAYA,EAAE,cAAc,EAAE,UAAY,IAAMA,EAAE,eAAiB,IAAKA,EAAE,YAAYA,EAAE,cAAc,EAAE,YAAcA,EAAE,eAC1HA,EAAE,YAAYA,EAAE,cAAc,EAAE,OAAS,GAAIA,EAAE,YAAYA,EAAE,cAAc,EAAE,UAAY,IACzFf,GAAKe,EAAE,MAAMA,CAAC,GAAKf,GAAK,OAAmBe,EAAE,SAAb,QAA6BA,EAAE,SAAR,EAAgB,CACnE,IAAIg9B,EAAIh9B,EAAE,OAAO,SAAQ,EAAG,MAAM,GAAG,EACrC,SAASg9B,EAAE,CAAC,CAAC,GAAKA,EAAE,CAAC,GAAK,SAASA,EAAE,CAAC,CAAC,EAAI/9B,GAAKH,EAAII,EAAI,IAAMc,EAAE,OAAS,KAAO,MAAMA,EAAE,MAAM,GAAK,SAASA,EAAE,MAAM,EAAI,KAAOA,EAAE,gBAAkBA,EAAE,YAAcsoB,EAAIrpB,EAAIH,EAAII,EAAI,MAAQc,EAAE,OAAS,IACtMA,EAAE,WAAa,IAAMf,GAAKH,EAAII,EAAI,IAAMc,EAAE,OAAS,IACrF,MAAqCA,EAAE,UAAY,UACrB,OAAOf,GAAKyB,EAAEV,EAAE,OAAQA,CAAC,EAAGf,GAAK,MAAOqpB,IAAMrpB,EAAI,CAAEqpB,EAAI5nB,EAAEV,EAAE,OAAQA,CAAC,EAAI,MAAOf,IAChFe,EAAE,OAAS,GAAI,SAASA,EAAG,CACZA,EAAE,qBAAb,SAA6CA,EAAE,MAAX,OAAmBA,EAAE,IAAMA,EAAE,IAAI,SAAU,EAAC,QAAQ,IAAI,UAAWN,EAAE,aAAaM,EAAE,cAAc,EAAG,GAAG,EAAG,EAAE,EAAWA,EAAE,aAAV,MAAyBA,EAAE,IAAMA,EAAE,IAAI,QAAQA,EAAE,WAAY,GAAG,GACpNA,EAAE,IAAM,SAASA,EAAE,GAAG,EAAI,WAAWA,EAAE,GAAG,EAAI,IAAK,MAAMA,EAAE,GAAG,IAAMA,EAAE,IAAM,OAAO,YAC1EA,EAAE,MAAX,OAAmBA,EAAE,IAAMA,EAAE,IAAI,WAAW,QAAQ,IAAI,UAAWN,EAAE,aAAaM,EAAE,cAAc,EAAG,GAAG,EAAG,EAAE,EACrGA,EAAE,aAAV,MAAyBA,EAAE,IAAMA,EAAE,IAAI,QAAQA,EAAE,WAAY,GAAG,GAAIA,EAAE,IAAM,SAASA,EAAE,GAAG,EAAI,WAAWA,EAAE,GAAG,EAAI,IAClH,MAAMA,EAAE,GAAG,IAAMA,EAAE,IAAM,OAAO,YAAaA,EAAE,mBAAqB,OACtG,EAAgCA,CAAC,EAAUA,EAAE,aAAT,IAAuBA,EAAE,uBAAyBA,EAAE,YAAmBA,EAAE,YAAT,IAAsB,IAAM,GAAG,EAAIA,EAAE,YAC3Gf,CACH,EACD,MAAO,SAASe,EAAG,CACf,MAAO,IAAMA,EAAE,eAAiB,WACnC,EACD,OAAQ,IACR,eAAgB,GAChB,oBAAqB,GACrB,WAAY,IACZ,qBAAsB,aACtB,YAAa,GACb,eAAgB,GAChB,WAAY,GACZ,eAAgB,CACZ,MAAO,IACP,KAAM,EACT,EACD,OAAQ,GACR,OAAQ,GACR,IAAK,KACL,IAAK,KACL,iBAAkB,GAClB,KAAM,EACN,UAAW,OACX,eAAgB,GAChB,WAAY,KAAK,MACjB,UAAW,UACX,UAAW,CACP,EAAG,OACH,EAAG,SACN,EACD,YAAa,IACb,OAAQ,GACR,WAAY,GACZ,WAAY,GACZ,WAAY,GACZ,0BAA2B,GAC3B,wBAAyB,GACzB,mBAAoB,GACpB,qBAAsB,GACtB,YAAa,CACT,EAAG,CACC,UAAWS,CACd,EACD,EAAG,CACC,UAAWA,EACX,iBAAkB,GACrB,EACD,EAAG,CACC,UAAW,iBACX,iBAAkB,GACrB,EACD,IAAK,CACD,UAAW,SAAST,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAG,CAC/B,OAAOA,EAAE,aAAuBM,IAAR,KAAaA,IAAMN,EAAE,eAAe,MAC/D,CACJ,EACD,IAAK,CACD,UAAW,SAASM,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAG,CAC/B,OAAOA,EAAE,YAAcM,IAAMN,EAAE,eAAe,IACjD,CACJ,CACJ,EACD,cAAe,SAASM,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAGT,EAAG+9B,EAAGn+B,EAAG,CAC5C,IAAIwpB,EAAI,KACR,GAAW3oB,EAAE,iBAAT,IAA2BZ,IAAMY,EAAE,WAAY,MAAO,GAC1D,IAAIgB,EAAIV,EAAE,QAAQN,EAAE,UAAU,EAAGP,EAAID,EACrC,GAAIA,EAAI,SAASc,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAG,CAC5B,OAAOA,EAAE,aAAeA,EAAE,cAAgBR,IAAMQ,EAAE,eAAe,MAAQM,GAAKlB,IAAMA,EAAI,GAAKI,GAAKQ,EAAE,cAA2B4oB,EAAE,eAAetoB,EAAI,CAAC,IAAjC,QAAsCsoB,EAAE,eAAetoB,EAAI,CAAC,EAAE,QAAUN,EAAE,eAAe,QAAUM,GAAK,GAC5NA,CACH,EAACd,EAAGJ,EAAG4B,EAAGzB,EAAGS,CAAC,EAAWZ,IAAR,KAAaA,IAAMY,EAAE,eAAe,MAAO,CACzD,GAAWA,EAAE,aAAT,GAAqB,MAAO,GAChC,IAAIe,EAAI,GAAIG,EAAI7B,EAAE,IAAKE,CAAC,EAAGG,EAAIL,EAAE,IAAKE,CAAC,EACvC,OAAc2B,IAAP,KAAaH,EAAI,CAAEG,CAAG,EAASxB,IAAP,IAAYqB,EAAE,KAAKrB,CAAC,GAAWqB,IAAP,GAAW,CAC9D,OAAQA,EACR,MAAOtB,EAAIO,EAAE,eAAe,KAAK,MACvE,EAAsC,CACA,OAAQ,CAAE,CACN,IAAKoB,EAAE,KAAKunB,EAAG,IAAKppB,CAAC,EACrB,EAAGS,EAAE,eAAe,MACpB,YAAa,EACvD,EAAyC,CACC,IAAKoB,EAAE,KAAKunB,EAAG,IAAKppB,CAAC,EACrB,EAAGS,EAAE,eAAe,KACpB,YAAa,MACvD,CAAyC,EACH,MAAOP,EAAIO,EAAE,eAAe,KAAK,MACvE,CAC+B,CACD,GAAIZ,IAAMY,EAAE,eAAgB,MAAO,CAC/B,MAAOP,CACzC,EAC8B,GAAIN,EAAG,MAAO,GACd,GAAW6B,IAAP,IAAmBhB,EAAE,cAAT,IAA+B4oB,IAAP,IAAYxpB,IAAMY,EAAE,YAAyBA,EAAE,SAAb,SAAwB,MAAMA,EAAE,MAAM,GAAK,SAASA,EAAE,MAAM,EAAI,IAAMgB,IAAMxB,EAAG,CACrJ,IAAI6B,EAAID,EAAE,KAAKunB,EAAG3oB,EAAE,WAAYT,CAAC,EACjC,OAAOA,EAAE,eAAe8B,CAAC,IAAM9B,EAAE,eAAe8B,CAAC,EAAE,eAAiB9B,EAAE,eAAe8B,CAAC,EAAE,WAAa,IACrG,CACI,MAAOrB,EAAE,aAAeR,IAAMwB,EAAI,EAAIA,EAAI,EAAIA,CACpF,CAC+B,CACD,GAAWhB,EAAE,iBAAT,IAAyB,GAAI4oB,EAAG,CAChC,GAAI5oB,EAAE,eAAgB,MAAO,CACzB,gBAAiBs9B,EAAE,GACzD,EACkC,GAAI,CAACt9B,EAAE,eAAgB,CACnB,GAAIs9B,EAAE,MAAQt8B,GAAKs8B,EAAE,KAAOt8B,EAAG,OAAO5B,IAAMY,EAAE,WAAa,CACvD,OAAQ,CACJ,IAAKgB,EAAI,EACT,EAAG,IACH,YAAa,EAChB,EACD,gBAAiBA,CAC3D,EAA0C,CACA,gBAAiBA,EAAI,CAC/D,EACsC,GAAIs8B,EAAE,MAAQt8B,EAAG,MAAO,CACpB,gBAAiBs8B,EAAE,MAAQ,CACrE,CACmC,CACnC,SAAyC,CAACt9B,EAAE,iBAAmB,CAACA,EAAE,iBAAmB,CAACA,EAAE,gBAAkBA,EAAE,OAAS,GAAY,KAAK,WAAW,KAAK,KAAK,EAAE,IAAnC,GAAsC,MAAO,CACrI,gBAAiBgB,CACnD,EAC8B,MAAO,CACH,gBAAiBxB,CACnD,CAC2B,EACD,eAAgB,SAASc,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAGT,EAAG+9B,EAAGn+B,EAAG6B,EAAG,CAChD,GAAW4nB,IAAP,GAAU,OAAOA,EACrB,GAAI0U,EAAG,MAAO,GACd,GAAat9B,EAAE,MAAX,MAA2BA,EAAE,MAAX,KAAgB,CAClC,IAAIoB,EAAIpB,EAAE,SAASM,EAAE,MAAO,EAAC,QAAS,EAAC,KAAK,EAAE,EAAG,OAAQqoB,EAAE,OAAO,CAAE,EAAE3oB,EAAG,CACrE,eAAgB,EACnB,EAAC,EACF,GAAaA,EAAE,MAAX,MAAkBoB,EAAIpB,EAAE,KAAcgB,IAAP,KAAaI,EAAE,SAAU,EAAC,OAASpB,EAAE,IAAI,SAAU,EAAC,QAAUM,EAAE,CAAC,IAAMN,EAAE,YAAcoB,EAAI,GAAI,MAAO,GACzI,GAAapB,EAAE,MAAX,MAAkBoB,EAAIpB,EAAE,IAAK,MAAO,CAAC,CAACA,EAAE,kBAAoB,CAC5D,kBAAmB,GACnB,OAAQP,EAAEO,EAAE,IAAI,SAAU,EAAC,QAAQ,IAAKA,EAAE,UAAU,EAAE,MAAM,EAAE,EAAGA,EAAE,OAAQA,CAAC,EAAE,QAAS,CAC7H,CAC+B,CACD,OAAO4oB,CACV,EACD,SAAU,SAAStoB,EAAGd,EAAGJ,EAAG,CACxB,GAAWI,IAAP,IAAmBJ,EAAE,WAAT,GAAmB,OAAOI,EAC1C,IAAIopB,EAAItoB,EAAE,QAAQlB,EAAE,OAAQ,EAAE,EAC9B,OAAOwpB,GAAKA,EAAIA,EAAE,QAAQxpB,EAAE,OAAQ,EAAE,GAAG,QAAQ,IAAI,UAAWY,EAAE,aAAaZ,EAAE,cAAc,EAAG,GAAG,EAAG,EAAE,EACnGA,EAAE,YAAY,OAAO,CAAC,IAA7B,KAAmCwpB,EAAIA,EAAE,QAAQ,IAAI,OAAOxpB,EAAE,YAAY,OAAO,CAAC,EAAG,GAAG,EAAG,GAAG,GAC9FA,EAAE,gBAAyBA,EAAE,aAAT,IAA8BwpB,EAAE,QAAQxpB,EAAE,UAAU,IAA7B,KAAmCwpB,EAAIA,EAAE,QAAQ5oB,EAAE,YAAY,KAAK,KAAMZ,EAAE,UAAU,EAAG,GAAG,GACvIwpB,GAAKA,EAAIA,EAAE,QAAQ,IAAI,OAAO,OAAU5oB,EAAE,aAAaZ,EAAE,eAAe,KAAK,CAAC,EAAG,GAAG,GAAG,QAAQ,IAAI,UAAWY,EAAE,aAAaZ,EAAE,eAAe,IAAI,EAAI,GAAG,EAAG,EAAE,EAAG,OAAOwpB,CAAC,GAAKA,CACjL,EACD,WAAY,SAAStoB,EAAGd,EAAG,CACvB,IAAIJ,GAAKI,EAAE,aAAec,EAAE,QAAQ,UAAYA,GAAG,KAAK,EAAE,EAC1D,OAAOlB,GAAKA,GAAKA,GAAKA,GAAKA,EAAIA,EAAE,QAAQ,IAAI,OAAO,OAAUY,EAAE,aAAaR,EAAE,eAAe,KAAK,CAAC,EAAG,GAAG,GAAG,QAAQ,IAAI,UAAWQ,EAAE,aAAaR,EAAE,eAAe,IAAI,EAAI,GAAG,EAAG,EAAE,GAAG,QAAQA,EAAE,OAAQ,EAAE,GAAG,QAAQA,EAAE,OAAQ,EAAE,GAAG,QAAQ,IAAI,UAAWQ,EAAE,aAAaR,EAAE,cAAc,EAAI,aAAc,GAAG,EAAG,IAAI,EAAWA,EAAE,aAAV,MAAyBJ,EAAIA,EAAE,WAAYY,EAAE,aAAaR,EAAE,UAAU,EAAG,GAAG,GAAI,SAASJ,CAAC,CACvZ,EACD,aAAc,SAASkB,EAAGd,EAAG,CACzB,IAAIJ,EACJkB,GAAclB,EAAIkB,KAAd,MAA+BlB,IAAX,OAAeA,EAAI,GAC3C,IAAIwpB,EAAIppB,EAAE,YAAc,IACxB,SAASA,EAAE,MAAM,IAAMA,EAAE,OAAS,SAASA,EAAE,MAAM,GAAgB,OAAOc,GAAnB,UAAqCd,EAAE,YAAf,UAAmCopB,IAAP,KAAatoB,EAAIA,EAAE,SAAQ,EAAG,QAAQ,IAAKsoB,CAAC,GACvJ,IAAIrpB,EAAYe,EAAE,OAAO,CAAC,IAAlB,KAAuBA,EAAE,OAAO,CAAC,IAAMd,EAAE,eAAe,MAAO89B,EAAIh9B,EAAE,MAAMsoB,CAAC,EAAGzpB,EAAIm+B,EAAE,CAAC,EAAE,QAAQ,YAAa,EAAE,EAAG3U,EAAI2U,EAAE,OAAS,EAAIA,EAAE,CAAC,EAAE,QAAQ,UAAW,EAAE,EAAI,GAAIt8B,EAAIs8B,EAAE,OAAS,EAC9Lh9B,EAAInB,GAAYwpB,IAAP,GAAWC,EAAID,EAAIA,GAC5B,IAAIvnB,EAAI,EACR,GAAWwnB,IAAP,KAAaxnB,EAAI5B,EAAE,eAAiBA,EAAE,OAASmpB,EAAE,OAASnpB,EAAE,OAASmpB,EAAE,OAASnpB,EAAE,OAC/EmpB,IAAP,IAAY,CAACnpB,EAAE,gBAAiB,CAC5B,IAAIH,EAAI,KAAK,IAAI,GAAI+B,GAAK,CAAC,EAC3Bd,EAAIA,EAAE,WAAYN,EAAE,aAAa4oB,CAAC,EAAG,GAAG,EAAG,MAAM,WAAWtoB,CAAC,CAAC,IAAMA,GAAKd,EAAE,WAAW,WAAWc,CAAC,EAAIjB,CAAC,EAAIA,GAAG,QAAQ+B,CAAC,GACvHd,EAAIA,EAAE,SAAQ,EAAG,QAAQ,IAAKsoB,CAAC,CAClC,CACD,GAAUppB,EAAE,SAAR,GAAyBc,EAAE,QAAQsoB,CAAC,IAAlB,KAAwBtoB,EAAIA,EAAE,UAAU,EAAGA,EAAE,QAAQsoB,CAAC,CAAC,GACpEppB,EAAE,MAAX,MAA2BA,EAAE,MAAX,KAAgB,CAC9B,IAAIuB,EAAIT,EAAE,SAAQ,EAAG,QAAQsoB,EAAG,GAAG,EAC1BppB,EAAE,MAAX,MAAkBuB,EAAIvB,EAAE,IAAMc,EAAId,EAAE,IAAI,SAAQ,EAAG,QAAQ,IAAKopB,CAAC,EAAappB,EAAE,MAAX,MAAkBuB,EAAIvB,EAAE,MAAQc,EAAId,EAAE,IAAI,SAAQ,EAAG,QAAQ,IAAKopB,CAAC,EAC3I,CACD,OAAOrpB,GAAae,EAAE,OAAO,CAAC,IAAlB,MAAwBA,EAAI,IAAMA,GAAIb,EAAEa,EAAE,SAAU,EAAC,MAAM,EAAE,EAAGc,EAAG5B,EAAGwB,CAAC,EAAE,KAAK,EAAE,CAC/F,EACD,cAAe,SAASV,EAAGd,EAAGJ,EAAGwpB,EAAG,CAChC,SAASrpB,EAAEe,EAAGd,EAAG,CACb,GAAWopB,EAAE,iBAAT,IAA2BppB,EAAG,CAC9B,IAAIJ,EAAIkB,EAAE,QAAQsoB,EAAE,UAAU,EACvBxpB,IAAP,IAAYkB,EAAE,OAAOlB,EAAG,CAAC,CAC5B,CACD,GAAWwpB,EAAE,iBAAT,GAAyB,MAAcxpB,EAAIkB,EAAE,QAAQsoB,EAAE,cAAc,KAAtC,IAA4CtoB,EAAE,OAAOlB,EAAG,CAAC,EAC5F,OAAOkB,CACV,CACD,IAAIg9B,EAAGn+B,EACP,GAAIypB,EAAE,qBAAuBzpB,EAAI,SAASmB,EAAGd,EAAG,CAC5C,IAAIJ,EAAI,IAAI,OAAO,MAAeI,EAAE,eAAe,QAAxB,MAAoCQ,EAAE,aAAaR,EAAE,eAAe,KAAK,EAAI,IAAM,OAAUQ,EAAE,aAAaR,EAAE,MAAM,EAAI,YAAeQ,EAAE,aAAaR,EAAE,MAAM,GAAWA,EAAE,eAAe,MAAvB,MAAkCQ,EAAE,aAAaR,EAAE,eAAe,IAAI,EAAI,IAAM,IAAM,IAAI,EAAE,KAAKc,EAAE,MAAK,EAAG,QAAS,EAAC,KAAK,EAAE,CAAC,EAAGsoB,EAAIxpB,EAAIA,EAAE,CAAC,EAAI,GAAIG,EAAI,GACrV,OAAOqpB,IAAMA,EAAIA,EAAE,MAAMppB,EAAE,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,EAAGD,EAAI,IAAI,OAAO,MAAQC,EAAE,eAAiB,IAAI,EAAE,KAAKopB,CAAC,GAC3G,EAAE,CAACrpB,GAAK,EAAEA,EAAE,CAAC,EAAE,OAAS,GAAKA,EAAE,CAAC,EAAE,OAAS,GAAKA,EAAE,CAAC,EAAE,OAASqpB,EAAE,UAAYrpB,CAC/E,EAACC,EAAGopB,CAAC,GAAI,QAAS5nB,EAAIxB,EAAE,KAAK,EAAE,EAAE,YAAYL,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,QAAO,EAAG,KAAK,EAAE,CAAC,GAAKA,EAAE,CAAC,GAAKA,EAAE,MAAQ,EAAI,GAAIiC,EAAIjC,EAAE,CAAC,GAAKA,EAAE,MAAQ,EAAI,EAAGE,EAAIF,EAAE,CAAC,EAAE,OAASiC,EAAG/B,EAAI,EAAGA,IAAK,KAAK,QAAQ,eAAe,OAAO2B,EAAI3B,EAAG,CAAC,EACvN,OAAOG,EAAEwB,EAAI3B,CAAC,EACd,GAAIiB,EAAG,OAAQA,EAAE,KAAI,CACnB,IAAK,OACL,IAAK,WACH,GAAasoB,EAAE,MAAX,KAAgB,CAChB,IAAI7nB,EAAI6nB,EAAE,SAASppB,EAAE,MAAO,EAAC,QAAS,EAAC,KAAK,EAAE,EAAG,OAAQmpB,EAAE,OAAO,CAAE,EAAEC,EAAG,CACrE,eAAgB,EACnB,EAAC,EACF,GAAaA,EAAE,MAAX,MAAkB7nB,EAAI6nB,EAAE,IAAK,MAAO,CACpC,kBAAmB,GACnB,OAAQnpB,EAAEmpB,EAAE,IAAI,SAAU,EAAC,QAAQ,IAAKA,EAAE,UAAU,EAAE,MAAM,EAAE,EAAGA,EAAE,OAAQA,CAAC,EAAE,QAAS,CACjI,CACmC,CACD,GAAIppB,EAAEA,EAAE,OAAS,CAAC,IAAMopB,EAAE,eAAe,MAAO,CAC5C,IAAI1nB,EAAI,IAAI,OAAO,MAAc0nB,EAAE,eAAe,OAAvB,MAAmC5oB,EAAE,aAAa4oB,EAAE,eAAe,KAAK,EAAI,IAAM,OAAU5oB,EAAE,aAAa4oB,EAAE,MAAM,EAAI,YAAe5oB,EAAE,aAAa4oB,EAAE,MAAM,GAAWA,EAAE,eAAe,MAAvB,MAAkC5oB,EAAE,aAAa4oB,EAAE,eAAe,IAAI,EAAI,IAAM,IAAM,IAAI,EAAE,KAAKrpB,EAAEC,EAAE,MAAO,EAAE,EAAE,EAAE,QAAS,EAAC,KAAK,EAAE,CAAC,GAC3T0B,EAAIA,EAAE,CAAC,EAAI,KAAjB,IAAyBo8B,EAAI,CACzB,kBAAmB,GACnB,OAAQ,CAAE,CAAG,CACvD,EACA,MAAoD1U,EAAE,aAAT,IACPppB,EAAE,QAAQopB,EAAE,UAAU,IAAMA,EAAE,OAAO,SAAW0U,GAAKA,EAAE,OAASA,EAAE,OAAO,OAAO,EAAG,EAAI1U,EAAE,OAAO,MAAM,GAAKppB,EAAE,OAAO,EAAG,EAAIopB,EAAE,OAAO,MAAM,EAC1I0U,EAAI,CACA,kBAAmB,GACnB,OAAQ/9B,EAAEC,CAAC,CACd,IAEL,GAAIopB,EAAE,oBAAqB,CACvB,IAAIlpB,GAAK49B,EAAIA,GAAK,CAAE,IAAKA,EAAE,QAAU99B,EAAE,MAAO,EAAC,QAAO,EACtD89B,EAAE,kBAAoB,GAAIA,EAAE,OAAS79B,EAAEC,EAAGkpB,EAAE,OAAQA,EAAG,EAAE,EAAE,QAAO,CACrE,CACJ,CACD,OAAO0U,CACV,EACD,UAAW,SAASh9B,EAAGd,EAAGJ,EAAGwpB,EAAG,CAC5B,IAAI5oB,EAAGT,EAAIopB,EAAE,IAAI,EACjB,GAASroB,EAAE,UAAP,EAAiB,CACjB,IAAInB,EAAG6B,EAAIV,EAAE,IACb,IAAKnB,EAAIypB,EAAE,WAAaA,EAAE,UAAU5nB,CAAC,IAAM7B,EAAE,OAAS,EAAG,OAAO,KAAK,UAAU,WAAW,KAAK,KAAM,WAAW,KAAK,UAAU,cAAe,GAAI,SAASA,CAAC,CAAC,EAC7JI,EAAE,QAAQ,UAAU,EAAG,EAC1B,CACD,GAAIe,EAAE,QAAS,OAAQA,EAAE,IAAG,CAC1B,KAAKg9B,EAAE,KAAK,QACV,OAAO,KAAK,UAAU,WAAW,KAAK,KAAM,WAAW,KAAK,UAAU,cAAa,CAAE,EAAI,SAAS1U,EAAE,IAAI,CAAC,EACzGrpB,EAAE,QAAQ,UAAU,EAAG,GAEzB,KAAK+9B,EAAE,KAAK,UACV,OAAO,KAAK,UAAU,WAAW,KAAK,KAAM,WAAW,KAAK,UAAU,cAAa,CAAE,EAAI,SAAS1U,EAAE,IAAI,CAAC,EACzGrpB,EAAE,QAAQ,UAAU,EAAG,EAC1B,CACD,GAAI,CAACe,EAAE,WAAaA,EAAE,MAAQg9B,EAAE,KAAK,QAAUh9B,EAAE,MAAQg9B,EAAE,KAAK,WAAah9B,EAAE,MAAQg9B,EAAE,KAAK,mBAAqBl+B,EAAE,QAAUI,EAAE,OAAQ,CACrI,GAAIA,EAAEc,EAAE,MAAQg9B,EAAE,KAAK,OAASl+B,EAAE,MAAQ,EAAIA,EAAE,GAAG,IAAMwpB,EAAE,eAAe,MAAO,OAAO5oB,EAAIR,EAAE,MAAO,EAAC,QAAS,EACxGopB,EAAE,eAAe,QAAxB,IAAiC5oB,EAAE,MAAK,EAAW4oB,EAAE,eAAe,OAAxB,IAAgC5oB,EAAE,IAAK,EACnFT,EAAE,QAAQ,WAAY,CAAES,EAAE,KAAK,EAAE,EAAGZ,EAAE,MAAO,EAAG,GAChD,GAAWwpB,EAAE,cAAT,GAAsB,CACtB,IAAIxnB,EAAG/B,EAAIG,EAAE,QAAQopB,EAAE,UAAU,EACjC,GAAIA,EAAE,gBACF,GAAUvpB,IAAN,EAAS,OAAQW,EAAIR,EAAE,MAAO,EAAC,QAAO,GAAI,MAAOD,EAAE,QAAQ,WAAY,CAAES,EAAE,KAAK,EAAE,EAAGZ,EAAE,OAASY,EAAE,OAASA,EAAE,OAASZ,EAAE,KAAK,CAAE,EACnI,WACcC,IAAP,KAAaD,EAAE,MAAQC,GAAKD,EAAE,IAAMC,GAAKiB,EAAE,MAAQg9B,EAAE,KAAK,SAAWl+B,EAAE,QAAUC,GAAKD,EAAE,MAAQ,IAAMC,IAAK,OAAOD,EAAE,QAAUA,EAAE,MAAQkB,EAAE,MAAQg9B,EAAE,KAAK,WAAah9B,EAAE,MAAQg9B,EAAE,KAAK,iBAAmBl+B,EAAE,QAAUkB,EAAE,MAAQg9B,EAAE,KAAK,QAAUl+B,EAAE,MAAQ,IAAMC,IAAM+B,EAAIunB,EAAE,OAAO,GAAIvpB,CAAC,EACpSA,EAAE,QAASA,EAAE,SAAUY,EAAIR,EAAE,QAAQ,QAAS,GAAE,OAAOQ,EAAE,OAASZ,EAAE,MAAOA,EAAE,MAAQA,EAAE,IAAM,CAAC,EAC9FY,EAAIP,EAAEO,EAAG4oB,EAAE,OAAQA,CAAC,EAAE,KAAK,EAAE,EAAGxnB,IAAMhC,EAAIgC,GAAI7B,EAAE,QAAQ,WAAY,CAAES,EAAGZ,EAAE,OAASY,EAAE,OAASX,EAAI,EAAID,EAAE,KAAK,CAAE,EAChH,EACH,CACJ,CACJ,CACJ,EACD,SAAU,CACN,OAAQ,GACR,eAAgB,IAChB,MAAO,UACP,OAAQ,EACR,eAAgB,EACnB,EACD,QAAS,CACL,MAAO,SACV,EACD,QAAS,CACL,MAAO,UACP,UAAW,UACX,OAAQ,CACX,EACD,WAAY,CACR,MAAO,UACP,IAAK,EACL,IAAK,IACL,OAAQ,KACR,OAAQ,EACR,WAAY,EACf,EACD,SAAU,CACN,MAAO,UACP,MAAO,SAASkB,EAAG,CACf,MAAO,IAAMA,EAAE,eAAiB,YAAcA,EAAE,eAAiB,WACpE,EACD,eAAgB,IAChB,WAAY,IACZ,YAAa,IACb,OAAQ,EACR,eAAgB,EACnB,CACvB,CAAmB,CACJ,EACD,KAAM,SAASA,EAAGd,EAAG,CACjB,OAAO,eAAeA,EAAG,aAAc,CACnC,MAAO,EACV,GAAGA,EAAE,QAAU,OAChB,IAAIJ,EAAI,EAAiB,OAAO,OAAtB,KAAgC,CAAC,OAAO,UAAY,CAAC,OAAO,SAAS,eAC/EI,EAAE,QAAUJ,EAAI,OAAS,EAC5B,EACD,KAAM,SAASkB,EAAGd,EAAGJ,EAAG,CACpB,OAAO,eAAeI,EAAG,aAAc,CACnC,MAAO,EACV,GAAGA,EAAE,wBAA0B,SAASc,EAAGd,EAAG,CAC3C,IAAIJ,EAAIkB,EAAIA,EAAE,UAAY,KAC1B,GAAIsoB,EAAE,IACF,GAAItoB,EAAE,UAAU,UAAS,IAAOd,IAAMc,EAAE,cAAgBd,GAAYc,EAAE,cAAT,IAAuB,CAChF,IAAIN,EAAIs9B,EAAE,UAAU,KAAKl+B,CAAC,EAAE,MAAK,EAAIG,EAAIe,EAAE,UAAU,UAAS,EAC9D,GAAIf,IAAMC,EAAG,CACT,IAAIL,EAAIm+B,EAAE,qBAAqB,KAAKl+B,CAAC,EAC9BD,IAAP,IAAYI,IAAM+9B,EAAE,kBAAkB,KAAKl+B,CAAC,EAAE,KAAK,EAAE,EAAIY,EAAI,CAAE,EAAUb,IAAP,IAAYM,EAAE,KAAKL,EAAGY,CAAC,EACzFX,EAAEiB,EAAGN,CAAC,CACT,CACJ,OACEM,EAAE,cAAgBd,IAAMc,EAAE,YAAcd,EAAUc,EAAE,cAAT,IAAwBA,EAAE,gBAAgB,aAAa,EAC5G,EAAEd,EAAE,gBAAkBwB,EAAGxB,EAAE,SAAW4B,EAAG5B,EAAE,kBAAoBC,EAAGD,EAAE,cAAgB,SAASc,EAAG,CAC7F,IAAId,EAAIc,EAAIA,EAAE,UAAY,KAAMlB,EAAII,EAAE,KAAMopB,EAAIppB,EAAE,QAClD,GAAIc,EAAG,CACH,GAAeA,EAAE,YAAb,OAAwB,OAAOA,EAAE,MACrCA,EAAE,WAAaA,EAAE,UAAU,cAAgBU,EAAEV,EAAGA,EAAE,UAAU,UAAU,EAAE,CAAC,CAC5E,CACD,QAASN,EAAI,GAAIT,EAAIqpB,EAAE,eAAgBzpB,EAAI,EAAGwpB,EAAIppB,EAAE,OAAQJ,EAAIwpB,EAAGxpB,IAAKI,EAAEJ,CAAC,GAAKI,EAAEJ,CAAC,EAAE,QAAeI,EAAEJ,CAAC,EAAE,MAAM,QAAhB,GAA0B,MAAM,QAAQypB,EAAE,QAAQ,GAAYrpB,EAAEJ,CAAC,EAAE,iBAAZ,KAA+Ba,EAAE,KAAKT,EAAEJ,CAAC,EAAE,KAAK,EACtM,IAAIM,EAAUO,EAAE,SAAR,EAAiB,IAAMR,EAAE,MAAQQ,EAAE,QAAS,EAAGA,GAAG,KAAK,EAAE,EACjE,GAAkB,OAAOZ,EAAE,UAAvB,WAAiC,CACjC,IAAIgC,GAAK5B,EAAE,MAAQ89B,EAAE,UAAU,KAAK99B,CAAC,EAAE,MAAO,EAAC,QAAS,EAAG89B,EAAE,UAAU,KAAK99B,CAAC,GAAG,KAAK,EAAE,EACvFC,EAAIL,EAAE,SAAS,KAAKI,EAAG4B,EAAG3B,EAAGL,CAAC,CACjC,CACD,OAAOK,CAC7B,EAAqBD,EAAE,YAAcH,EACnB,IAAIupB,EAAIxpB,EAAE,IAAI,EAAGY,EAAIZ,EAAE,IAAI,EAAGG,EAAIH,EAAE,IAAI,EAAGk+B,EAAIl+B,EAAE,IAAI,EAAGD,EAAIC,EAAE,IAAI,EAAGupB,EAAIvpB,EAAE,IAAI,EAC/E,SAAS4B,EAAEV,EAAGd,EAAGJ,EAAGwpB,EAAG,CACnB,IAAI5oB,EAAIM,EAAIA,EAAE,UAAY,KAAMf,EAAIS,EAAE,KACtCM,EAAE,UAAU,aAAe,GAAWsoB,IAAP,IAA0B,OAAOrpB,EAAE,cAAvB,aAAwCC,EAAID,EAAE,aAAa,KAAKS,EAAGR,EAAGD,CAAC,GAAKC,GACvH4B,EAAEd,EAAG,GAAI,GAAId,GAAKA,GAAK,IAAI,SAAQ,EAAG,MAAM,EAAE,EAAGJ,CAAC,EAAGY,EAAE,UAAYA,EAAE,UAAU,EAAE,GAChFT,EAAE,sBAAwBA,EAAE,kBAAoBe,EAAE,UAAU,UAAW,IAAKg9B,EAAE,kBAAkB,KAAKt9B,CAAC,EAAE,KAAK,EAAE,GAAYs9B,EAAE,qBAAqB,KAAKt9B,CAAC,IAApC,IAAyCM,EAAE,UAAU,UAAU,EAAE,CACzL,CACD,SAASb,EAAEa,EAAG,CACVA,EAAE,OAAS,EACX,QAASd,EAAGJ,EAAIupB,EAAE,gBAAgB,KAAK,KAAM,GAAI,EAAG,GAAI,OAAQ,EAAE,GAAenpB,EAAIJ,EAAE,MAAK,KAAvB,QAA8BkB,EAAE,KAAKd,CAAC,EAC3G,OAAOc,CACV,CACD,SAASc,EAAEd,EAAGd,EAAGJ,EAAGwpB,EAAGrpB,EAAG,CACtB,IAAIyB,EAAGvB,EAAIa,EAAIA,EAAE,UAAY,KAAMc,EAAI3B,EAAE,QAASsB,EAAItB,EAAE,KAAMyB,EAAIzB,EAAE,cAAeC,EAAIkpB,EAAE,MAAO,EAAEvnB,EAAI,GAAIF,EAAI,GAAItB,EAAIkB,EAAE,0BACxHA,EAAE,0BAA4B,GAAIu8B,EAAE,aAAa,KAAK79B,EAAG,EAAE,EAAGA,EAAE,QAAU,EAAG0B,EAAIJ,EAAE,WAAau8B,EAAE,0BAA0B,KAAK79B,EAAG,CAChI,MAAO,EACP,IAAK,CAC/B,EAAyB,GAAWsB,EAAE,iBAAT,GAA0B,aAAe,MAAM,EAAE,MAAQ,EAAGK,EAAE,EAAID,EAAG1B,EAAE,SAAW,CACrF,MAAO0B,CACjC,EACsB,IAAIF,EAAI,CAAE,EAAEZ,EAAIZ,EAAE,SAClB,GAAIC,EAAE,QAAS,SAASY,GAAGd,GAAG,CAC1B,GAAec,KAAX,OAAc,CACd,IAAIsoB,GAAI,IAAI1nB,EAAE,MAAM,WAAW,EAC/B0nB,GAAE,IAAMtoB,GAAGe,GAAKf,GAChB,IAAIf,GAAI+9B,EAAE,qBAAqB,KAAK79B,EAAG,OAAQ,EAAE,GAChD,SAASa,GAAGd,GAAG,CACZ,QAASJ,GAAIupB,EAAE,gBAAgB,KAAKlpB,EAAG,GAAI,CAAC,EAAE,MAAMa,GAAGg9B,EAAE,SAAS,KAAK79B,EAAGa,GAAG,GAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,KAAM,EAAE,EAAGsoB,GAAIxpB,GAAE,QAAQI,EAAC,EAAGopB,GAAI,GAAaxpB,GAAEwpB,GAAI,CAAC,IAAf,KAAoBA,KACjK,IAAI5oB,GAAU4oB,KAAN,GAAW,CAAC0U,EAAE,OAAO,KAAK79B,EAAGa,EAAC,IAAMqoB,EAAE,QAAQ,KAAKlpB,EAAGa,EAAC,EAAE,MAAM,YAAcd,GAAE,OAAO,CAAC,GAAYmpB,EAAE,QAAQ,KAAKlpB,EAAGa,EAAC,EAAE,MAAM,SAAlC,IAA4CqoB,EAAE,QAAQ,KAAKlpB,EAAGa,EAAC,EAAE,MAAM,YAAc,IAAMd,GAAE,OAAO,CAAC,GAAampB,EAAE,QAAQ,KAAKlpB,EAAGa,EAAC,EAAE,MAAM,YAAnC,MAAiDqoB,EAAE,QAAQ,KAAKlpB,EAAGa,GAAI,CAAC,EAAE,MAAM,YAAcd,GAAE,OAAO,CAAC,GAAYmpB,EAAE,QAAQ,KAAKlpB,EAAGa,GAAI,CAAC,EAAE,MAAM,SAAtC,IAAgDqoB,EAAE,QAAQ,KAAKlpB,EAAGa,GAAI,CAAC,EAAE,MAAM,YAAc,IAAMd,GAAE,OAAO,CAAC,IACxa,GAAI,CAACQ,IAAK4oB,GAAI,GAAK,CAAC0U,EAAE,OAAO,KAAK79B,EAAGa,GAAG,GAAI,EAAE,EAAG,CAC7C,IAAIf,GAAI+9B,EAAE,SAAS,KAAK79B,EAAGa,EAAC,EAC5Bb,EAAE,SAAS,MAAQF,KAAME,EAAE,SAAW,CAClC,MAAOF,EACjD,EACmC,CACD,OAAOS,EACV,GAACmB,EAAGE,CAAC,EACIL,EAAIhB,EAAE,cAAc,cAAc,KAAKP,EAAGmpB,GAAG,GAAI,GAAIxpB,EAAGG,GAAI,CAAC,GAD5DyB,EAAIhB,EAAE,cAAc,cAAc,KAAKP,EAAGmpB,GAAG,GAAI,GAAIxpB,EAAGK,EAAE,SAAS,KAAK,KAAO0B,EAAI1B,EAAE,SAAS,MAAQ,EACjH4B,EAAI,IAAsEL,GAAgBA,EAAE,MAAb,QAAoBI,EAAE,eAAeJ,EAAE,GAAG,GAAYI,EAAE,eAAeJ,EAAE,GAAG,EAAE,MAAM,SAArC,IAA0DI,EAAE,eAAeJ,EAAE,GAAG,EAAE,cAAnC,SAAmDC,EAAE,KAAKD,EAAE,GAAG,EAC5OvB,EAAE,QAAUuB,EAAE,gBAAkBA,EAAE,IAAM,IAAK3B,EAAE,KAAKI,EAAG,OAAQ69B,EAAE,UAAU,KAAK79B,CAAC,EAAGuB,EAAE,gBAAiB4nB,GAAG,EAAE,EAC5GnpB,EAAE,SAAW,CACT,MAAOuB,EAAE,gBACT,IAAKA,EAAE,eACV,EAAEX,EAAIZ,EAAE,UAAuB2B,EAAE,eAAe5B,EAAC,IAA7B,QAAkCE,EAAEF,EAAC,IAAMmpB,EAAE,eAAe,KAAKlpB,EAAGD,EAAC,GAAK89B,EAAE,OAAO,KAAK79B,EAAGD,GAAG,EAAE,EAAIC,EAAE,SAAS,QAAUA,EAAE,SAAWY,CAC9J,CAC3B,GAA2BY,EAAE,OAAS,EAAG,CACf,IAAIrB,EAAGD,EAAG8B,EAAI67B,EAAE,SAAS,KAAK79B,EAAG,GAAI,OAAQ,EAAE,EAC/C,GAAI,CAACN,EAAE,WAAW,KAAKM,EAAG69B,EAAE,UAAU,KAAK79B,CAAC,CAAC,GAAKwB,EAAE,QAAUQ,GAAKtC,EAAE,WAAW,KAAKM,EAAG69B,EAAE,UAAU,KAAK79B,CAAC,CAAC,GAAKwB,EAAE,OAAS,GAAKA,EAAE,SAAWQ,GAAWR,EAAE,CAAC,IAAT,GAAY,QAASW,EAAIH,GAAe7B,EAAIqB,EAAE,WAAlB,QAA8B,GAAIrB,EAAIgC,EAAG,CACnN,IAAIL,EAAI,IAAIL,EAAE,MAAM,WAAW,EAC/B,IAAKvB,EAAIyB,EAAE,eAAexB,CAAC,GAAG,eAAiB,GAAI2B,EAAE,IAAM5B,EAAE,OAAQqB,EAAIhB,EAAE,cAAc,cAAc,KAAKP,EAAG8B,EAAG,GAAI,GAAInC,EAAGwC,CAAC,IAAiBZ,EAAE,MAAb,QAAoBA,EAAE,MAAQpB,GAAKwB,EAAE,eAAeJ,EAAE,GAAG,GAAYI,EAAE,eAAeJ,EAAE,GAAG,EAAE,MAAM,SAArC,GAA6CC,EAAE,KAAKD,EAAE,GAAG,UAAY,CAACA,EAAG,MAC3QY,GACH,EACJ,CACDpC,GAAKH,EAAE,KAAKI,EAAGa,EAAGg9B,EAAE,UAAU,KAAK79B,CAAC,EAAGuB,EAAIA,EAAE,gBAAkBvB,EAAE,SAAS,MAAOF,GAAK,IAAI2B,EAAE,MAAM,UAAU,EAAG3B,IAAkBA,EAAE,OAAd,SAAsBE,EAAE,YAAc69B,EAAE,UAAU,KAAK79B,CAAC,EAAE,KAAK,EAAE,GAAiBF,EAAE,OAAd,QAAmB,EAC9MwB,EAAE,0BAA4BlB,CACjC,CACD,SAASR,EAAEiB,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAG,CACtB,IAAI2oB,EAAIroB,EAAIA,EAAE,UAAY,KAAMU,EAAI2nB,EAAE,KAAMlpB,EAAIkpB,EAAE,cAClD,GAAIC,GAAmB,OAAO5nB,EAAE,eAAvB,WAAsC,CAC3C,IAAII,EAAIJ,EAAE,cAAc,KAAK2nB,EAAGC,EAAGppB,EAAGJ,EAAG4B,CAAC,EAC1C,GAAII,EAAG,CACH,GAAIA,EAAE,kBAAmB,CACrB,IAAI/B,EAAI+B,EAAE,kBACVjC,EAAE,kBAAkB,KAAKwpB,EAAUtpB,IAAP,GAAWA,EAAIA,EAAE,MAAOA,EAAE,IAAK+B,EAAE,QAAU5B,CAAC,EAAGA,EAAI89B,EAAE,UAAU,KAAK3U,EAAG,EAAE,CACxG,CACUvpB,IAAX,SAAiBA,EAAegC,EAAE,QAAb,OAAqBA,EAAE,MAAQhC,EACvD,CACJ,CACD,GAAekB,IAAX,SAAiBA,EAAE,UAAU,UAAUd,EAAE,KAAK,EAAE,CAAC,EAAcJ,IAAX,QAA2BwpB,IAAX,QAA2BA,EAAE,OAAb,QAAqB0U,EAAE,MAAM,KAAK3U,EAAGroB,EAAGlB,EAAG,OAAQ,OAAmBwpB,IAAX,QAA8BA,EAAE,OAAhB,YAAyBA,EAAE,MAAQrpB,EAAE,KAAK,QAAUqpB,EAAE,MAAQrpB,EAAE,KAAK,UAAU,EACvOe,EAAE,UAAU,kBAAvB,QAA0CA,EAAE,UAAU,gBAAgBlB,CAAC,EAAUY,IAAP,IAAW,CACjF,IAAIe,EAAItB,EAAEa,CAAC,EAAGY,EAAIZ,EAAE,UAAU,YAC9BA,EAAE,UAAU,eAAiB,GAAIS,EAAE,QAAQ,OAAO,EAAG,WAAY,UAAW,CACxEG,IAAMo8B,EAAE,kBAAkB,KAAK3U,CAAC,EAAE,KAAK,EAAE,EAAI5nB,EAAE,QAAQ,SAAS,EAAW5B,EAAE,WAAW,KAAKwpB,EAAGnpB,CAAC,IAA7B,IAAkCuB,EAAE,QAAQ,UAAU,CAC7H,EAAG,CAAC,CACR,CACJ,CACJ,EACD,KAAM,SAAST,EAAGd,EAAGJ,EAAG,CACpB,OAAO,eAAeI,EAAG,aAAc,CACnC,MAAO,EACV,GAAGA,EAAE,QAAU,OAChB,IAAIopB,EAAIlpB,EAAEN,EAAE,IAAI,CAAC,EAAGY,EAAIN,EAAEN,EAAE,IAAI,CAAC,EAAGG,EAAIG,EAAEN,EAAE,IAAI,CAAC,EAAGk+B,EAAIl+B,EAAE,IAAI,EAAGD,EAAIO,EAAEN,EAAE,IAAI,CAAC,EAAGupB,EAAIvpB,EAAE,IAAI,EAAG4B,EAAI5B,EAAE,GAAG,EAAGK,EAAIL,EAAE,IAAI,EAAGgC,EAAIhC,EAAE,IAAI,EAAGC,EAAID,EAAE,IAAI,EAAG2B,EAAI3B,EAAE,IAAI,EAC3J,SAAS8B,EAAEZ,EAAG,CACV,OAAOY,EAAkB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAASZ,EAAG,CACvF,OAAO,OAAOA,CACjB,EAAG,SAASA,EAAG,CACZ,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAC5I,EAAyBY,EAAEZ,CAAC,CACT,CACD,SAASZ,EAAEY,EAAG,CACV,OAAOA,GAAKA,EAAE,WAAaA,EAAI,CAC3B,QAASA,CACnC,CACmB,CACD,IAAIe,EAAIlC,EAAE,QAAQ,SAAUgC,EAAI,kBAChC,SAAStB,EAAES,EAAGd,EAAGJ,EAAG,CAChB,GAAI,EAAE,gBAAgBS,GAAI,OAAO,IAAIA,EAAES,EAAGd,EAAGJ,CAAC,EAC9C,KAAK,cAAgBG,EAAE,QAAS,KAAK,GAAK,OAAQ,KAAK,OAAS,GAAI,KAAK,QAAU,OAC5EH,IAAP,KAAmC,OAAO,UAAU,SAAS,KAAKkB,CAAC,IAAtD,kBAA0Dd,EAAIc,GAAKd,EAAIA,GAAK,CAAE,EAC3Fc,IAAMd,EAAE,MAAQc,IAAK,KAAK,KAAOf,EAAE,QAAQ,OAAO,GAAI,GAAI,KAAK,SAAUC,CAAC,EAAG,KAAK,aAAeA,GAAgBA,EAAE,cAAb,OACtG,KAAK,YAAcA,GAAK,CAAE,EAAEyB,EAAE,KAAK,KAAK,MAAOzB,EAAG,KAAK,IAAI,GAAI,KAAK,aAAe,GACnF,KAAK,UAAY,OAAQ,KAAK,IAAM,OAAQ,KAAK,eAAiB,GAAI,KAAK,gBAAkB,GAC7F,KAAK,UAAY,GAAI,KAAK,UAAW,KAAK,WAAa,GAAI,KAAK,QAAU,EAAG,KAAK,oBAAsB,OACxG,KAAK,YAAc,GAAI,KAAK,cAAgB,EAC/C,CACD,SAASyB,EAAEX,EAAGd,EAAGJ,EAAG,CAChB,IAAIwpB,EAAI/oB,EAAE,UAAU,QAAQS,CAAC,EAC7B,OAAOsoB,GAAKA,EAAE,OAAS3nB,EAAE2nB,EAAE,MAAO,OAAQxpB,CAAC,EAAGG,EAAE,QAAQ,OAAO,GAAIH,EAAGwpB,CAAC,EAAGrpB,EAAE,QAAQ,OAAO,GAAIH,EAAGI,CAAC,EACnG,KAAgBJ,EAAE,OAAX,OAAoBA,EAAE,KAAOkB,GAAI,GAC3C,CACDT,EAAE,UAAY,CACV,cAAe,iBACf,SAAU+oB,EAAE,QACZ,YAAa5oB,EAAE,QACf,QAAS,CAAE,EACX,WAAY,CAAE,EACd,KAAM,CAAE,EACR,IAAI,OAAQ,CACR,OAAO,KAAK,KAAK,OAAS,KAAK,KAAK,YACvC,EACD,KAAM,SAASM,EAAG,CACd,IAAId,EAAI,KACR,OAAmB,OAAOc,GAAnB,WAAyBA,EAAIe,EAAE,eAAef,CAAC,GAAKe,EAAE,iBAAiBf,CAAC,IAC9EA,EAAIA,EAAE,SAAW,CAAEA,GAAM,MAAM,QAAQA,CAAC,EAAIA,EAAI,CAAE,EAAC,MAAM,KAAKA,CAAC,GAAG,QAAS,SAASA,EAAGlB,EAAG,CACvF,IAAIwpB,EAAIrpB,EAAE,QAAQ,OAAO,GAAI,CAAE,EAAEC,EAAE,IAAI,EACvC,GAAI,SAASc,EAAGd,EAAGJ,EAAGwpB,EAAG,CACrB,SAAS5oB,EAAER,GAAGQ,GAAG,CACb,IAAIT,GAAWqpB,IAAP,GAAWppB,GAAIopB,EAAI,IAAMppB,IACvBQ,GAAeA,KAAX,OAAeA,GAAIM,EAAE,aAAaf,EAAC,KAAjD,OAAoE,OAAOS,IAAnB,WAA+BR,GAAE,QAAQ,IAAI,IAApB,EAAwBQ,GAAIb,EAAE,QAAQa,EAAC,EAAgBA,KAAZ,QAAgBA,GAAI,GAAgBA,KAAX,SAAiBA,GAAI,KAC1KZ,EAAEI,EAAC,EAAIQ,GACV,CACD,GAAWR,EAAE,uBAAT,GAA+B,CAC/B,IAAI89B,EAAG3U,EAAG3nB,EAAGvB,GAAG2B,GAAId,EAAE,aAAasoB,CAAC,EACpC,GAAIxnB,IAAYA,KAAP,KAAaA,GAAIA,GAAE,QAAQ,KAAM,GAAG,EAAGunB,EAAI,KAAK,MAAM,IAAMvnB,GAAI,GAAG,GAC5EunB,GAAG,IAAKlpB,MAAKuB,EAAI,OAAQ2nB,EAAG,GAAgBlpB,GAAE,gBAAd,QAA6B,CACzDuB,EAAI2nB,EAAElpB,EAAC,EACP,KACH,EACD,IAAK69B,KAAKt9B,EAAE,QAASgB,CAAC,EAAG5B,EAAE,OAAS6B,EAAE7B,EAAE,MAAOA,EAAGI,CAAC,EAAGA,EAAG,CACrD,GAAImpB,GAAG,IAAKlpB,MAAKuB,EAAI,OAAQ2nB,EAAG,GAAIlpB,GAAE,YAAW,IAAO69B,EAAE,YAAW,EAAI,CACrEt8B,EAAI2nB,EAAElpB,EAAC,EACP,KACH,EACDO,EAAEs9B,EAAGt8B,CAAC,CACT,CACJ,CACD,OAAAzB,EAAE,QAAQ,OAAO,GAAIC,EAAGJ,CAAC,GAAckB,EAAE,MAAZ,OAAmBd,EAAE,cAAgBc,EAAE,MAAM,UAAY,UAC3EA,EAAE,MAAZ,OAAmBd,EAAE,gBAAkBc,EAAE,IAAM,MAAOA,EAAE,gBAAgB,KAAK,EAC9Ed,EAAE,MAAQ,IACH,OAAO,KAAKJ,CAAC,EAAE,MACzB,EAACkB,EAAGsoB,EAAGrpB,EAAE,QAAQ,OAAO,GAAI,GAAIC,EAAE,WAAW,EAAGA,EAAE,aAAa,EAAG,CAC/D,IAAIQ,KAAQP,EAAE,iBAAiBmpB,EAAGppB,EAAE,YAAY,EACrCQ,IAAX,SAA4BM,EAAE,YAAb,SAA2BA,EAAE,UAAU,KAAK,WAAa,GAAIA,EAAE,UAAU,UAC1FA,EAAE,UAAY,IAAIT,EAAE,OAAQ,OAAQ,EAAE,EAAGS,EAAE,UAAU,KAAOsoB,EAAGtoB,EAAE,UAAU,aAAed,EAAE,aAC5Fc,EAAE,UAAU,YAAcf,EAAE,QAAQ,OAAO,GAAI,GAAIC,EAAE,WAAW,EAAGc,EAAE,UAAU,GAAKA,EACpFA,EAAE,UAAU,OAAUf,EAAE,SAASe,CAAC,EAAGA,EAAE,UAAU,QAAUN,EAAGT,EAAE,QAAQ,KAAKe,EAAGa,EAAG3B,EAAE,WAAW,EAChGwB,EAAE,KAAK,KAAKV,EAAE,SAAS,EAC1B,CAC/B,GAA+BA,GAAKA,EAAE,CAAC,GAAKA,EAAE,CAAC,EAAE,WAAa,IACvC,EACD,OAAQ,SAASA,EAAGd,EAAG,CACnB,OAAmB,OAAOc,GAAnB,SAAuB,KAAK,KAAKA,CAAC,EAAiBY,EAAEZ,CAAC,IAAhB,UAAqBf,EAAE,QAAQ,OAAO,KAAK,YAAae,CAAC,EACtG,KAAK,IAAad,IAAP,IAAY,KAAK,KAAK,KAAK,EAAE,EAAG,MAAQ,MACtD,EACD,cAAe,SAASc,EAAG,CACvB,GAAI,KAAK,QAAU,KAAK,YAAeb,EAAE,iBAAiB,KAAK,KAAM,KAAK,YAAY,EAC3E,KAAK,KAAhB,QAAiCa,IAAX,OAAc,CAChC,IAAId,GAAmB,OAAO,KAAK,KAAK,cAA/B,YAA+C,KAAK,KAAK,aAAa,KAAK,KAAMc,EAAG,KAAK,IAAI,GAAKA,GAAG,MAAM,EAAE,EACtHqoB,EAAE,SAAS,KAAK,KAAM,OAAQ,GAAI,GAAInpB,CAAC,EAAiB,OAAO,KAAK,KAAK,eAA/B,YAAgD,KAAK,KAAK,cAAc,KAAK,KAAM,OAAQ4B,EAAE,UAAU,KAAK,IAAI,EAAG,EAAG,KAAK,IAAI,CAC5K,CACD,OAAOunB,EAAE,cAAc,KAAK,KAAM,KAAK,EAAE,CAC5C,EACD,OAAQ,UAAW,CACf,GAAI,KAAK,GAAI,CACTppB,EAAE,QAAQ,KAAK,KAAK,GAAI4B,EAAG,IAAI,EAC/B,IAAIb,EAAI,KAAK,KAAK,cAAiBqoB,EAAE,eAAe,KAAK,EAAE,EAAI,KAAK,UAAU,KAAK,KAAK,UAAU,EAClGroB,IAAMc,EAAE,kBAAkB,KAAK,IAAI,EAAE,KAAK,EAAE,EAAI,KAAK,UAAUd,EAAG,KAAK,KAAK,UAAU,EAAI,KAAK,UAAU,EAAE,EAC3Gg9B,EAAE,WAAW,IAAI,KAAK,EAAE,EAAG,OAAO,0BAA4B,OAAO,eAAiB,OAAO,yBAAyB,OAAO,eAAe,KAAK,EAAE,EAAG,OAAO,GAAK,KAAK,YAAc,OAAO,eAAe,KAAK,GAAI,QAAS,CACzN,IAAK,KAAK,WACV,IAAK,KAAK,WACV,aAAc,EAChD,CAA+B,EAAIj8B,EAAE,kBAAoB,KAAK,GAAG,iBAAiB,OAAO,GAAK,KAAK,aAAe,KAAK,GAAG,iBAAiB,QAAS,KAAK,UAAU,EACrI,KAAK,GAAG,iBAAiB,QAAS,KAAK,UAAU,GAAI,KAAK,GAAG,UAAY,MAC5E,CACD,OAAO,KAAK,EACf,EACD,aAAc,UAAW,CACrB,OAAO,KAAK,QAAU,KAAK,YAAe5B,EAAE,iBAAiB,KAAK,KAAM,KAAK,YAAY,GACxF,KAAK,MAAQ2B,EAAE,kBAAkB,KAAK,IAAI,EAAE,QAAS,EAAGA,EAAE,kBAAkB,KAAK,IAAI,GAAG,KAAK,EAAE,CACnG,EACD,eAAgB,UAAW,CACvB,MAAO,CAAC,KAAK,KAAK,UACrB,EACD,WAAY,UAAW,CACnB,OAAO,KAAK,QAAU,KAAK,YAAe3B,EAAE,iBAAiB,KAAK,KAAM,KAAK,YAAY,EACzFJ,EAAE,WAAW,KAAK,KAAM+B,EAAE,UAAU,KAAK,IAAI,CAAC,CACjD,EACD,YAAa,UAAW,CACpB,GAAI,KAAK,QAAU,KAAK,YAAe3B,EAAE,iBAAiB,KAAK,KAAM,KAAK,YAAY,EACtF,MAAM,QAAQ,KAAK,QAAQ,QAAQ,EAAG,CAClC,IAAIa,EAAIS,EAAE,gBAAgB,KAAK,KAAM,GAAI,EAAG,EAAE,EAAE,KAAK,EAAE,EACvD,OAAO,KAAK,QAAQ,SAAS,QAAS,SAASvB,EAAG,CAC9C,OAAOA,EAAE,OAASc,IAAMA,EAAId,EAAG,GAClC,GAAIc,CACR,CACD,OAAO,KAAK,QAAQ,QACvB,EACD,QAAS,SAASA,EAAG,CACjB,GAAI,KAAK,QAAU,KAAK,YAAeb,EAAE,iBAAiB,KAAK,KAAM,KAAK,YAAY,EACtFa,EAAG,CACC,IAAId,GAAmB,OAAO,KAAK,KAAK,cAA/B,YAA+C,KAAK,KAAK,aAAa,KAAK,KAAMc,EAAG,KAAK,IAAI,GAAKA,GAAG,MAAM,EAAE,EACtHqoB,EAAE,SAAS,KAAK,KAAM,OAAQ,GAAI,GAAInpB,CAAC,CACrE,MAAiCc,EAAI,KAAK,MAAQc,EAAE,UAAU,KAAK,IAAI,EAAE,QAAQ,QAAS,EAAC,KAAK,EAAE,EAAIA,EAAE,UAAU,KAAK,IAAI,EAAE,KAAK,EAAE,EAC1G,QAAShC,EAAIgC,EAAE,UAAU,KAAK,IAAI,EAAGwnB,EAAIxnB,EAAE,8BAA8B,KAAK,IAAI,EAAGpB,EAAIZ,EAAE,OAAS,EAAGY,EAAI4oB,GAAK,CAACxnB,EAAE,OAAO,KAAK,KAAMpB,CAAC,EAAGA,IAAK,CAC9I,OAAOZ,EAAE,OAAOwpB,EAAG5oB,EAAI,EAAI4oB,CAAC,EAAGvpB,EAAE,WAAW,KAAK,KAAMD,CAAC,GAAKkB,KAAO,KAAK,MAAQc,EAAE,UAAU,KAAK,IAAI,EAAE,MAAK,EAAG,QAAS,EAAC,KAAK,EAAE,EAAIA,EAAE,UAAU,KAAK,IAAI,EAAE,KAAK,EAAE,EACtK,EACD,OAAQ,SAASd,EAAGd,EAAG,CACnB,KAAK,QAAU,KAAK,YAAeC,EAAE,iBAAiB,KAAK,KAAM,KAAK,YAAY,EAClF,IAAIL,GAAmB,OAAO,KAAK,KAAK,cAA/B,YAA+C,KAAK,KAAK,aAAa,KAAK,KAAMkB,EAAG,KAAK,IAAI,GAAKA,GAAG,MAAM,EAAE,EACtHqoB,EAAE,SAAS,KAAK,KAAM,OAAQ,GAAI,GAAIvpB,CAAC,EACvC,IAAIwpB,EAAI,KAAK,MAAQxnB,EAAE,UAAU,KAAK,IAAI,EAAE,QAAQ,QAAS,EAAC,KAAK,EAAE,EAAIA,EAAE,UAAU,KAAK,IAAI,EAAE,KAAK,EAAE,EACvG,OAAO5B,EAAI,CACP,MAAOopB,EACP,SAAU,KAAK,YAAa,CAC/B,EAAGA,CACP,EACD,SAAU,SAAStoB,EAAG,CAClB,KAAK,OAAUf,EAAE,SAAS,KAAK,EAAE,EAAE,QAAQ,WAAY,CAAEe,CAAG,EAC/D,EACD,YAAab,EAAE,WACrC,EAAqBI,EAAE,eAAiB,SAASS,EAAG,CAC9Bf,EAAE,QAAQ,OAAO,GAAIM,EAAE,UAAU,SAAUS,CAAC,CAClE,EAAqBT,EAAE,kBAAoB,SAASS,EAAG,CACjCf,EAAE,QAAQ,OAAO,GAAIM,EAAE,UAAU,YAAaS,CAAC,CACrE,EAAqBT,EAAE,cAAgB,SAASS,EAAG,CAC7Bf,EAAE,QAAQ,OAAO,GAAIM,EAAE,UAAU,QAASS,CAAC,CAC9C,EAAET,EAAE,OAAS,SAASS,EAAGd,EAAGJ,EAAG,CAC5B,OAAOS,EAAEL,CAAC,EAAE,OAAOc,EAAGlB,CAAC,CAC1B,EAAES,EAAE,OAAS,SAASS,EAAGd,EAAG,CACzB,OAAOK,EAAEL,CAAC,EAAE,cAAcc,CAAC,CAC9B,EAAET,EAAE,QAAU,SAASS,EAAGd,EAAG,CAC1B,OAAOK,EAAEL,CAAC,EAAE,QAAQc,CAAC,CAC3C,EAAqBT,EAAE,OAAS,SAASS,EAAG,CACV,OAAOA,GAAnB,WAAyBA,EAAIe,EAAE,eAAef,CAAC,GAAKe,EAAE,iBAAiBf,CAAC,IAAKA,EAAIA,EAAE,SAAW,CAAEA,CAAC,EAAKA,GAAG,QAAS,SAASA,EAAG,CAC1HA,EAAE,WAAaA,EAAE,UAAU,OAAM,CAC3D,EACmB,EAAET,EAAE,SAAW,SAASS,EAAGd,EAAG,CACf,OAAOc,GAAnB,WAAyBA,EAAIe,EAAE,eAAef,CAAC,GAAKe,EAAE,iBAAiBf,CAAC,IAAKA,EAAIA,EAAE,SAAW,CAAEA,CAAC,EAAKA,GAAG,QAAS,SAASA,EAAG,CAC1HA,EAAE,UAAYA,EAAE,UAAU,SAASd,CAAC,KAAQD,EAAE,SAASe,CAAC,EAAE,QAAQ,WAAY,CAAEd,CAAC,CAAE,CAC7G,EACA,EAAqBK,EAAE,cAAgBN,EAAE,QAASJ,EAAE,QAAQ,UAAYU,EACtDL,EAAE,QAAUK,CACf,EACD,KAAM,SAASS,EAAGd,EAAGJ,EAAG,CACpB,SAASwpB,EAAEtoB,EAAG,CACV,OAAOsoB,EAAkB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAStoB,EAAG,CACvF,OAAO,OAAOA,CACjB,EAAG,SAASA,EAAG,CACZ,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAC5I,EAAyBsoB,EAAEtoB,CAAC,CACT,CACD,IAAIN,EAAIe,EAAE3B,EAAE,IAAI,CAAC,EAAGG,EAAIwB,EAAE3B,EAAE,IAAI,CAAC,EACjC,SAASk+B,EAAEh9B,EAAGd,EAAG,CACb,QAASJ,EAAI,EAAGA,EAAII,EAAE,OAAQJ,IAAK,CAC/B,IAAIY,EAAIR,EAAEJ,CAAC,EACXY,EAAE,WAAaA,EAAE,YAAc,GAAIA,EAAE,aAAe,GAAI,UAAWA,IAAMA,EAAE,SAAW,IACtF,OAAO,eAAeM,GAAIf,EAAIS,EAAE,IAAKs9B,EAAI,OAAQA,EAAI,SAASh9B,EAAGd,EAAG,CAChE,GAAiBopB,EAAEtoB,CAAC,IAAhB,UAA8BA,IAAT,KAAY,OAAOA,EAC5C,IAAIlB,EAAIkB,EAAE,OAAO,WAAW,EAC5B,GAAelB,IAAX,OAAc,CACd,IAAIY,EAAIZ,EAAE,KAAKkB,EAAGd,GAAK,SAAS,EAChC,GAAiBopB,EAAE5oB,CAAC,IAAhB,SAAmB,OAAOA,EAC9B,MAAM,IAAI,UAAU,8CAA8C,CACrE,CACD,OAAqBR,IAAb,SAAiB,OAAS,QAAQc,CAAC,CAC9C,EAACf,EAAG,QAAQ,EAAgBqpB,EAAE0U,CAAC,IAAhB,SAAoBA,EAAI,OAAOA,CAAC,GAAIt9B,CAAC,CACxD,CACD,IAAIT,EAAG+9B,CACV,CACD,SAASn+B,EAAEmB,EAAG,CACV,IAAId,EAAIC,IACR,OAAO,UAAW,CACd,IAAIL,EAAGY,EAAIX,EAAEiB,CAAC,EACd,GAAId,EAAG,CACH,IAAID,EAAIF,EAAE,IAAI,EAAE,YAChBD,EAAI,QAAQ,UAAUY,EAAG,UAAWT,CAAC,CACxC,MAAMH,EAAIY,EAAE,MAAM,KAAM,SAAS,EAClC,OAAO,SAASM,EAAGd,EAAG,CAClB,GAAIA,IAAmBopB,EAAEppB,CAAC,IAAhB,UAAmC,OAAOA,GAArB,YAAyB,OAAOA,EAC/D,GAAeA,IAAX,OAAc,MAAM,IAAI,UAAU,0DAA0D,EAChG,OAAO,SAASc,EAAG,CACf,GAAeA,IAAX,OAAc,MAAM,IAAI,eAAe,2DAA2D,EACtG,OAAOA,CACV,EAACA,CAAC,CACjC,EAA4B,KAAMlB,CAAC,CACnC,CACmB,CACD,SAASupB,EAAEroB,EAAG,CACV,IAAId,EAAkB,OAAO,KAArB,WAA2B,IAAI,IAAM,OAC7C,OAAOmpB,EAAI,SAASroB,EAAG,CACnB,GAAaA,IAAT,MAAc,CAAC,SAASA,EAAG,CAC3B,GAAI,CACA,OAAc,SAAS,SAAS,KAAKA,CAAC,EAAE,QAAQ,eAAe,IAAxD,EACV,MAAW,CACR,OAAqB,OAAOA,GAArB,UACV,CAC/B,EAA4BA,CAAC,EAAG,OAAOA,EACb,GAAkB,OAAOA,GAArB,WAAwB,MAAM,IAAI,UAAU,oDAAoD,EACpG,GAAed,IAAX,OAAc,CACd,GAAIA,EAAE,IAAIc,CAAC,EAAG,OAAOd,EAAE,IAAIc,CAAC,EAC5Bd,EAAE,IAAIc,EAAGlB,CAAC,CACb,CACD,SAASA,GAAI,CACT,OAAO4B,EAAEV,EAAG,UAAWjB,EAAE,IAAI,EAAE,WAAW,CAC7C,CACD,OAAOD,EAAE,UAAY,OAAO,OAAOkB,EAAE,UAAW,CAC5C,YAAa,CACT,MAAOlB,EACP,WAAY,GACZ,SAAU,GACV,aAAc,EACjB,CACJ,GAAGgC,EAAEhC,EAAGkB,CAAC,CACpC,EAAyBqoB,EAAEroB,CAAC,CACT,CACD,SAASU,EAAEV,EAAGd,EAAGJ,EAAG,CAChB,OAAO4B,EAAIvB,EAAG,EAAG,QAAQ,UAAU,KAAI,EAAK,SAASa,EAAGd,EAAGJ,EAAG,CAC1D,IAAIwpB,EAAI,CAAE,MACVA,EAAE,KAAK,MAAMA,EAAGppB,CAAC,EACjB,IAAIQ,EAAI,IAAK,SAAS,KAAK,MAAMM,EAAGsoB,CAAC,GACrC,OAAOxpB,GAAKgC,EAAEpB,EAAGZ,EAAE,SAAS,EAAGY,CAClC,EAAEgB,EAAE,MAAM,KAAM,SAAS,CAC7B,CACD,SAASvB,GAAI,CAET,GADmB,OAAO,QAAtB,KAAiC,CAAC,QAAQ,WAC1C,QAAQ,UAAU,KAAM,MAAO,GACnC,GAAkB,OAAO,OAArB,WAA4B,MAAO,GACvC,GAAI,CACA,OAAO,QAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,GAAK,UAAW,GAAI,EACrF,EACH,MAAW,CACR,MAAO,EACV,CACJ,CACD,SAAS2B,EAAEd,EAAGd,EAAG,CACb,OAAO4B,EAAI,OAAO,eAAiB,OAAO,eAAe,KAAM,EAAG,SAASd,EAAGd,EAAG,CAC7E,OAAOc,EAAE,UAAYd,EAAGc,CAClD,EAAyBc,EAAEd,EAAGd,CAAC,CACZ,CACD,SAASH,EAAEiB,EAAG,CACV,OAAOjB,EAAI,OAAO,eAAiB,OAAO,eAAe,KAAI,EAAK,SAASiB,EAAG,CAC1E,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CACvE,EAAyBjB,EAAEiB,CAAC,CACT,CACD,SAASS,EAAET,EAAG,CACV,OAAOA,GAAKA,EAAE,WAAaA,EAAI,CAC3B,QAASA,CACnC,CACmB,CACD,IAAIY,EAAIlB,EAAE,QAAQ,SAClB,GAAIkB,GAAKA,EAAE,MAAQA,EAAE,KAAK,cAAgBlB,EAAE,QAAQ,gBAA6BA,EAAE,QAAQ,eAAe,IAAI,YAAY,IAApD,OAAuD,CACzH,IAAIN,EAAI,SAASY,EAAG,EACf,SAASA,EAAGd,EAAG,CACZ,GAAkB,OAAOA,GAArB,YAAmCA,IAAT,KAAY,MAAM,IAAI,UAAU,oDAAoD,EAClHc,EAAE,UAAY,OAAO,OAAOd,GAAKA,EAAE,UAAW,CAC1C,YAAa,CACT,MAAOc,EACP,SAAU,GACV,aAAc,EACjB,CACJ,GAAG,OAAO,eAAeA,EAAG,YAAa,CACtC,SAAU,EACb,GAAGd,GAAK4B,EAAEd,EAAGd,CAAC,CAC7C,GAA4BmpB,EAAGroB,CAAC,EACN,IAAId,EAAGJ,EAAGY,EAAIb,EAAEwpB,CAAC,EACjB,SAASA,GAAI,CACT,IAAIroB,GACH,SAASA,EAAGd,EAAG,CACZ,GAAI,EAAEc,aAAad,GAAI,MAAM,IAAI,UAAU,mCAAmC,CAChH,GAAgC,KAAMmpB,CAAC,EACT,IAAInpB,GAAKc,EAAIN,EAAE,KAAK,IAAI,GAAG,kBAAmB,EAAEZ,EAAIkB,EAAE,aAAa,CAC/D,KAAM,QACxC,CAA+B,EACD,QAASsoB,KAAKtoB,EAAE,MAAQY,EAAE,cAAc,OAAO,EAAGZ,EAAE,MAAM,KAAO,OAAQlB,EAAE,YAAYkB,EAAE,KAAK,EAC9Fd,EAAG,OAAO,UAAU,eAAe,KAAKA,EAAGopB,CAAC,GAAKtoB,EAAE,MAAM,aAAad,EAAEopB,CAAC,EAAGtoB,EAAE,aAAad,EAAEopB,CAAC,CAAC,CAAC,EAChG,IAAI0U,EAAI,IAAI/9B,EAAE,QACd,OAAO+9B,EAAE,cAAgB,GAAIA,EAAE,KAAKh9B,EAAE,KAAK,EAAGA,EAAE,MAAM,UAAU,WAAalB,EAC7EkB,CACH,CACD,OAAOd,EAAImpB,GAAIvpB,EAAI,CAAE,CACjB,IAAK,2BACL,MAAO,SAASkB,EAAGd,EAAGJ,EAAG,CACrB,KAAK,MAAM,aAAakB,EAAGlB,CAAC,CAC/B,CAC/B,EAA6B,CACC,IAAK,QACL,IAAK,UAAW,CACZ,OAAO,KAAK,MAAM,KACrB,EACD,IAAK,SAASkB,EAAG,CACb,KAAK,MAAM,MAAQA,CACtB,CAC/B,KAAkCg9B,EAAE99B,EAAE,UAAWJ,CAAC,EAAG,OAAO,eAAeI,EAAG,YAAa,CAC7D,SAAU,EACb,GAAGmpB,CAC9B,EAAwBA,EAAE,WAAW,CAAC,EAChB3oB,EAAE,QAAQ,eAAe,OAAO,aAAcN,CAAC,CAClD,CACJ,EACD,KAAM,SAASY,EAAGd,EAAG,CACjB,SAASJ,EAAEkB,EAAG,CACV,OAAOlB,EAAkB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAASkB,EAAG,CACvF,OAAO,OAAOA,CACjB,EAAG,SAASA,EAAG,CACZ,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAC5I,EAAyBlB,EAAEkB,CAAC,CACT,CACD,SAASsoB,EAAEtoB,EAAGd,EAAG,CACb,OAAO,SAASc,EAAG,CACf,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAOA,CAChC,EAACA,CAAC,GAAK,SAASA,EAAGd,EAAG,CACnB,IAAIJ,EAAYkB,GAAR,KAAY,KAAsB,OAAO,OAAtB,KAAgCA,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC/F,GAAYlB,GAAR,KAAW,CACX,IAAIwpB,EAAG5oB,EAAGT,EAAG+9B,EAAGn+B,EAAI,GAAIwpB,EAAI,GAAI3nB,EAAI,GACpC,GAAI,CACA,GAAIzB,GAAKH,EAAIA,EAAE,KAAKkB,CAAC,GAAG,KAAYd,IAAN,EAAgB,KAAM,EAAEmpB,GAAKC,EAAIrpB,EAAE,KAAKH,CAAC,GAAG,QAAUD,EAAE,KAAKypB,EAAE,KAAK,EAAGzpB,EAAE,SAAWK,GAAImpB,EAAI,GAAI,CACjI,OAAQroB,EAAG,CACRU,EAAI,GAAIhB,EAAIM,CAC9C,QAAwC,CACN,GAAI,CACA,GAAI,CAACqoB,GAAavpB,EAAE,QAAV,OAAqBk+B,EAAIl+B,EAAE,OAAQ,EAAE,OAAOk+B,CAAC,IAAMA,GAAI,MACvG,QAA4C,CACN,GAAIt8B,EAAG,MAAMhB,CAChB,CACJ,CACD,OAAOb,CACV,CACJ,EAACmB,EAAGd,CAAC,GAAK,SAASc,EAAGd,EAAG,CACtB,GAAKc,EACL,IAAgB,OAAOA,GAAnB,SAAsB,OAAON,EAAEM,EAAGd,CAAC,EACvC,IAAIJ,EAAI,OAAO,UAAU,SAAS,KAAKkB,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADalB,IAAb,UAAkBkB,EAAE,cAAgBlB,EAAIkB,EAAE,YAAY,MACxClB,IAAV,OAAyBA,IAAV,MAAa,OAAO,MAAM,KAAKkB,CAAC,EACnD,GAAoBlB,IAAhB,aAAqB,2CAA2C,KAAKA,CAAC,EAAG,OAAOY,EAAEM,EAAGd,CAAC,EACpH,EAAwBc,EAAGd,CAAC,GAAK,UAAW,CAClB,MAAM,IAAI,UAAU;AAAA,mFAA2I,CACzL,GACmB,CACD,SAASQ,EAAEM,EAAGd,EAAG,EACJA,GAAR,MAAaA,EAAIc,EAAE,UAAYd,EAAIc,EAAE,QACtC,QAASlB,EAAI,EAAGwpB,EAAI,IAAI,MAAMppB,CAAC,EAAGJ,EAAII,EAAGJ,IAAKwpB,EAAExpB,CAAC,EAAIkB,EAAElB,CAAC,EACxD,OAAOwpB,CACV,CACD,SAASrpB,EAAEe,EAAGd,EAAG,CACb,IAAIJ,EAAI,OAAO,KAAKkB,CAAC,EACrB,GAAI,OAAO,sBAAuB,CAC9B,IAAIsoB,EAAI,OAAO,sBAAsBtoB,CAAC,EACtCd,IAAMopB,EAAIA,EAAE,OAAQ,SAASppB,EAAG,CAC5B,OAAO,OAAO,yBAAyBc,EAAGd,CAAC,EAAE,UAC3E,CAA6B,GAAGJ,EAAE,KAAK,MAAMA,EAAGwpB,CAAC,CAC1B,CACD,OAAOxpB,CACV,CACD,SAASk+B,EAAEh9B,EAAGd,EAAGopB,EAAG,CAChB,OAAQppB,EAAI,SAASc,EAAG,CACpB,IAAId,EAAI,SAASc,EAAGd,EAAG,CACnB,GAAiBJ,EAAEkB,CAAC,IAAhB,UAA8BA,IAAT,KAAY,OAAOA,EAC5C,IAAIsoB,EAAItoB,EAAE,OAAO,WAAW,EAC5B,GAAesoB,IAAX,OAAc,CACd,IAAI5oB,EAAI4oB,EAAE,KAAKtoB,EAAGd,GAAK,SAAS,EAChC,GAAiBJ,EAAEY,CAAC,IAAhB,SAAmB,OAAOA,EAC9B,MAAM,IAAI,UAAU,8CAA8C,CACrE,CACD,OAAqBR,IAAb,SAAiB,OAAS,QAAQc,CAAC,CACzE,EAA4BA,EAAG,QAAQ,EACb,OAAoBlB,EAAEI,CAAC,IAAhB,SAAoBA,EAAI,OAAOA,CAAC,CACjE,EAAwBA,CAAC,KAAMc,EAAI,OAAO,eAAeA,EAAGd,EAAG,CACrC,MAAOopB,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACb,GAAItoB,EAAEd,CAAC,EAAIopB,EAAGtoB,CAClB,CACD,OAAO,eAAed,EAAG,aAAc,CACnC,MAAO,EACV,GAAGA,EAAE,KAAOA,EAAE,QAAU,OAAQA,EAAE,MAAQ,SAASc,EAAGd,EAAG,CACtD,OAAOmpB,EAAEroB,CAAC,IAAMd,EAAI,OAAO,aAAac,CAAC,EAAI,OAAO,aAAaA,CAAC,EAAE,YAAa,EACvG,EAAqBd,EAAE,UAAY,SAASc,EAAG,CACzB,OAAOnB,EAAEmB,CAAC,CAChC,EACkB,IAAInB,EAAIK,EAAE,QAAU,SAASc,EAAG,CAC5B,QAASd,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACvC,IAAIJ,EAAY,UAAUI,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,GAC9CA,EAAI,EAAID,EAAE,OAAOH,CAAC,EAAG,EAAE,EAAE,QAAS,SAASI,EAAG,CAC1C89B,EAAEh9B,EAAGd,EAAGJ,EAAEI,CAAC,CAAC,CAC1C,CAA6B,EAAG,OAAO,0BAA4B,OAAO,iBAAiBc,EAAG,OAAO,0BAA0BlB,CAAC,CAAC,EAAIG,EAAE,OAAOH,CAAC,CAAC,EAAE,QAAS,SAASI,EAAG,CACzI,OAAO,eAAec,EAAGd,EAAG,OAAO,yBAAyBJ,EAAGI,CAAC,CAAC,CAC/F,EACuB,CACD,OAAOc,CAC7B,EAAoB,CACE,EAAG,GACH,EAAG,GACH,EAAG,GACH,iBAAkB,IAClB,MAAO,GACP,UAAW,GACX,WAAY,GACZ,MAAO,EAC7B,EAAqB,CACC,IAAK,GACL,SAAU,GACV,UAAW,GACX,UAAW,GACX,WAAY,GACZ,QAAS,GACT,UAAW,EACX,SAAU,GACV,QAAS,GACT,YAAa,GACb,KAAM,IACN,OAAQ,GACR,IAAK,GACL,OAAQ,GACR,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,GACN,OAAQ,GACR,QAAS,IACT,SAAU,GACV,OAAQ,GACR,MAAO,GACP,YAAa,GACb,QAAS,IACT,MAAO,GACP,WAAY,IACZ,IAAK,EACL,aAAc,GACpC,CAAmB,EAAGqoB,EAAI,OAAO,QAAQxpB,CAAC,EAAE,OAAQ,SAASmB,EAAGd,EAAG,CAC7C,IAAIJ,EAAIwpB,EAAEppB,EAAG,CAAC,EAAGQ,EAAIZ,EAAE,CAAC,EAAGG,EAAIH,EAAE,CAAC,EAClC,OAAOkB,EAAEf,CAAC,EAAee,EAAEf,CAAC,IAAd,OAAkBS,EAAIM,EAAEf,CAAC,EAAGe,CAC7C,EAAG,CAAE,GACNd,EAAE,KAAO,OAAO,QAAQL,CAAC,EAAE,OAAQ,SAASmB,EAAGd,EAAG,CAC9C,IAAIJ,EAAIwpB,EAAEppB,EAAG,CAAC,EAAGQ,EAAIZ,EAAE,CAAC,EACxB,OAAAA,EAAE,CAAC,EACIkB,EAAEN,CAAC,EAAgBA,IAAZ,QAAgB,IAAMA,EAAGM,CAC1C,EAAG,CAAE,EACT,EACD,KAAM,SAASA,EAAGd,EAAGJ,EAAG,CACpB,OAAO,eAAeI,EAAG,aAAc,CACnC,MAAO,EAC7B,CAAmB,EAAGA,EAAE,YAAc,SAASc,EAAGd,EAAGJ,EAAG,CAClC,IAAIwpB,EAAG5oB,EAAG2oB,EAAG3nB,EAAGvB,EAAG2B,EAAG/B,EAAI,4EAA6E0B,EAAI,kNAAmNG,EAAI,GAAIxB,EAAI,IAAI49B,EAAE,QAASj8B,EAAI,CAAE,EAAEF,EAAI,GAAItB,EAAI,GAC7W,SAASoB,EAAEX,GAAGsoB,GAAG5oB,GAAG,CAChBA,GAAeA,KAAX,OAAeA,GAAIM,GAAE,QAAQ,OACjC,IAAIg9B,GAAIh9B,GAAE,QAAQN,GAAI,CAAC,EACvB,GAAIR,EAAG,CACH,GAAUopB,GAAE,QAAQ,GAAG,IAAnB,GAAwB1nB,GAAK,mBAAmB,KAAK0nB,EAAC,GAAaA,KAAR,IAAW,CACtE,IAAID,GAAIvpB,EAAE,OAAS,IAAM,GACzB,YAAY,KAAKwpB,EAAC,IAAMD,IAAK,KAAMroB,GAAE,QAAQ,OAAON,KAAK,EAAG,CACxD,GAAI,IAAI,OAAO4oB,GAAGD,EAAC,EACnB,OAAQ,GACR,YAAa,GACb,eAA2B2U,KAAX,OAAe,SAAWA,GAAE,MAAQ1U,GACpD,OAAQ,KACR,IAAKA,GACL,YAA0BzpB,EAAEC,EAAE,WAAW,IAA5B,SAAgCA,EAAE,YAAYM,EAAE,QAAQ,MAAM,EAAI,OAC/E,UAAWkpB,EACjD,CAAmC,CACnC,MAAqC1nB,IAAM0nB,GAAIA,GAAEA,GAAE,OAAS,CAAC,GAAIA,GAAE,MAAM,EAAE,EAAE,QAAS,SAASppB,GAAGopB,GAAG,CACnE0U,GAAIh9B,GAAE,QAAQN,GAAI,CAAC,EAAGM,GAAE,QAAQ,OAAON,KAAK,EAAG,CAC3C,GAAI,SAAS,KAAKZ,EAAE,wBAA0BI,EAAC,EAAI,IAAI,OAAO,KAAOJ,EAAE,wBAA0BI,IAAK,IAAKJ,EAAE,OAAS,IAAM,EAAE,EAAI,KAClI,OAAQ,GACR,YAAa,GACb,eAA2Bk+B,KAAX,OAAe,SAAWA,GAAE,MAAQ99B,IAAY89B,GAAE,SAAT,GACzD,OAAQ,KACR,IAAKl+B,EAAE,wBAA0BI,GACjC,YAAwBJ,EAAE,yBAAb,OAAsCI,GAAiBL,EAAEC,EAAE,WAAW,IAA5B,SAAgCA,EAAE,YAAYM,EAAE,QAAQ,MAAM,EAAI,OACzH,WAAYwB,EAAI,IAAM,IAAM1B,EAClE,CAAmC,CACnC,GAC8B0B,EAAI,EAClC,KAAiC,CACH,IAAIF,GAAI5B,EAAE,aAAeA,EAAE,YAAYwpB,EAAC,GAAKxpB,EAAE,yBAA2BG,EAAE,QAAQ,UAAU,YAAYqpB,EAAC,EAC3G5nB,IAAK,CAACE,EAAIZ,GAAE,QAAQ,OAAON,KAAK,EAAG,CAC/B,GAAIgB,GAAE,UAAwB,OAAOA,GAAE,WAArB,SAAiC,IAAI,OAAOA,GAAE,UAAW5B,EAAE,OAAS,IAAM,EAAE,EAAI,IAAI,UAAW,CAC7G,KAAK,KAAO4B,GAAE,SACpD,EAAsC,IACJ,OAAQA,GAAE,QAAU,GACpB,YAAaA,GAAE,UAAY,GAC3B,eAAgBA,GAAE,UAAY,GAC9B,eAA2Bs8B,KAAX,QAAgBt8B,GAAE,SAAW,SAAWs8B,GAAE,OAASt8B,GAAE,kBAAoB4nB,IACzF,OAAQ5nB,GAAE,OACV,IAAKA,GAAE,kBAAoB4nB,GAC3B,YAAa5nB,GAAE,YACf,UAAW4nB,GACX,UAAW5nB,GAAE,SAC/C,CAA+B,GAAKV,GAAE,QAAQ,OAAON,KAAK,EAAG,CAC3B,GAAI,SAAS,KAAKZ,EAAE,wBAA0BwpB,EAAC,EAAI,IAAI,OAAO,KAAOxpB,EAAE,wBAA0BwpB,IAAK,IAAKxpB,EAAE,OAAS,IAAM,EAAE,EAAI,KAClI,OAAQ,GACR,YAAa,GACb,eAA2Bk+B,KAAX,OAAe,SAAWA,GAAE,MAAQ1U,IAAY0U,GAAE,SAAT,GACzD,OAAQ,KACR,IAAKl+B,EAAE,wBAA0BwpB,GACjC,YAAwBxpB,EAAE,yBAAb,OAAsCwpB,GAAI,OACvD,WAAY1nB,EAAI,IAAM,IAAM0nB,EAC9D,CAA+B,EAAG1nB,EAAI,GACX,CACJ,CACD,SAASb,GAAI,CACT,GAAIgB,EAAE,OAAS,GACX,GAAIJ,EAAED,EAAIK,EAAEA,EAAE,OAAS,CAAC,EAAGrB,CAAC,EAAGgB,EAAE,aAAc,CAC3CvB,EAAI4B,EAAE,MACN,QAASf,GAAI,EAAGA,GAAIb,EAAE,QAAQ,OAAQa,KAAKb,EAAE,QAAQa,EAAC,EAAE,UAAYb,EAAE,QAAQa,EAAC,EAAE,QAAU,IAC3Fe,EAAE,OAAS,GAAKL,EAAIK,EAAEA,EAAE,OAAS,CAAC,GAAG,QAAQ,KAAK5B,CAAC,EAAIC,EAAE,QAAQ,KAAKD,CAAC,CAC1E,OACEwB,EAAEvB,EAAGM,CAAC,CAChB,CACD,SAASJ,EAAEU,GAAG,CACV,IAAId,GAAI,IAAI89B,EAAE,QAAQ,EAAE,EACxB,OAAO99B,GAAE,UAAY,GAAIA,GAAE,QAAUc,GAAGd,EAC3C,CACD,SAASG,GAAI,CACT,IAAKgpB,EAAItnB,EAAE,IAAG,GAAI,UAAY,GAAesnB,IAAX,OAAc,GAAItnB,EAAE,OAAS,GAC3D,IAAKL,EAAIK,EAAEA,EAAE,OAAS,CAAC,GAAG,QAAQ,KAAKsnB,CAAC,EAAG3nB,EAAE,aAAc,CACvDvB,EAAI4B,EAAE,MACN,QAASf,GAAI,EAAGA,GAAIb,EAAE,QAAQ,OAAQa,KAAKb,EAAE,QAAQa,EAAC,EAAE,QAAU,GAAIb,EAAE,QAAQa,EAAC,EAAE,gBAAkB,GACrGe,EAAE,OAAS,GAAKL,EAAIK,EAAEA,EAAE,OAAS,CAAC,GAAG,QAAQ,KAAK5B,CAAC,EAAIC,EAAE,QAAQ,KAAKD,CAAC,CAC1E,OACEC,EAAE,QAAQ,KAAKipB,CAAC,OAAQtoB,GAClC,CACD,SAASoB,EAAEnB,GAAG,CACV,IAAId,GAAIc,GAAE,MACV,OAAOd,GAAE,eAAiBA,GAAII,EAAE,CAAEU,GAAE,MAAOd,GAAG,GAAIA,EACrD,CAED,IADAA,IAAMJ,EAAE,eAAe,CAAC,EAAI,OAAQA,EAAE,eAAe,CAAC,EAAI,QACpDwpB,EAAIppB,EAAIuB,EAAE,KAAKT,CAAC,EAAIjB,EAAE,KAAKiB,CAAC,GAAK,CACnC,GAAIN,EAAI4oB,EAAE,CAAC,EAAGppB,EAAG,CACb,OAAQQ,EAAE,OAAO,CAAC,EAAC,CACjB,IAAK,IACHA,EAAI,QACJ,MAEF,IAAK,IACL,IAAK,IACHA,EAAI,IAAMA,EAAI,IACd,MAEF,IAAK,IACH,GAAUqB,EAAE,SAAR,EAAgB,CAChB,IAAIO,EAAIhC,EAAEF,EAAE,OAAO,EACnBkC,EAAE,UAAY,GAAIP,EAAE,KAAKO,CAAC,EAAGlC,EAAE,QAAU,GAAIG,EAAI,EACpD,CACJ,CACD,OAAQG,EAAC,CACP,IAAK,MACHA,EAAI,QACJ,MAEF,IAAK,MACHA,GAAKe,EAAE,KAAKT,CAAC,EAAE,CAAC,EAAGN,GAAKe,EAAE,KAAKT,CAAC,EAAE,CAAC,CACtC,CACJ,CACD,GAAIY,EAAGb,EAAG,MAAO,QAAQL,EAAE,OAAO,CAAC,EAAC,CAClC,IAAK,IACL,IAAK,IACHR,GAAKa,EAAC,EACN,MAEF,KAAKjB,EAAE,WACL8B,EAAI,GAAI1B,GAAKa,EAAC,EACd,MAEF,KAAKjB,EAAE,eAAe,CAAC,EACvB,KAAKA,EAAE,YAAY,CAAC,EAClBO,IACA,MAEF,KAAKP,EAAE,eAAe,CAAC,EACrBiC,EAAE,KAAK,IAAIi8B,EAAE,QAAQ,GAAI,EAAE,CAAC,EAC5B,MAEF,KAAKl+B,EAAE,YAAY,CAAC,EAClBiC,EAAE,KAAK,IAAIi8B,EAAE,QAAQ,EAAE,CAAC,EACxB,MAEF,KAAKl+B,EAAE,iBAAiB,CAAC,EACvB,IAAImC,EAAI,IAAI+7B,EAAE,QAAQ,GAAI,GAAI,EAAE,EAAGuQ,GAAK7tC,EAAIA,EAAE,QAAQ,SAAU,EAAE,GAAG,MAAM,GAAG,EAAGc,GAAI+sC,EAAE,CAAC,EAAE,MAAM,GAAG,EAAGztC,GAAI,MAAMU,GAAE,CAAC,CAAC,EAAIA,GAAE,CAAC,EAAI,SAASA,GAAE,CAAC,CAAC,EAAG0sD,GAAU1sD,GAAE,SAAR,EAAiBV,GAAI,MAAMU,GAAE,CAAC,CAAC,EAAIA,GAAE,CAAC,EAAI,SAASA,GAAE,CAAC,CAAC,EAAGe,GAAI,MAAMgsC,EAAE,CAAC,CAAC,EAAIA,EAAE,CAAC,EAAI,SAASA,EAAE,CAAC,CAAC,EAC3OztC,KAAR,KAAqBA,KAAR,MAAcA,GAAYotD,KAAR,IAAY,EAAI,GAAIjsD,EAAE,WAAa,CAC9D,IAAKnB,GACL,IAAKotD,GACL,IAAK3rD,EACvC,EAC8B,IAAI9B,GAAIsB,EAAE,OAAS,EAAIA,EAAEA,EAAE,OAAS,CAAC,EAAE,QAAU3B,EAAE,SAClDkpB,EAAI7oB,GAAE,IAAG,GAAI,UAAY6oB,EAAIhpB,EAAE,CAAEgpB,CAAG,IAAI7oB,GAAE,KAAK6oB,CAAC,EAAG7oB,GAAE,KAAKwB,CAAC,EAC5D,MAEF,KAAKnC,EAAE,iBACL,GAAIiC,EAAE,OAAS,EAAG,CACd,IAAIlB,IAAKa,EAAIK,EAAEA,EAAE,OAAS,CAAC,GAAG,QAAQL,EAAE,QAAQ,OAAS,CAAC,EAC1DI,EAAIJ,EAAE,YAAyBb,GAAE,UAAb,QAA+BA,GAAE,UAAT,IAA2BA,GAAE,eAAT,IAAyBkB,EAAE,IAAG,EAAKI,EAAET,EAAE,OAAO,CACjH,MAAMI,EAAIK,EAAE/B,EAAE,OAAO,EACtB,GAAI0B,EAAE,aAAcC,EAAE,KAAKD,CAAC,UAAYA,EAAE,iBAAmB3B,EAAI4B,EAAE,IAAK,EAAED,EAAE,gBAAkB,IAAM3B,EAAI,IAAI69B,EAAE,QAAQ,GAAI,GAAI,GAAI,EAAE,EACpI79B,EAAE,QAAQ,KAAK2B,CAAC,EAAGC,EAAE,KAAK5B,CAAC,EAAG2B,EAAE,UAAW,CACvCA,EAAE,UAAY,GACd,IAAIP,GAAI,IAAIy8B,EAAE,QAAQ,EAAE,EACxBz8B,GAAE,gBAAkB,GAAIQ,EAAE,KAAKR,EAAC,CACnC,CACD,MAEF,QACER,GACH,CACJ,CAED,IADAR,GAAKF,EAAC,EACA0B,EAAE,OAAS,GAAKsnB,EAAItnB,EAAE,IAAK,EAAE3B,EAAE,QAAQ,KAAKipB,CAAC,EACnD,OAAAjpB,EAAE,QAAQ,OAAS,IAAO,SAASY,GAAEsoB,GAAG,CACpCA,IAAKA,GAAE,SAAWA,GAAE,QAAQ,QAAS,SAAS5oB,GAAGT,GAAG,CAChD,IAAI+9B,GAAI1U,GAAE,QAAQrpB,GAAI,CAAC,GACX+9B,KAAX,QAA2BA,GAAE,UAAb,QAA+BA,GAAE,eAAT,KAA0Bt9B,IAAKA,GAAE,UAAYA,GAAE,QAAU,GAClGR,IAAMyB,EAAEjB,GAAGZ,EAAE,YAAY,CAAC,EAAG,CAAC,EAAUY,GAAE,YAAT,IAAsBiB,EAAEjB,GAAGZ,EAAE,YAAY,CAAC,CAAC,IAC5EkB,GAAEN,EAAC,CACjC,EACuB,EAACN,CAAC,EAAGyB,EAAE,KAAKzB,CAAC,IACbN,EAAE,cAAgBA,EAAE,QAAU,SAASkB,GAAEd,GAAG,CACzC,QAASopB,MAAKppB,GAAE,QAAUA,GAAE,QAAQ,QAAO,EAAIA,GAAE,QAAS,GAAI,OAAO,UAAU,eAAe,KAAKA,GAAE,QAASopB,EAAC,EAAG,CAC9G,IAAI5oB,GAAI,SAAS4oB,EAAC,EAClB,GAAIppB,GAAE,QAAQopB,EAAC,EAAE,cAAgBppB,GAAE,QAAQQ,GAAI,CAAC,GAAKR,GAAE,QAAQQ,GAAI,CAAC,EAAE,QAAS,CAC3E,IAAIT,GAAIC,GAAE,QAAQopB,EAAC,EACnBppB,GAAE,QAAQ,OAAOopB,GAAG,CAAC,EAAGppB,GAAE,QAAQ,OAAOQ,GAAI,EAAG,EAAGT,EAAC,CACvD,CACUC,GAAE,QAAQopB,EAAC,EAAE,UAAxB,OAAkCppB,GAAE,QAAQopB,EAAC,EAAItoB,GAAEd,GAAE,QAAQopB,EAAC,CAAC,EAAIppB,GAAE,QAAQopB,EAAC,IAAM0U,GAAI99B,GAAE,QAAQopB,EAAC,KAAOxpB,EAAE,eAAe,CAAC,EAAIk+B,GAAIl+B,EAAE,eAAe,CAAC,EAAIk+B,KAAMl+B,EAAE,eAAe,CAAC,EAAIk+B,GAAIl+B,EAAE,eAAe,CAAC,EAAIk+B,KAAMl+B,EAAE,YAAY,CAAC,EAAIk+B,GAAIl+B,EAAE,YAAY,CAAC,EAAIk+B,KAAMl+B,EAAE,YAAY,CAAC,IAAMk+B,GAAIl+B,EAAE,YAAY,CAAC,GAC9Sk+B,GACH,CACD,IAAIA,GACJ,OAAO99B,EACjC,EAAwB2B,EAAE,CAAC,CAAC,EACCA,CACV,EAAE3B,EAAE,gBAAkB,SAASc,EAAGd,EAAG,CAClC,IAAIJ,EACJ,SAASk+B,EAAEh9B,EAAGd,EAAG,CACb,IAAIJ,EAAII,EAAE,OAAQopB,EAAIppB,EAAE,YAAaD,EAAIC,EAAE,iBAAkB89B,EAAI99B,EAAE,WACnE,GAAIJ,EAAI,GAAaA,IAAR,KAAqBA,IAAR,IAAW,CACjC,IAAID,EAAYC,IAAR,IAAY,EAAYA,IAAR,IAAY,EAAIA,EACxC,GAAID,GAAKC,EAAGkB,EAAIsoB,EAAE,CAAC,EAAItoB,EAAIsoB,EAAE,CAAC,EAAIrpB,EAAE,CAAC,EAAIJ,EAAI,IAAMC,EAAIG,EAAE,CAAC,MAAQ,SAASyB,EAAIV,EAAGb,EAAI,EAAGA,EAAIN,EAAGM,IAAKa,GAAKU,CAC7G,CACD,GAAWs8B,IAAP,GAAU,CACV,IAAIl8B,EAAId,EAAE,MAAM,IAAI,OAAO,qBAAsB,GAAG,CAAC,EACrDc,GAAKA,EAAE,QAAS,SAAS5B,EAAGJ,EAAG,CAC3B,IAAIwpB,EAAI,SAAStoB,EAAGd,EAAG,CACnB,OAAO,SAASc,EAAG,CACf,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAOA,CAChC,EAACA,CAAC,GAAK,SAASA,EAAGd,GAAG,CACnB,IAAIJ,GAAYkB,GAAR,KAAY,KAAsB,OAAO,OAAtB,KAAgCA,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC/F,GAAYlB,IAAR,KAAW,CACX,IAAIwpB,GAAG5oB,GAAGT,GAAG+9B,GAAGn+B,GAAI,GAAIwpB,GAAI,GAAI3nB,GAAI,GACpC,GAAI,CACA,GAAIzB,IAAKH,GAAIA,GAAE,KAAKkB,CAAC,GAAG,KAAYd,KAAN,EAAgB,KAAM,EAAEmpB,IAAKC,GAAIrpB,GAAE,KAAKH,EAAC,GAAG,QAAUD,GAAE,KAAKypB,GAAE,KAAK,EAAGzpB,GAAE,SAAWK,IAAImpB,GAAI,GAAI,CACjI,OAAQroB,GAAG,CACRU,GAAI,GAAIhB,GAAIM,EAC9D,QAAwD,CACN,GAAI,CACA,GAAI,CAACqoB,IAAavpB,GAAE,QAAV,OAAqBk+B,GAAIl+B,GAAE,OAAQ,EAAE,OAAOk+B,EAAC,IAAMA,IAAI,MACvH,QAA4D,CACN,GAAIt8B,GAAG,MAAMhB,EAChB,CACJ,CACD,OAAOb,EACV,CACJ,EAACmB,EAAGd,CAAC,GAAK,SAASc,EAAGd,GAAG,CACtB,GAAKc,EACL,IAAgB,OAAOA,GAAnB,SAAsB,OAAOqoB,EAAEroB,EAAGd,EAAC,EACvC,IAAIJ,GAAI,OAAO,UAAU,SAAS,KAAKkB,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADalB,KAAb,UAAkBkB,EAAE,cAAgBlB,GAAIkB,EAAE,YAAY,MACxClB,KAAV,OAAyBA,KAAV,MAAa,OAAO,MAAM,KAAKkB,CAAC,EACnD,GAAoBlB,KAAhB,aAAqB,2CAA2C,KAAKA,EAAC,EAAG,OAAOupB,EAAEroB,EAAGd,EAAC,EACpI,EAAwCc,EAAGd,CAAC,GAAK,UAAW,CAClB,MAAM,IAAI,UAAU;AAAA,mFAA2I,CACzM,GACmC,EAACA,EAAE,MAAM,GAAG,EAAG,CAAC,EAAGD,EAAIqpB,EAAE,CAAC,EAAG0U,EAAI1U,EAAE,CAAC,EACrC0U,EAAIA,EAAE,QAAQ,IAAK,EAAE,EAAGh9B,EAAIA,EAAE,QAAQ,IAAI,OAAO,GAAG,UAAWN,EAAE,aAAaT,CAAC,EAAG,KAAK,EAAE,UAAWS,EAAE,aAAas9B,CAAC,EAAG,KAAK,CAAC,EAAG/9B,EAAE,OAAO,CAAC,IAAM+9B,EAAE,OAAO,CAAC,EAAI,IAAI,OAAO/9B,EAAG,GAAG,EAAE,OAAOA,CAAC,EAAE,OAAO+9B,EAAG,GAAG,EAAI,GAAG,OAAO/9B,EAAG,GAAG,EAAE,OAAO+9B,EAAG,GAAG,CAAC,CAC9Q,EAC2B,CACD,OAAOh9B,CACV,CACD,SAASU,EAAEV,EAAGlB,EAAGY,EAAG,CAChB,IAAI2oB,EAAG3nB,EAAGvB,EAAI,GACd,OAAgBa,IAAT,MAAqBA,IAAP,MAAcb,EAAaO,EAAE,QAAX,MAAoBM,GAAKA,EAAIN,EAAE,OAAO,QAAQ,iBAAkB,IAAI,GAAKP,EAAI,GACpHa,EAAI,OAAcA,EAAE,SAAR,GAAyBN,EAAE,SAAT,IAAyBA,EAAE,SAAR,IAAmBA,EAAE,YAAc,IACpFM,EAAIg9B,EAAEh9B,EAAGN,CAAC,EAAGgB,EAAIvB,EAAI,SAAWO,EAAE,MAAQA,EAAE,aAAeM,EAAE,MAAM,EAAE,EAAE,UAAU,KAAK,EAAE,EAAIA,EACnFN,EAAE,aAAX,OAA0BgB,EAAI,MAAQhB,EAAE,WAAagB,GAAiB7B,EAAEa,EAAE,WAAW,IAA5B,WAAkCgB,EAAI,MAAQ,KAAK,UAAUhB,EAAE,WAAW,EAAIgB,GAC5HzB,EAAE,QAAQ,UAAU,WAAWyB,CAAC,IAA3C,QAAuDxB,IAAP,IAAYmpB,EAAI,CAC5D,KAAMroB,EACN,UAAWf,EAAE,QAAQ,UAAU,YAAYe,EAAGb,EAAGO,CAAC,EAClD,eAAgB,CAAE,EAClB,QAAS,OACT,OAAQ,OACR,MAAO,CAAE,EACT,SAAU,CAAE,EACZ,SAAUZ,EACV,WAAY,OACZ,UAAW,CAAE,CAC3C,EAAoCI,IAAP,KAAaD,EAAE,QAAQ,UAAU,WAAWyB,CAAC,EAAI2nB,EAAGA,EAAIC,EAAE,QAAQ,OAAO,GAAI,GAAIrpB,EAAE,QAAQ,UAAU,WAAWyB,CAAC,CAAC,IAAM2nB,EAAIC,EAAE,QAAQ,OAAO,GAAI,CAAE,EAAErpB,EAAE,QAAQ,UAAU,WAAWyB,CAAC,CAAC,EACzL2nB,CACH,CAED,GADc,OAAOroB,EAAE,MAAvB,aAAgCA,EAAE,KAAOA,EAAE,KAAKA,CAAC,GAC7C,MAAM,QAAQA,EAAE,IAAI,EAAG,CACvB,GAAIA,EAAE,KAAK,OAAS,EAAG,CACVA,EAAE,aAAX,OAA0BA,EAAE,WAAa,IACzC,IAAIb,EAAIa,EAAE,YAAY,CAAC,EACvB,OAAQA,EAAE,MAAQA,EAAE,KAAK,QAAS,EAAGA,EAAE,MAAM,QAAS,SAASd,EAAG,CAC9DC,EAAE,OAAS,IAAMA,GAAKa,EAAE,kBAA8Bd,EAAE,OAAb,QAAmC,OAAOA,EAAE,MAAvB,WAA8BC,GAAKD,EAAE,KAAOC,GAAKD,CACnJ,GAAmCwB,EAAEvB,GAAKa,EAAE,YAAY,CAAC,EAAGA,EAAE,KAAMA,CAAC,CAC1C,CACDA,EAAE,KAAOA,EAAE,KAAK,IAAG,CACtB,CACD,OAAAlB,EAAIkB,EAAE,MAAmBA,EAAE,KAAK,OAAlB,QAAwC,OAAOA,EAAE,KAAK,MAA5B,WAAmCU,EAAEV,EAAE,KAAK,KAAMA,EAAE,KAAMA,CAAC,EAAIU,EAAEV,EAAE,KAAMA,EAAE,KAAMA,CAAC,EACjHA,EAAE,aAAX,OAA0BA,EAAE,WAAa,IAClClB,CAC7B,EACkB,IAAIwpB,EAAI5nB,EAAE5B,EAAE,IAAI,CAAC,EAAGY,EAAIZ,EAAE,IAAI,EAAGG,EAAIyB,EAAE5B,EAAE,IAAI,CAAC,EAAGk+B,EAAIt8B,EAAE5B,EAAE,IAAI,CAAC,EAC9D,SAASD,EAAEmB,EAAG,CACV,OAAOnB,EAAkB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAASmB,EAAG,CACvF,OAAO,OAAOA,CACjB,EAAG,SAASA,EAAG,CACZ,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAC5I,EAAyBnB,EAAEmB,CAAC,CACT,CACD,SAASqoB,EAAEroB,EAAGd,EAAG,EACJA,GAAR,MAAaA,EAAIc,EAAE,UAAYd,EAAIc,EAAE,QACtC,QAASlB,EAAI,EAAGwpB,EAAI,IAAI,MAAMppB,CAAC,EAAGJ,EAAII,EAAGJ,IAAKwpB,EAAExpB,CAAC,EAAIkB,EAAElB,CAAC,EACxD,OAAOwpB,CACV,CACD,SAAS5nB,EAAEV,EAAG,CACV,OAAOA,GAAKA,EAAE,WAAaA,EAAI,CAC3B,QAASA,CACnC,CACmB,CACJ,EACD,IAAK,SAASA,EAAGd,EAAGJ,EAAG,CACnB,OAAO,eAAeI,EAAG,aAAc,CACnC,MAAO,EAC7B,CAAmB,EAAGA,EAAE,KAAO,UAAW,CACpB,IAAIc,EAAI,KAAMd,EAAI,KAAK,KAAMJ,EAAI,KAAK,GAAI4B,EAAI,KAAK,cACnDzB,EAAE,WAAW,IAAIH,CAAC,EAClB,IAAIK,EAAI,SAASD,EAAGJ,EAAG,CACnB,IAAIwpB,EAAIppB,EAAE,aAAa,MAAM,EAAGQ,EAAgBR,EAAE,QAAQ,YAAa,IAAnC,SAAuCJ,EAAE,kBAAkB,SAASwpB,CAAC,GAAKppB,EAAE,mBAAoCA,EAAE,QAAQ,gBAAzB,WACrI,GAAI,CAACQ,EAAG,GAAgBR,EAAE,QAAQ,gBAAtB,QAAqC,CAC7C,IAAImpB,EAAI,SAAS,cAAc,OAAO,EACtCA,EAAE,aAAa,OAAQC,CAAC,EAAG5oB,EAAe2oB,EAAE,OAAb,OAAmBA,EAAI,IACpF,MAAiC3oB,EAAI,UACX,OAAcA,IAAP,GAAW,SAASR,EAAG,CAC1B,IAAIopB,EAAG5oB,EACP,SAAS2oB,GAAI,CACT,OAAO,KAAK,UAAY,KAAK,UAAU,KAAK,WAAa,KAAK,UAAU,cAAe,EAAUxpB,EAAE,qBAAqB,KAAKmB,CAAC,IAApC,IAAgDlB,EAAE,WAAT,IAAqB,KAAK,UAAU,YAAc,KAAK,eAAe,gBAAkB,MAAQA,EAAE,sBAAwBkB,EAAE,MAAQg9B,EAAE,kBAAkB,KAAKh9B,EAAGnB,EAAE,UAAU,KAAKmB,CAAC,EAAE,MAAK,CAAE,EAAE,QAAO,EAAKg9B,EAAE,kBAAkB,KAAKh9B,EAAGnB,EAAE,UAAU,KAAKmB,CAAC,EAAE,MAAO,IAAG,KAAK,EAAE,EAAIsoB,EAAE,KAAK,IAAI,EAAI,GAAKA,EAAE,KAAK,IAAI,CACnb,CACD,SAASnpB,EAAEa,EAAG,CACVN,EAAE,KAAK,KAAMM,CAAC,EAAG,KAAK,cAAiBg9B,EAAE,iBAAiB,KAAMh9B,CAAC,CACpE,CACD,GAAI,CAACd,EAAE,UAAU,WAAY,CACzB,GAAWJ,EAAE,kBAAT,GAA0B,CAC1B,GAAI,OAAO,yBAA0B,CACjC,IAAIgC,EAAI,OAAO,eAAiB,OAAO,yBAAyB,OAAO,eAAe5B,CAAC,EAAG,OAAO,EAAI,OACrG4B,GAAKA,EAAE,KAAOA,EAAE,KAAOwnB,EAAIxnB,EAAE,IAAKpB,EAAIoB,EAAE,IAAK,OAAO,eAAe5B,EAAG,QAAS,CAC3E,IAAKmpB,EACL,IAAKlpB,EACL,aAAc,EAC5D,CAA2C,GAAiBD,EAAE,QAAQ,YAAW,IAAjC,UAAwCopB,EAAI,UAAW,CACzD,OAAO,KAAK,WAC1D,EAA6C5oB,EAAI,SAASM,EAAG,CACf,KAAK,YAAcA,CACtB,EAAE,OAAO,eAAed,EAAG,QAAS,CACjC,IAAKmpB,EACL,IAAKlpB,EACL,aAAc,EACjB,GAC3C,MAA6C,SAAS,kBAAoBD,EAAE,iBAAiB,OAAO,IAAMopB,EAAIppB,EAAE,iBAAiB,OAAO,EAClGQ,EAAIR,EAAE,iBAAiB,OAAO,EAAGA,EAAE,iBAAiB,QAASmpB,CAAC,EAAGnpB,EAAE,iBAAiB,QAASC,CAAC,GAC9FD,EAAE,UAAU,WAAaopB,EAAGppB,EAAE,UAAU,WAAaQ,CACxD,CACDR,EAAE,UAAU,UAAY,SAASA,EAAG,CAChC,OAAOc,EAAE,OAAgBd,IAAP,GAAWopB,EAAE,KAAK,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,KAAK,EAAE,EAAIA,EAAE,KAAK,KAAK,EAAE,CAC7F,EAAEppB,EAAE,UAAU,UAAY,SAASA,EAAGJ,EAAG,CACtCY,EAAE,KAAK,KAAK,GAAYR,GAAR,KAAY,GAAYJ,IAAP,IAAYkB,EAAE,MAAQd,EAAE,MAAM,EAAE,EAAE,QAAS,EAAC,KAAK,EAAE,EAAIA,CAAC,CAC5F,EAAaopB,IAAX,SAAiBA,EAAI,UAAW,CAC/B,OAAO,KAAK,KAClD,EAAqC5oB,EAAI,SAASM,EAAG,CACf,KAAK,MAAQA,CAChB,EAAE,SAASd,EAAG,CACX,GAAIwB,EAAE,WAAwBA,EAAE,SAASxB,CAAC,IAAvB,QAAmCwB,EAAE,SAASxB,CAAC,EAAE,iBAArB,IAAsC,CACjF,IAAIopB,EAAI5nB,EAAE,SAASxB,CAAC,GAAKwB,EAAE,SAASxB,CAAC,EAAE,IAAMwB,EAAE,SAASxB,CAAC,EAAE,IAAM,SAASc,EAAG,CACzE,OAAOA,EAAE,KACvD,EAA6CN,EAAIgB,EAAE,SAASxB,CAAC,GAAKwB,EAAE,SAASxB,CAAC,EAAE,IAAMwB,EAAE,SAASxB,CAAC,EAAE,IAAM,SAASc,EAAGd,EAAG,CAC3E,OAAOc,EAAE,MAAQd,EAAGc,CAClE,EAC0CU,EAAE,SAASxB,CAAC,EAAI,CACZ,IAAK,SAASA,EAAG,CACb,GAAIA,EAAE,UAAW,CACb,GAAIA,EAAE,UAAU,KAAK,WAAY,OAAOA,EAAE,UAAU,gBACpD,IAAIQ,EAAI4oB,EAAEppB,CAAC,EACX,OAAcL,EAAE,qBAAqB,KAAKmB,EAAG,OAAQ,OAAQd,EAAE,UAAU,QAAQ,cAAc,IAAxF,IAAoGJ,EAAE,WAAT,GAAoBY,EAAI,EAC/H,CACD,OAAO4oB,EAAEppB,CAAC,CACb,EACD,IAAK,SAASc,EAAGd,EAAG,CAChB,IAAIJ,EAAIY,EAAEM,EAAGd,CAAC,EACd,OAAOc,EAAE,cAAiBg9B,EAAE,iBAAiBh9B,EAAGd,CAAC,EAAGJ,CACvD,EACD,eAAgB,EAC9D,CACuC,CACJ,EAACI,EAAE,IAAI,EAAG,SAASc,EAAG,CACnBf,EAAE,WAAW,GAAGe,EAAG,aAAe,UAAW,CACzC,IAAIA,EAAI,KAAMd,EAAIc,EAAE,UAAU,UAAU,EAAE,EAC1Cd,IAAMc,EAAE,UAAU,MAAQnB,EAAE,UAAU,KAAKmB,EAAE,SAAS,EAAE,MAAO,EAAC,QAAO,EAAKnB,EAAE,UAAU,KAAKmB,EAAE,SAAS,GAAG,KAAK,EAAE,MAASg9B,EAAE,iBAAiBh9B,EAAGd,CAAC,CAC5L,EACA,EAAoCA,CAAC,EACN,CAC/B,EAA4BA,CAAC,EAAIA,EAAE,UAAY,OAAQQ,CACvD,EAAwBZ,EAAGI,CAAC,EACN,GAAWC,IAAP,GAAU,CACVa,EAAE,oBAAsBlB,EAAE,YAAakB,EAAE,UAAuBlB,IAAX,OAAeA,EAAE,UAAY,OAC3EkB,EAAE,YAAT,KAAuBA,EAAE,UAAY,QAAS,cAAelB,GAAcA,EAAE,aAAa,WAAW,IAAnC,OAAyCA,EAAE,UAAYI,EAAE,UAC3HJ,EAAE,aAAa,YAAaI,EAAE,SAAS,GAAWC,IAAP,KAAaD,EAAE,gBAAkBA,EAAE,iBAA0B,CAAE,YAAa,UAAW,QAAQJ,EAAE,YAAY,IAAvD,GACjGwpB,EAAE,SAAWppB,EAAE,iBAAmB,GAAIJ,EAAE,aAAa,cAAe,KAAK,GAAIG,EAAE,WAAW,GAAGH,EAAG,SAAUY,EAAE,cAAc,WAAW,EACrIT,EAAE,WAAW,GAAGH,EAAG,QAASY,EAAE,cAAc,UAAU,EAAGT,EAAE,WAAW,GAAGH,EAAG,OAAQY,EAAE,cAAc,SAAS,EAC7GT,EAAE,WAAW,GAAGH,EAAG,QAASY,EAAE,cAAc,UAAU,EAAGT,EAAE,WAAW,GAAGH,EAAG,UAAWY,EAAE,cAAc,YAAY,EACnHT,EAAE,WAAW,GAAGH,EAAG,QAASY,EAAE,cAAc,UAAU,EAAGT,EAAE,WAAW,GAAGH,EAAG,aAAcY,EAAE,cAAc,eAAe,EACzHT,EAAE,WAAW,GAAGH,EAAG,aAAcY,EAAE,cAAc,eAAe,EAAGT,EAAE,WAAW,GAAGH,EAAG,QAASY,EAAE,cAAc,UAAU,EACzHT,EAAE,WAAW,GAAGH,EAAG,MAAOY,EAAE,cAAc,QAAQ,EAAGT,EAAE,WAAW,GAAGH,EAAG,WAAYI,EAAE,UAAU,EAChGD,EAAE,WAAW,GAAGH,EAAG,aAAcI,EAAE,YAAY,EAAGD,EAAE,WAAW,GAAGH,EAAG,UAAWI,EAAE,SAAS,EACpFA,EAAE,iBAAT,IAA2BD,EAAE,WAAW,GAAGH,EAAG,UAAWY,EAAE,cAAc,QAAQ,GAChF4oB,EAAE,QAAUppB,EAAE,iBAAmBJ,EAAE,gBAAgB,WAAW,EAAGG,EAAE,WAAW,GAAGH,EAAG,QAASY,EAAE,cAAc,kBAAkB,GAChIT,EAAE,WAAW,GAAGH,EAAG,WAAYY,EAAE,cAAc,aAAa,EAAcM,EAAE,gBAAb,QAA8BA,EAAE,cAAe,EAC9GnB,EAAE,kBAAkB,KAAKmB,CAAC,EAAE,KAAK,EAAE,EAAGA,EAAE,UAAYA,EAAE,UAAU,EAAE,EAClE,IAAIc,GAAKhC,EAAE,UAAU,YAAcA,EAAE,eAAe,cACpD,GAAWA,EAAE,UAAU,UAAU,EAAE,IAA/B,IAA2CI,EAAE,uBAAT,IAAiC4B,IAAMhC,EAAG,IAC1Ek+B,EAAE,iBAAiBl+B,EAAGA,EAAE,UAAU,UAAU,EAAE,EAAGI,CAAC,EACtD,IAAIH,EAAIF,EAAE,UAAU,KAAKmB,CAAC,EAAE,QACrBqoB,EAAE,WAAW,KAAKroB,EAAGjB,CAAC,IAA7B,IAAkCG,EAAE,iBAAmBL,EAAE,aAAa,KAAKmB,EAAG,EAAE,EAChFd,EAAE,sBAAwB4B,IAAMhC,IAAaD,EAAE,qBAAqB,KAAKmB,CAAC,IAApC,GAAwCjB,EAAI,GAAKi+B,EAAE,kBAAkB,KAAKh9B,EAAGjB,CAAC,IAC5GG,EAAE,uBAAT,IAAiCA,EAAE,iBAAmB4B,IAAMhC,GAAYA,EAAE,UAAU,UAAU,EAAE,IAA/B,QAAyCk+B,EAAE,aAAal+B,EAAGC,CAAC,EAAG+B,IAAMhC,GAAKD,EAAE,MAAM,KAAKmB,EAAGlB,EAAGD,EAAE,SAAS,KAAKmB,EAAGnB,EAAE,qBAAqB,KAAKmB,CAAC,CAAC,CAAC,CACpN,CACJ,CACvB,EACkB,IAAIsoB,EAAIxpB,EAAE,IAAI,EAAGY,EAAIZ,EAAE,IAAI,EAAGG,EAAIH,EAAE,IAAI,EAAGk+B,EAAIl+B,EAAE,IAAI,EAAGD,EAAIC,EAAE,IAAI,EAAGupB,EAAIvpB,EAAE,IAAI,CAClF,EACD,KAAM,SAASkB,EAAGd,EAAG,CACjB,OAAO,eAAeA,EAAG,aAAc,CACnC,MAAO,EAC7B,CAAmB,EAAGA,EAAE,QAAU,SAASc,EAAGd,EAAGJ,EAAGwpB,EAAG,CACjC,KAAK,QAAU,CAAE,EAAE,KAAK,UAAYtoB,GAAK,GAAI,KAAK,gBAAkB,GAAI,KAAK,QAAUA,GAAK,GAC5F,KAAK,WAAad,GAAK,GAAI,KAAK,aAAeJ,GAAK,GAAI,KAAK,aAAewpB,GAAK,GACjF,KAAK,WAAa,CACd,IAAK,EACL,IAAK,CAC/B,CACA,CACe,EACD,KAAM,UAAW,CACb,MAAM,UAAU,UAAY,OAAO,eAAe,MAAM,UAAW,WAAY,CAC3E,MAAO,SAAStoB,EAAGd,EAAG,CAClB,GAAY,MAAR,KAAc,MAAM,IAAI,UAAU,+BAA+B,EACrE,IAAIJ,EAAI,OAAO,IAAI,EAAGwpB,EAAIxpB,EAAE,SAAW,EACvC,GAAUwpB,IAAN,EAAS,MAAO,GACpB,QAAS5oB,EAAI,EAAIR,EAAGD,EAAI,KAAK,IAAIS,GAAK,EAAIA,EAAI4oB,EAAI,KAAK,IAAI5oB,CAAC,EAAG,CAAC,EAAGT,EAAIqpB,GAAK,CACxE,GAAIxpB,EAAEG,CAAC,IAAMe,EAAG,MAAO,GACvBf,GACH,CACD,MAAO,EACV,CACvB,CAAmB,CACJ,EACD,KAAM,UAAW,CACb,IAAIe,EAAI,SAAS,KAAK,KAAK,SAAS,KAAM,MAAM,UAAU,MAAM,EAAGd,EAAI,SAAS,KAAK,KAAK,SAAS,KAAM,OAAO,UAAU,oBAAoB,EAAGJ,EAAI,SAAS,KAAK,KAAK,SAAS,KAAM,MAAM,UAAU,MAAM,EAAGwpB,EAAI,OAAO,KAC3N,OAAO,UAAY,OAAO,QAAU,SAAS5oB,EAAG,CAC5C,OAAOM,EAAEsoB,EAAE5oB,CAAC,EAAI,SAASM,EAAGsoB,EAAG,CAC3B,OAAOxpB,EAAEkB,EAAe,OAAOsoB,GAAnB,UAAwBppB,EAAEQ,EAAG4oB,CAAC,EAAI,CAAE,CAAEA,EAAG5oB,EAAE4oB,CAAC,CAAG,GAAK,EAAE,CACrE,EAAG,CAAE,EAC5B,EACe,EACD,KAAM,UAAW,CACb,SAAStoB,EAAEd,EAAG,CACV,OAAOc,EAAkB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAASA,EAAG,CACvF,OAAO,OAAOA,CACjB,EAAG,SAASA,EAAG,CACZ,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAC5I,EAAyBA,EAAEd,CAAC,CACT,CACa,OAAO,OAAO,gBAA5B,aAA+C,OAAO,eAA8Bc,EAAE,OAAO,SAAS,IAA/B,SAAmC,SAASA,EAAG,CAClH,OAAOA,EAAE,SACZ,EAAG,SAASA,EAAG,CACZ,OAAOA,EAAE,YAAY,SAC3C,EACe,EACD,KAAM,UAAW,CACb,OAAO,UAAU,WAAa,OAAO,UAAU,SAAW,SAASA,EAAGd,EAAG,CACrE,OAAmB,OAAOA,GAAnB,WAAyBA,EAAI,GAAI,EAAEA,EAAIc,EAAE,OAAS,KAAK,SAAkB,KAAK,QAAQA,EAAGd,CAAC,IAAxB,EAC/F,EACe,EACD,KAAM,SAASc,EAAGd,EAAGJ,EAAG,CACpB,OAAO,eAAeI,EAAG,aAAc,CACnC,MAAO,EAC7B,CAAmB,EAAGA,EAAE,MAAQ,SAASc,EAAGd,EAAGJ,EAAGwpB,EAAGrpB,EAAG,CAClC,IAAI+9B,EAAGn+B,EAAI,KAAMwpB,EAAI,KAAK,KAC1B,GAAenpB,IAAX,OAAc,MAAO,mBAAoBc,GAAK,iBAAkBA,GAAKd,EAAIc,EAAE,eAC/ElB,EAAIkB,EAAE,cAAgBN,EAAE,QAAQ,cAAgBs9B,EAAIt9B,EAAE,QAAQ,aAAY,EAAG,WAAW,CAAC,GAAG,wBAAwB,aAAeM,GAAKg9B,EAAE,0BAA4Bh9B,IAAMd,EAAI89B,EAAE,YAClLl+B,EAAIk+B,EAAE,WAAa,SAAS,WAAa,SAAS,UAAU,cAAgBl+B,GAAKI,EAAI,GAAK89B,EAAI,SAAS,UAAU,YAAW,GAAI,UAAW,EAAC,UAAU,YAAa,CAACh9B,EAAE,UAAU,UAAW,EAAC,MAAM,GAAKg9B,EAAE,KAAK,QAC9M,CACI,MAAO1U,EAAIppB,EAAI4B,EAAE,KAAKjC,EAAGK,CAAC,EAC1B,IAAKopB,EAAIxpB,EAAIgC,EAAE,KAAKjC,EAAGC,CAAC,CAClD,EACsB,GAAI,MAAM,QAAQI,CAAC,IAAMJ,EAAID,EAAE,MAAQK,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAGA,EAAIL,EAAE,MAAQK,EAAE,CAAC,EAAIA,EAAE,CAAC,GACjEA,EAAE,QAAb,SAAuBJ,EAAID,EAAE,MAAQK,EAAE,MAAQA,EAAE,IAAKA,EAAIL,EAAE,MAAQK,EAAE,IAAMA,EAAE,OAClE,OAAOA,GAAnB,SAAsB,CAClBA,EAAIopB,EAAIppB,EAAI4B,EAAE,KAAKjC,EAAGK,CAAC,EAAGJ,EAAgB,OAAQA,EAAIwpB,EAAIxpB,EAAIgC,EAAE,KAAKjC,EAAGC,CAAC,IAA3C,SAAgDA,EAAII,EAClF,IAAIwB,EAAI,WAAWV,EAAE,cAAc,aAAeN,EAAE,SAAS,kBAAoBM,EAAE,cAAc,aAAeN,EAAE,SAAS,iBAAiBM,EAAG,IAAI,EAAIA,EAAE,cAAc,QAAQ,EAAIlB,EACnL,GAAIkB,EAAE,WAAaU,EAAIV,EAAE,YAAcU,EAAI,EAAGV,EAAE,UAAU,SAAW,CACjE,MAAOd,EACP,IAAKJ,CACnC,EAA6BupB,EAAE,kBAA2BA,EAAE,aAAT,IAAuBnpB,IAAMJ,IAAMG,GAAKH,KAAMkB,KAAOA,EAAE,UAAU,YAAcA,EAAE,eAAe,cAAe,CACpI,GAAI,sBAAuBA,EAAGA,EAAE,kBAAkBd,EAAGJ,CAAC,UAAYY,EAAE,QAAQ,aAAc,CACtF,GAAIs9B,EAAI,SAAS,YAAW,EAAeh9B,EAAE,aAAb,QAAoCA,EAAE,aAAX,KAAuB,CAC9E,IAAIb,EAAI,SAAS,eAAe,EAAE,EAClCa,EAAE,YAAYb,CAAC,CAClB,CACD69B,EAAE,SAASh9B,EAAE,WAAYd,EAAIc,EAAE,UAAU,UAAS,EAAG,OAASd,EAAIc,EAAE,UAAU,UAAW,EAAC,MAAM,EAChGg9B,EAAE,OAAOh9B,EAAE,WAAYlB,EAAIkB,EAAE,UAAU,UAAS,EAAG,OAASlB,EAAIkB,EAAE,UAAU,UAAW,EAAC,MAAM,EAC9Fg9B,EAAE,SAAS,EAAE,EACb,IAAIj+B,EAAIW,EAAE,QAAQ,aAAY,EAC9BX,EAAE,gBAAiB,EAAEA,EAAE,SAASi+B,CAAC,CACpC,MAAMh9B,EAAE,mBAAqBg9B,EAAIh9B,EAAE,gBAAiB,GAAE,SAAS,EAAE,EAAGg9B,EAAE,QAAQ,YAAal+B,CAAC,EAC7Fk+B,EAAE,UAAU,YAAa99B,CAAC,EAAG89B,EAAE,OAAM,GAC1Bh9B,EAAE,UAAU,YAAvB,QAAoCA,EAAE,UAAU,UAAU,KAAKnB,EAAG,CAC9D,MAAOK,EACP,IAAKJ,CACvC,CAA+B,CACJ,CACJ,CACvB,EAAqBI,EAAE,8BAAgC,SAASc,EAAG,CAC7C,IAAId,EAAGJ,EAAGwpB,EAAI,KAAM5oB,EAAI4oB,EAAE,QAASzpB,EAAIypB,EAAE,cAAe5nB,EAAI2nB,EAAE,KAAKC,CAAC,EAAGnpB,EAAI,CAAE,EAAE2B,EAAIpB,EAAE,eAAegB,CAAC,EAAG3B,EAAIi+B,EAAE,gBAAgB,KAAK1U,EAAG,GAAID,EAAE,KAAKC,CAAC,EAAG,GAAI,EAAE,EAAG7nB,EAAI1B,EAAE,OAAQ6B,EAAeE,IAAX,OAAeA,EAAE,QAAQ,QAAU,OACnN,IAAK5B,EAAIwB,EAAI,EAAGxB,EAAIH,EAAE,OAAQG,IAAK0B,GAAK9B,EAAIk+B,EAAE,gBAAgB,KAAK1U,EAAGppB,EAAG0B,EAAG1B,EAAI,CAAC,GAAG,QAAQ,MAAO,EACnGC,EAAED,CAAC,EAAIL,EAAE,OAAO,GAAI,GAAIC,CAAC,EACzB,IAAIM,EAAI0B,GAAgBA,EAAE,cAAb,OAA2BA,EAAE,QAAQA,EAAE,WAAW,EAAI,OACnE,IAAK5B,EAAIuB,EAAI,EAAGvB,EAAIwB,KAAQ5B,EAAIK,EAAED,CAAC,GAAG,MAAM,aAAeJ,EAAE,MAAM,oBAAsBA,EAAE,MAAM,gBAAkBM,IAAMA,IAAMD,EAAED,CAAC,EAAE,QAAQ4B,EAAE,WAAW,GAAYhC,EAAE,MAAM,SAAf,IAAgCA,EAAE,MAAM,SAAf,IAAyBA,EAAE,QAAQgC,EAAE,WAAW,GAAK7B,EAAE,sBAAsB,KAAKqpB,EAAGxpB,EAAE,QAAQgC,EAAE,WAAW,EAAE,WAAW,MAAM,GAAG,EAAG1B,EAAE,WAAW,MAAM,GAAG,CAAC,GAAY49B,EAAE,SAAS,KAAK1U,EAAGppB,CAAC,EAAE,CAAC,EAAE,MAAhC,MAAyCH,EAAEG,CAAC,IAAM89B,EAAE,eAAe,KAAK1U,EAAGppB,EAAGJ,EAAE,KAAK,EAAII,IAAKuB,IACtb,OAAOT,EAAI,CACP,EAAGS,EACH,IAAKtB,EAAEsB,CAAC,EAAItB,EAAEsB,CAAC,EAAE,MAAQ,MAC5B,EAAGA,CACP,EAAEvB,EAAE,0BAA4B,SAASc,EAAGd,EAAGJ,EAAG,CAC/C,IAAIwpB,EAAG5oB,EAAGT,EAAG6B,EAAI,KAAM/B,EAAI+B,EAAE,QAASL,EAAIK,EAAE,KAE5C,GADA5B,IAAM4B,EAAE,MAAQd,EAAE,IAAMA,EAAE,MAAQA,EAAE,MAAQA,EAAE,KAC1CA,EAAE,QAAUA,EAAE,IAAK,CACnB,OAAQlB,EAAIA,GAAK2B,EAAE,qBAAoB,CACrC,IAAK,OACH,MAEF,IAAK,SACHT,EAAI,CACA,MAAO,EACP,IAAKnB,EAAE,KAAKiC,CAAC,EAAE,MACjD,EAC8B,MAEF,IAAK,SACHd,EAAE,IAAMA,EAAE,MAAQb,EAAE,KAAK2B,EAAGunB,EAAE,KAAKvnB,CAAC,CAAC,EACrC,MAEF,IAAK,aACH,GAAIA,EAAE,QAAU,GAAW/B,EAAE,eAAe,SAAvB,EAA+B,MACpD,GAAI,SAASiB,EAAG,CACZ,GAAWS,EAAE,aAAT,IAA6BA,EAAE,SAAR,EAAgB,CACvC,IAAIvB,EAAIH,EAAE,eACV,GAAeG,EAAEc,CAAC,IAAd,QAA8Bd,EAAEc,CAAC,EAAE,QAAhB,OAAuB,CAC1C,GAAIA,EAAIb,EAAE,KAAK2B,EAAG,EAAE,EAAG,MAAO,GAC9B,IAAIhC,EAAID,EAAE,KAAKiC,CAAC,EAAE,QAAQL,EAAE,UAAU,EACtC,GAAW3B,IAAP,GAAU,CACV,QAASwpB,EAAI,EAAG5oB,EAAIR,EAAE,OAAQopB,EAAI5oB,EAAG4oB,IAAK,GAAIppB,EAAEopB,CAAC,GAAKxpB,EAAIwpB,GAAKppB,EAAEopB,CAAC,EAAE,QAAU0U,EAAE,eAAe,KAAKl8B,EAAGwnB,CAAC,EAAG,MAAO,GAClH,MAAO,EACV,CACJ,CACJ,CACD,MAAO,EACzC,EAAgCtoB,EAAE,KAAK,EAAG,CACR,IAAIY,EAAI/B,EAAE,KAAKiC,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQL,EAAE,UAAU,EAC/CT,EAAE,IAAMA,EAAE,MAAQS,EAAE,aAAetB,EAAE,KAAK2B,EAAGF,CAAC,EAAIA,EAClD,KACH,CAEH,QACE,GAAI0nB,EAAItoB,EAAE,MAAON,EAAI2oB,EAAE,KAAKvnB,EAAGwnB,EAAG,EAAE,EAAGA,IAAMrpB,EAAIE,EAAE,KAAK2B,EAAUpB,IAAP,IAAYgB,EAAE,KAAKI,EAAG,CAAC,EAAIpB,EAAI,EAAE,GAAIM,EAAE,IAAMA,EAAE,MAAQU,EAAE,KAAKI,EAAGwnB,EAAG,GAAI,EAAE,EAAIA,EAAInpB,EAAE,KAAK2B,EAAGwnB,CAAC,MAAQ,CAC5J,IAAIlpB,EAAIL,EAAE,eAAeW,CAAC,EAAGqB,EAAIi8B,EAAE,gBAAgB,KAAKl8B,EAAG7B,EAAGG,EAAIA,EAAE,MAAM,QAAU,OAAQA,CAAC,EAAGyB,EAAIm8B,EAAE,eAAe,KAAKl8B,EAAG7B,EAAG8B,EAAE,KAAK,EACvI,GAAWF,IAAP,IAAYhC,EAAE,KAAKiC,CAAC,EAAE7B,CAAC,IAAM4B,GAAYE,EAAE,MAAM,qBAAf,IAA4CA,EAAE,MAAM,iBAAf,IAAiC,CAACL,EAAE,KAAKI,EAAG7B,EAAGwB,EAAE,WAAY,EAAE,GAAKM,EAAE,MAAM,MAAQF,EAAG,CAC9J,IAAItB,EAAIJ,EAAE,KAAK2B,EAAG7B,CAAC,GAClBqpB,GAAK/oB,GAAK+oB,IAAMrpB,KAAOA,EAAIM,EAC/B,CACDS,EAAE,IAAMA,EAAE,MAAQf,CACrB,CACJ,CACD,OAAOe,CACV,CACJ,EAAEd,EAAE,UAAYL,EAAGK,EAAE,kBAAoB,UAAW,CACjD,IAAIc,EAAI,KAAK,QACb,OAAWA,EAAE,UAAb,SAAyBA,EAAE,QAAUg9B,EAAE,gBAAgB,KAAK,KAAM,GAAI,CAAC,EAAch9B,EAAE,SAAb,SAAwBA,EAAE,OAASA,EAAE,QAAQ,MAAO,IACvHA,EAAE,OAC/B,EAAqBd,EAAE,qBAAuBmpB,EAAGnpB,EAAE,OAASwB,EAAGxB,EAAE,aAAe,SAASc,EAAG,CACtE,IAAId,EAAI,KAAK,QACbA,EAAE,OAAS,OAAec,IAAP,KAAad,EAAE,eAAiB,GAAIA,EAAE,EAAI,GACtDc,IAAP,KAAad,EAAE,MAAQ,GAAIA,EAAE,UAAY,GAC/D,EAAqBA,EAAE,SAAWC,EAAGD,EAAE,aAAe,SAASc,EAAGd,EAAG,CAC/C,IAAIJ,EAAI,KAAMwpB,EAAItoB,EAAI,EACtB,GAAIA,GAAK,EAAG,MAAO,GACnB,KAAMsoB,EAAI,IAAappB,IAAP,KAAoB89B,EAAE,QAAQ,KAAKl+B,EAAGwpB,CAAC,EAAE,MAAM,iBAAlC,IAAoD,CAAC5nB,EAAE,KAAK5B,EAAGwpB,EAAG,OAAQ,EAAE,IAAappB,IAAP,IAAY,CAACwB,EAAE,KAAK5B,EAAGwpB,EAAG,OAAQ,EAAE,IAAMA,IACzJ,OAAOA,CAC7B,EAAqBppB,EAAE,kBAAoB4B,EACzB,IAAIwnB,EAAG5oB,GAAK4oB,EAAIxpB,EAAE,IAAI,IAAMwpB,EAAE,WAAaA,EAAI,CAC3C,QAASA,CAC/B,EAAqBrpB,EAAIH,EAAE,IAAI,EAAGk+B,EAAIl+B,EAAE,IAAI,EAC1B,SAASD,EAAEmB,EAAG,CACV,IAAId,EAAI,KAAMJ,EAAII,EAAE,QACpB,OAAkBJ,EAAE,SAAb,QAA8BkB,IAAP,KAAalB,EAAE,OAASk+B,EAAE,gBAAgB,KAAK99B,EAAG,GAAImpB,EAAE,KAAKnpB,CAAC,EAAG,EAAE,EACtFJ,EAAE,UAAb,SAAyBA,EAAE,QAAUA,EAAE,OAAO,MAAO,IAAIA,EAAE,MAC9D,CACD,SAASupB,EAAEroB,EAAGd,EAAGJ,EAAG,CAChB,IAAIwpB,EAAI,KAAK,QAAS5oB,EAAI,GAAIT,EAAI,GAAI+9B,EAAIl+B,GAAKwpB,EAAE,eACtCtoB,IAAX,SAAiBA,EAAI,IACrB,QAASnB,EAAI,EAAGwpB,EAAI2U,EAAE,OAAQn+B,EAAIwpB,EAAGxpB,IAAKm+B,EAAEn+B,CAAC,IAAMK,GAAY89B,EAAEn+B,CAAC,EAAE,iBAAZ,MAAgCA,GAAKmB,IAAMN,EAAIb,GACvGA,GAAKmB,IAAMf,EAAIJ,IACf,OAAca,IAAP,IAAYA,IAAMM,EAAIf,EAAWA,IAAP,IAAYe,EAAIN,EAAIT,EAAIe,EAAIN,EAAIT,CACpE,CACD,SAASyB,EAAEV,EAAGd,EAAGJ,EAAG,CAChB,IAAIwpB,EAAI,KAAM5oB,EAAI,KAAK,QAAST,EAAI+9B,EAAE,gBAAgB,KAAK1U,EAAGtoB,CAAC,EAAE,MACjE,GAAWf,EAAE,MAAT,KAAiBA,EAAI+9B,EAAE,QAAQ,KAAK1U,EAAGtoB,CAAC,EAAE,OAAef,EAAE,SAAT,GAAiB,OAAOA,EAAE,GAChF,GAAWH,IAAP,IAAuBY,EAAE,eAAeM,CAAC,IAA7B,QAAyCN,EAAE,eAAeM,CAAC,EAAE,iBAA3B,GAA2C,MAAO,GACpG,GAAWd,IAAP,IAAYc,EAAI,GAAI,CACpB,GAAIlB,EAAG,CACH,IAAID,EAAIm+B,EAAE,SAAS,KAAK1U,EAAGtoB,CAAC,EAC5B,OAAOnB,EAAE,OAAS,GAAYA,EAAEA,EAAE,OAAS,CAAC,EAAE,MAAM,MAA7B,GAAmC,EAAI,EACjE,CACD,IAAIwpB,EAAI2U,EAAE,sBAAsB,KAAK1U,EAAGtoB,EAAGg9B,EAAE,SAAS,KAAK1U,EAAGtoB,CAAC,CAAC,EAAGU,EAAIs8B,EAAE,eAAe,KAAK1U,EAAGtoB,EAAGqoB,EAAE,KAAK,EAC1G,OAAOA,EAAE,MAAM,MAAQ3nB,CAC1B,CACD,MAAO,EACV,CACD,SAASvB,EAAEa,EAAGd,EAAGJ,EAAG,CAChB,IAAIwpB,EAAI,KACGxpB,IAAX,SAAiBA,EAAI,IACrB,QAASY,EAAIM,EAAI,EAAUg9B,EAAE,QAAQ,KAAK1U,EAAG5oB,CAAC,EAAE,MAAM,MAAlC,KAAiDR,IAAP,KAAoB89B,EAAE,QAAQ,KAAK1U,EAAG5oB,CAAC,EAAE,MAAM,iBAAlC,IAAoD,CAACgB,EAAE,KAAK4nB,EAAG5oB,EAAG,OAAQ,EAAE,IAAaR,IAAP,IAAY,CAACwB,EAAE,KAAK4nB,EAAG5oB,EAAG,OAAQZ,CAAC,IAAMY,IACtM,OAAOA,CACV,CACD,SAASoB,EAAEd,EAAG,CACV,IAAId,EAAI,KAAK,KAAMJ,EAAI,KAAK,GAC5B,MAAO,CAAC,KAAK,OAAqB,OAAOkB,GAAnB,UAAwBd,EAAE,QAAiBA,EAAE,cAAT,IAAwB,CAACJ,IAAMkB,EAAI,KAAK,UAAS,EAAG,OAASA,GAAK,IAAMA,EAAI,GACtIA,CACH,CACJ,EACD,KAAM,SAASA,EAAGd,EAAGJ,EAAG,CACpB,OAAO,eAAeI,EAAG,aAAc,CACnC,MAAO,EAC7B,CAAmB,EAAGA,EAAE,sBAAwB4B,EAAG5B,EAAE,iBAAmBmpB,EAAGnpB,EAAE,gBAAkB,SAASc,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAG,CACjG,IAAIT,EAAI,KAAM+9B,EAAI,KAAK,KAAMn+B,EAAI,KAAK,QAASwpB,EAAI2U,EAAE,OACrDt9B,GAAKs9B,EAAE,SAAWA,EAAE,OAAS,GAAI/9B,EAAE,QAAQ,MAAQ,CAAE,GACrDC,EAAIA,GAAK,EACT,IAAIH,EAAG0B,EAAGrB,EAAG2B,EAAGF,EAAI,CAAE,EAAEtB,EAAI,EAC5B,EAAG,CACC,GAAWS,IAAP,IAAYnB,EAAE,eAAeU,CAAC,EAAGkB,GAAKrB,EAAIM,GAAKb,EAAE,eAAeU,CAAC,EAAE,MAAM,aAA0BV,EAAE,eAAeU,EAAI,CAAC,IAAjC,SAA8CV,EAAE,eAAeU,CAAC,EAAE,iBAA3B,IAA6CV,EAAE,eAAeU,CAAC,EAAE,OAASy9B,EAAE,2BAA6Bz9B,EAAI,GAAKuB,EAAE,KAAK7B,EAAGM,EAAGqB,EAAE,KAAK3B,EAAGM,EAAGR,EAAGQ,EAAI,CAAC,CAAC,EAAIV,EAAE,eAAeU,CAAC,GAAG,MACjTR,EAAIK,EAAE,QAAQ,MAAO,EAAEyB,EAAE,KAAY/B,IAAP,GAAWM,EAAE,MAAeN,IAAP,GAAW2B,EAAE,UAAYC,EAAE,KAAKzB,EAAGM,EAAGkB,CAAC,CAAC,MAAQ,CAC/FA,GAAKrB,EAAID,EAAE,KAAKF,EAAGM,EAAGR,EAAGQ,EAAI,CAAC,GAAG,MAAOR,EAAIK,EAAE,QAAQ,QACtD,IAAIuB,EAAW2nB,IAAP,KAAoB0U,EAAE,aAAT,GAAsBA,EAAE,WAAav8B,EAAE,MAC3DM,GAAKA,GAAKlC,EAAE,eAAeU,EAAI,CAAC,IAAMkB,EAAE,QAAUA,EAAE,MAAQu8B,EAAE,gBAA2Bv8B,EAAE,KAAX,OAAyBE,IAAP,IAAuBA,IAAX,QAA4B,OAAOA,GAAnB,UAAwB,SAASA,CAAC,GAAKA,EAAIpB,EAAIsB,EAAE,KAAY/B,IAAP,GAAW2B,EAAE,UAAYC,EAAE,KAAKzB,EAAG4B,EAAE,OAAQJ,CAAC,CAAC,EAAIM,EAAI,EAC/O,CACDxB,GAC1B,OAAsCkB,EAAE,SAAT,IAA0BA,EAAE,MAAT,IAAgBvB,EAAIK,GAChD,OAAOsB,EAAEA,EAAE,OAAS,CAAC,IAArB,IAA0BA,EAAE,MACrB/B,IAAP,IAAuBD,EAAE,aAAb,SAA4BA,EAAE,WAAaU,EAAI,GACpDy9B,EAAE,OAAS3U,EAAGxnB,CAC3C,EAAqB3B,EAAE,eAAiBwB,EAAGxB,EAAE,QAAUH,EAAGG,EAAE,gBAAkBC,EAAGD,EAAE,SAAW0B,EAAG1B,EAAE,WAAauB,EAC9F,IAAI6nB,EAAG5oB,GAAK4oB,EAAIxpB,EAAE,IAAI,IAAMwpB,EAAE,WAAaA,EAAI,CAC3C,QAASA,CAC/B,EAAqBrpB,EAAIH,EAAE,IAAI,EACb,SAASk+B,EAAEh9B,EAAG,CACV,OAAOg9B,EAAkB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAASh9B,EAAG,CACvF,OAAO,OAAOA,CACjB,EAAG,SAASA,EAAG,CACZ,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAC5I,EAAyBg9B,EAAEh9B,CAAC,CACT,CACD,SAASnB,EAAEmB,EAAGd,EAAG,CACb,IAAIJ,GAAakB,EAAE,aAAV,KAAwBA,EAAE,KAAKqoB,EAAEroB,CAAC,CAAC,EAAIA,EAAE,SAAS,KAAK,EAAE,EAClE,GAAWlB,IAAP,GAAU,IAAKA,EAAIA,EAAE,MAAM,GAAG,EAAE,CAAC,EAAGA,EAAE,OAASI,GAAKJ,GAAK,IAC7D,OAAOA,CACV,CACD,SAASupB,EAAEroB,EAAG,CACV,IAAId,EAAIc,EAAE,QAAQA,EAAE,WAAW,EAC/B,OAAmB,OAAOd,GAAnB,UAAwBA,EAAE,OAAS,IAAMA,EAAIA,EAAE,MAAM,GAAG,EAAE,CAAC,GAAeA,IAAX,OAAeA,EAAE,SAAU,EAAG,EACvG,CACD,SAASwB,EAAEV,EAAGd,EAAGJ,EAAG,CAChB,IAAIwpB,EAAI,KAAM5oB,EAAI,KAAK,KAAMb,EAAI,KAAK,QACtC,IAAgBK,EAAIA,GAAKH,EAAE,KAAKupB,EAAGtoB,CAAC,EAAE,OAAO,cAAzC,QAA+DlB,IAAP,GAAU,CAClE,GAAWI,EAAE,cAAT,IAA+BA,EAAE,SAAT,IAA0BA,EAAE,YAAT,GAAoB,CAC/D,IAAImpB,EAAIppB,EAAE,qBAAqB,KAAKqpB,EAAGtoB,CAAC,EAAGU,EAAIzB,EAAE,SAAS,KAAKqpB,EAAGD,CAAC,EACnE,OAAQvpB,EAAIkB,GAAKU,EAAIV,EAAIU,GAAKhB,EAAE,wBAA0BR,EAAE,OAASA,EAAE,UAAYA,EAAE,IAAoB,OAAOA,EAAE,aAAvB,WAAqCA,EAAE,YAAYQ,CAAC,EAAIR,EAAE,WACxJ,CACD,OAAqB,OAAOA,EAAE,aAAvB,WAAqCA,EAAE,YAAYQ,CAAC,EAAIR,EAAE,WACpE,CACD,GAAWA,EAAE,SAAT,GAAiB,CACjB,GAAIc,EAAI,IAAiBnB,EAAE,eAAemB,CAAC,IAA7B,OAAgC,CAC1C,IAAIb,EAAG2B,EAAIF,EAAE,KAAK0nB,EAAGtoB,CAAC,EAAGS,EAAI,GAC7B,GAAgB,OAAOf,EAAE,aAArB,UAAoCoB,EAAE,OAAS,GAAYA,EAAEA,EAAE,OAAS,CAAC,EAAE,MAAM,MAA7B,GAAmC,EAAI,IAAI,QAAS1B,EAAI,EAAGA,EAAI0B,EAAE,OAAQ1B,IAAK,GAAW0B,EAAE1B,CAAC,EAAE,MAAM,MAAlB,IAAgC0B,EAAE1B,CAAC,EAAE,MAAM,cAAlB,IAAwC0B,EAAE1B,CAAC,EAAE,MAAM,qBAAlB,KAAgD0B,EAAE1B,CAAC,EAAE,MAAM,SAAlB,IAAuCD,IAAX,QAAuB2B,EAAE1B,CAAC,EAAE,MAAM,GAAG,KAAKD,EAAE,MAAM,IAAKN,EAAGmB,EAAG,GAAIN,CAAC,IAAlD,MAAyDe,EAAE,KAAKK,EAAE1B,CAAC,CAAC,EACtV0B,EAAE1B,CAAC,EAAE,MAAM,SAAlB,KAA6BD,EAAI2B,EAAE1B,CAAC,GAAIqB,EAAE,OAAS,GAAK,cAAc,KAAKA,EAAE,CAAC,EAAE,MAAM,GAAG,GAAI,OAAOf,EAAE,YAAY,OAAOM,EAAIN,EAAE,YAAY,MAAM,EACpJ,CACD,OAAOR,EAAE,GACZ,CACD,OAAoB89B,EAAEt9B,EAAE,WAAW,IAA5B,SAAgCR,EAAE,IAAMQ,EAAE,YAAY,OAAOM,EAAIN,EAAE,YAAY,MAAM,CAC/F,CACD,SAASP,EAAEa,EAAGd,EAAGJ,EAAG,CAChB,OAAO,KAAK,QAAQ,eAAekB,CAAC,GAAKc,EAAE,KAAK,KAAMd,EAAGY,EAAE,KAAK,KAAMZ,EAAGd,GAAIA,EAAE,QAAaJ,CAAC,CAAC,CACjG,CACD,SAASgC,EAAEd,EAAGd,EAAG,CACb,IAAIJ,EAAI,KAAK,KAAMwpB,EAAI,EAAG5oB,EAAI,SAASM,EAAGd,EAAG,CACzC,IAAIJ,EAAI,EAAGwpB,EAAI,GACf,OAAAppB,EAAE,QAAS,SAASc,EAAG,CACnBA,EAAE,MAAM,cAAsBlB,IAAN,GAAWA,IAAMkB,EAAE,MAAM,cAAgBsoB,EAAI,KAAYxpB,IAAN,GAAWA,EAAIkB,EAAE,MAAM,eAAiBlB,EAAIkB,EAAE,MAAM,aAClI,GAAIlB,IAAWkB,GAAL,GAAed,EAAE,QAAP,EAAgBJ,EAAI,EAAIwpB,IAAMxpB,EAAI,IAChDA,CACjC,EAAwBkB,EAAGd,CAAC,EACNc,EAAIA,EAAI,EAAIA,EAAI,EAAI,EACpB,IAAIf,EAAG+9B,EAAG3U,EAAG3nB,EAAI7B,EAAEE,EAAE,KAAK,KAAMiB,CAAC,CAAC,EAClClB,EAAE,QAAUI,EAAE,OAAS,GAAYA,EAAEA,EAAE,OAAS,CAAC,EAAE,MAAM,MAA7B,KAAqCopB,EAAI,GACrE,QAASnpB,EAAI,EAAGA,EAAID,EAAE,OAASopB,EAAGnpB,IAAK,CACnC,IAAI2B,EAAI5B,EAAEC,CAAC,EACXF,EAAIJ,EAAEiC,EAAGJ,EAAE,MAAM,EACjB,IAAID,EAAI,KAAK,IAAIxB,EAAIyB,CAAC,GACdI,EAAE,8BAAT,IAAwC5B,EAAE,OAAQ,SAASc,EAAG,CAC3D,OAAcA,EAAE,8BAAT,EACV,GAAG,QAAU,KAAkBg9B,IAAX,QAAuB/9B,IAAP,IAAYwB,EAAIu8B,GAAK3U,GAAK,CAACvpB,EAAE,QAAUupB,EAAE,MAAM,aAAeA,EAAE,MAAM,YAAc3oB,EAAI,GAAkB2oB,EAAE,MAAM,iBAArB,WAAwC,CAACvnB,EAAE,MAAM,aAAeA,EAAE,MAAM,YAAcpB,EAAI,GAAK,CAACoB,EAAE,MAAM,iBAAmBunB,GAAK,CAACvpB,EAAE,QAAUupB,EAAE,MAAM,oBAAsB,CAACvnB,EAAE,MAAM,sBAAwBk8B,EAAIv8B,EAClV4nB,EAAIvnB,EACP,CACD,OAAOunB,CACV,CACD,SAAStpB,EAAEiB,EAAGd,EAAG,CACb,IAAIJ,EAAI,KAAK,QACb,OAAOA,EAAE,eAAekB,CAAC,EAAIlB,EAAE,eAAekB,CAAC,GAAKd,GAAK0B,EAAE,KAAK,KAAMZ,CAAC,GAAG,CAAC,CAC9E,CACD,SAASS,EAAET,EAAGd,EAAGJ,EAAG,CAChB,SAASwpB,EAAEtoB,EAAG,CACV,QAASd,EAAGJ,EAAI,CAAE,EAAEwpB,EAAI,GAAI5oB,EAAI,EAAGT,EAAIe,EAAE,OAAQN,EAAIT,EAAGS,IAAK,GAAYM,EAAE,OAAON,CAAC,IAAlB,IAAqB,IAAKR,EAAIc,EAAE,WAAWN,EAAI,CAAC,EAAG,EAAE4oB,EAAIppB,GAAKJ,EAAE,KAAK,OAAO,aAAawpB,CAAC,CAAC,OAAQA,EAAItoB,EAAE,WAAWN,CAAC,EACtLZ,EAAE,KAAKkB,EAAE,OAAON,CAAC,CAAC,EAClB,OAAOZ,EAAE,KAAK,EAAE,CACnB,CACD,OAAOkB,EAAE,MAAM,MAAQd,EAAE,MAAM,WAAa,EAAE,EAAEJ,EAAE,OAASkB,EAAE,MAAM,cAAc,QAAUd,EAAE,MAAM,cAAc,SAAkBc,EAAE,MAAM,SAAf,IAAgCd,EAAE,MAAM,SAAf,MAAmCA,EAAE,MAAM,GAAG,SAAnB,KAAoCopB,EAAEppB,EAAE,MAAM,GAAG,OAAO,QAAQ,UAAW,EAAE,CAAC,EAAE,QAAQopB,EAAEtoB,EAAE,MAAM,GAAG,OAAO,QAAQ,UAAW,EAAE,CAAC,CAAC,IAAtG,GAChN,CACD,SAASY,EAAEZ,EAAGd,EAAGJ,EAAG,CAChB,IAAIwpB,EAAGrpB,EAAG+9B,EAAI,KAAMn+B,EAAI,KAAK,cAAewpB,EAAI,KAAK,QAAS3nB,EAAI,KAAK,KAAMvB,EAAI,KAAK,GAAIJ,EAAIspB,EAAE,UAAWznB,EAAI1B,EAAIJ,EAAI,EAAGM,EAAIF,EAAIA,EAAE,MAAO,EAAG,CAAE,CAAC,EAAI6B,EAAI,GAAIF,EAAI,GAAItB,EAAIL,EAAIA,EAAE,KAAK,EAAE,EAAI,GAAIyB,EAAI,GAClM,SAASZ,EAAEb,GAAGJ,GAAGG,GAAGJ,GAAG,CACnB,SAASiC,GAAE7B,GAAGJ,GAAGE,GAAG,CAChB,SAASK,GAAEY,EAAGd,GAAG,CACb,IAAIJ,GAAUI,GAAE,QAAQ,QAAQc,CAAC,IAAzB,EACR,OAAOlB,IAAKI,GAAE,QAAQ,MAAO,SAASopB,GAAG5oB,GAAG,CACxC,OAAc4oB,GAAE,eAAT,GAAwBxpB,GAAIM,GAAEY,EAAGd,GAAE,QAAQQ,GAAI,CAAC,CAAC,EAAI,OAAO,UAAU,eAAe,KAAK4oB,GAAG,SAAS,IAAMxpB,GAAIM,GAAEY,EAAGsoB,EAAC,GAC7H,CAACxpB,EACJ,GAAIA,EACR,CACD,SAASO,GAAEW,EAAGd,GAAGJ,GAAG,CAChB,IAAIwpB,GAAG5oB,GACP,IAAK2oB,EAAE,MAAMroB,CAAC,GAAKqoB,EAAE,eAAeroB,CAAC,KAAOqoB,EAAE,eAAeroB,CAAC,EAAI,CAAEqoB,EAAE,eAAeroB,CAAC,CAAC,EAAKqoB,EAAE,MAAMroB,CAAC,GAAG,MAAO,SAASA,GAAGf,GAAG,CAC1H,GAAIe,GAAE,KAAKd,EAAC,EAAG,OAAOopB,GAAItoB,GAAG,GAC7B,IAAIg9B,GAAel+B,KAAX,OAAeA,GAAIkB,GAAE,YAAanB,GAAemB,GAAE,QAAQg9B,EAAC,IAAtB,OAA0Bh9B,GAAE,QAAQg9B,EAAC,EAAE,SAAU,EAAC,QAAQ99B,EAAC,EAAI,GAC7G,OAAmBQ,KAAX,QAAgBb,GAAIa,KAAab,KAAP,KAAaypB,GAAItoB,GAAGN,GAAIb,IAAI,EACjE,GAAIypB,GAAG,CACJ,IAAIrpB,GAAIqpB,GAAE,QAAQA,GAAE,WAAW,EAAG0U,GAAI1U,GAAE,KAAKppB,EAAC,GAAKopB,GAAE,KAAKrpB,EAAC,GAAKqpB,GAAE,QAClE,OAAW0U,GAAEA,GAAE,OAAS,CAAC,EAAE,SAAQ,EAAG,QAAQ,GAAG,IAA7C,IAAgDA,GAAE,IAAG,EAClDA,GAAE,OAAkBl+B,KAAX,OAAeA,GAAIwpB,GAAE,aAAe,CAAC,CACxD,CACD,OAAkBxpB,KAAX,OAAeO,GAAEW,EAAGd,EAAC,EAAI,MACnC,CACD,SAASiC,GAAEjC,EAAGJ,GAAG,CACb,OAAcI,EAAE,MAAM,SAAf,IAAgCJ,GAAE,MAAM,SAAf,IAAyBA,GAAE,MAAM,GAAG,KAAKI,EAAE,MAAM,IAAKmpB,EAAGroB,EAAG,GAAIU,EAAG,EAAE,CACxG,CACD,SAASY,GAAEtB,EAAGd,GAAG,CACb,IAAIJ,GAAIkB,EAAE,YAAasoB,GAAeppB,KAAX,QAAgBJ,IAAKI,GAAE,aAAsBc,EAAE,QAAQlB,EAAC,EAAE,SAAQ,EAAG,QAAQI,GAAE,QAAQJ,EAAC,CAAC,IAAnD,GACjE,GAAI,CAACwpB,IAAKxpB,GAAII,GAAE,aAAa,QAASQ,GAAI,EAAGA,GAAIZ,GAAGY,KAAK,GAAIM,EAAE,QAAQN,EAAC,IAAMR,GAAE,QAAQQ,EAAC,EAAG,CACxFZ,GAAIY,GAAG4oB,GAAI,GACX,KACH,EACD,MAAO,CAAC,CAACA,IAAK,SAASxpB,GAAG,CACtBkB,EAAE,KAAOA,EAAE,MAAQ,GACnB,IAAIsoB,GAAItoB,EAAE,QAAQlB,EAAC,EACnB,GAAewpB,KAAX,OAAc,CACd,GAAgB,OAAOA,IAAnB,WAAyBA,GAAIA,GAAE,MAAM,GAAG,EAAE,CAAC,GAAetoB,EAAE,KAAKsoB,EAAC,IAAnB,SAAyBtoB,EAAE,KAAKsoB,EAAC,EAAItoB,EAAE,QAAQ,MAAO,EACzGA,EAAE,KAAKsoB,EAAC,EAAE,KAAK,IAAI,OAAOtoB,EAAE,WAAW,CAAC,GAAed,KAAX,OAAc,CACtD,QAASQ,MAAKR,GAAE,KAAkB,OAAOQ,IAAnB,WAAyBA,GAAI,SAASA,GAAE,MAAM,GAAG,EAAE,CAAC,CAAC,GAAIM,EAAE,KAAKN,GAAI,CAAC,EAAIR,GAAE,KAAKQ,EAAC,EACvGM,EAAE,QAAQlB,EAAC,EAAI,OAAO,KAAKkB,EAAE,IAAI,EAAE,KAAK,GAAG,CAC9C,CACD,OAAOA,EAAE,YAAclB,KAAMkB,EAAE,YAAclB,IAAI,EACpD,CACD,OAAOkB,EAAE,YAAc,OAAQ,EAClC,EAAClB,EAAC,CACN,CACD,SAASmC,GAAEjB,EAAGd,GAAG,CACb,GAAIc,EAAE,QAAQ,SAAWd,GAAE,QAAQ,OAAQ,MAAO,GAClD,QAASJ,GAAIkB,EAAE,YAAc,EAAGlB,GAAIkB,EAAE,QAAQ,OAAQlB,KAAK,GAAIkB,EAAE,QAAQlB,EAAC,IAAMI,GAAE,QAAQJ,EAAC,EAAG,MAAO,GACrG,MAAO,EACV,CACD,GAAI8B,EAAIZ,EAAIU,EAAE,YAAa,MAAM,IAAI,MAAM,sJAAsJ,OAAO2nB,EAAE,IAAI,CAAC,EAC/M,GAAIznB,IAAMZ,GAAgBf,GAAE,UAAb,OAAsB,CACjC,GAAI8B,EAAE,KAAK,CACP,MAAO9B,GACP,QAASJ,GAAE,QAAS,EACpB,GAAIU,EACJ,KAAM,CAAE,CAC9C,CAAmC,EAAG,CAACN,GAAE,aAA0BF,KAAX,QAAgB,EAAE2B,EAAE,aAAeA,EAAE,YAAYzB,GAAE,SAAS,GAAKyB,EAAE,YAAYzB,GAAE,SAAS,EAAE,UAAYS,EAAE,QAAQ,UAAU,YAAYT,GAAE,SAAS,GAAKS,EAAE,QAAQ,UAAU,YAAYT,GAAE,SAAS,EAAE,UAAW,MAAO,GAC7O4B,EAAI,GAAID,EAAIZ,CACf,SAAqBf,GAAE,UAAb,OAAsB,CAC7B,GAAIA,GAAE,SAAWF,KAAME,GAAG,OAAO,UAAW,CACxC,GAAIA,GAAI6B,GAAE5B,GAAE,QAAQA,GAAE,QAAQ,QAAQD,EAAC,EAAI,CAAC,EAAGJ,GAAGE,EAAC,EAAG,MAAO,EACnG,IACkC,GAAIE,GAAE,WAAY,OAAO,UAAW,CAChC,IAAIC,EAAID,GAAGS,GAAIqB,EAAE,OACjB,GAAI9B,GAAIc,EAAEd,GAAGH,GAAGD,GAAGE,EAAC,EAAGgC,EAAE,OAAS,EAAG,CACjC,GAAIA,EAAE,QAAS,SAASf,GAAGd,GAAG,CAC1BA,IAAKQ,KAAMM,GAAE,MAAM,YAAcA,GAAE,MAAM,YAAcA,GAAE,MAAM,YAAc,EAAI,EAC/H,CAA6C,EAAEsoB,EAAIvnB,EAAEA,EAAE,OAAS,CAAC,EAAE,MAAkBhC,KAAX,QAAgB,CAACK,GAAEkpB,EAAGppB,CAAC,EAAG,OAAOD,GACjE4B,EAAI,GAAID,EAAIZ,CACf,CACvC,IACkC,GAAIf,GAAE,aAAc,OAAO,UAAW,CAClC,SAASqpB,EAAEtoB,GAAG,CACV,QAASd,GAAGJ,GAAIkB,GAAE,QAAQ,CAAC,EAAE,QAAUA,GAAE,QAAQ,CAAC,EAAE,QAAQ,OAAS,EAAGsoB,GAAI,EAAGA,GAAItoB,GAAE,QAAQ,QAAUlB,MAAOI,GAAIc,GAAE,QAAQsoB,EAAC,EAAE,QAAUtoB,GAAE,QAAQsoB,EAAC,EAAE,QAAQ,OAAS,GAAIA,KAAK,CAChL,OAAOxpB,KAAMI,EAChB,CACD89B,EAAE,cAAgB,GAClB,IAAIt9B,GAAGN,GAAIH,GAAGM,GAAI,GAAIQ,GAAIgB,EAAE,QAASzB,GAAIT,GAAE,OAAQ0uC,GAAIzuC,GAAE,OAAS,EAAIA,GAAE,QAAU,GAClF,GAAWyuC,KAAP,IAAwB,OAAOA,IAAnB,SAAsB,CAClC,IAAI/sC,GAAGV,GAAIc,EAAGssD,GAAIpuD,GAAE,MAAK,EAAIyC,GAAI,GACjC,GAAgB,OAAOgsC,IAAnB,SAAsBhsC,GAAIgsC,GAAE,MAAM,GAAG,MAAQ,KAAK/sC,GAAI,EAAGA,GAAIpB,GAAE,QAAQ,OAAQoB,KAAKe,GAAE,KAAKf,GAAE,SAAQ,CAAE,EAC3G,GAAe6nB,EAAE,SAASroB,CAAC,IAAvB,OAA0B,CAC1B,QAASP,GAAI8B,GAAE,MAAK,EAAI1B,GAAI,EAAGU,GAAI8nB,EAAE,SAASroB,CAAC,EAAE,OAAQH,GAAIU,GAAGV,KAAK,CACjE,IAAID,GAAIyoB,EAAE,SAASroB,CAAC,EAAEH,EAAC,EAAE,SAAU,EAAC,MAAM,GAAG,EAC7ChB,GAAE,QAAUe,GAAE,CAAC,GAAK2B,GAAE,OAAOA,GAAE,QAAQ3B,GAAE,CAAC,CAAC,EAAG,CAAC,CAClD,CACK2B,GAAE,SAAR,IAAmB,OAAO8mB,EAAE,SAASroB,CAAC,EAAGuB,GAAI9B,GAChD,EACOiB,EAAE,aAAT,IAAuB,SAAS,SAASA,EAAE,UAAU,CAAC,GAAKZ,IAAKY,EAAE,cAAgBa,GAAIA,GAAE,MAAM,EAAG,CAAC,GACnG,QAASF,GAAI,EAAGA,GAAIE,GAAE,OAAQF,KAAK,CAC/Bb,GAAI,SAASe,GAAEF,EAAC,CAAC,EAAGN,EAAI,CAAE,EAAEjC,GAAgB,OAAOyuC,IAAnB,UAAwBluC,GAAEuB,EAAGJ,GAAGlB,EAAC,GAAK4tD,GAAE,QACxE,IAAIvtD,GAAIP,GAAE,QAAQoB,EAAC,EACnB,GAAIb,IAAKmB,GAAEnB,GAAG,CAAEa,EAAC,EAAG,OAAO3B,EAAC,EAAGE,EAAC,EAAGE,GAAI,WAAmBoC,KAAN,IAAYV,EAAI2nB,EAAElpB,EAAC,GAAIO,IAAKA,GAAE,SAAWA,GAAE,QAAQ,OAASP,GAAE,QAAQ,CAAC,EAAE,QAAQ,OAAQ,MAC7IM,GAAIqB,EAAE,MAAO,EAAEH,EAAId,GAAGiB,EAAI,GAC1B,QAASX,GAAI,EAAGA,GAAIV,GAAE,OAAQU,KAAK,CAC/B,IAAIH,GAAIP,GAAEU,EAAC,EAAGY,GAAI,GAClBf,GAAE,YAAcA,GAAE,aAAeX,GAAGgC,GAAErB,EAAC,EACvC,QAASwB,GAAI,EAAGA,GAAIlC,GAAE,OAAQkC,KAAK,CAC/B,IAAIvB,GAAIX,GAAEkC,EAAC,EACX,GAAgB,OAAO8rC,IAAnB,UAAmCttC,GAAE,cAAb,QAA4BsB,GAAE,SAAStB,GAAE,QAAQA,GAAE,WAAW,EAAE,SAAQ,CAAE,EAAG,CACrG,GAAIA,GAAE,MAAM,YAAcC,GAAE,MAAM,UAAW,CACzCc,GAAI,GAAIM,GAAEpB,GAAGD,EAAC,EACd,KACH,CACD,GAAIQ,EAAER,GAAGC,GAAGQ,CAAC,EAAG,CACZY,GAAErB,GAAGC,EAAC,IAAMc,GAAI,GAAIzB,GAAE,OAAOA,GAAE,QAAQW,EAAC,EAAG,EAAGD,EAAC,GAC/C,KACH,CACD,GAAIQ,EAAEP,GAAGD,GAAGS,CAAC,EAAG,CACZY,GAAEpB,GAAGD,EAAC,EACN,KACH,CACD,GAAIkB,GAAElB,GAAGC,EAAC,EAAG,CACTe,GAAEhB,GAAGC,EAAC,GAAgBf,EAAE,UAAU,YAAY,aAAnC,OAAgDmC,GAAErB,GAAGC,EAAC,IAAMc,GAAI,GAAIzB,GAAE,OAAOA,GAAE,QAAQW,EAAC,EAAG,EAAGD,EAAC,GAAKS,EAAE,WAAa,GAC9H,KACH,CACD,GAAIS,GAAEjB,GAAGD,EAAC,EAAG,CACTqB,GAAEpB,GAAGD,EAAC,EACN,KACH,CACJ,CACJ,CACDe,IAAKzB,GAAE,KAAKU,EAAC,CAChB,CACJ,CACDc,EAAIhB,GAAE,OAAOR,EAAC,EAAGqB,EAAIZ,EAAGa,EAAIE,EAAE,OAAS,GAAKJ,EAAG1B,GAAIM,GAAE,OAAS,GAAK,CAACoB,EAAGA,GAAKE,GAAK,CAAC5B,IAAK8B,EAAE,QAAS,SAASf,GAAGd,GAAG,CAC7Gc,GAAE,4BAA8B,EACnC,GAAIlB,GAAIouD,GAAE,OACrD,MAA6CjuD,GAAI6B,GAAE1B,GAAE,QAAQmuC,EAAC,GAAKruC,GAAE,QAAQquC,EAAC,EAAG,CAAEA,EAAG,EAAC,OAAO1uC,EAAC,EAAGE,EAAC,EAC7D,GAAIE,GAAG,MAAO,EACpD,IACkC,GAAIA,GAAE,cAAgBF,KAAMG,GAAE,QAAQA,GAAE,QAAQ,QAAQD,EAAC,EAAI,CAAC,EAAG,OAAO,UAAW,CAC/E,QAASS,EAAIT,GAAG+9B,GAAI,GAAI79B,GAAIL,GAAE,OAAS,EAAIA,GAAE,MAAK,EAAK,EAAGK,IAAK,MAAMO,EAAE,WAAW,GAAG,EAAIP,GAAI,EAAIO,EAAE,WAAW,MAAQkB,GAAKZ,EAAGb,KAAK,CAC/H,IAAIJ,GAAIG,GAAE,QAAQA,GAAE,QAAQ,QAAQQ,CAAC,EAAI,CAAC,EAC1C,GAAIT,GAAI6B,GAAE/B,GAAG,CAAEI,EAAG,EAAC,OAAON,EAAC,EAAGE,EAAC,EAAG,CAC9B,GAAIgC,EAAE,QAAS,SAAS7B,GAAGJ,GAAG,EACzBwpB,EAAIhpB,EAAEP,GAAGG,GAAE,KAAK,EAAIA,GAAE,MAAQ6B,EAAEA,EAAE,OAAS,CAAC,EAAE,OAAO,mBAAqB5B,IAAKO,EAAE,WAAW,IAC7F4oB,EAAE,KAAOnpB,GAAI,IAAMJ,GAAE,QAAQ,QAAQupB,CAAC,EAAI,GAAK5oB,EAAE,WAAW,IAAK4oB,EAAE,oBAAsBlpB,GAAEkpB,EAAGvpB,EAAC,IAAM8B,EAAI,GACzGD,EAAIZ,EAAGU,EAAE,QAAkB2nB,EAAE,eAAeroB,EAAI,CAAC,GAA9B,MAAmCb,GAAIO,EAAE,WAAW,KAAa,CAAE,IAAK,GAAG,EAAG,QAAQA,EAAE,WAAW,GAAG,GAA3C,KAAiDqB,EAAE,IAAK,EACtIxB,EAAI,QAASy9B,GAAI,GAAI/9B,GAAI,IAAK,CAAC+9B,IAAK1U,EAAE,MAAQD,EAAE,UAAUroB,CAAC,EAAIjB,GAAE,QAAQ,OAASA,GAAE,QAAQ,QAAQupB,CAAC,EACvJ,CAAiD,EAAE0U,GAAG,MACR,MAAO,EACV,CACJ,CACvC,IACkC,GAAI/9B,GAAIc,EAAEd,GAAGH,GAAGD,GAAGE,EAAC,EAAG,MAAO,EACjC,MAAM6B,GACV,CACD,QAAS7B,GAAID,GAAE,OAAS,EAAIA,GAAE,MAAK,EAAK,EAAGC,GAAIG,GAAE,QAAQ,OAAQH,KAAK,GAAWG,GAAE,QAAQH,EAAC,EAAE,eAApB,GAAkC,CACxG,IAAIK,GAAI0B,GAAE5B,GAAE,QAAQH,EAAC,EAAG,CAAEA,EAAG,EAAC,OAAOE,EAAC,EAAGJ,EAAC,EAC1C,GAAIO,IAAKwB,IAAMZ,EAAG,OAAOZ,GACzB,GAAIwB,EAAIZ,EAAG,KACd,CACJ,CACD,SAASV,EAAEU,GAAGd,GAAG,CACb,IAAIJ,GAAUkB,GAAE,QAAQ,QAAQd,EAAC,GAAzB,GACR,OAAOJ,IAAKkB,GAAE,QAAQ,QAAS,SAASA,GAAGsoB,GAAG,CAC/BtoB,GAAE,UAAb,QAAwBlB,KAAMA,GAAIQ,EAAEU,GAAGd,EAAC,EAC3C,GAAIJ,EACR,CACD,GAAIkB,EAAI,GAAI,CACR,GAAed,IAAX,OAAc,CACd,QAASG,GAAG8B,GAAInB,EAAI,GAAeX,GAAIgpB,EAAE,eAAelnB,EAAC,GAAKknB,EAAE,MAAMlnB,EAAC,KAAhD,QAAsDA,GAAI,IAAMA,KAC5E9B,KAAX,QAAgB8B,GAAI,KAAO/B,EAAI,SAASY,GAAGd,GAAG,CAC1C,IAAIJ,GAAGwpB,GAAI,GACX,OAAO,MAAM,QAAQppB,EAAC,IAAMA,GAAI,CAAEA,EAAC,GAAKA,GAAE,OAAS,IAAiBA,GAAE,CAAC,EAAE,cAAhB,QAAsCwB,EAAE,aAAT,IAA6B4nB,GAAIxnB,EAAE,KAAKk8B,EAAGh9B,GAAGd,GAAE,OAAO,EAAE,QAAQ,SAAS,SAApD,IAA+DopB,GAAIppB,GAAE,CAAC,EAAE,QAAQ,MAAO,GAAIA,GAAE,QAAS,SAASc,GAAG,CACrNA,GAAE,MAAT,KAAuBsoB,GAAE,SAAR,GAAkBxpB,GAAIkB,GAAE,YAAasoB,GAAItoB,GAAE,QAAQ,MAAO,GAAIA,GAAE,QAAQlB,EAAC,GAAYwpB,GAAExpB,EAAC,EAAE,SAAQ,EAAG,QAAQkB,GAAE,QAAQlB,EAAC,CAAC,IAA3C,KAAiDwpB,GAAExpB,EAAC,GAAK,IAAMkB,GAAE,QAAQlB,EAAC,GAC/M,CAAqC,GAAGwpB,EACxC,EAAgCnnB,GAAG9B,EAAC,EAAGE,EAAIH,EAAE,KAAK,EAAE,EAAGwB,EAAIO,GAChC,CACD,GAAIknB,EAAE,MAAMroB,CAAC,GAAKqoB,EAAE,MAAMroB,CAAC,EAAE,CAAC,EAAE,KAAOT,EAAG,OAAO8oB,EAAE,MAAMroB,CAAC,EAC1D,QAASsB,GAAIlC,EAAE,MAAK,EAAIkC,GAAIvC,EAAE,QACtB,EAAAgB,EAAEhB,EAAEuC,EAAC,EAAGlC,EAAG,CAAEkC,EAAG,IAAKV,IAAMZ,GAAKY,EAAIZ,GADNsB,KAClC,CAEP,CACD,OAAcP,EAAE,SAAR,GAAkBF,IAAME,EAAE,KAAK,CACnC,MAAO,CACH,GAAI,KACJ,OAAQ,GACR,YAAa,GACb,OAAQ,KACR,IAAK,GACL,YAAa,EAChB,EACD,QAASJ,GAAWI,EAAE,OAAQ,SAASf,GAAG,CACtC,OAAcA,GAAE,8BAAT,EACV,GAAG,SAFU,EAED,CAAE,CAAC,EAAK,CAAE,EACvB,KAAM,CAAE,EACR,GAAIT,CACP,GAAcL,IAAX,QAAgBmpB,EAAE,MAAMroB,CAAC,EAAIf,EAAIJ,EAAE,OAAO,GAAI,CAAE,EAAEkC,CAAC,GAAKsnB,EAAE,MAAMroB,CAAC,EAAInB,EAAE,OAAO,GAAI,GAAIkC,CAAC,EAC3F9B,EAAIopB,EAAE,MAAMroB,CAAC,GAAIe,EAAE,QAAS,SAASf,GAAG,CACpCA,GAAE,MAAM,YAAcA,GAAE,MAAM,gBAAkB,EACnD,GAAIf,CACR,CACJ,EACD,KAAM,SAASe,EAAGd,EAAGJ,EAAG,CACpB,OAAO,eAAeI,EAAG,aAAc,CACnC,MAAO,EAC7B,CAAmB,EAAGA,EAAE,UAAYL,EAAGK,EAAE,sBAAwB,SAASc,EAAGd,EAAGJ,EAAG,CAC7D,QAASwpB,EAAG5oB,EAAI,KAAK,KAAK,OAASR,EAAIA,EAAE,MAAM,EAAG,CAAC,EAAGD,EAAI,GAAI+9B,EAAel+B,IAAX,OAAeA,EAAE,MAAM,GAAG,EAAI,GAAID,EAAI,EAAGA,EAAIm+B,EAAE,OAAQn+B,KAAaypB,EAAItoB,EAAE,QAAQg9B,EAAEn+B,CAAC,CAAC,KAA1B,IAAgCmB,EAAE,OAAOsoB,EAAG,CAAC,EAC3K,QAASD,EAAI,EAAGA,EAAIroB,EAAE,OAAQqoB,IAAK,GAAI3oB,EAAE,SAASM,EAAEqoB,CAAC,CAAC,EAAG,CACrDppB,EAAI,GACJ,KACH,CACD,OAAOA,CAC7B,EAAqBC,EAAE,aAAe,SAASc,EAAGd,EAAGJ,EAAGwpB,EAAGD,EAAG,CACxC,IAAI3nB,EAAI,KAAMvB,EAAI,KAAK,QAAS2B,EAAI,KAAK,KACzC,IAAKA,EAAE,cAAgBJ,EAAE,SAAWxB,IAAMQ,EAAE,KAAK,UAAYR,EAAIQ,EAAE,KAAK,OAASR,IAAMQ,EAAE,KAAK,SAAWR,EAAIQ,EAAE,KAAK,WACpHgB,EAAE,OAAQ,CACN,IAAI3B,EAAID,EAAE,IACVA,EAAE,IAAMA,EAAE,MAAOA,EAAE,MAAQC,CAC9B,CACD,IAAI0B,EAAGG,EAAI3B,EAAE,qBAAqB,KAAKyB,EAAG,OAAQ,EAAE,EACpD5B,EAAE,KAAOG,EAAE,UAAU,KAAKyB,CAAC,EAAE,QAAUE,GAAK9B,EAAE,MAAQA,EAAE,IAAM8B,EAAI,GAClE1B,IAAMQ,EAAE,KAAK,UAAYZ,EAAE,IAAMA,EAAE,MAAQ,IAAMA,EAAE,MAAQG,EAAE,aAAa,KAAKyB,EAAG5B,EAAE,KAAK,GAAKI,IAAMQ,EAAE,KAAK,QAAUZ,EAAE,QAAUA,EAAE,MAAQA,EAAE,IAAMG,EAAE,OAAO,KAAKyB,EAAG5B,EAAE,IAAK,GAAI,EAAE,EAAIA,EAAE,IAAM,EAAIG,EAAE,SAAS,KAAKyB,EAAG5B,EAAE,GAAG,EAAI,IACrN2B,EAAIrB,EAAE,KAAKsB,EAAG5B,CAAC,KAAvB,MAAsCwpB,IAAP,IAAmBxnB,EAAE,aAAT,IAAgCA,EAAE,QAAX,MAA2Bk8B,EAAE,QAAQ,KAAKt8B,EAAG5B,EAAE,KAAK,EAAE,MAAM,IAAI,QAAQ,GAAG,IAAvD,KAA6DD,EAAE,KAAK6B,EAAG,EAAE,EACxJ4nB,IAAP,KAAanpB,EAAE,EAAID,IAAMQ,EAAE,KAAK,OAASZ,EAAE,MAAQ2B,EAAI3B,EAAE,MAAOK,EAAE,EAAIF,EAAE,0BAA0B,KAAKyB,EAAG,CACtG,MAAOvB,EAAE,EACT,IAAKA,EAAE,CACjC,EAAyB,GAAW2B,EAAE,aAAT,IAAuB5B,IAAMQ,EAAE,KAAK,UAAY,OAAS,MAAM,EAAE,OAC3E,EAAER,EAAE,WAAawB,EAAGxB,EAAE,YAAcC,EAAGD,EAAE,QAAU4B,EAAG5B,EAAE,kBAAoBuB,EAC7EvB,EAAE,eAAiBE,EACnB,IAAIkpB,EAAIxpB,EAAE,IAAI,EAAGY,EAAIZ,EAAE,IAAI,EAAGG,EAAIH,EAAE,IAAI,EAAGk+B,EAAIl+B,EAAE,IAAI,EACrD,SAASD,EAAEmB,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAG2oB,EAAG,CACzB,IAAI3nB,EAAI,KAAMvB,EAAI,KAAK,cAAeJ,EAAI,KAAK,KAAM0B,EAAIC,EAAE,QAC3D,GAAI,CAACA,EAAE,cAAe,MAAO,GAC7B,IAAIE,EAAGxB,EAAG2B,EAAGF,EAAGtB,EAAGoB,EAAGZ,EAAGT,EAAGD,GAAG8B,GAAGG,GAAGL,GAAI9B,EAAE,OAAO,GAAI,GAAIsB,EAAE,cAAc,EAAG8sC,GAAIpuC,EAAE,OAAO,GAAI,GAAIsB,EAAE,KAAK,EAAGD,GAAI,GAAIV,GAAI,GAAIotD,GAAextD,IAAX,OAAeA,EAAIT,EAAE,qBAAqB,KAAKyB,CAAC,EAChL,GAAI2nB,IAAMlnB,GAAIknB,EAAE,MAAO/mB,GAAI+mB,EAAE,IAAKA,EAAE,MAAQA,EAAE,MAAQlnB,GAAIknB,EAAE,IAAK/mB,GAAI+mB,EAAE,QAChE6kC,KAAP,IAAuBxtD,IAAX,OAAckB,EAAI,EAAGxB,GAAKyB,EAAIm8B,EAAE,QAAQ,KAAKt8B,EAAGE,CAAC,GAAG,gBAAkB,MAAMssD,IAAK,EAAGA,KAAK,IAAKnsD,EAAIN,EAAE,eAAeysD,EAAC,IAAiBnsD,EAAE,cAAb,OAA0B,CAC5J,GAAImsD,KAAMltD,GAAK,IAAMa,GAAKA,EAAE,QAAQE,EAAE,WAAW,IAAMA,EAAE,QAAQA,EAAE,WAAW,EAAG,MACjFH,EAAIssD,GAAG9tD,EAAIqB,EAAE,eAAeG,CAAC,EAAE,YAAaC,EAAIE,CACnD,CACD,GAAe3B,IAAX,OAAc,CACdW,EAAI,SAASa,CAAC,EAAGH,EAAE,SAASV,CAAC,EAAIU,EAAE,SAASV,CAAC,GAAK,CAAE,EAASC,IAAP,IAAYS,EAAE,SAASV,CAAC,EAAE,QAASi9B,EAAE,kBAAkBn8B,CAAC,EAAI,IAAMA,EAAE,WAAW,EACrI,IAAIU,GAAI,GAAI9B,GAAI,GAChB,IAAKF,EAAIQ,EAAGA,EAAId,EAAE,qBAAqB,KAAKyB,EAAG,OAAQ,EAAE,EAAI,EAAGnB,IAAYE,KAAP,IAAYO,GAAKT,GAAgBL,IAAX,SAAiBqC,GAAE,KAAKrC,CAAC,EACpHO,GAAI8B,GAAE,OAAS,IAAKZ,EAAIF,EAAE,eAAeV,CAAC,IAAaY,EAAE,iBAAT,KAAuC0nB,IAAX,QAAgB9oB,EAAI4B,IAAK5B,GAAK+B,KAAMC,GAAE,KAAKZ,EAAE,KAAK,EAC9HF,EAAE,eAAe,OAAOV,EAAG,CAAC,EAC5B,IAAYN,KAAP,IAAuBP,IAAX,SAAiBqC,GAAE,KAAKrC,CAAC,EAAGO,GAAI8B,GAAE,OAAS,GAAed,EAAE,SAASV,CAAC,IAAvB,QAA4BU,EAAE,SAASV,CAAC,EAAE,OAAS,IAAM,CACrH,IAAKU,EAAE,MAAQ,GAAIxB,EAAE,aAAa,KAAKyB,EAAG,EAAE,EAAGF,GAAI,GAAIjB,EAAI,EAAGA,EAAIgC,GAAE,SAAWjC,EAAIkB,GAAE,OAAczB,EAAE,YAAP,GAA6BO,GAAR,KAAYL,EAAE,SAAS,KAAKyB,EAAGpB,CAAC,EAAIL,EAAE,qBAAqB,KAAKyB,EAAG,OAAQ,EAAE,EAAI,EACpMrB,GAAIkC,GAAEhC,CAAC,EAAGiB,GAAIM,EAAE,KAAKJ,EAAGpB,EAAGD,GAAG,GAAIipB,EAAG,EAAE,GAAI/oB,IAAKA,IAAME,KAAMK,GAAIU,IAASR,GAAL,GAAUQ,KAAMV,GAAI,CACpF,SAAUP,CAC5C,GAC8B,GAAIiB,GAAG,MACP,GAAIvB,EAAE,aAAa,KAAKyB,CAAC,EAAGG,EAAIm8B,EAAE,QAAQ,KAAKt8B,EAAGX,CAAC,EAAGU,EAAE,eAAiBtB,EAAE,OAAO,GAAI,CAAE,EAAE8B,EAAC,EAC3FR,EAAE,MAAQtB,EAAE,OAAO,GAAI,GAAIouC,EAAC,EAAG,CAAC9sC,EAAE,SAASV,CAAC,EAAG,CAC3CD,GAAIjB,EAAE,KAAK6B,EAAGV,EAAGd,EAAGJ,EAAGwpB,EAAGvoB,EAAI,EAAGsoB,CAAC,EAClC,KACH,CACD,GAAYxnB,EAAE,aAAV,KAAuB,CACvB,IAAIhB,MAAQm9B,EAAE,kBAAkBn8B,CAAC,EACjC,GAAWJ,EAAE,SAASV,CAAC,EAAE,QAAQF,GAAI,IAAMgB,EAAE,WAAW,IAApD,GAAuD,CACvDf,GAAIjB,EAAE,KAAK6B,EAAGV,EAAGd,EAAGJ,EAAGwpB,EAAGvoB,EAAI,EAAGsoB,CAAC,EAClC,KACH,CACD,IAAK5nB,EAAE,SAASV,CAAC,EAAE,KAAKF,GAAI,IAAMgB,EAAE,WAAW,EAAGtB,EAAIQ,EAAGR,EAAIN,EAAE,qBAAqB,KAAKyB,EAAG,OAAQ,EAAE,EAAI,EAAGnB,IAAKkB,EAAE,eAAe,OAAOV,CAAC,CAC9I,MAAM,OAAOU,EAAE,SAASV,CAAC,CAC7B,CACJ,CACD,OAAOD,IAAYf,EAAE,aAAT,IAAuB,OAAO0B,EAAE,SAASV,CAAC,EAAGD,EAC5D,CACD,SAASuoB,EAAEroB,EAAGd,EAAGJ,EAAG,CAChB,IAAIwpB,EAAI,KAAK,KAAMrpB,EAAI,KAAK,QAC5B,OAAQqpB,EAAE,QAAUppB,EAAE,OAAM,CAC1B,IAAK,QACHc,EAAIA,EAAE,cACN,MAEF,IAAK,QACHA,EAAIA,EAAE,cACN,MAEF,IAAK,QACH,IAAIg9B,EAAI/9B,EAAE,eAAeH,EAAI,CAAC,EAC9BkB,EAAUlB,IAAN,GAAWk+B,GAAKA,EAAE,QAAU,OAAO,aAAat9B,EAAE,QAAQ,KAAK,EAAIM,EAAE,YAAW,EAAKA,EAAE,cAC3F,MAEF,QACE,GAAkB,OAAOsoB,EAAE,QAAvB,WAA+B,CAC/B,IAAIzpB,EAAI,MAAM,UAAU,MAAM,KAAK,SAAS,EAC5CA,EAAE,KAAKI,EAAE,cAAc,EAAGe,EAAIsoB,EAAE,OAAO,MAAM,KAAMzpB,CAAC,CACvD,CACJ,CACD,OAAOmB,CACV,CACD,SAASU,EAAEV,EAAG,CACV,IAAId,EAAI,KAAMJ,EAAI,KAAK,KAAMwpB,EAAI,KAAK,QACtC,GAAkB,OAAOxpB,EAAE,YAAvB,WAAmC,OAAOA,EAAE,WAAWkB,EAAGlB,CAAC,EAC/D,GAAYA,EAAE,SAAV,IAAkB,CAClB,IAAIY,EAAI,GAAIb,EAAII,EAAE,8BAA8B,KAAKC,EAAG,EAAE,EAAGmpB,EAAIxpB,EAAE,EACnE,GAAeA,EAAE,MAAb,QAAoBA,EAAE,IAAI,gBAAkBA,EAAE,IAAI,aAAeA,EAAE,IAAI,mBAAoB,CAC3Fa,EAAI,GACJ,QAASgB,EAAI,EAAGA,GAAK2nB,EAAG3nB,IAAK,CACzB,IAAIvB,EAAI69B,EAAE,gBAAgB,KAAK99B,EAAGwB,CAAC,EAAE,MACrC,GAAWvB,EAAE,SAAT,IAA8BmpB,EAAE,eAAe5nB,CAAC,IAA7B,SAA0CvB,EAAE,cAAT,IAAmCA,EAAE,cAAb,QAA4BA,EAAE,aAAoBA,EAAE,gBAAP,KAAkCA,EAAE,qBAAT,IAA0CA,EAAE,qBAAb,SAA2CA,EAAE,SAAT,IAAyBA,EAAE,KAAR,IAAea,EAAEU,CAAC,IAAMs8B,EAAE,eAAe,KAAK99B,EAAGwB,EAAGvB,CAAC,EAAG,CACpSO,EAAI,GACJ,KACH,CACJ,CACJ,CACD,OAAOA,CACV,CACJ,CACD,SAASP,EAAEa,EAAG,CACV,IAAId,EAAI,KAAK,KAAK,WAAa,EAAI,EACnC,OAAO,KAAK,MAAQc,EAAE,MAAQA,EAAE,IAAMd,EAAIc,EAAE,IAAMA,EAAE,MAAQd,CAC/D,CACD,SAAS4B,EAAEd,EAAGd,EAAGJ,EAAGwpB,EAAG5oB,EAAGX,EAAGgC,EAAG,CAC5B,IAAIF,EAAI,KAAMtB,EAAI,KAAK,cAAeoB,EAAI,KAAK,KAAMZ,EAAIc,EAAE,QAC3D/B,EAAWA,IAAP,GACJ,IAAIQ,EAAIU,EACR,SAASX,EAAEW,GAAG,CACV,GAAeA,KAAX,OAAc,CACd,GAAeA,GAAE,SAAb,SAAwB,MAAM,QAAQA,GAAE,MAAM,IAAMA,GAAE,OAAS,CAAEA,GAAE,MAAM,GAC7EA,GAAE,OAAO,KAAM,SAASA,GAAGd,GAAG,CAC1B,OAAO2B,EAAE,MAAQb,GAAE,IAAMd,GAAE,IAAMA,GAAE,IAAMc,GAAE,GAC7E,GAAkC,QAAS,SAASA,GAAG,CACrBZ,EAAE,KAAKyB,EAAG,CACN,MAAOb,GACP,IAAKA,GAAI,CAC/C,CAAmC,CACnC,CAAiC,EAAEA,GAAE,OAAS,QAAoBA,GAAE,SAAb,SAAwB,MAAM,QAAQA,GAAE,MAAM,IAAMA,GAAE,OAAS,CAAEA,GAAE,SAC5FA,GAAE,OAAO,KAAM,SAASA,GAAGd,GAAG,CAC1B,OAAO2B,EAAE,MAAQ3B,GAAE,IAAMc,GAAE,IAAMA,GAAE,IAAMd,GAAE,GAC7E,GAAkC,QAAS,SAASc,GAAG,CACdA,GAAE,IAAT,IAAcc,EAAE,KAAKD,EAAGb,GAAE,IAAKA,GAAE,EAAcA,GAAE,SAAb,QAAuBA,GAAE,OAAmBA,GAAE,cAAb,OAA2BA,GAAE,YAAcsoB,CAAC,CACnJ,GAAmCtoB,GAAE,OAAS,QAASA,GAAE,mBAAqBA,GAAE,OAAQ,CACtD,IAAId,GAAIc,GAAE,kBACVS,EAAE,KAAKI,EAAU3B,KAAP,GAAWA,GAAIA,GAAE,MAAOA,GAAE,IAAKc,GAAE,MAAM,EAAGA,GAAE,kBAAoB,MAC7E,CACUA,GAAE,kBAAb,SAAiCV,EAAIU,GAAE,gBAAiBA,GAAI,GAC/D,CACD,OAAOA,EACV,CACD,SAASmB,EAAEjC,GAAGJ,GAAGY,GAAG,CAChB,IAAIb,GAAI,GACR,OAAOm+B,EAAE,SAAS,KAAKn8B,EAAG3B,EAAC,EAAE,MAAO,SAASwB,GAAGI,GAAG,CAC/C,IAAI/B,GAAI2B,GAAE,MACV,GAAIzB,EAAE,UAAU,KAAK4B,EAAG,EAAE,GAAWhC,IAAK,CAACE,GAAE,KAAkBgB,EAAE,eAAed,EAAE,aAAa,KAAK4B,EAAG3B,EAAC,CAAC,IAArD,UAAoEH,GAAE,IAAV,KAAeA,GAAE,GAAG,KAAKD,GAAGiB,EAAGb,GAAGQ,GAAGiB,EAAGxB,EAAE,KAAK0B,EAAGb,CAAC,CAAC,GAAKlB,KAAMC,GAAE,KAAOD,KAAM6B,EAAE,4BAAqC5B,GAAE,MAAT,IAAgB,CAC1O,EAAGi+B,EAAE,eAAe,KAAKn8B,EAAG3B,GAAGH,GAAG,EAAE,GAAKA,GAAE,IAC3C,IAAKG,EACR,MAH4B,GAGxB,CACD,IAAIuB,GAAe5B,GAAE,IAAb,OAAiBA,GAAE,EAAIC,GAAG8B,GAAI1B,GACtC,OAAOuB,GAAIA,KAAME,EAAE,2BAAoC5B,GAAE,SAAT,GAAkBi+B,EAAE,eAAe,KAAKn8B,EAAG3B,GAAGH,GAAG,EAAE,GAAKA,GAAE,IAAM0B,IACxG5B,GAAIQ,EAAER,EAAC,KAAf,IAAgCA,GAAE,MAAb,QAAoBA,GAAE,MAAQK,KAAM0B,GAAI/B,GAAE,KAAaA,KAAP,IAAuBA,GAAE,MAAb,QAA+BA,GAAE,IAAb,QAA8BO,EAAE,KAAKyB,EAAGb,EAAGT,EAAE,OAAO,CAAE,EAAEmB,GAAG,CAC5J,MAAO2nB,EAAE,KAAKxnB,EAAGJ,GAAG1B,GAAG6B,EAAC,CAC9D,CAAmC,EAAG0nB,EAAG1nB,EAAC,IAFoH,KAE9G/B,GAAI,IAAK,EAC1B,CACD,MAAO,EACV,GAAIA,EACR,CACUmB,EAAE,QAAb,SAAuBV,EAAIuB,EAAE,MAAQb,EAAE,IAAMA,EAAE,OAC/C,IAAIsB,EAAI,GAAIL,EAAI1B,EAAE,OAAO,GAAI,GAAIQ,EAAE,cAAc,EACjD,GAAWY,EAAE,aAAT,IAAkCZ,EAAE,SAAST,CAAC,IAAvB,QAAmCI,IAAP,IAAmB4oB,IAAP,GAAU,QAASilB,EAAIjuC,EAAGiuC,GAAK1sC,EAAE,MAAQb,EAAE,MAAQA,EAAE,KAAMutC,IAAgBxtC,EAAE,SAASwtC,CAAC,IAAvB,SAA6BxtC,EAAE,SAASwtC,CAAC,EAAI,OAChL,OAAOxtC,EAAE,MAAMwtC,CAAC,GAChB,GAAkB,OAAO5sC,EAAE,eAAvB,YAA+C2nB,IAAP,IAAmBvpB,IAAP,KAAauC,EAAIjC,EAAEiC,EAAIX,EAAE,cAAc,KAAKE,EAAG5B,EAAE,UAAU,KAAK4B,CAAC,EAAGvB,EAAGJ,EAAGC,EAAE,KAAK0B,EAAGb,CAAC,EAAGW,EAAGZ,EAAGC,EAAGlB,GAAKY,CAAC,CAAC,GACzJ4B,IAAP,GAAU,CACN,GAAIA,EAAIH,EAAE7B,EAAGJ,EAAGJ,CAAC,GAAI,CAACA,GAAYwpB,IAAP,KAAoBhnB,IAAP,IAAmBvC,IAAP,GAAU,CAC1D,IAAIyB,EAAIT,EAAE,eAAeT,CAAC,EAC1B,GAAI,CAACkB,GAAYA,EAAE,MAAM,SAAf,IAAyBA,EAAE,MAAM,MAAQtB,GAAKA,IAAMyB,EAAE,2BAC5D,GAAIA,EAAE,YAAyBZ,EAAE,eAAed,EAAE,SAAS,KAAK4B,EAAGvB,CAAC,CAAC,IAAjD,QAAsDU,EAAE,IAAMV,EAAG,CACjF,IAAIQ,GAAI,GACR,GAAIC,EAAE,UAAUT,CAAC,GAAgBS,EAAE,eAAed,EAAE,SAAS,KAAK4B,EAAGvB,CAAC,CAAC,IAAjD,SAA8DgC,EAAIR,EAAE,KAAKD,EAAGvB,EAAIS,EAAE,UAAUT,CAAC,EAAGJ,EAAG,GAAI,EAAE,KAAnD,KAAiEQ,IAAP,KAAa4B,EAAE,MAAQhC,GAC7JQ,GAAI,IAAKE,EAAE,IAAMV,IAAMS,EAAE,eAAeT,CAAC,EAAI,QAAS,CAACQ,IAAK,CAACb,EAAE,OAAO,KAAK4B,EAAGvB,EAAGqB,EAAE,YAAoBrB,IAAN,CAAO,GAAG,QAAS4tD,GAAI5tD,EAAI,EAAGiC,GAAItC,EAAE,SAAS,KAAK4B,EAAGvB,EAAG,GAAUA,IAAN,CAAO,EAAG4tD,IAAK3rD,GAAG2rD,KAAK,IAAY5rD,EAAIH,EAAE+rD,GAAGhuD,EAAGJ,CAAC,KAArB,GAAyB,CAC7MwC,EAAIV,EAAE,KAAKC,EAAGvB,EAAcgC,EAAE,MAAb,OAAmBA,EAAE,IAAM4rD,EAAC,GAAK5rD,EAAGhC,EAAI4tD,GACzD,KACH,EACJ,OACE5rD,EAAI,CACP,MAAOrC,EAAE,SAAS,KAAK4B,EAAGvB,CAAC,CAC7D,CAC2B,CACD,GAAIuB,EAAE,eAAwBnB,IAAP,IAAY,CAACZ,IAAMY,EAAI,GAAW4B,IAAP,IAAYX,EAAE,aAAeD,EAAE,KAAKG,EAAG5B,EAAE,UAAU,KAAK4B,CAAC,CAAC,GAAWvB,IAAN,GAAWgC,EAAIzC,EAAE,KAAKgC,EAAGvB,EAAGJ,EAAGJ,EAAGwpB,EAAG,OAAQtoB,CAAC,GAAKb,EAAE,KAAK0B,EAAGb,CAAC,GAAKD,EAAE,MAAMT,CAAC,GAAKS,EAAE,MAAMT,CAAC,EAAE,OAAS,GAAKqB,EAAE,YAAqBW,IAAP,IAAmBX,EAAE,eAAT,IAAyBZ,EAAE,MAAMT,CAAC,GAAKS,EAAE,MAAMT,CAAC,EAAE,OAAS,GAAKL,EAAE,qBAAqB,KAAK4B,EAAG,OAAQ,EAAE,EAAIvB,KAAOgC,EAAIzC,EAAE,KAAKgC,EAAG,EAAE,IACpXS,IAAP,KAAaA,EAAI,CACb,IAAKhC,CACnC,GAA4C,OAAOqB,EAAE,gBAAvB,YAAgD2nB,IAAP,IAAmBvpB,IAAP,GAAU,CAC/D,IAAIU,GAAIkB,EAAE,eAAe,KAAKE,EAAG5B,EAAE,UAAU,KAAK4B,EAAG,EAAE,EAAcb,EAAE,QAAb,OAAqBa,EAAE,MAAQb,EAAE,IAAMA,EAAE,MAAQA,EAAGd,EAAGoC,EAAGX,EAAGZ,EAAGjB,EAAGiC,EAAGrB,CAAC,EACtHD,KAAX,SAAiB6B,EAAW7B,KAAP,GAAW6B,EAAI7B,GACvC,CACJ,CACD6B,GAAgBA,EAAE,MAAb,SAAqBA,EAAE,IAAMhC,GAAWgC,IAAP,IAAmBvC,IAAP,IAAYE,EAAE,aAAa,KAAK4B,EAAG,EAAE,EACvFd,EAAE,eAAiBR,EAAE,OAAO,GAAI,GAAI0B,CAAC,GAAKL,EAAE,KAAKC,EAAG,OAAQvB,EAAG,EAAE,EACjE,IAAIO,GAAIR,EAAEiC,CAAC,EACX,OAAWT,EAAE,YAAb,QAA2B5B,EAAE,UAAU,KAAK4B,CAAC,EAAE,OAASA,EAAE,WAAa,CAACynB,IAAMrpB,EAAE,aAAa,KAAK4B,EAAG,EAAE,EACvGd,EAAE,eAAiBR,EAAE,OAAO,GAAI,GAAI0B,CAAC,EAAGpB,GAAI,IACrCA,EACV,CACD,SAASd,EAAEiB,EAAGd,EAAGJ,EAAG,CAChB,QAASwpB,EAAI,KAAK,QAAS5oB,EAAI,GAAIT,EAAI+9B,EAAE,SAAS,KAAK,KAAMh9B,CAAC,EAAGnB,EAAI,EAAGA,EAAII,EAAE,OAAQJ,IAAK,CACvF,GAAII,EAAEJ,CAAC,EAAE,QAAUI,EAAEJ,CAAC,EAAE,MAAM,YAAcK,EAAE,MAAMJ,EAAE,eAAiB,MAAQ,WAAW,IAAM,CAACA,EAAE,gBAAkB,CAACI,EAAE,MAAM,SAAWD,EAAEJ,CAAC,EAAE,MAAM,YAAcK,EAAE,MAAM,WAAaJ,EAAE,OAAS,CAACG,EAAEJ,CAAC,EAAE,MAAM,QAAUI,EAAEJ,CAAC,EAAE,MAAM,GAAG,KAAKK,EAAE,MAAOopB,EAAGtoB,EAAG,GAAIlB,CAAC,GAAI,CAC/PY,EAAI,GACJ,KACH,CACD,GAAIT,EAAEJ,CAAC,EAAE,OAASI,EAAEJ,CAAC,EAAE,MAAM,MAAQK,EAAE,MAAM,UAAW,CACpDQ,EAAI,OACJ,KACH,CACJ,CACD,OAAcA,IAAP,IAAuB4oB,EAAE,UAAUtoB,CAAC,IAAxB,SAA8BN,EAAIX,EAAE,KAAK,KAAMiB,EAAIsoB,EAAE,UAAUtoB,CAAC,EAAGd,EAAGJ,CAAC,GAC1FY,CACH,CACD,SAASe,EAAET,EAAGd,EAAGJ,EAAG,CAChB,IAAIY,EAAGs9B,EAAGn+B,EAAI,KAAMwpB,EAAI,KAAK,QAAS3nB,EAAI,KAAK,KAAMvB,EAAI,KAAK,cAAe2B,EAAIJ,EAAE,0BAA2B3B,EAAIF,EAAE,MAAQC,EAAE,MAAK,EAAG,QAAO,EAAKA,EAClJ,GAAI4B,EAAE,0BAA4B,GAAWV,IAAP,GAAUf,EAAE,aAAa,KAAKJ,EAAG,EAAE,EAAGmB,EAAI,EAChFd,EAAIJ,EAAE,OAAQk+B,EAAI/9B,EAAE,0BAA0B,KAAKJ,EAAG,CAClD,MAAO,EACP,IAAK,CAC/B,EAAyB,EAAE,EAAE,UAAY,CACf,IAAKa,EAAIM,EAAGN,EAAIR,EAAGQ,IAAK2oB,EAAE,eAAe,OAAOroB,EAAG,CAAC,EACpDg9B,EAAIh9B,CACP,CACD,IAAIS,EAAI,IAAItB,EAAE,MAAM,UAAU,EAC9B,IAAKO,EAAIM,EAAGN,EAAIR,EAAGQ,IAAK,CACpBe,EAAE,IAAM1B,EAAEW,CAAC,EAAE,SAAQ,EAAIb,EAAE,UAAY,GACvC,IAAI+B,EAAI0nB,EAAE,cAAc,cAAc,KAAKzpB,EAAG4B,EAAG,GAAI,GAAI,GAAIu8B,CAAC,EACvDp8B,IAAP,IAAuBA,IAAX,SAAiBo8B,EAAIp8B,EAAE,gBACtC,CACDF,EAAE,0BAA4BI,CACjC,CACD,SAASF,EAAEZ,EAAGd,EAAGJ,EAAG,CAChB,IAAIwpB,EAAI,KAAM5oB,EAAI,KAAK,QAASb,EAAI,KAAK,cACzC,GAAemB,IAAX,OAAc,IAAKA,EAAId,EAAI,EAAGc,EAAI,GAAK,CAACN,EAAE,eAAeM,CAAC,EAAGA,IAAK,CACtE,QAASqoB,EAAIroB,EAAGqoB,EAAInpB,EAAGmpB,IACnB,GAAe3oB,EAAE,eAAe2oB,CAAC,IAA7B,QAAkC,CAACppB,EAAE,OAAO,KAAKqpB,EAAGD,EAAG,EAAE,IAAYA,GAAL,EAAS2U,EAAE,QAAQ,KAAK1U,EAAGD,CAAC,EAAI3oB,EAAE,eAAe2oB,EAAI,CAAC,GAAG,CACzH,IAAI3nB,EAAIs8B,EAAE,SAAS,KAAK1U,EAAGD,CAAC,EAAE,QACvB3nB,EAAEA,EAAE,OAAS,CAAC,EAAE,MAAM,MAA7B,IAAoCA,EAAE,MACtC,IAAIvB,EAAGJ,EAAIi+B,EAAE,sBAAsB,KAAK1U,EAAGD,EAAG3nB,CAAC,EAC/C,GAAI3B,IAAaA,EAAE,MAAM,MAAf,IAAmCA,EAAE,MAAM,iBAArB,WAAwCI,EAAIO,EAAE,eAAe2oB,EAAI,CAAC,IAAalpB,EAAE,MAAM,qBAAf,OAAwCJ,EAAIF,EAAE,OAAO,GAAIE,EAAG,CAChK,MAAOi+B,EAAE,eAAe,KAAK1U,EAAGD,EAAGtpB,EAAE,MAAO,EAAE,GAAKA,EAAE,MAAM,GAC9D,IAAG,eAAiB,GAAIK,EAAE,KAAKkpB,EAAGD,EAAGtpB,EAAG,EAAE,EAAUD,IAAP,IAAW,CACrD,IAAI2B,EAAIf,EAAE,eAAeR,CAAC,EAAE,MAC5B,OAAOQ,EAAE,eAAeR,CAAC,EAAI,OAAQ4B,EAAE,KAAKwnB,EAAGppB,EAAGuB,EAAG,GAAI,EAAE,CAC9D,CACJ,CAER,CACD,SAASrB,EAAEY,EAAGd,EAAGJ,EAAGwpB,EAAG,CACnB,IAAI5oB,EAAI,KAAMb,EAAI,KAAK,QAASwpB,EAAI,KAAK,KAAM3nB,EAAI,KAAK,cACxD,SAASD,EAAET,GAAGd,GAAGJ,GAAG,CAChB,IAAIwpB,GAAIppB,GAAEc,EAAC,EACX,GAAesoB,KAAX,QAAuBA,GAAE,MAAM,SAAf,IAAgCA,GAAE,MAAM,cAAf,KAA0CppB,GAAE,CAAC,IAAd,QAA8BA,GAAE,CAAC,EAAE,cAAhB,QAA8B,CACzH,IAAIQ,GAAIZ,GAAE,OAASkB,GAAI,EAAId,GAAEc,GAAI,CAAC,GAAYd,GAAEc,GAAI,CAAC,EAAE,MAAM,SAAtB,IAAgCd,GAAEc,GAAI,CAAC,EAAId,GAAEc,GAAI,CAAC,EAAGf,GAAIH,GAAE,IAAMkB,GAAI,EAAId,GAAEc,GAAI,CAAC,GAAYd,GAAEc,GAAI,CAAC,EAAE,MAAM,SAAtB,IAAgCd,GAAEc,GAAI,CAAC,EAAId,GAAEc,GAAI,CAAC,EAC9K,OAAON,IAAKT,EACf,CACD,MAAO,EACV,CACD,IAAI2B,EAAI,EAAGxB,EAAeY,EAAE,QAAb,OAAqBA,EAAE,MAAQA,EAAGe,EAAef,EAAE,MAAb,OAAmBA,EAAE,IAAMA,EAAGa,EAAI,GACvF,GAAIb,EAAE,MAAQA,EAAE,MAAQZ,EAAIY,EAAE,IAAKe,EAAIf,EAAE,OAAQsoB,EAAeA,IAAX,OAAeA,EAAIlpB,EAAcN,IAAX,SAAiBM,IAAM2B,GAAKsnB,EAAE,YAAyBxpB,EAAE,eAAeypB,CAAC,IAA7B,QAA6CppB,IAAX,QAAgBA,EAAE,MAAM,oBAAsBA,EAAE,MAAM,aAAc,CACzN,IAAIK,EAAGoB,EAAID,EAAE,OAAO,GAAI,CAAE,EAAE7B,EAAE,cAAc,EAAGkB,EAAId,EAAE,qBAAqB,KAAKS,EAAG,OAAQ,EAAE,EAC5Fb,EAAE,EAAIO,EACN,IAAIE,EAAIH,EAAE,KAAKO,EAAGM,CAAC,EAAIZ,EAAIkpB,EAC3B,IAAK/oB,EAAIQ,EAAGR,GAAKD,EAAGC,IAAKV,EAAE,eAAe,OAAOU,EAAG,CAAC,EAAcL,IAAX,QAAgB,OAAOL,EAAE,MAAMU,EAAI,CAAC,EAC5F,IAAIF,EAAG8B,GAAGG,GAAIgnB,EAAGrnB,GAAIK,GACrB,IAAKpC,IAAML,EAAE,eAAeypB,CAAC,EAAI5nB,EAAE,OAAO,GAAI,CAAE,EAAExB,CAAC,EAAG+B,KAAKK,MAAcX,EAAEI,CAAC,GAAX,MAAgBlC,EAAE,UAAUkC,CAAC,IAAMA,GAAKlC,EAAE,UAAUkC,CAAC,EAAI,GAC1HxB,EAAIL,EAAI6B,EAAIA,EAAI,EAAGxB,GAAKQ,EAAGR,IAAK,CAC5B,IAAgBF,EAAIsB,EAAEpB,CAAC,KAAnB,QAAgCF,EAAE,iBAAT,KAA4BE,GAAKwB,GAAKxB,GAAKH,GAAKqB,EAAElB,EAAGoB,EAAG,CACjF,MAAOvB,EACP,IAAK2B,CACR,IAAI,CACD,KAAai8B,EAAE,QAAQ,KAAKt9B,EAAGuB,EAAC,EAAE,MAAM,MAAlC,IAAyC,CAC3C,IAAYE,GAAIpC,EAAE,KAAKW,EAAGuB,GAAG5B,EAAGgpB,CAAC,KAA7B,IAA2ChpB,EAAE,MAAM,MAAhB,IAAqB,CAChDA,EAAE,MAAM,MAAhB,KAAuBJ,EAAE,UAAU,KAAKS,EAAG,EAAE,EAC7C,IAAI6tC,GAAIzsC,EAAE,KAAKpB,EAAGuB,GAAG5B,EAAE,MAAeA,EAAE,MAAM,MAAhB,IAAqB,EAAE,EACrD,GAAIwB,EAAW0sC,KAAP,GAAUjsC,IAAKisC,GAAE,KAAOtsC,IAAK,EAAG,CAACJ,GAAKM,GAAG,KAC3F,MAA6CN,EAAI,GACX,GAAIA,EAAG,CACQ3B,IAAX,QAAgBG,EAAE,MAAM,QAAUE,IAAMS,EAAE,OAASY,IACnD,KACH,CACD,GAAI,CAACC,GAAK5B,EAAE,UAAU,KAAKS,CAAC,EAAGuB,GAAIpC,EAAE,WAAY,MACjDoC,IACH,CACK+7B,EAAE,QAAQ,KAAKt9B,EAAGuB,EAAC,EAAE,MAAM,KAAjC,KAAyCJ,EAAI,IAAKI,GAAIK,EACzD,CACD,GAAI,CAACT,EAAG,KACX,CACD,GAAI,CAACA,EAAG,OAAOhC,EAAE,eAAiB6B,EAAE,OAAO,GAAI,GAAIC,CAAC,EAAG1B,EAAE,aAAa,KAAKS,EAAG,EAAE,EAChF,EAC1B,MAA6BR,GAAK89B,EAAE,QAAQ,KAAKt9B,EAAG4oB,CAAC,EAAE,MAAM,KAAOppB,EAAE,MAAM,KAAOL,EAAE,eAAeypB,CAAC,EAAI5nB,EAAE,OAAO,GAAI,GAAIxB,CAAC,GACrG,OAAOD,EAAE,aAAa,KAAKS,EAAG,EAAE,EAAGkB,CACtC,CACJ,CACf,EAAa1B,EAAI,GACP,SAASJ,EAAEwpB,EAAG,CACV,IAAI5oB,EAAIR,EAAEopB,CAAC,EACX,GAAe5oB,IAAX,OAAc,OAAOA,EAAE,QAC3B,IAAIT,EAAIC,EAAEopB,CAAC,EAAI,CACX,QAAS,CAAE,CAC7B,EACc,OAAOtoB,EAAEsoB,CAAC,EAAErpB,EAAGA,EAAE,QAASH,CAAC,EAAGG,EAAE,OACnC,CACD,IAAIqpB,EAAI,GACR,OAAO,UAAW,CACd,IAAItoB,EAAIsoB,EACR,OAAO,eAAetoB,EAAG,aAAc,CACnC,MAAO,EACzB,CAAe,EAAGA,EAAE,QAAU,OAAQlB,EAAE,IAAI,EAAGA,EAAE,IAAI,EAAGA,EAAE,IAAI,EAAGA,EAAE,IAAI,EAAGA,EAAE,IAAI,EAAGA,EAAE,GAAG,EAAGA,EAAE,GAAG,EAClFA,EAAE,IAAI,EACN,IAAII,EAAGQ,GAAKR,EAAIJ,EAAE,IAAI,IAAMI,EAAE,WAAaA,EAAI,CAC3C,QAASA,CAC3B,EACcc,EAAE,QAAUN,EAAE,OACjB,IAAI4oB,CACf,GACA,EACE,EAAE49R,EAAW,GACPA,GAAY,OACpB,CAEA,IAAII,IAAmBD,IAAgB,EACnCE,GAAyBN,IAAwBK,GAAgB,EAErE,SAASE,OAAQC,EAAO,CACtB,KAAM,CAAE,OAAArhQ,CAAQ,EAAGqhQ,EACnB,IAAIr8R,EAAQg7B,EACZ,KAAOh7B,KACL,GAAI,OAAOq8R,EAAMr8R,CAAK,GAAM,WAC1B,MAAM,IAAI,UAAU,qBAAqB,EAG7C,MAAO,IAAIwD,IAAS,CAClB,IAAI,EAAI,EACJgU,EAASwjB,EAASqhQ,EAAM,CAAC,EAAE,MAAM,KAAM74R,CAAI,EAAIA,EAAK,CAAC,EACzD,KAAO,EAAE,EAAIw3B,GACXxjB,EAAS6kR,EAAM,CAAC,EAAE,KAAK,KAAM7kR,CAAM,EAErC,OAAOA,CACX,CACA,CAEA,MAAM8kR,IAAW,EAAE,OAAO,OAAW,KAAe,OAAO,UAAY,OAAO,SAAS,eAEjFC,GAAiB,CAACC,EAAM1qO,IAAa,CACzC,MAAM9/B,EAAU,CACd,WAAY,GACZ,GAAG8/B,CACP,EACE,GAAI,CAAC0qO,EAAM,OAAOxqQ,EAClB,MAAMyqQ,EAAQ,CACZ,SAAU,CACR,MAAO,WACP,GAAGzqQ,CACJ,EACD,MAAO,CACL,MAAO,QACP,YAAa,GACb,GAAGA,CACJ,EACD,QAAS,CACP,MAAO,UACP,YAAa,GACb,GAAGA,CACJ,EACD,SAAU,CACR,MAAO,WACP,OAAQ,KACR,YAAa,GACb,GAAGA,CACJ,EACD,QAAS,CACP,MAAO,UACP,YAAa,GACb,GAAGA,CACJ,EACD,QAAS,CACP,MAAO,UACP,YAAa,GACb,GAAGA,CACJ,EACD,WAAY,CACV,MAAO,aACP,YAAa,KACb,OAAQ,KACR,GAAGA,CACJ,EACD,IAAK,CACH,MAAO,MACP,YAAa,WACb,GAAGA,CACJ,EACD,GAAI,CACF,MAAO,KACP,GAAGA,CACJ,EACD,IAAK,CACH,MAAO,MACP,GAAGA,CACJ,EACD,IAAK,CACH,MAAO,MACP,GAAGA,CACJ,EAGD,eAAgB,CACd,MAAO,WACP,OAAQ,MACR,YAAa,OACb,cAAe,WACf,WAAY,IACZ,WAAY,GACZ,GAAGA,CACJ,EACD,IAAK,CACH,KAAM,iBACN,YAAa,iBACb,GAAGA,CACJ,EACD,KAAM,CACJ,KAAM,qBACN,YAAa,qBACb,GAAGA,CACJ,CACL,EACE,OAAI,OAAOwqQ,GAAS,UAAYC,EAAMD,CAAI,EAAUC,EAAMD,CAAI,EACvD,CACL,KAAAA,EACA,GAAGxqQ,CACP,CACA,EAkBM0qQ,IAAW,CAACF,EAAMxqQ,IAAavP,GAAU,CAE7C,GADI65Q,KACAE,IAAS,KAAM,OACnB,MAAMG,EAAYR,GAAUI,GAAeC,EAAMxqQ,CAAO,CAAC,EACrDvP,GACFk6Q,EAAU,KAAKl6Q,CAAK,CAExB,EAEA,SAASm6Q,GAAgBC,EAAY,CACnC,MAAO,CAAC1sO,EAAWqsO,EAAMxqQ,IAAY,CACnC,GAAI,CAAC6qQ,EAAY,MAAM,IAAI,MAAM,wBAAwB,EACzD,KAAM,CAAE,IAAA57R,EAAK,GAAG67R,CAAY,EAAKD,EAAW1sO,EAAWn+B,CAAO,EACxD2qQ,EAAYR,GAAUI,GAAeC,EAAMxqQ,CAAO,CAAC,EACnD+qQ,EAASX,IAAM7uP,GAAS,CAC5B,GAAIA,EAAM,CACR,KAAM,CAAE,SAAA8zO,CAAU,EAAG9zO,EACjB8zO,IAAa,QACfsb,EAAU,KAAKpvP,EAAK,cAAc,OAAO,CAAC,EAE1CovP,EAAU,KAAKpvP,CAAI,CAEtB,CACD,OAAOA,CACR,EAAEtsC,CAAG,EACN,MAAO,CACL,GAAG67R,EACH,IAAKC,CACX,CACA,CACA,CCl1HA,IAAI16R,GACJ,GAAI,CACFA,GAAM,GACR,MAAY,CAAG,CACf,IAAIopD,GAGJ,GAAI,CACFA,GAAM,GACR,MAAY,CAAG,CAEf,SAASuxO,GAAWpkL,EAAKqkL,EAAWvhE,EAAQ,CAE1C,GAAI,CAAC9iH,GAAO,OAAOA,GAAQ,UAAY,OAAOA,GAAQ,WACpD,OAAOA,EAIT,GAAIA,EAAI,UAAY,cAAeA,EACjC,OAAOA,EAAI,UAAU,EAAI,EAI3B,GAAIA,aAAe,KACjB,OAAO,IAAI,KAAKA,EAAI,SAAS,EAI/B,GAAIA,aAAe,OACjB,OAAO,IAAI,OAAOA,CAAG,EAIvB,GAAI,MAAM,QAAQA,CAAG,EACnB,OAAOA,EAAI,IAAI0/F,EAAK,EAItB,GAAIj2M,IAAOu2G,aAAev2G,GACxB,OAAO,IAAI,IAAI,MAAM,KAAKu2G,EAAI,QAAO,CAAE,CAAC,EAI1C,GAAIntD,IAAOmtD,aAAentD,GACxB,OAAO,IAAI,IAAI,MAAM,KAAKmtD,EAAI,OAAM,CAAE,CAAC,EAIzC,GAAIA,aAAe,OAAQ,CACzBqkL,EAAU,KAAKrkL,CAAG,EAClB,IAAIrhD,EAAM,OAAO,OAAOqhD,CAAG,EAC3B8iH,EAAO,KAAKnkK,CAAG,EACf,QAAS1iD,KAAO+jG,EAAK,CACnB,IAAIq3C,EAAMgtI,EAAU,UAAU,SAAU/+R,EAAG,CACzC,OAAOA,IAAM06G,EAAI/jG,CAAG,CAC5B,CAAO,EACD0iD,EAAI1iD,CAAG,EAAIo7I,EAAM,GAAKyrE,EAAOzrE,CAAG,EAAI+sI,GAAUpkL,EAAI/jG,CAAG,EAAGooR,EAAWvhE,CAAM,CAC1E,CACD,OAAOnkK,CACR,CAGD,OAAOqhD,CACT,CAEe,SAAS0/F,GAAO1/F,EAAK,CAClC,OAAOokL,GAAUpkL,EAAK,CAAE,EAAE,EAAE,CAC9B,CCpEA,MAAM7hF,IAAW,OAAO,UAAU,SAC5BmmQ,IAAgB,MAAM,UAAU,SAChCC,IAAiB,OAAO,UAAU,SAClCC,IAAiB,OAAO,OAAW,IAAc,OAAO,UAAU,SAAW,IAAM,GACnFC,IAAgB,uBAEtB,SAASC,IAAYryO,EAAK,CACxB,OAAIA,GAAO,CAACA,EAAY,MACDA,IAAQ,GAAK,EAAIA,EAAM,EACtB,KAAO,GAAKA,CACtC,CAEA,SAASsyO,GAAiBtyO,EAAKuyO,EAAe,GAAO,CACnD,GAAIvyO,GAAO,MAAQA,IAAQ,IAAQA,IAAQ,GAAO,MAAO,GAAKA,EAC9D,MAAMg2C,EAAS,OAAOh2C,EACtB,GAAIg2C,IAAW,SAAU,OAAOq8L,IAAYryO,CAAG,EAC/C,GAAIg2C,IAAW,SAAU,OAAOu8L,EAAe,IAAIvyO,CAAG,IAAMA,EAC5D,GAAIg2C,IAAW,WAAY,MAAO,cAAgBh2C,EAAI,MAAQ,aAAe,IAC7E,GAAIg2C,IAAW,SAAU,OAAOm8L,IAAe,KAAKnyO,CAAG,EAAE,QAAQoyO,IAAe,YAAY,EAC5F,MAAMnrR,EAAM6kB,IAAS,KAAKk0B,CAAG,EAAE,MAAM,EAAG,EAAE,EAC1C,OAAI/4C,IAAQ,OAAe,MAAM+4C,EAAI,QAAO,CAAE,EAAI,GAAKA,EAAMA,EAAI,YAAYA,CAAG,EAC5E/4C,IAAQ,SAAW+4C,aAAe,MAAc,IAAMiyO,IAAc,KAAKjyO,CAAG,EAAI,IAChF/4C,IAAQ,SAAiBirR,IAAe,KAAKlyO,CAAG,EAC7C,IACT,CAEe,SAASwyO,GAAWr+R,EAAOo+R,EAAc,CACtD,IAAIhmR,EAAS+lR,GAAiBn+R,EAAOo+R,CAAY,EACjD,OAAIhmR,IAAW,KAAaA,EACrB,KAAK,UAAUpY,EAAO,SAAUyV,EAAKzV,EAAO,CACjD,IAAIoY,EAAS+lR,GAAiB,KAAK1oR,CAAG,EAAG2oR,CAAY,EACrD,OAAIhmR,IAAW,KAAaA,EACrBpY,CACR,EAAE,CAAC,CACN,CCjCO,IAAIs+R,GAAQ,CACjB,QAAS,qBACT,SAAU,8BACV,MAAO,yDACP,SAAU,6DACV,QAAS,CAAC,CACR,KAAA5oR,EACA,KAAA/R,EACA,MAAA3D,EACA,cAAAu+R,CACJ,IAAQ,CACJ,IAAIC,EAASD,GAAiB,MAAQA,IAAkBv+R,EACpDk8K,EAAM,GAAGxmK,CAAI,gBAAgB/R,CAAI,uCAA4C06R,GAAWr+R,EAAO,EAAI,CAAC,MAAQw+R,EAAS,2BAA2BH,GAAWE,EAAe,EAAI,CAAC,OAAS,KAE5L,OAAIv+R,IAAU,OACZk8K,GAAO,0FAGFA,CACR,EACD,QAAS,yBACX,EACWjqK,GAAS,CAClB,OAAQ,+CACR,IAAK,6CACL,IAAK,4CACL,QAAS,+CACT,MAAO,gCACP,IAAK,8BACL,KAAM,+BACN,KAAM,mCACN,UAAW,qCACX,UAAW,qCACb,EACW4xF,GAAS,CAClB,IAAK,kDACL,IAAK,+CACL,SAAU,oCACV,SAAU,uCACV,SAAU,oCACV,SAAU,oCACV,QAAS,4BACX,EACWpS,GAAO,CAChB,IAAK,0CACL,IAAK,8CACP,EACWgtM,GAAU,CACnB,QAAS,gCACX,EACW3yO,GAAS,CAClB,UAAW,gDACb,EACW/8B,IAAQ,CACjB,IAAK,gDACL,IAAK,6DACL,OAAQ,mCACV,EACe,OAAO,OAAO,OAAO,OAAO,IAAI,EAAG,CAChD,MAAAuvQ,GACA,OAAArsR,GACA,OAAA4xF,GACA,KAAApS,GACA,OAAA3lC,GACA,MAAA/8B,IACA,QAAA0vQ,EACF,CAAC,EClED,IAAIC,IAAc,OAAO,UAGrBzzO,IAAiByzO,IAAY,eAUjC,SAASC,IAAQ7yO,EAAQr2C,EAAK,CAC5B,OAAOq2C,GAAU,MAAQb,IAAe,KAAKa,EAAQr2C,CAAG,CAC1D,CAEA,IAAAmpR,IAAiBD,ICKbv0O,IAAU,MAAM,QAEpBy0O,GAAiBz0O,ICxBb00O,IAAa,OAAO/+F,IAAU,UAAYA,IAAUA,GAAO,SAAW,QAAUA,GAEpFg/F,GAAiBD,ICHbA,IAAaxmT,GAGb0mT,IAAW,OAAO,MAAQ,UAAY,MAAQ,KAAK,SAAW,QAAU,KAGxE5iP,IAAO0iP,KAAcE,KAAY,SAAS,aAAa,EAAC,EAE5DC,GAAiB7iP,ICRbA,IAAO9jE,GAGPo/H,IAASt7D,IAAK,OAElB8iP,GAAiBxnL,ICLbA,GAASp/H,GAGTomT,GAAc,OAAO,UAGrBzzO,IAAiByzO,GAAY,eAO7BS,IAAuBT,GAAY,SAGnCU,GAAiB1nL,GAASA,GAAO,YAAc,OASnD,SAAS2nL,IAAUr/R,EAAO,CACxB,IAAIs/R,EAAQr0O,IAAe,KAAKjrD,EAAOo/R,EAAc,EACjDtsR,EAAM9S,EAAMo/R,EAAc,EAE9B,GAAI,CACFp/R,EAAMo/R,EAAc,EAAI,OACxB,IAAIG,EAAW,EACnB,MAAc,CAAE,CAEd,IAAInnR,EAAS+mR,IAAqB,KAAKn/R,CAAK,EAC5C,OAAIu/R,IACED,EACFt/R,EAAMo/R,EAAc,EAAItsR,EAExB,OAAO9S,EAAMo/R,EAAc,GAGxBhnR,CACT,CAEA,IAAAonR,IAAiBH,IC5CbX,IAAc,OAAO,UAOrBS,IAAuBT,IAAY,SASvC,SAASe,IAAez/R,EAAO,CAC7B,OAAOm/R,IAAqB,KAAKn/R,CAAK,CACxC,CAEA,IAAA0/R,IAAiBD,ICrBb/nL,GAASp/H,GACT+mT,IAAY1mT,IACZ8mT,IAAiBrwD,IAGjBuwD,IAAU,gBACVC,IAAe,qBAGfR,GAAiB1nL,GAASA,GAAO,YAAc,OASnD,SAASmoL,IAAW7/R,EAAO,CACzB,OAAIA,GAAS,KACJA,IAAU,OAAY4/R,IAAeD,IAEtCP,IAAkBA,MAAkB,OAAOp/R,CAAK,EACpDq/R,IAAUr/R,CAAK,EACfy/R,IAAez/R,CAAK,CAC1B,CAEA,IAAA8/R,GAAiBD,ICHjB,SAASE,IAAa//R,EAAO,CAC3B,OAAOA,GAAS,MAAQ,OAAOA,GAAS,QAC1C,CAEA,IAAAggS,GAAiBD,IC5BbF,IAAavnT,GACbynT,IAAepnT,GAGfsnT,IAAY,kBAmBhB,SAASC,IAASlgS,EAAO,CACvB,OAAO,OAAOA,GAAS,UACpB+/R,IAAa//R,CAAK,GAAK6/R,IAAW7/R,CAAK,GAAKigS,GACjD,CAEA,IAAAE,GAAiBD,IC5Bb91O,IAAU9xE,GACV4nT,IAAWvnT,GAGXynT,IAAe,mDACfC,IAAgB,QAUpB,SAASn0O,IAAMlsD,EAAO8rD,EAAQ,CAC5B,GAAI1B,IAAQpqD,CAAK,EACf,MAAO,GAET,IAAI2D,EAAO,OAAO3D,EAClB,OAAI2D,GAAQ,UAAYA,GAAQ,UAAYA,GAAQ,WAChD3D,GAAS,MAAQkgS,IAASlgS,CAAK,EAC1B,GAEFqgS,IAAc,KAAKrgS,CAAK,GAAK,CAACogS,IAAa,KAAKpgS,CAAK,GACzD8rD,GAAU,MAAQ9rD,KAAS,OAAO8rD,CAAM,CAC7C,CAEA,IAAAw0O,GAAiBp0O,ICHjB,SAAShC,IAASlqD,EAAO,CACvB,IAAI2D,EAAO,OAAO3D,EAClB,OAAOA,GAAS,OAAS2D,GAAQ,UAAYA,GAAQ,WACvD,CAEA,IAAA48R,GAAiBr2O,IC9Bb21O,IAAavnT,GACb4xE,IAAWvxE,GAGX6nT,IAAW,yBACXC,IAAU,oBACVC,IAAS,6BACTC,IAAW,iBAmBf,SAASlsO,IAAWz0D,EAAO,CACzB,GAAI,CAACkqD,IAASlqD,CAAK,EACjB,MAAO,GAIT,IAAI8S,EAAM+sR,IAAW7/R,CAAK,EAC1B,OAAO8S,GAAO2tR,KAAW3tR,GAAO4tR,KAAU5tR,GAAO0tR,KAAY1tR,GAAO6tR,GACtE,CAEA,IAAAC,GAAiBnsO,ICpCbrY,IAAO9jE,GAGPuoT,IAAazkP,IAAK,oBAAoB,EAE1C0kP,IAAiBD,ICLbA,GAAavoT,IAGbyoT,GAAc,UAAW,CAC3B,IAAIC,EAAM,SAAS,KAAKH,IAAcA,GAAW,MAAQA,GAAW,KAAK,UAAY,EAAE,EACvF,OAAOG,EAAO,iBAAmBA,EAAO,EAC1C,EAAC,EASD,SAASC,IAASprR,EAAM,CACtB,MAAO,CAAC,CAACkrR,IAAeA,MAAclrR,CACxC,CAEA,IAAAqrR,IAAiBD,IClBbE,IAAY,SAAS,UAGrBC,IAAeD,IAAU,SAS7B,SAASE,IAASxrR,EAAM,CACtB,GAAIA,GAAQ,KAAM,CAChB,GAAI,CACF,OAAOurR,IAAa,KAAKvrR,CAAI,CACnC,MAAgB,CAAE,CACd,GAAI,CACF,OAAQA,EAAO,EACrB,MAAgB,CAAE,CACf,CACD,MAAO,EACT,CAEA,IAAAyrR,GAAiBD,ICzBb5sO,IAAan8E,GACb2oT,IAAWtoT,IACXuxE,IAAWklL,GACXiyD,IAAWhyD,GAMXkyD,IAAe,sBAGfC,IAAe,8BAGfL,IAAY,SAAS,UACrBzC,IAAc,OAAO,UAGrB0C,IAAeD,IAAU,SAGzBl2O,IAAiByzO,IAAY,eAG7B+C,IAAa,OAAO,IACtBL,IAAa,KAAKn2O,GAAc,EAAE,QAAQs2O,IAAc,MAAM,EAC7D,QAAQ,yDAA0D,OAAO,EAAI,GAChF,EAUA,SAASG,IAAa1hS,EAAO,CAC3B,GAAI,CAACkqD,IAASlqD,CAAK,GAAKihS,IAASjhS,CAAK,EACpC,MAAO,GAET,IAAIstD,EAAUmH,IAAWz0D,CAAK,EAAIyhS,IAAaD,IAC/C,OAAOl0O,EAAQ,KAAK+zO,IAASrhS,CAAK,CAAC,CACrC,CAEA,IAAA2hS,IAAiBD,ICtCjB,SAASE,IAAS91O,EAAQr2C,EAAK,CAC7B,OAAOq2C,GAAU,KAAO,OAAYA,EAAOr2C,CAAG,CAChD,CAEA,IAAAosR,IAAiBD,ICZbF,IAAeppT,IACfspT,IAAWjpT,IAUf,SAASmpT,IAAUh2O,EAAQr2C,EAAK,CAC9B,IAAIzV,EAAQ4hS,IAAS91O,EAAQr2C,CAAG,EAChC,OAAOisR,IAAa1hS,CAAK,EAAIA,EAAQ,MACvC,CAEA,IAAA+hS,GAAiBD,IChBbA,IAAYxpT,GAGZ0pT,IAAeF,IAAU,OAAQ,QAAQ,EAE7CG,GAAiBD,ICLbA,GAAe1pT,GASnB,SAAS4pT,KAAY,CACnB,KAAK,SAAWF,GAAeA,GAAa,IAAI,EAAI,GACpD,KAAK,KAAO,CACd,CAEA,IAAAG,IAAiBD,ICJjB,SAASE,IAAW3sR,EAAK,CACvB,IAAI2C,EAAS,KAAK,IAAI3C,CAAG,GAAK,OAAO,KAAK,SAASA,CAAG,EACtD,YAAK,MAAQ2C,EAAS,EAAI,EACnBA,CACT,CAEA,IAAAiqR,IAAiBD,IChBbJ,IAAe1pT,GAGfgqT,IAAiB,4BAGjB5D,IAAc,OAAO,UAGrBzzO,IAAiByzO,IAAY,eAWjC,SAAS6D,IAAQ9sR,EAAK,CACpB,IAAI6c,EAAO,KAAK,SAChB,GAAI0vQ,IAAc,CAChB,IAAI5pR,EAASka,EAAK7c,CAAG,EACrB,OAAO2C,IAAWkqR,IAAiB,OAAYlqR,CAChD,CACD,OAAO6yC,IAAe,KAAK34B,EAAM7c,CAAG,EAAI6c,EAAK7c,CAAG,EAAI,MACtD,CAEA,IAAA+sR,IAAiBD,IC7BbP,IAAe1pT,GAGfomT,IAAc,OAAO,UAGrBzzO,IAAiByzO,IAAY,eAWjC,SAAS+D,IAAQhtR,EAAK,CACpB,IAAI6c,EAAO,KAAK,SAChB,OAAO0vQ,IAAgB1vQ,EAAK7c,CAAG,IAAM,OAAaw1C,IAAe,KAAK34B,EAAM7c,CAAG,CACjF,CAEA,IAAAitR,IAAiBD,ICtBbT,IAAe1pT,GAGfgqT,IAAiB,4BAYrB,SAASK,IAAQltR,EAAKzV,EAAO,CAC3B,IAAIsyB,EAAO,KAAK,SAChB,YAAK,MAAQ,KAAK,IAAI7c,CAAG,EAAI,EAAI,EACjC6c,EAAK7c,CAAG,EAAKusR,KAAgBhiS,IAAU,OAAasiS,IAAiBtiS,EAC9D,IACT,CAEA,IAAA4iS,IAAiBD,ICtBbT,IAAY5pT,IACZ8pT,IAAazpT,IACb4pT,IAAUnzD,IACVqzD,IAAUpzD,IACVszD,IAAUrzD,IASd,SAASwjD,GAAK9xQ,EAAS,CACrB,IAAIpgB,EAAQ,GACRg7B,EAAS5a,GAAW,KAAO,EAAIA,EAAQ,OAG3C,IADA,KAAK,MAAK,EACH,EAAEpgB,EAAQg7B,GAAQ,CACvB,IAAI3a,EAAQD,EAAQpgB,CAAK,EACzB,KAAK,IAAIqgB,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC5B,CACH,CAGA6xQ,GAAK,UAAU,MAAQoP,IACvBpP,GAAK,UAAU,OAAYsP,IAC3BtP,GAAK,UAAU,IAAMyP,IACrBzP,GAAK,UAAU,IAAM2P,IACrB3P,GAAK,UAAU,IAAM6P,IAErB,IAAAE,IAAiB/P,GCxBjB,SAASgQ,KAAiB,CACxB,KAAK,SAAW,GAChB,KAAK,KAAO,CACd,CAEA,IAAAC,IAAiBD,ICoBjB,SAASE,IAAGhjS,EAAOy0M,EAAO,CACxB,OAAOz0M,IAAUy0M,GAAUz0M,IAAUA,GAASy0M,IAAUA,CAC1D,CAEA,IAAAwuF,GAAiBD,ICpCbA,IAAK1qT,GAUT,SAAS4qT,IAAan0Q,EAAOtZ,EAAK,CAEhC,QADImmB,EAAS7M,EAAM,OACZ6M,KACL,GAAIonQ,IAAGj0Q,EAAM6M,CAAM,EAAE,CAAC,EAAGnmB,CAAG,EAC1B,OAAOmmB,EAGX,MAAO,EACT,CAEA,IAAAunQ,GAAiBD,ICpBbA,IAAe5qT,GAGf8qT,IAAa,MAAM,UAGnBC,IAASD,IAAW,OAWxB,SAASE,IAAgB7tR,EAAK,CAC5B,IAAI6c,EAAO,KAAK,SACZ1xB,EAAQsiS,IAAa5wQ,EAAM7c,CAAG,EAElC,GAAI7U,EAAQ,EACV,MAAO,GAET,IAAI2rD,EAAYj6B,EAAK,OAAS,EAC9B,OAAI1xB,GAAS2rD,EACXj6B,EAAK,IAAG,EAER+wQ,IAAO,KAAK/wQ,EAAM1xB,EAAO,CAAC,EAE5B,EAAE,KAAK,KACA,EACT,CAEA,IAAA2iS,IAAiBD,IClCbJ,IAAe5qT,GAWnB,SAASkrT,IAAa/tR,EAAK,CACzB,IAAI6c,EAAO,KAAK,SACZ1xB,EAAQsiS,IAAa5wQ,EAAM7c,CAAG,EAElC,OAAO7U,EAAQ,EAAI,OAAY0xB,EAAK1xB,CAAK,EAAE,CAAC,CAC9C,CAEA,IAAA6iS,IAAiBD,IClBbN,IAAe5qT,GAWnB,SAASorT,IAAajuR,EAAK,CACzB,OAAOytR,IAAa,KAAK,SAAUztR,CAAG,EAAI,EAC5C,CAEA,IAAAkuR,IAAiBD,ICfbR,IAAe5qT,GAYnB,SAASsrT,IAAanuR,EAAKzV,EAAO,CAChC,IAAIsyB,EAAO,KAAK,SACZ1xB,EAAQsiS,IAAa5wQ,EAAM7c,CAAG,EAElC,OAAI7U,EAAQ,GACV,EAAE,KAAK,KACP0xB,EAAK,KAAK,CAAC7c,EAAKzV,CAAK,CAAC,GAEtBsyB,EAAK1xB,CAAK,EAAE,CAAC,EAAIZ,EAEZ,IACT,CAEA,IAAA6jS,IAAiBD,ICzBbd,IAAiBxqT,IACjBgrT,IAAkB3qT,IAClB6qT,IAAep0D,IACfs0D,IAAer0D,IACfu0D,IAAet0D,IASnB,SAASw0D,GAAU9iR,EAAS,CAC1B,IAAIpgB,EAAQ,GACRg7B,EAAS5a,GAAW,KAAO,EAAIA,EAAQ,OAG3C,IADA,KAAK,MAAK,EACH,EAAEpgB,EAAQg7B,GAAQ,CACvB,IAAI3a,EAAQD,EAAQpgB,CAAK,EACzB,KAAK,IAAIqgB,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC5B,CACH,CAGA6iR,GAAU,UAAU,MAAQhB,IAC5BgB,GAAU,UAAU,OAAYR,IAChCQ,GAAU,UAAU,IAAMN,IAC1BM,GAAU,UAAU,IAAMJ,IAC1BI,GAAU,UAAU,IAAMF,IAE1B,IAAAG,GAAiBD,GC/BbhC,IAAYxpT,GACZ8jE,IAAOzjE,GAGPqrT,IAAMlC,IAAU1lP,IAAM,KAAK,EAE/B6nP,GAAiBD,ICNblR,GAAOx6S,IACPwrT,IAAYnrT,GACZqrT,IAAM50D,GASV,SAAS80D,KAAgB,CACvB,KAAK,KAAO,EACZ,KAAK,SAAW,CACd,KAAQ,IAAIpR,GACZ,IAAO,IAAKkR,KAAOF,KACnB,OAAU,IAAIhR,EAClB,CACA,CAEA,IAAAqR,IAAiBD,ICbjB,SAASE,IAAUpkS,EAAO,CACxB,IAAI2D,EAAO,OAAO3D,EAClB,OAAQ2D,GAAQ,UAAYA,GAAQ,UAAYA,GAAQ,UAAYA,GAAQ,UACvE3D,IAAU,YACVA,IAAU,IACjB,CAEA,IAAAqkS,IAAiBD,ICdbA,IAAY9rT,IAUhB,SAASgsT,IAAWrhS,EAAKwS,EAAK,CAC5B,IAAI6c,EAAOrvB,EAAI,SACf,OAAOmhS,IAAU3uR,CAAG,EAChB6c,EAAK,OAAO7c,GAAO,SAAW,SAAW,MAAM,EAC/C6c,EAAK,GACX,CAEA,IAAAiyQ,GAAiBD,ICjBbA,IAAahsT,GAWjB,SAASksT,IAAe/uR,EAAK,CAC3B,IAAI2C,EAASksR,IAAW,KAAM7uR,CAAG,EAAE,OAAUA,CAAG,EAChD,YAAK,MAAQ2C,EAAS,EAAI,EACnBA,CACT,CAEA,IAAAqsR,IAAiBD,ICjBbF,IAAahsT,GAWjB,SAASosT,IAAYjvR,EAAK,CACxB,OAAO6uR,IAAW,KAAM7uR,CAAG,EAAE,IAAIA,CAAG,CACtC,CAEA,IAAAkvR,IAAiBD,ICfbJ,IAAahsT,GAWjB,SAASssT,IAAYnvR,EAAK,CACxB,OAAO6uR,IAAW,KAAM7uR,CAAG,EAAE,IAAIA,CAAG,CACtC,CAEA,IAAAovR,IAAiBD,ICfbN,IAAahsT,GAYjB,SAASwsT,IAAYrvR,EAAKzV,EAAO,CAC/B,IAAIsyB,EAAOgyQ,IAAW,KAAM7uR,CAAG,EAC3BjD,EAAO8f,EAAK,KAEhB,OAAAA,EAAK,IAAI7c,EAAKzV,CAAK,EACnB,KAAK,MAAQsyB,EAAK,MAAQ9f,EAAO,EAAI,EAC9B,IACT,CAEA,IAAAuyR,IAAiBD,ICrBbZ,IAAgB5rT,IAChBksT,IAAiB7rT,IACjB+rT,IAAct1D,IACdw1D,IAAcv1D,IACdy1D,IAAcx1D,IASlB,SAAS01D,GAAShkR,EAAS,CACzB,IAAIpgB,EAAQ,GACRg7B,EAAS5a,GAAW,KAAO,EAAIA,EAAQ,OAG3C,IADA,KAAK,MAAK,EACH,EAAEpgB,EAAQg7B,GAAQ,CACvB,IAAI3a,EAAQD,EAAQpgB,CAAK,EACzB,KAAK,IAAIqgB,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC5B,CACH,CAGA+jR,GAAS,UAAU,MAAQd,IAC3Bc,GAAS,UAAU,OAAYR,IAC/BQ,GAAS,UAAU,IAAMN,IACzBM,GAAS,UAAU,IAAMJ,IACzBI,GAAS,UAAU,IAAMF,IAEzB,IAAAG,GAAiBD,GC/BbA,GAAW1sT,GAGX4sT,IAAkB,sBA8CtB,SAASC,GAAQtvR,EAAMumD,EAAU,CAC/B,GAAI,OAAOvmD,GAAQ,YAAeumD,GAAY,MAAQ,OAAOA,GAAY,WACvE,MAAM,IAAI,UAAU8oO,GAAe,EAErC,IAAIE,EAAW,UAAW,CACxB,IAAIhhS,EAAO,UACPqR,EAAM2mD,EAAWA,EAAS,MAAM,KAAMh4D,CAAI,EAAIA,EAAK,CAAC,EACpD+R,EAAQivR,EAAS,MAErB,GAAIjvR,EAAM,IAAIV,CAAG,EACf,OAAOU,EAAM,IAAIV,CAAG,EAEtB,IAAI2C,EAASvC,EAAK,MAAM,KAAMzR,CAAI,EAClC,OAAAghS,EAAS,MAAQjvR,EAAM,IAAIV,EAAK2C,CAAM,GAAKjC,EACpCiC,CACX,EACE,OAAAgtR,EAAS,MAAQ,IAAKD,GAAQ,OAASH,IAChCI,CACT,CAGAD,GAAQ,MAAQH,GAEhB,IAAAK,IAAiBF,GCxEbA,IAAU7sT,IAGVgtT,IAAmB,IAUvB,SAASC,IAAc1vR,EAAM,CAC3B,IAAIuC,EAAS+sR,IAAQtvR,EAAM,SAASJ,EAAK,CACvC,OAAIU,EAAM,OAASmvR,KACjBnvR,EAAM,MAAK,EAENV,CACX,CAAG,EAEGU,EAAQiC,EAAO,MACnB,OAAOA,CACT,CAEA,IAAAotR,IAAiBD,ICzBbA,IAAgBjtT,IAGhBmtT,IAAa,mGAGbC,IAAe,WASfv5O,IAAeo5O,IAAc,SAAStzR,EAAQ,CAChD,IAAImG,EAAS,GACb,OAAInG,EAAO,WAAW,CAAC,IAAM,IAC3BmG,EAAO,KAAK,EAAE,EAEhBnG,EAAO,QAAQwzR,IAAY,SAAS5tO,EAAOgsC,EAAQi7E,EAAO6mH,EAAW,CACnEvtR,EAAO,KAAK0mK,EAAQ6mH,EAAU,QAAQD,IAAc,IAAI,EAAK7hM,GAAUhsC,CAAM,CACjF,CAAG,EACMz/C,CACT,CAAC,EAEDwtR,IAAiBz5O,ICjBjB,SAAS05O,IAAS92Q,EAAO+2Q,EAAU,CAKjC,QAJIllS,EAAQ,GACRg7B,EAAS7M,GAAS,KAAO,EAAIA,EAAM,OACnC3W,EAAS,MAAMwjB,CAAM,EAElB,EAAEh7B,EAAQg7B,GACfxjB,EAAOxX,CAAK,EAAIklS,EAAS/2Q,EAAMnuB,CAAK,EAAGA,EAAOmuB,CAAK,EAErD,OAAO3W,CACT,CAEA,IAAA2tR,IAAiBF,ICpBbnuL,GAASp/H,GACTutT,IAAWltT,IACXyxE,IAAUglL,GACV8wD,IAAW7wD,GAGX22D,IAAW,EAAI,EAGfC,GAAcvuL,GAASA,GAAO,UAAY,OAC1CsmL,GAAiBiI,GAAcA,GAAY,SAAW,OAU1D,SAASC,GAAalmS,EAAO,CAE3B,GAAI,OAAOA,GAAS,SAClB,OAAOA,EAET,GAAIoqD,IAAQpqD,CAAK,EAEf,OAAO6lS,IAAS7lS,EAAOkmS,EAAY,EAAI,GAEzC,GAAIhG,IAASlgS,CAAK,EAChB,OAAOg+R,GAAiBA,GAAe,KAAKh+R,CAAK,EAAI,GAEvD,IAAIoY,EAAUpY,EAAQ,GACtB,OAAQoY,GAAU,KAAQ,EAAIpY,GAAU,CAACgmS,IAAY,KAAO5tR,CAC9D,CAEA,IAAA+tR,IAAiBD,GCpCbA,IAAe5tT,IAuBnB,SAASq/C,IAAS33B,EAAO,CACvB,OAAOA,GAAS,KAAO,GAAKkmS,IAAalmS,CAAK,CAChD,CAEA,IAAAomS,GAAiBzuQ,IC3BbyyB,IAAU9xE,GACV4zE,IAAQvzE,GACRwzE,IAAeijL,IACfz3M,IAAW03M,GAUf,SAASg3D,IAASrmS,EAAO8rD,EAAQ,CAC/B,OAAI1B,IAAQpqD,CAAK,EACRA,EAEFksD,IAAMlsD,EAAO8rD,CAAM,EAAI,CAAC9rD,CAAK,EAAImsD,IAAax0B,IAAS33B,CAAK,CAAC,CACtE,CAEA,IAAAsmS,GAAiBD,ICpBbxG,IAAavnT,GACbynT,IAAepnT,GAGf4tT,IAAU,qBASd,SAASC,IAAgBxmS,EAAO,CAC9B,OAAO+/R,IAAa//R,CAAK,GAAK6/R,IAAW7/R,CAAK,GAAKumS,GACrD,CAEA,IAAAE,IAAiBD,ICjBbA,GAAkBluT,IAClBynT,IAAepnT,GAGf+lT,GAAc,OAAO,UAGrBzzO,IAAiByzO,GAAY,eAG7B/hM,IAAuB+hM,GAAY,qBAoBnCgI,IAAcF,GAAgB,UAAW,CAAE,OAAO,SAAU,GAAI,EAAIA,GAAkB,SAASxmS,EAAO,CACxG,OAAO+/R,IAAa//R,CAAK,GAAKirD,IAAe,KAAKjrD,EAAO,QAAQ,GAC/D,CAAC28F,IAAqB,KAAK38F,EAAO,QAAQ,CAC9C,EAEA2mS,GAAiBD,IClCbE,IAAmB,iBAGnBC,IAAW,mBAUf,SAASC,IAAQ9mS,EAAO47B,EAAQ,CAC9B,IAAIj4B,EAAO,OAAO3D,EAClB,OAAA47B,EAASA,GAAiBgrQ,IAEnB,CAAC,CAAChrQ,IACNj4B,GAAQ,UACNA,GAAQ,UAAYkjS,IAAS,KAAK7mS,CAAK,IACrCA,EAAQ,IAAMA,EAAQ,GAAK,GAAKA,EAAQ47B,CACjD,CAEA,IAAAmrQ,GAAiBD,ICvBbF,IAAmB,iBA4BvB,SAASvsR,IAASra,EAAO,CACvB,OAAO,OAAOA,GAAS,UACrBA,EAAQ,IAAMA,EAAQ,GAAK,GAAKA,GAAS4mS,GAC7C,CAEA,IAAAI,GAAiB3sR,IClCb6lR,IAAW5nT,GAGX0tT,IAAW,EAAI,EASnB,SAASiB,IAAMjnS,EAAO,CACpB,GAAI,OAAOA,GAAS,UAAYkgS,IAASlgS,CAAK,EAC5C,OAAOA,EAET,IAAIoY,EAAUpY,EAAQ,GACtB,OAAQoY,GAAU,KAAQ,EAAIpY,GAAU,CAACgmS,IAAY,KAAO5tR,CAC9D,CAEA,IAAA8uR,GAAiBD,ICpBbZ,IAAW/tT,GACXouT,IAAc/tT,GACdyxE,IAAUglL,GACV03D,IAAUz3D,GACVh1N,IAAWi1N,GACX23D,IAAQ13D,GAWZ,SAAS43D,IAAQr7O,EAAQp2C,EAAM0xR,EAAS,CACtC1xR,EAAO2wR,IAAS3wR,EAAMo2C,CAAM,EAM5B,QAJIlrD,EAAQ,GACRg7B,EAASlmB,EAAK,OACd0C,EAAS,GAEN,EAAExX,EAAQg7B,GAAQ,CACvB,IAAInmB,EAAMwxR,IAAMvxR,EAAK9U,CAAK,CAAC,EAC3B,GAAI,EAAEwX,EAAS0zC,GAAU,MAAQs7O,EAAQt7O,EAAQr2C,CAAG,GAClD,MAEFq2C,EAASA,EAAOr2C,CAAG,CACpB,CACD,OAAI2C,GAAU,EAAExX,GAASg7B,EAChBxjB,GAETwjB,EAASkwB,GAAU,KAAO,EAAIA,EAAO,OAC9B,CAAC,CAAClwB,GAAUvhB,IAASuhB,CAAM,GAAKkrQ,IAAQrxR,EAAKmmB,CAAM,IACvDwuB,IAAQ0B,CAAM,GAAK46O,IAAY56O,CAAM,GAC1C,CAEA,IAAAu7O,GAAiBF,ICtCbxI,IAAUrmT,IACV6uT,IAAUxuT,GA6Bd,SAASgyE,IAAImB,EAAQp2C,EAAM,CACzB,OAAOo2C,GAAU,MAAQq7O,IAAQr7O,EAAQp2C,EAAMipR,GAAO,CACxD,CAEA,IAAA2I,IAAiB38O,qBClCX48O,GAAWpvO,GAAOA,GAAOA,EAAI,gBCGnC,MAAMqvO,GAAU,CACd,YAAYzlS,EAAM6wB,EAAS,CAKzB,GAJA,KAAK,GAAK,OACV,KAAK,KAAO7wB,EACZ,KAAK,KAAOA,EAER,OAAO6wB,GAAY,WAAY,CACjC,KAAK,GAAKA,EACV,MACD,CAED,GAAI,CAAC+3B,GAAI/3B,EAAS,IAAI,EAAG,MAAM,IAAI,UAAU,2CAA2C,EACxF,GAAI,CAACA,EAAQ,MAAQ,CAACA,EAAQ,UAAW,MAAM,IAAI,UAAU,oEAAoE,EACjI,GAAI,CACF,GAAA60Q,EACA,KAAA7kO,EACA,UAAA8kO,CACD,EAAG90Q,EACA+0Q,EAAQ,OAAOF,GAAO,WAAaA,EAAK,IAAIv2O,IAAWA,EAAO,MAAMlxD,GAASA,IAAUynS,CAAE,EAE7F,KAAK,GAAK,YAAarjS,EAAM,CAC3B,IAAIwuB,EAAUxuB,EAAK,MACf4uO,EAAS5uO,EAAK,MACdslB,EAASi+Q,EAAM,GAAGvjS,CAAI,EAAIw+D,EAAO8kO,EACrC,GAAKh+Q,EACL,OAAI,OAAOA,GAAW,WAAmBA,EAAOspN,CAAM,EAC/CA,EAAO,OAAOtpN,EAAO,QAAQkJ,CAAO,CAAC,CAClD,CACG,CAED,QAAQhU,EAAMgU,EAAS,CACrB,IAAIs+B,EAAS,KAAK,KAAK,IAAIrvD,GAAOA,EAAI,SAAS+wB,GAAW,KAAO,OAASA,EAAQ,MAAOA,GAAW,KAAO,OAASA,EAAQ,OAAQA,GAAW,KAAO,OAASA,EAAQ,OAAO,CAAC,EAC3KogN,EAAS,KAAK,GAAG,MAAMp0N,EAAMsyC,EAAO,OAAOtyC,EAAMgU,CAAO,CAAC,EAC7D,GAAIogN,IAAW,QAAaA,IAAWp0N,EAAM,OAAOA,EACpD,GAAI,CAAC2oR,GAASv0D,CAAM,EAAG,MAAM,IAAI,UAAU,wCAAwC,EACnF,OAAOA,EAAO,QAAQpgN,CAAO,CAC9B,CAEH,CCzCe,SAASjwB,GAAQ3C,EAAO,CACrC,OAAOA,GAAS,KAAO,GAAK,GAAG,OAAOA,CAAK,CAC7C,CCFA,SAASgkB,IAAW,CAAEA,UAAW,OAAO,QAAU,SAAU5b,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAS,UAAUz7D,CAAC,EAAG,QAAS2W,KAAO8kD,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQ9kD,CAAG,IAAKrN,EAAOqN,CAAG,EAAI8kD,EAAO9kD,CAAG,EAAQ,CAAC,OAAOrN,GAAkB4b,GAAS,MAAM,KAAM,SAAS,CAAI,CAI7T,IAAI4jR,IAAS,qBACE,MAAMC,WAAwB,KAAM,CACjD,OAAO,YAAYt1O,EAASu9F,EAAQ,CAClC,MAAMp6I,EAAOo6I,EAAO,OAASA,EAAO,MAAQ,OAI5C,OAHIp6I,IAASo6I,EAAO,OAAMA,EAAS9rI,GAAS,CAAE,EAAE8rI,EAAQ,CACtD,KAAAp6I,CACN,CAAK,GACG,OAAO68C,GAAY,SAAiBA,EAAQ,QAAQq1O,IAAQ,CAAC7jR,EAAGtO,IAAQ4oR,GAAWvuI,EAAOr6I,CAAG,CAAC,CAAC,EAC/F,OAAO88C,GAAY,WAAmBA,EAAQu9F,CAAM,EACjDv9F,CACR,CAED,OAAO,QAAQ/zD,EAAK,CAClB,OAAOA,GAAOA,EAAI,OAAS,iBAC5B,CAED,YAAYspS,EAAe9nS,EAAOmyD,EAAOxuD,EAAM,CAC7C,QACA,KAAK,MAAQ,OACb,KAAK,KAAO,OACZ,KAAK,KAAO,OACZ,KAAK,OAAS,OACd,KAAK,OAAS,OACd,KAAK,MAAQ,OACb,KAAK,KAAO,kBACZ,KAAK,MAAQ3D,EACb,KAAK,KAAOmyD,EACZ,KAAK,KAAOxuD,EACZ,KAAK,OAAS,GACd,KAAK,MAAQ,GACbhB,GAAQmlS,CAAa,EAAE,QAAQtpS,GAAO,CAChCqpS,GAAgB,QAAQrpS,CAAG,GAC7B,KAAK,OAAO,KAAK,GAAGA,EAAI,MAAM,EAC9B,KAAK,MAAQ,KAAK,MAAM,OAAOA,EAAI,MAAM,OAASA,EAAI,MAAQA,CAAG,GAEjE,KAAK,OAAO,KAAKA,CAAG,CAE5B,CAAK,EACD,KAAK,QAAU,KAAK,OAAO,OAAS,EAAI,GAAG,KAAK,OAAO,MAAM,mBAAqB,KAAK,OAAO,CAAC,EAC3F,MAAM,mBAAmB,MAAM,kBAAkB,KAAMqpS,EAAe,CAC3E,CAEH,CC5CA,MAAM/qJ,IAAOlhK,GAAM,CACjB,IAAI6nL,EAAQ,GACZ,MAAO,IAAIr/J,IAAS,CACdq/J,IACJA,EAAQ,GACR7nL,EAAG,GAAGwoB,CAAI,EACd,CACA,EAEe,SAAS2jS,GAASn1Q,EAASh3C,EAAI,CAC5C,GAAI,CACF,SAAAosT,EACA,MAAAC,EACA,KAAA7jS,EACA,MAAApE,EACA,OAAAmwD,EACA,KAAAgqN,EACA,KAAAzkQ,CACD,EAAGkd,EACApsB,EAAWs2I,IAAKlhK,CAAE,EAClBunB,EAAQ8kS,EAAM,OAClB,MAAMC,EAAe,GAErB,GADA/3O,EAASA,GAAkB,GACvB,CAAChtD,EAAO,OAAOgtD,EAAO,OAAS3pD,EAAS,IAAIqhS,GAAgB13O,EAAQnwD,EAAO0V,CAAI,CAAC,EAAIlP,EAAS,KAAMxG,CAAK,EAE5G,QAASlB,EAAI,EAAGA,EAAImpS,EAAM,OAAQnpS,IAAK,CACrC,MAAMqF,EAAO8jS,EAAMnpS,CAAC,EACpBqF,EAAKC,EAAM,SAAuB5F,EAAK,CACrC,GAAIA,EAAK,CAEP,GAAI,CAACqpS,GAAgB,QAAQrpS,CAAG,EAC9B,OAAOgI,EAAShI,EAAKwB,CAAK,EAG5B,GAAIgoS,EACF,OAAAxpS,EAAI,MAAQwB,EACLwG,EAAShI,EAAKwB,CAAK,EAG5BkoS,EAAa,KAAK1pS,CAAG,CACtB,CAED,GAAI,EAAE2E,GAAS,EAAG,CAQhB,GAPI+kS,EAAa,SACX/tB,GAAM+tB,EAAa,KAAK/tB,CAAI,EAE5BhqN,EAAO,QAAQ+3O,EAAa,KAAK,GAAG/3O,CAAM,EAC9CA,EAAS+3O,GAGP/3O,EAAO,OAAQ,CACjB3pD,EAAS,IAAIqhS,GAAgB13O,EAAQnwD,EAAO0V,CAAI,EAAG1V,CAAK,EACxD,MACD,CAEDwG,EAAS,KAAMxG,CAAK,CACrB,CACP,CAAK,CACF,CACH,CC7DA,IAAI8hS,IAAYxpT,GAEZ21E,IAAkB,UAAW,CAC/B,GAAI,CACF,IAAIp4C,EAAOisR,IAAU,OAAQ,gBAAgB,EAC7C,OAAAjsR,EAAK,CAAE,EAAE,GAAI,EAAE,EACRA,CACX,MAAc,CAAE,CAChB,EAAC,EAEDslF,IAAiBltC,ICVbA,GAAiB31E,IAWrB,SAAS6vT,IAAgBr8O,EAAQr2C,EAAKzV,EAAO,CACvCyV,GAAO,aAAew4C,GACxBA,GAAenC,EAAQr2C,EAAK,CAC1B,aAAgB,GAChB,WAAc,GACd,MAASzV,EACT,SAAY,EAClB,CAAK,EAED8rD,EAAOr2C,CAAG,EAAIzV,CAElB,CAEA,IAAAooS,GAAiBD,ICjBjB,SAASE,IAAcC,EAAW,CAChC,OAAO,SAASx8O,EAAQg6O,EAAUyC,EAAU,CAM1C,QALI3nS,EAAQ,GACR29K,EAAW,OAAOzyH,CAAM,EACxBjsD,EAAQ0oS,EAASz8O,CAAM,EACvBlwB,EAAS/7B,EAAM,OAEZ+7B,KAAU,CACf,IAAInmB,EAAM5V,EAAMyoS,EAAY1sQ,EAAS,EAAEh7B,CAAK,EAC5C,GAAIklS,EAASvnH,EAAS9oK,CAAG,EAAGA,EAAK8oK,CAAQ,IAAM,GAC7C,KAEH,CACD,OAAOzyH,CACX,CACA,CAEA,IAAA08O,IAAiBH,ICxBbA,IAAgB/vT,IAahBmwT,IAAUJ,IAAa,EAE3BK,IAAiBD,ICNjB,SAASE,IAAUrzT,EAAGwwT,EAAU,CAI9B,QAHIllS,EAAQ,GACRwX,EAAS,MAAM9iC,CAAC,EAEb,EAAEsrB,EAAQtrB,GACf8iC,EAAOxX,CAAK,EAAIklS,EAASllS,CAAK,EAEhC,OAAOwX,CACT,CAEA,IAAAwwR,IAAiBD,oBCNjB,SAASE,KAAY,CACnB,MAAO,EACT,CAEA,IAAAC,IAAiBD,8BCjBjB,IAAIzsP,EAAO9jE,GACPuwT,EAAYlwT,IAGZowT,EAA4CxwT,GAAW,CAACA,EAAQ,UAAYA,EAG5EywT,EAAaD,GAAe,IAA6B3xM,GAAU,CAACA,EAAO,UAAYA,EAGvF6xM,EAAgBD,GAAcA,EAAW,UAAYD,EAGrDG,EAASD,EAAgB7sP,EAAK,OAAS,OAGvC+sP,EAAiBD,EAASA,EAAO,SAAW,OAmB5C39D,EAAW49D,GAAkBN,EAEjCzxM,EAAA,QAAiBm0I,qCCrCbs0D,IAAavnT,GACb+hC,IAAW1hC,GACXonT,IAAe3wD,GAGfm3D,IAAU,qBACV6C,IAAW,iBACXC,IAAU,mBACVC,IAAU,gBACVC,IAAW,iBACX9I,IAAU,oBACV+I,IAAS,eACTC,IAAY,kBACZC,IAAY,kBACZC,IAAY,kBACZC,IAAS,eACTC,IAAY,kBACZC,IAAa,mBAEbC,IAAiB,uBACjBC,IAAc,oBACdC,IAAa,wBACbC,IAAa,wBACbC,IAAU,qBACVC,IAAW,sBACXC,IAAW,sBACXC,IAAW,sBACXC,IAAkB,6BAClBC,IAAY,uBACZC,IAAY,uBAGZC,GAAiB,GACrBA,GAAeT,GAAU,EAAIS,GAAeR,GAAU,EACtDQ,GAAeP,GAAO,EAAIO,GAAeN,GAAQ,EACjDM,GAAeL,GAAQ,EAAIK,GAAeJ,GAAQ,EAClDI,GAAeH,GAAe,EAAIG,GAAeF,GAAS,EAC1DE,GAAeD,GAAS,EAAI,GAC5BC,GAAenE,GAAO,EAAImE,GAAetB,GAAQ,EACjDsB,GAAeX,GAAc,EAAIW,GAAerB,GAAO,EACvDqB,GAAeV,GAAW,EAAIU,GAAepB,GAAO,EACpDoB,GAAenB,GAAQ,EAAImB,GAAejK,GAAO,EACjDiK,GAAelB,GAAM,EAAIkB,GAAejB,GAAS,EACjDiB,GAAehB,GAAS,EAAIgB,GAAef,GAAS,EACpDe,GAAed,GAAM,EAAIc,GAAeb,GAAS,EACjDa,GAAeZ,GAAU,EAAI,GAS7B,SAASa,IAAiB3qS,EAAO,CAC/B,OAAO+/R,IAAa//R,CAAK,GACvBqa,IAASra,EAAM,MAAM,GAAK,CAAC,CAAC0qS,GAAe7K,IAAW7/R,CAAK,CAAC,CAChE,CAEA,IAAA4qS,IAAiBD,ICpDjB,SAASE,IAAUh1R,EAAM,CACvB,OAAO,SAAS7V,EAAO,CACrB,OAAO6V,EAAK7V,CAAK,CACrB,CACA,CAEA,IAAA8qS,IAAiBD,8CCbjB,IAAI/L,EAAaxmT,GAGbywT,EAA4CxwT,GAAW,CAACA,EAAQ,UAAYA,EAG5EywT,EAAaD,GAAe,IAA6B3xM,GAAU,CAACA,EAAO,UAAYA,EAGvF6xM,EAAgBD,GAAcA,EAAW,UAAYD,EAGrDgC,EAAc9B,GAAiBnK,EAAW,QAG1CkM,EAAY,UAAW,CACzB,GAAI,CAEF,IAAI13O,EAAQ01O,GAAcA,EAAW,SAAWA,EAAW,QAAQ,MAAM,EAAE,MAE3E,OAAI11O,GAKGy3O,GAAeA,EAAY,SAAWA,EAAY,QAAQ,MAAM,CAC3E,MAAc,CAAE,CACf,IAED3zM,EAAA,QAAiB4zM,sCC7BbL,IAAmBryT,IACnBuyT,IAAYlyT,IACZqyT,GAAW57D,IAGX67D,GAAmBD,IAAYA,GAAS,aAmBxCv+D,IAAew+D,GAAmBJ,IAAUI,EAAgB,EAAIN,IAEpEO,GAAiBz+D,IC1Bbk8D,IAAYrwT,IACZouT,IAAc/tT,GACdyxE,IAAUglL,GACV7D,IAAW8D,GACXy3D,IAAUx3D,GACV7C,IAAe8C,GAGfmvD,IAAc,OAAO,UAGrBzzO,IAAiByzO,IAAY,eAUjC,SAASyM,IAAcnrS,EAAOorS,EAAW,CACvC,IAAIC,EAAQjhP,IAAQpqD,CAAK,EACrBsrS,EAAQ,CAACD,GAAS3E,IAAY1mS,CAAK,EACnCurS,EAAS,CAACF,GAAS,CAACC,GAAS//D,IAASvrO,CAAK,EAC3CwrS,EAAS,CAACH,GAAS,CAACC,GAAS,CAACC,GAAU9+D,IAAazsO,CAAK,EAC1DyrS,EAAcJ,GAASC,GAASC,GAAUC,EAC1CpzR,EAASqzR,EAAc9C,IAAU3oS,EAAM,OAAQ,MAAM,EAAI,CAAE,EAC3D47B,EAASxjB,EAAO,OAEpB,QAAS3C,KAAOzV,GACTorS,GAAangP,IAAe,KAAKjrD,EAAOyV,CAAG,IAC5C,EAAEg2R,IAECh2R,GAAO,UAEN81R,IAAW91R,GAAO,UAAYA,GAAO,WAErC+1R,IAAW/1R,GAAO,UAAYA,GAAO,cAAgBA,GAAO,eAE7DqxR,IAAQrxR,EAAKmmB,CAAM,KAExBxjB,EAAO,KAAK3C,CAAG,EAGnB,OAAO2C,CACT,CAEA,IAAAszR,IAAiBP,IC/CbzM,IAAc,OAAO,UASzB,SAASiN,IAAY3rS,EAAO,CAC1B,IAAI4rS,EAAO5rS,GAASA,EAAM,YACtBq+K,EAAS,OAAOutH,GAAQ,YAAcA,EAAK,WAAclN,IAE7D,OAAO1+R,IAAUq+K,CACnB,CAEA,IAAAwtH,IAAiBF,ICTjB,SAASG,IAAQj2R,EAAMypC,EAAW,CAChC,OAAO,SAAS03C,EAAK,CACnB,OAAOnhF,EAAKypC,EAAU03C,CAAG,CAAC,CAC9B,CACA,CAEA,IAAA+0M,IAAiBD,ICdbA,IAAUxzT,IAGV0zT,IAAaF,IAAQ,OAAO,KAAM,MAAM,EAE5CG,IAAiBD,ICLbL,IAAcrzT,IACd0zT,IAAarzT,IAGb+lT,IAAc,OAAO,UAGrBzzO,IAAiByzO,IAAY,eASjC,SAASwN,IAASpgP,EAAQ,CACxB,GAAI,CAAC6/O,IAAY7/O,CAAM,EACrB,OAAOkgP,IAAWlgP,CAAM,EAE1B,IAAI1zC,EAAS,GACb,QAAS3C,KAAO,OAAOq2C,CAAM,EACvBb,IAAe,KAAKa,EAAQr2C,CAAG,GAAKA,GAAO,eAC7C2C,EAAO,KAAK3C,CAAG,EAGnB,OAAO2C,CACT,CAEA,IAAA+zR,IAAiBD,IC7Bbz3O,IAAan8E,GACb+hC,IAAW1hC,GA2Bf,SAASyzT,IAAYpsS,EAAO,CAC1B,OAAOA,GAAS,MAAQqa,IAASra,EAAM,MAAM,GAAK,CAACy0D,IAAWz0D,CAAK,CACrE,CAEA,IAAAqsS,IAAiBD,IChCbjB,IAAgB7yT,IAChB4zT,IAAWvzT,IACXyzT,IAAch9D,IA8BlB,SAAStwL,IAAKgN,EAAQ,CACpB,OAAOsgP,IAAYtgP,CAAM,EAAIq/O,IAAcr/O,CAAM,EAAIogP,IAASpgP,CAAM,CACtE,CAEA,IAAAwgP,GAAiBxtP,ICpCb2pP,IAAUnwT,IACVwmE,IAAOnmE,GAUX,SAAS4zT,IAAWzgP,EAAQg6O,EAAU,CACpC,OAAOh6O,GAAU28O,IAAQ38O,EAAQg6O,EAAUhnP,GAAI,CACjD,CAEA,IAAA0tP,GAAiBD,ICfbzI,IAAYxrT,GAShB,SAASm0T,KAAa,CACpB,KAAK,SAAW,IAAI3I,IACpB,KAAK,KAAO,CACd,CAEA,IAAA4I,IAAiBD,ICLjB,SAASE,IAAYl3R,EAAK,CACxB,IAAI6c,EAAO,KAAK,SACZla,EAASka,EAAK,OAAU7c,CAAG,EAE/B,YAAK,KAAO6c,EAAK,KACVla,CACT,CAEA,IAAAw0R,IAAiBD,ICRjB,SAASE,IAASp3R,EAAK,CACrB,OAAO,KAAK,SAAS,IAAIA,CAAG,CAC9B,CAEA,IAAAq3R,IAAiBD,ICJjB,SAASE,IAASt3R,EAAK,CACrB,OAAO,KAAK,SAAS,IAAIA,CAAG,CAC9B,CAEA,IAAAu3R,IAAiBD,ICbbjJ,IAAYxrT,GACZ0rT,IAAMrrT,GACNqsT,IAAW51D,GAGX69D,IAAmB,IAYvB,SAASC,IAASz3R,EAAKzV,EAAO,CAC5B,IAAIsyB,EAAO,KAAK,SAChB,GAAIA,aAAgBwxQ,IAAW,CAC7B,IAAIqJ,EAAQ76Q,EAAK,SACjB,GAAI,CAAC0xQ,KAAQmJ,EAAM,OAASF,IAAmB,EAC7C,OAAAE,EAAM,KAAK,CAAC13R,EAAKzV,CAAK,CAAC,EACvB,KAAK,KAAO,EAAEsyB,EAAK,KACZ,KAETA,EAAO,KAAK,SAAW,IAAI0yQ,IAASmI,CAAK,CAC1C,CACD,OAAA76Q,EAAK,IAAI7c,EAAKzV,CAAK,EACnB,KAAK,KAAOsyB,EAAK,KACV,IACT,CAEA,IAAA86Q,IAAiBF,ICjCbpJ,IAAYxrT,GACZm0T,IAAa9zT,IACbg0T,IAAcv9D,IACdy9D,IAAWx9D,IACX09D,IAAWz9D,IACX49D,IAAW39D,IASf,SAAS89D,GAAMrsR,EAAS,CACtB,IAAIsR,EAAO,KAAK,SAAW,IAAIwxQ,IAAU9iR,CAAO,EAChD,KAAK,KAAOsR,EAAK,IACnB,CAGA+6Q,GAAM,UAAU,MAAQZ,IACxBY,GAAM,UAAU,OAAYV,IAC5BU,GAAM,UAAU,IAAMR,IACtBQ,GAAM,UAAU,IAAMN,IACtBM,GAAM,UAAU,IAAMH,IAEtB,IAAAI,GAAiBD,GCzBb/K,IAAiB,4BAYrB,SAASiL,IAAYvtS,EAAO,CAC1B,YAAK,SAAS,IAAIA,EAAOsiS,GAAc,EAChC,IACT,CAEA,IAAAkL,IAAiBD,ICTjB,SAASE,IAAYztS,EAAO,CAC1B,OAAO,KAAK,SAAS,IAAIA,CAAK,CAChC,CAEA,IAAA0tS,IAAiBD,ICbbzI,IAAW1sT,GACXi1T,IAAc50T,IACd80T,IAAcr+D,IAUlB,SAASu+D,GAASz8O,EAAQ,CACxB,IAAItwD,EAAQ,GACRg7B,EAASs1B,GAAU,KAAO,EAAIA,EAAO,OAGzC,IADA,KAAK,SAAW,IAAI8zO,IACb,EAAEpkS,EAAQg7B,GACf,KAAK,IAAIs1B,EAAOtwD,CAAK,CAAC,CAE1B,CAGA+sS,GAAS,UAAU,IAAMA,GAAS,UAAU,KAAOJ,IACnDI,GAAS,UAAU,IAAMF,IAEzB,IAAAG,IAAiBD,GChBjB,SAASE,IAAU9+Q,EAAOi5J,EAAW,CAInC,QAHIpnL,EAAQ,GACRg7B,EAAS7M,GAAS,KAAO,EAAIA,EAAM,OAEhC,EAAEnuB,EAAQg7B,GACf,GAAIosJ,EAAUj5J,EAAMnuB,CAAK,EAAGA,EAAOmuB,CAAK,EACtC,MAAO,GAGX,MAAO,EACT,CAEA,IAAA++Q,IAAiBD,ICdjB,SAASE,IAAS53R,EAAOV,EAAK,CAC5B,OAAOU,EAAM,IAAIV,CAAG,CACtB,CAEA,IAAAu4R,IAAiBD,ICZbJ,IAAWr1T,IACXu1T,IAAYl1T,IACZo1T,IAAW3+D,IAGX6+D,IAAuB,EACvBC,IAAyB,EAe7B,SAASC,IAAYp/Q,EAAO0lL,EAAO25F,EAASC,EAAYC,EAAW3/Q,EAAO,CACxE,IAAI4/Q,EAAYH,EAAUH,IACtBO,EAAYz/Q,EAAM,OAClB0/Q,EAAYh6F,EAAM,OAEtB,GAAI+5F,GAAaC,GAAa,EAAEF,GAAaE,EAAYD,GACvD,MAAO,GAGT,IAAIE,EAAa//Q,EAAM,IAAII,CAAK,EAC5B4/Q,EAAahgR,EAAM,IAAI8lL,CAAK,EAChC,GAAIi6F,GAAcC,EAChB,OAAOD,GAAcj6F,GAASk6F,GAAc5/Q,EAE9C,IAAInuB,EAAQ,GACRwX,EAAS,GACTw2R,EAAQR,EAAUF,IAA0B,IAAIP,IAAW,OAM/D,IAJAh/Q,EAAM,IAAII,EAAO0lL,CAAK,EACtB9lL,EAAM,IAAI8lL,EAAO1lL,CAAK,EAGf,EAAEnuB,EAAQ4tS,GAAW,CAC1B,IAAIK,EAAW9/Q,EAAMnuB,CAAK,EACtBkuS,EAAWr6F,EAAM7zM,CAAK,EAE1B,GAAIytS,EACF,IAAIU,EAAWR,EACXF,EAAWS,EAAUD,EAAUjuS,EAAO6zM,EAAO1lL,EAAOJ,CAAK,EACzD0/Q,EAAWQ,EAAUC,EAAUluS,EAAOmuB,EAAO0lL,EAAO9lL,CAAK,EAE/D,GAAIogR,IAAa,OAAW,CAC1B,GAAIA,EACF,SAEF32R,EAAS,GACT,KACD,CAED,GAAIw2R,GACF,GAAI,CAACf,IAAUp5F,EAAO,SAASq6F,EAAUE,EAAU,CAC7C,GAAI,CAACjB,IAASa,EAAMI,CAAQ,IACvBH,IAAaC,GAAYR,EAAUO,EAAUC,EAAUV,EAASC,EAAY1/Q,CAAK,GACpF,OAAOigR,EAAK,KAAKI,CAAQ,CAEvC,CAAW,EAAG,CACN52R,EAAS,GACT,KACD,UACQ,EACLy2R,IAAaC,GACXR,EAAUO,EAAUC,EAAUV,EAASC,EAAY1/Q,CAAK,GACzD,CACLvW,EAAS,GACT,KACD,CACF,CACD,OAAAuW,EAAM,OAAUI,CAAK,EACrBJ,EAAM,OAAU8lL,CAAK,EACdr8L,CACT,CAEA,IAAA62R,GAAiBd,ICnFb/xP,IAAO9jE,GAGP42T,IAAa9yP,IAAK,WAEtB+yP,IAAiBD,ICEjB,SAASE,IAAWnsS,EAAK,CACvB,IAAIrC,EAAQ,GACRwX,EAAS,MAAMnV,EAAI,IAAI,EAE3B,OAAAA,EAAI,QAAQ,SAASjD,EAAOyV,EAAK,CAC/B2C,EAAO,EAAExX,CAAK,EAAI,CAAC6U,EAAKzV,CAAK,CACjC,CAAG,EACMoY,CACT,CAEA,IAAAi3R,IAAiBD,ICVjB,SAASE,IAAWjjP,EAAK,CACvB,IAAIzrD,EAAQ,GACRwX,EAAS,MAAMi0C,EAAI,IAAI,EAE3B,OAAAA,EAAI,QAAQ,SAASrsD,EAAO,CAC1BoY,EAAO,EAAExX,CAAK,EAAIZ,CACtB,CAAG,EACMoY,CACT,CAEA,IAAAm3R,IAAiBD,ICjBb53L,GAASp/H,GACT42T,GAAav2T,IACbqqT,IAAK5zD,GACL++D,IAAc9+D,GACd+/D,IAAa9/D,IACbggE,IAAa//D,IAGb0+D,IAAuB,EACvBC,IAAyB,EAGzB7E,IAAU,mBACVC,IAAU,gBACVC,IAAW,iBACXC,IAAS,eACTC,IAAY,kBACZE,IAAY,kBACZC,IAAS,eACTC,IAAY,kBACZ5J,IAAY,kBAEZ8J,IAAiB,uBACjBC,IAAc,oBAGd/D,GAAcvuL,GAASA,GAAO,UAAY,OAC1C83L,GAAgBvJ,GAAcA,GAAY,QAAU,OAmBxD,SAASwJ,IAAW3jP,EAAQ2oJ,EAAO3hM,EAAKs7R,EAASC,EAAYC,EAAW3/Q,EAAO,CAC7E,OAAQ7b,EAAG,CACT,KAAKk3R,IACH,GAAKl+O,EAAO,YAAc2oJ,EAAM,YAC3B3oJ,EAAO,YAAc2oJ,EAAM,WAC9B,MAAO,GAET3oJ,EAASA,EAAO,OAChB2oJ,EAAQA,EAAM,OAEhB,KAAKs1F,IACH,MAAK,EAAAj+O,EAAO,YAAc2oJ,EAAM,YAC5B,CAAC65F,EAAU,IAAIY,GAAWpjP,CAAM,EAAG,IAAIojP,GAAWz6F,CAAK,CAAC,GAK9D,KAAK40F,IACL,KAAKC,IACL,KAAKG,IAGH,OAAOzG,IAAG,CAACl3O,EAAQ,CAAC2oJ,CAAK,EAE3B,KAAK80F,IACH,OAAOz9O,EAAO,MAAQ2oJ,EAAM,MAAQ3oJ,EAAO,SAAW2oJ,EAAM,QAE9D,KAAKk1F,IACL,KAAKE,IAIH,OAAO/9O,GAAW2oJ,EAAQ,GAE5B,KAAK+0F,IACH,IAAIkG,EAAUN,IAEhB,KAAKxF,IACH,IAAI2E,EAAYH,EAAUH,IAG1B,GAFAyB,IAAYA,EAAUJ,KAElBxjP,EAAO,MAAQ2oJ,EAAM,MAAQ,CAAC85F,EAChC,MAAO,GAGT,IAAIoB,EAAUhhR,EAAM,IAAIm9B,CAAM,EAC9B,GAAI6jP,EACF,OAAOA,GAAWl7F,EAEpB25F,GAAWF,IAGXv/Q,EAAM,IAAIm9B,EAAQ2oJ,CAAK,EACvB,IAAIr8L,EAAS+1R,IAAYuB,EAAQ5jP,CAAM,EAAG4jP,EAAQj7F,CAAK,EAAG25F,EAASC,EAAYC,EAAW3/Q,CAAK,EAC/F,OAAAA,EAAM,OAAUm9B,CAAM,EACf1zC,EAET,KAAK6nR,IACH,GAAIuP,GACF,OAAOA,GAAc,KAAK1jP,CAAM,GAAK0jP,GAAc,KAAK/6F,CAAK,CAElE,CACD,MAAO,EACT,CAEA,IAAAm7F,IAAiBH,ICvGjB,SAASI,IAAU9gR,EAAOmiC,EAAQ,CAKhC,QAJItwD,EAAQ,GACRg7B,EAASs1B,EAAO,OAChBhgB,EAASniB,EAAM,OAEZ,EAAEnuB,EAAQg7B,GACf7M,EAAMmiB,EAAStwC,CAAK,EAAIswD,EAAOtwD,CAAK,EAEtC,OAAOmuB,CACT,CAEA,IAAA+gR,IAAiBD,ICnBbA,IAAYv3T,IACZ8xE,IAAUzxE,GAad,SAASo3T,IAAejkP,EAAQy8O,EAAUyH,EAAa,CACrD,IAAI53R,EAASmwR,EAASz8O,CAAM,EAC5B,OAAO1B,IAAQ0B,CAAM,EAAI1zC,EAASy3R,IAAUz3R,EAAQ43R,EAAYlkP,CAAM,CAAC,CACzE,CAEA,IAAAmkP,IAAiBF,ICVjB,SAASG,IAAYnhR,EAAOi5J,EAAW,CAMrC,QALIpnL,EAAQ,GACRg7B,EAAS7M,GAAS,KAAO,EAAIA,EAAM,OACnCohR,EAAW,EACX/3R,EAAS,GAEN,EAAExX,EAAQg7B,GAAQ,CACvB,IAAI57B,EAAQ+uB,EAAMnuB,CAAK,EACnBonL,EAAUhoL,EAAOY,EAAOmuB,CAAK,IAC/B3W,EAAO+3R,GAAU,EAAInwS,EAExB,CACD,OAAOoY,CACT,CAEA,IAAAg4R,IAAiBF,ICNjB,SAASG,KAAY,CACnB,MAAO,EACT,CAEA,IAAAC,IAAiBD,ICtBbH,IAAc53T,IACd+3T,IAAY13T,IAGZ+lT,IAAc,OAAO,UAGrB/hM,IAAuB+hM,IAAY,qBAGnC6R,GAAmB,OAAO,sBAS1BC,IAAcD,GAA+B,SAASzkP,EAAQ,CAChE,OAAIA,GAAU,KACL,IAETA,EAAS,OAAOA,CAAM,EACfokP,IAAYK,GAAiBzkP,CAAM,EAAG,SAASwsC,EAAQ,CAC5D,OAAOqE,IAAqB,KAAK7wC,EAAQwsC,CAAM,CACnD,CAAG,EACH,EARqC+3M,IAUrCI,IAAiBD,IC7BbT,IAAiBz3T,IACjBk4T,IAAa73T,IACbmmE,IAAOswL,GASX,SAASshE,IAAW5kP,EAAQ,CAC1B,OAAOikP,IAAejkP,EAAQhN,IAAM0xP,GAAU,CAChD,CAEA,IAAAG,IAAiBD,ICfbA,GAAap4T,IAGb21T,IAAuB,EAGvBvP,IAAc,OAAO,UAGrBzzO,IAAiByzO,IAAY,eAejC,SAASkS,IAAa9kP,EAAQ2oJ,EAAO25F,EAASC,EAAYC,EAAW3/Q,EAAO,CAC1E,IAAI4/Q,EAAYH,EAAUH,IACtB4C,EAAWH,GAAW5kP,CAAM,EAC5BglP,EAAYD,EAAS,OACrBE,EAAWL,GAAWj8F,CAAK,EAC3Bg6F,EAAYsC,EAAS,OAEzB,GAAID,GAAarC,GAAa,CAACF,EAC7B,MAAO,GAGT,QADI3tS,EAAQkwS,EACLlwS,KAAS,CACd,IAAI6U,EAAMo7R,EAASjwS,CAAK,EACxB,GAAI,EAAE2tS,EAAY94R,KAAOg/L,EAAQxpJ,IAAe,KAAKwpJ,EAAOh/L,CAAG,GAC7D,MAAO,EAEV,CAED,IAAIu7R,EAAariR,EAAM,IAAIm9B,CAAM,EAC7B6iP,EAAahgR,EAAM,IAAI8lL,CAAK,EAChC,GAAIu8F,GAAcrC,EAChB,OAAOqC,GAAcv8F,GAASk6F,GAAc7iP,EAE9C,IAAI1zC,EAAS,GACbuW,EAAM,IAAIm9B,EAAQ2oJ,CAAK,EACvB9lL,EAAM,IAAI8lL,EAAO3oJ,CAAM,EAGvB,QADImlP,EAAW1C,EACR,EAAE3tS,EAAQkwS,GAAW,CAC1Br7R,EAAMo7R,EAASjwS,CAAK,EACpB,IAAI4rD,EAAWV,EAAOr2C,CAAG,EACrBq5R,EAAWr6F,EAAMh/L,CAAG,EAExB,GAAI44R,EACF,IAAIU,EAAWR,EACXF,EAAWS,EAAUtiP,EAAU/2C,EAAKg/L,EAAO3oJ,EAAQn9B,CAAK,EACxD0/Q,EAAW7hP,EAAUsiP,EAAUr5R,EAAKq2C,EAAQ2oJ,EAAO9lL,CAAK,EAG9D,GAAI,EAAEogR,IAAa,OACVviP,IAAasiP,GAAYR,EAAU9hP,EAAUsiP,EAAUV,EAASC,EAAY1/Q,CAAK,EAClFogR,GACD,CACL32R,EAAS,GACT,KACD,CACD64R,IAAaA,EAAWx7R,GAAO,cAChC,CACD,GAAI2C,GAAU,CAAC64R,EAAU,CACvB,IAAIC,EAAUplP,EAAO,YACjBqlP,EAAU18F,EAAM,YAGhBy8F,GAAWC,GACV,gBAAiBrlP,GAAU,gBAAiB2oJ,GAC7C,EAAE,OAAOy8F,GAAW,YAAcA,aAAmBA,GACnD,OAAOC,GAAW,YAAcA,aAAmBA,KACvD/4R,EAAS,GAEZ,CACD,OAAAuW,EAAM,OAAUm9B,CAAM,EACtBn9B,EAAM,OAAU8lL,CAAK,EACdr8L,CACT,CAEA,IAAAg5R,IAAiBR,ICzFb9O,IAAYxpT,GACZ8jE,IAAOzjE,GAGP04T,IAAWvP,IAAU1lP,IAAM,UAAU,EAEzCk1P,IAAiBD,ICNbvP,IAAYxpT,GACZ8jE,IAAOzjE,GAGPmnF,IAAUgiO,IAAU1lP,IAAM,SAAS,EAEvCm1P,IAAiBzxO,ICNbgiO,IAAYxpT,GACZ8jE,IAAOzjE,GAGP8yE,IAAMq2O,IAAU1lP,IAAM,KAAK,EAE/Bo1P,IAAiB/lP,ICNbq2O,IAAYxpT,GACZ8jE,IAAOzjE,GAGP84T,IAAU3P,IAAU1lP,IAAM,SAAS,EAEvCs1P,IAAiBD,ICNbJ,GAAW/4T,IACX0rT,GAAMrrT,GACNmnF,GAAUsvK,IACV3jL,GAAM4jL,IACNoiE,GAAUniE,IACVuwD,GAAatwD,GACb8xD,GAAW7xD,GAGXg6D,GAAS,eACTE,IAAY,kBACZiI,GAAa,mBACb/H,GAAS,eACTE,GAAa,mBAEbE,GAAc,oBAGd4H,IAAqBvQ,GAASgQ,EAAQ,EACtCQ,IAAgBxQ,GAAS2C,EAAG,EAC5B8N,IAAoBzQ,GAASvhO,EAAO,EACpCiyO,IAAgB1Q,GAAS51O,EAAG,EAC5BumP,IAAoB3Q,GAASoQ,EAAO,EASpCQ,GAASpS,IAGRwR,IAAYY,GAAO,IAAIZ,GAAS,IAAI,YAAY,CAAC,CAAC,CAAC,GAAKrH,IACxDhG,IAAOiO,GAAO,IAAIjO,EAAG,GAAKwF,IAC1B1pO,IAAWmyO,GAAOnyO,GAAQ,QAAS,IAAK6xO,IACxClmP,IAAOwmP,GAAO,IAAIxmP,EAAG,GAAKm+O,IAC1B6H,IAAWQ,GAAO,IAAIR,EAAO,GAAK3H,MACrCmI,GAAS,SAASjyS,EAAO,CACvB,IAAIoY,EAASynR,GAAW7/R,CAAK,EACzB4rS,EAAOxzR,GAAUsxR,IAAY1pS,EAAM,YAAc,OACjDkyS,EAAatG,EAAOvK,GAASuK,CAAI,EAAI,GAEzC,GAAIsG,EACF,OAAQA,EAAU,CAChB,KAAKN,IAAoB,OAAO5H,GAChC,KAAK6H,IAAe,OAAOrI,GAC3B,KAAKsI,IAAmB,OAAOH,GAC/B,KAAKI,IAAe,OAAOnI,GAC3B,KAAKoI,IAAmB,OAAOlI,EAChC,CAEH,OAAO1xR,CACX,GAGA,IAAA+5R,IAAiBF,GCzDb5E,GAAQ/0T,GACR61T,IAAcx1T,GACd82T,IAAargE,IACbwhE,IAAevhE,IACf4iE,GAAS3iE,IACTllL,GAAUmlL,GACVhE,GAAWiE,GACX/C,IAAeiD,GAGfu+D,IAAuB,EAGvB1H,GAAU,qBACV6C,GAAW,iBACXM,GAAY,kBAGZhL,IAAc,OAAO,UAGrBzzO,GAAiByzO,IAAY,eAgBjC,SAAS0T,IAAgBtmP,EAAQ2oJ,EAAO25F,EAASC,EAAYC,EAAW3/Q,EAAO,CAC7E,IAAI0jR,EAAWjoP,GAAQ0B,CAAM,EACzBwmP,EAAWloP,GAAQqqJ,CAAK,EACxB89F,EAASF,EAAWjJ,GAAW6I,GAAOnmP,CAAM,EAC5C0mP,EAASF,EAAWlJ,GAAW6I,GAAOx9F,CAAK,EAE/C89F,EAASA,GAAUhM,GAAUmD,GAAY6I,EACzCC,EAASA,GAAUjM,GAAUmD,GAAY8I,EAEzC,IAAIC,EAAWF,GAAU7I,GACrBgJ,EAAWF,GAAU9I,GACrBiJ,EAAYJ,GAAUC,EAE1B,GAAIG,GAAapnE,GAASz/K,CAAM,EAAG,CACjC,GAAI,CAACy/K,GAAS92B,CAAK,EACjB,MAAO,GAET49F,EAAW,GACXI,EAAW,EACZ,CACD,GAAIE,GAAa,CAACF,EAChB,OAAA9jR,IAAUA,EAAQ,IAAI0+Q,IACdgF,GAAY5lE,IAAa3gL,CAAM,EACnCqiP,IAAYriP,EAAQ2oJ,EAAO25F,EAASC,EAAYC,EAAW3/Q,CAAK,EAChE8gR,IAAW3jP,EAAQ2oJ,EAAO89F,EAAQnE,EAASC,EAAYC,EAAW3/Q,CAAK,EAE7E,GAAI,EAAEy/Q,EAAUH,KAAuB,CACrC,IAAI2E,EAAeH,GAAYxnP,GAAe,KAAKa,EAAQ,aAAa,EACpE+mP,EAAeH,GAAYznP,GAAe,KAAKwpJ,EAAO,aAAa,EAEvE,GAAIm+F,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAe9mP,EAAO,MAAO,EAAGA,EAC/CinP,EAAeF,EAAep+F,EAAM,MAAK,EAAKA,EAElD,OAAA9lL,IAAUA,EAAQ,IAAI0+Q,IACfiB,EAAUwE,EAAcC,EAAc3E,EAASC,EAAY1/Q,CAAK,CACxE,CACF,CACD,OAAKgkR,GAGLhkR,IAAUA,EAAQ,IAAI0+Q,IACfuD,IAAa9kP,EAAQ2oJ,EAAO25F,EAASC,EAAYC,EAAW3/Q,CAAK,GAH/D,EAIX,CAEA,IAAAqkR,IAAiBZ,IClFbA,IAAkB95T,IAClBynT,GAAepnT,GAgBnB,SAASs6T,GAAYjzS,EAAOy0M,EAAO25F,EAASC,EAAY1/Q,EAAO,CAC7D,OAAI3uB,IAAUy0M,EACL,GAELz0M,GAAS,MAAQy0M,GAAS,MAAS,CAACsrF,GAAa//R,CAAK,GAAK,CAAC+/R,GAAatrF,CAAK,EACzEz0M,IAAUA,GAASy0M,IAAUA,EAE/B29F,IAAgBpyS,EAAOy0M,EAAO25F,EAASC,EAAY4E,GAAatkR,CAAK,CAC9E,CAEA,IAAAukR,GAAiBD,GC3Bb5F,IAAQ/0T,GACR26T,IAAct6T,GAGds1T,IAAuB,EACvBC,IAAyB,EAY7B,SAASiF,IAAYrnP,EAAQyO,EAAQ64O,EAAW/E,EAAY,CAC1D,IAAIztS,EAAQwyS,EAAU,OAClBx3Q,EAASh7B,EACTyyS,EAAe,CAAChF,EAEpB,GAAIviP,GAAU,KACZ,MAAO,CAAClwB,EAGV,IADAkwB,EAAS,OAAOA,CAAM,EACflrD,KAAS,CACd,IAAI0xB,EAAO8gR,EAAUxyS,CAAK,EAC1B,GAAKyyS,GAAgB/gR,EAAK,CAAC,EACnBA,EAAK,CAAC,IAAMw5B,EAAOx5B,EAAK,CAAC,CAAC,EAC1B,EAAEA,EAAK,CAAC,IAAKw5B,GAEnB,MAAO,EAEV,CACD,KAAO,EAAElrD,EAAQg7B,GAAQ,CACvBtJ,EAAO8gR,EAAUxyS,CAAK,EACtB,IAAI6U,EAAM6c,EAAK,CAAC,EACZk6B,EAAWV,EAAOr2C,CAAG,EACrB69R,EAAWhhR,EAAK,CAAC,EAErB,GAAI+gR,GAAgB/gR,EAAK,CAAC,GACxB,GAAIk6B,IAAa,QAAa,EAAE/2C,KAAOq2C,GACrC,MAAO,OAEJ,CACL,IAAIn9B,EAAQ,IAAI0+Q,IAChB,GAAIgB,EACF,IAAIj2R,EAASi2R,EAAW7hP,EAAU8mP,EAAU79R,EAAKq2C,EAAQyO,EAAQ5rC,CAAK,EAExE,GAAI,EAAEvW,IAAW,OACT66R,IAAYK,EAAU9mP,EAAUyhP,IAAuBC,IAAwBG,EAAY1/Q,CAAK,EAChGvW,GAEN,MAAO,EAEV,CACF,CACD,MAAO,EACT,CAEA,IAAAm7R,IAAiBJ,IC7DbjpP,IAAW5xE,GAUf,SAASk7T,IAAmBxzS,EAAO,CACjC,OAAOA,IAAUA,GAAS,CAACkqD,IAASlqD,CAAK,CAC3C,CAEA,IAAAyzS,GAAiBD,ICdbA,IAAqBl7T,GACrBwmE,IAAOnmE,GASX,SAAS+6T,IAAa5nP,EAAQ,CAI5B,QAHI1zC,EAAS0mC,IAAKgN,CAAM,EACpBlwB,EAASxjB,EAAO,OAEbwjB,KAAU,CACf,IAAInmB,EAAM2C,EAAOwjB,CAAM,EACnB57B,EAAQ8rD,EAAOr2C,CAAG,EAEtB2C,EAAOwjB,CAAM,EAAI,CAACnmB,EAAKzV,EAAOwzS,IAAmBxzS,CAAK,CAAC,CACxD,CACD,OAAOoY,CACT,CAEA,IAAAu7R,IAAiBD,ICdjB,SAASE,IAAwBn+R,EAAK69R,EAAU,CAC9C,OAAO,SAASxnP,EAAQ,CACtB,OAAIA,GAAU,KACL,GAEFA,EAAOr2C,CAAG,IAAM69R,IACpBA,IAAa,QAAc79R,KAAO,OAAOq2C,CAAM,EACtD,CACA,CAEA,IAAA+nP,GAAiBD,ICnBbT,IAAc76T,IACdo7T,IAAe/6T,IACfi7T,IAA0BxkE,GAS9B,SAAS0kE,IAAYv5O,EAAQ,CAC3B,IAAI64O,EAAYM,IAAan5O,CAAM,EACnC,OAAI64O,EAAU,QAAU,GAAKA,EAAU,CAAC,EAAE,CAAC,EAClCQ,IAAwBR,EAAU,CAAC,EAAE,CAAC,EAAGA,EAAU,CAAC,EAAE,CAAC,CAAC,EAE1D,SAAStnP,EAAQ,CACtB,OAAOA,IAAWyO,GAAU44O,IAAYrnP,EAAQyO,EAAQ64O,CAAS,CACrE,CACA,CAEA,IAAAW,IAAiBD,ICrBbzN,IAAW/tT,GACX2uT,IAAQtuT,GAUZ,SAASq/E,IAAQlM,EAAQp2C,EAAM,CAC7BA,EAAO2wR,IAAS3wR,EAAMo2C,CAAM,EAK5B,QAHIlrD,EAAQ,EACRg7B,EAASlmB,EAAK,OAEXo2C,GAAU,MAAQlrD,EAAQg7B,GAC/BkwB,EAASA,EAAOm7O,IAAMvxR,EAAK9U,GAAO,CAAC,CAAC,EAEtC,OAAQA,GAASA,GAASg7B,EAAUkwB,EAAS,MAC/C,CAEA,IAAAkoP,GAAiBh8O,ICvBbA,IAAU1/E,GA2Bd,SAASssB,IAAIknD,EAAQp2C,EAAMhH,EAAc,CACvC,IAAI0J,EAAS0zC,GAAU,KAAO,OAAYkM,IAAQlM,EAAQp2C,CAAI,EAC9D,OAAO0C,IAAW,OAAY1J,EAAe0J,CAC/C,CAEA,IAAA67R,IAAiBrvS,ICxBjB,SAASsvS,IAAUpoP,EAAQr2C,EAAK,CAC9B,OAAOq2C,GAAU,MAAQr2C,KAAO,OAAOq2C,CAAM,CAC/C,CAEA,IAAAqoP,IAAiBD,ICZbA,IAAY57T,IACZ6uT,IAAUxuT,GA4Bd,SAASy7T,IAAMtoP,EAAQp2C,EAAM,CAC3B,OAAOo2C,GAAU,MAAQq7O,IAAQr7O,EAAQp2C,EAAMw+R,GAAS,CAC1D,CAEA,IAAAG,IAAiBD,ICjCbnB,IAAc36T,GACdssB,IAAMjsB,IACNy7T,IAAQhlE,IACRljL,IAAQmjL,GACRmkE,IAAqBlkE,GACrBskE,IAA0BrkE,GAC1B03D,IAAQz3D,GAGRy+D,IAAuB,EACvBC,IAAyB,EAU7B,SAASoG,IAAoB5+R,EAAM49R,EAAU,CAC3C,OAAIpnP,IAAMx2C,CAAI,GAAK89R,IAAmBF,CAAQ,EACrCM,IAAwB3M,IAAMvxR,CAAI,EAAG49R,CAAQ,EAE/C,SAASxnP,EAAQ,CACtB,IAAIU,EAAW5nD,IAAIknD,EAAQp2C,CAAI,EAC/B,OAAQ82C,IAAa,QAAaA,IAAa8mP,EAC3Cc,IAAMtoP,EAAQp2C,CAAI,EAClBu9R,IAAYK,EAAU9mP,EAAUyhP,IAAuBC,GAAsB,CACrF,CACA,CAEA,IAAAqG,IAAiBD,IChBjB,SAASxd,IAAS92R,EAAO,CACvB,OAAOA,CACT,CAEA,IAAAw0S,IAAiB1d,ICbjB,SAAS2d,IAAah/R,EAAK,CACzB,OAAO,SAASq2C,EAAQ,CACtB,OAAOA,GAAU,KAAO,OAAYA,EAAOr2C,CAAG,CAClD,CACA,CAEA,IAAAi/R,IAAiBD,ICbbz8O,IAAU1/E,GASd,SAASq8T,IAAiBj/R,EAAM,CAC9B,OAAO,SAASo2C,EAAQ,CACtB,OAAOkM,IAAQlM,EAAQp2C,CAAI,CAC/B,CACA,CAEA,IAAAk/R,IAAiBD,ICfbF,IAAen8T,IACfq8T,IAAmBh8T,IACnBuzE,IAAQkjL,GACR63D,IAAQ53D,GAwBZ,SAASt6N,IAASW,EAAM,CACtB,OAAOw2C,IAAMx2C,CAAI,EAAI++R,IAAaxN,IAAMvxR,CAAI,CAAC,EAAIi/R,IAAiBj/R,CAAI,CACxE,CAEA,IAAAm/R,IAAiB9/R,IC/Bb++R,IAAcx7T,IACdg8T,IAAsB37T,IACtBm+S,IAAW1nD,IACXhlL,IAAUilL,GACVt6N,IAAWu6N,IASf,SAASwlE,IAAa90S,EAAO,CAG3B,OAAI,OAAOA,GAAS,WACXA,EAELA,GAAS,KACJ82R,IAEL,OAAO92R,GAAS,SACXoqD,IAAQpqD,CAAK,EAChBs0S,IAAoBt0S,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EACtC8zS,IAAY9zS,CAAK,EAEhB+U,IAAS/U,CAAK,CACvB,CAEA,IAAA+0S,GAAiBD,IC9Bb3M,IAAkB7vT,GAClBi0T,IAAa5zT,GACbm8T,IAAe1lE,GA8BnB,SAAS4lE,IAAUlpP,EAAQg6O,EAAU,CACnC,IAAI1tR,EAAS,GACb,OAAA0tR,EAAWgP,IAAahP,CAAW,EAEnCyG,IAAWzgP,EAAQ,SAAS9rD,EAAOyV,EAAKq2C,EAAQ,CAC9Cq8O,IAAgB/vR,EAAQ3C,EAAKqwR,EAAS9lS,EAAOyV,EAAKq2C,CAAM,CAAC,CAC7D,CAAG,EACM1zC,CACT,CAEA,IAAA68R,IAAiBD,qBCrCjB,SAASE,GAAMC,EAAS,CACtB,KAAK,SAAWA,EAChB,KAAK,MAAO,CACd,CACAD,GAAM,UAAU,MAAQ,UAAY,CAClC,KAAK,MAAQ,EACb,KAAK,QAAU,OAAO,OAAO,IAAI,CACnC,EACAA,GAAM,UAAU,IAAM,SAAUz/R,EAAK,CACnC,OAAO,KAAK,QAAQA,CAAG,CACzB,EACAy/R,GAAM,UAAU,IAAM,SAAUz/R,EAAKzV,EAAO,CAC1C,YAAK,OAAS,KAAK,UAAY,KAAK,MAAO,EACrCyV,KAAO,KAAK,SAAU,KAAK,QAEzB,KAAK,QAAQA,CAAG,EAAIzV,CAC9B,EAEA,IAAIo1S,IAAc,4BAChBC,GAAc,QACdC,IAAmB,MACnBC,IAAkB,yCAClBC,IAAqB,2BACrBC,GAAiB,IAEfC,GAAY,IAAIR,GAAMO,EAAc,EACtCE,GAAW,IAAIT,GAAMO,EAAc,EACnCG,GAAW,IAAIV,GAAMO,EAAc,EAIrCI,GAAiB,CACf,MAAOX,GAEP,MAAOnpP,GAEP,cAAe+pP,GAEf,OAAQ,SAAUpgS,EAAM,CACtB,IAAIisJ,EAAQm0I,GAAcpgS,CAAI,EAE9B,OACEigS,GAAS,IAAIjgS,CAAI,GACjBigS,GAAS,IAAIjgS,EAAM,SAAgByiD,EAAKn4D,EAAO,CAK7C,QAJIY,EAAQ,EACRqzC,EAAM0tH,EAAM,OACZrvI,EAAO6lC,EAEJv3D,EAAQqzC,EAAM,GAAG,CACtB,IAAI2tH,EAAOD,EAAM/gK,CAAK,EACtB,GACEghK,IAAS,aACTA,IAAS,eACTA,IAAS,YAET,OAAOzpG,EAGT7lC,EAAOA,EAAKqvI,EAAM/gK,GAAO,CAAC,CAC3B,CACD0xB,EAAKqvI,EAAM/gK,CAAK,CAAC,EAAIZ,CAC7B,CAAO,CAEJ,EAED,OAAQ,SAAU0V,EAAMqgS,EAAM,CAC5B,IAAIp0I,EAAQm0I,GAAcpgS,CAAI,EAC9B,OACEkgS,GAAS,IAAIlgS,CAAI,GACjBkgS,GAAS,IAAIlgS,EAAM,SAAgB4c,EAAM,CAGvC,QAFI1xB,EAAQ,EACVqzC,EAAM0tH,EAAM,OACP/gK,EAAQqzC,GACb,GAAI3hB,GAAQ,MAAQ,CAACyjR,EAAMzjR,EAAOA,EAAKqvI,EAAM/gK,GAAO,CAAC,MAChD,QAEP,OAAO0xB,CACf,CAAO,CAEJ,EAED,KAAM,SAAU47H,EAAU,CACxB,OAAOA,EAAS,OAAO,SAAUx4I,EAAMksJ,EAAM,CAC3C,OACElsJ,GACCsgS,GAASp0I,CAAI,GAAKyzI,GAAY,KAAKzzI,CAAI,EACpC,IAAMA,EAAO,KACZlsJ,EAAO,IAAM,IAAMksJ,EAE3B,EAAE,EAAE,CACN,EAED,QAAS,SAAUlsJ,EAAM95B,EAAIk0L,EAAS,CACpCv0I,IAAQ,MAAM,QAAQ7lB,CAAI,EAAIA,EAAOq2C,GAAMr2C,CAAI,EAAG95B,EAAIk0L,CAAO,CAC9D,CACH,EAEA,SAASgmI,GAAcpgS,EAAM,CAC3B,OACEggS,GAAU,IAAIhgS,CAAI,GAClBggS,GAAU,IACRhgS,EACAq2C,GAAMr2C,CAAI,EAAE,IAAI,SAAUksJ,EAAM,CAC9B,OAAOA,EAAK,QAAQ4zI,IAAoB,IAAI,CACpD,CAAO,CACF,CAEL,CAEA,SAASzpP,GAAMr2C,EAAM,CACnB,OAAOA,EAAK,MAAM0/R,GAAW,GAAK,CAAC,EAAE,CACvC,CAEA,SAAS75Q,IAAQomI,EAAOs0I,EAAMnmI,EAAS,CACrC,IAAI77H,EAAM0tH,EAAM,OACdC,EACA/Q,EACAzmG,EACA8rP,EAEF,IAAKrlJ,EAAM,EAAGA,EAAM58G,EAAK48G,IACvB+Q,EAAOD,EAAM9Q,CAAG,EAEZ+Q,IACEu0I,IAAev0I,CAAI,IACrBA,EAAO,IAAMA,EAAO,KAGtBs0I,EAAYF,GAASp0I,CAAI,EACzBx3G,EAAU,CAAC8rP,GAAa,QAAQ,KAAKt0I,CAAI,EAEzCq0I,EAAK,KAAKnmI,EAASlO,EAAMs0I,EAAW9rP,EAASymG,EAAK8Q,CAAK,EAG7D,CAEA,SAASq0I,GAASp2I,EAAK,CACrB,OACE,OAAOA,GAAQ,UAAYA,GAAO,CAAC,IAAK,GAAG,EAAE,QAAQA,EAAI,OAAO,CAAC,CAAC,IAAM,EAE5E,CAEA,SAASw2I,IAAiBx0I,EAAM,CAC9B,OAAOA,EAAK,MAAM0zI,GAAgB,GAAK,CAAC1zI,EAAK,MAAMyzI,EAAW,CAChE,CAEA,SAASgB,IAAgBz0I,EAAM,CAC7B,OAAO2zI,IAAgB,KAAK3zI,CAAI,CAClC,CAEA,SAASu0I,IAAev0I,EAAM,CAC5B,MAAO,CAACo0I,GAASp0I,CAAI,IAAMw0I,IAAiBx0I,CAAI,GAAKy0I,IAAgBz0I,CAAI,EAC3E,CC5JA,MAAM00I,GAAW,CACf,QAAS,IACT,MAAO,GACT,EACO,SAASl2L,GAAO3qG,EAAKmd,EAAS,CACnC,OAAO,IAAI2jR,GAAU9gS,EAAKmd,CAAO,CACnC,CACe,MAAM2jR,EAAU,CAC7B,YAAY9gS,EAAKmd,EAAU,GAAI,CAQ7B,GAPA,KAAK,IAAM,OACX,KAAK,UAAY,OACjB,KAAK,QAAU,OACf,KAAK,UAAY,OACjB,KAAK,KAAO,OACZ,KAAK,OAAS,OACd,KAAK,IAAM,OACP,OAAOnd,GAAQ,SAAU,MAAM,IAAI,UAAU,8BAAgCA,CAAG,EAEpF,GADA,KAAK,IAAMA,EAAI,OACXA,IAAQ,GAAI,MAAM,IAAI,UAAU,gCAAgC,EACpE,KAAK,UAAY,KAAK,IAAI,CAAC,IAAM6gS,GAAS,QAC1C,KAAK,QAAU,KAAK,IAAI,CAAC,IAAMA,GAAS,MACxC,KAAK,UAAY,CAAC,KAAK,WAAa,CAAC,KAAK,QAC1C,IAAIrhS,EAAS,KAAK,UAAYqhS,GAAS,QAAU,KAAK,QAAUA,GAAS,MAAQ,GACjF,KAAK,KAAO,KAAK,IAAI,MAAMrhS,EAAO,MAAM,EACxC,KAAK,OAAS,KAAK,MAAQxQ,GAAM,OAAC,KAAK,KAAM,EAAI,EACjD,KAAK,IAAMmuB,EAAQ,GACpB,CAED,SAAS5yB,EAAO07B,EAAQ37B,EAAS,CAC/B,IAAIqY,EAAS,KAAK,UAAYrY,EAAU,KAAK,QAAUC,EAAQ07B,EAC/D,OAAI,KAAK,SAAQtjB,EAAS,KAAK,OAAOA,GAAU,EAAE,GAC9C,KAAK,MAAKA,EAAS,KAAK,IAAIA,CAAM,GAC/BA,CACR,CAUD,KAAKpY,EAAO4yB,EAAS,CACnB,OAAO,KAAK,SAAS5yB,EAAO4yB,GAAW,KAAO,OAASA,EAAQ,OAAQA,GAAW,KAAO,OAASA,EAAQ,OAAO,CAClH,CAED,SAAU,CACR,OAAO,IACR,CAED,UAAW,CACT,MAAO,CACL,KAAM,MACN,IAAK,KAAK,GAChB,CACG,CAED,UAAW,CACT,MAAO,OAAO,KAAK,GAAG,GACvB,CAED,OAAO,MAAM5yB,EAAO,CAClB,OAAOA,GAASA,EAAM,UACvB,CAEH,CAEAu2S,GAAU,UAAU,WAAa,GCrEjC,SAASvyR,IAAW,CAAEA,UAAW,OAAO,QAAU,SAAU5b,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAS,UAAUz7D,CAAC,EAAG,QAAS2W,KAAO8kD,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQ9kD,CAAG,IAAKrN,EAAOqN,CAAG,EAAI8kD,EAAO9kD,CAAG,EAAQ,CAAC,OAAOrN,GAAkB4b,GAAS,MAAM,KAAM,SAAS,CAAI,CAE7T,SAASs3E,IAA8B/gC,EAAQ8gC,EAAU,CAAE,GAAI9gC,GAAU,KAAM,MAAO,CAAE,EAAE,IAAInyD,EAAS,CAAE,EAAMozF,EAAa,OAAO,KAAKjhC,CAAM,EAAO9kD,EAAK3W,EAAG,IAAKA,EAAI,EAAGA,EAAI08F,EAAW,OAAQ18F,IAAO2W,EAAM+lF,EAAW18F,CAAC,EAAO,EAAAu8F,EAAS,QAAQ5lF,CAAG,GAAK,KAAarN,EAAOqN,CAAG,EAAI8kD,EAAO9kD,CAAG,GAAK,OAAOrN,CAAS,CAKpS,SAASouS,GAAiB5iS,EAAQ,CAC/C,SAAS25C,EAASpf,EAAMvyD,EAAI,CAC1B,GAAI,CACF,MAAAokB,EACA,KAAA0V,EAAO,GACP,MAAA+F,EACA,QAAAmX,EACA,cAAA2rQ,EACA,KAAA9yC,CACN,EAAQt9M,EACAv7B,EAAO0oF,IAA8BntD,EAAM,CAAC,QAAS,OAAQ,QAAS,UAAW,gBAAiB,MAAM,CAAC,EAE7G,KAAM,CACJ,KAAAnpC,EACA,KAAAb,EACA,OAAA2rJ,EACA,QAAAv9F,CACD,EAAG3+C,EACJ,GAAI,CACF,OAAA8nB,EACA,QAAA37B,CACD,EAAG6yB,EAEJ,SAAS83H,EAAQ56I,EAAM,CACrB,OAAO2mS,GAAI,MAAM3mS,CAAI,EAAIA,EAAK,SAAS9P,EAAO07B,EAAQ37B,CAAO,EAAI+P,CAClE,CAED,SAAS4mS,EAAYC,EAAY,GAAI,CACnC,MAAMC,EAAa5B,GAAUhxR,GAAS,CACpC,MAAAhkB,EACA,cAAAu+R,EACA,MAAA9iR,EACA,KAAMk7R,EAAU,MAAQjhS,CACzB,EAAEo6I,EAAQ6mJ,EAAU,MAAM,EAAGjsJ,CAAO,EAC/Bx4F,EAAQ,IAAI21O,GAAgBA,GAAgB,YAAY8O,EAAU,SAAWpkP,EAASqkP,CAAU,EAAG52S,EAAO42S,EAAW,KAAMD,EAAU,MAAQ3xS,CAAI,EACvJ,OAAAktD,EAAM,OAAS0kP,EACR1kP,CACR,CAED,IAAIolG,EAAMtzI,GAAS,CACjB,KAAAtO,EACA,OAAAgmB,EACA,KAAM12B,EACN,YAAA0xS,EACA,QAAAhsJ,EACA,QAAA93H,EACA,cAAA2rQ,CACD,EAAE3rR,CAAI,EAEP,GAAI,CAAC64O,EAAM,CACT,GAAI,CACF,QAAQ,QAAQtnP,EAAK,KAAKmzJ,EAAKt3J,EAAOs3J,CAAG,CAAC,EAAE,KAAKu/I,GAAgB,CAC3DhP,GAAgB,QAAQgP,CAAY,EAAGj7T,EAAGi7T,CAAY,EAAYA,EAAqCj7T,EAAG,KAAMi7T,CAAY,EAA5Cj7T,EAAG86T,GAAa,CAC9G,CAAS,EAAE,MAAM96T,CAAE,CACZ,OAAQ4iB,EAAK,CACZ5iB,EAAG4iB,CAAG,CACP,CAED,MACD,CAED,IAAI4Z,EAEJ,GAAI,CACF,IAAIo2F,EAIJ,GAFAp2F,EAASjU,EAAK,KAAKmzJ,EAAKt3J,EAAOs3J,CAAG,EAE9B,QAAS9oD,EAAQp2F,IAAW,KAAO,OAASo2F,EAAM,OAAU,WAC9D,MAAM,IAAI,MAAM,6BAA6B8oD,EAAI,IAAI,gHAAqH,CAE7K,OAAQ94J,EAAK,CACZ5iB,EAAG4iB,CAAG,EACN,MACD,CAEGqpS,GAAgB,QAAQzvR,CAAM,EAAGx8B,EAAGw8B,CAAM,EAAYA,EAA+Bx8B,EAAG,KAAMw8B,CAAM,EAAtCx8B,EAAG86T,GAAa,CACnF,CAED,OAAAnpP,EAAS,QAAU35C,EACZ25C,CACT,CCtFA,IAAIizF,IAAOohB,GAAQA,EAAK,OAAO,EAAGA,EAAK,OAAS,CAAC,EAAE,OAAO,CAAC,EAEpD,SAASk1I,IAAM9jE,EAAQt9N,EAAM1V,EAAOD,EAAUC,EAAO,CAC1D,IAAI07B,EAAQq7Q,EAAUC,EAEtB,OAAKthS,GAKL6lB,WAAQ7lB,EAAM,CAACuhS,EAAOf,EAAW9rP,IAAY,CAC3C,IAAIw3G,EAAOs0I,EAAY11J,IAAKy2J,CAAK,EAAIA,EAOrC,GANAjkE,EAASA,EAAO,QAAQ,CACtB,QAAAjzO,EACA,OAAA27B,EACA,MAAA17B,CACN,CAAK,EAEGgzO,EAAO,UAAW,CACpB,IAAIniF,EAAMzmG,EAAU,SAASw3G,EAAM,EAAE,EAAI,EAEzC,GAAI5hK,GAAS6wJ,GAAO7wJ,EAAM,OACxB,MAAM,IAAI,MAAM,oDAAoDi3S,CAAK,kBAAkBvhS,CAAI,6CAAkD,EAGnJgmB,EAAS17B,EACTA,EAAQA,GAASA,EAAM6wJ,CAAG,EAC1BmiF,EAASA,EAAO,SACjB,CAMD,GAAI,CAAC5oL,EAAS,CACZ,GAAI,CAAC4oL,EAAO,QAAU,CAACA,EAAO,OAAOpxE,CAAI,EAAG,MAAM,IAAI,MAAM,yCAAyClsJ,CAAI,iBAAsBshS,CAAa,sBAAsBhkE,EAAO,KAAK,IAAI,EAClLt3M,EAAS17B,EACTA,EAAQA,GAASA,EAAM4hK,CAAI,EAC3BoxE,EAASA,EAAO,OAAOpxE,CAAI,CAC5B,CAEDm1I,EAAWn1I,EACXo1I,EAAgBd,EAAY,IAAMe,EAAQ,IAAM,IAAMA,CAC1D,CAAG,EACM,CACL,OAAAjkE,EACA,OAAAt3M,EACA,WAAYq7Q,CAChB,GA3CoB,CAChB,OAAAr7Q,EACA,WAAYhmB,EACZ,OAAAs9N,CACJ,CAwCA,CClDe,MAAMkkE,EAAa,CAChC,aAAc,CACZ,KAAK,KAAO,OACZ,KAAK,KAAO,OACZ,KAAK,KAAO,IAAI,IAChB,KAAK,KAAO,IAAI,GACjB,CAED,IAAI,MAAO,CACT,OAAO,KAAK,KAAK,KAAO,KAAK,KAAK,IACnC,CAED,UAAW,CACT,MAAMlwN,EAAc,GAEpB,UAAWl3E,KAAQ,KAAK,KAAMk3E,EAAY,KAAKl3E,CAAI,EAEnD,SAAW,EAAGjO,CAAG,IAAK,KAAK,KAAMmlF,EAAY,KAAKnlF,EAAI,SAAQ,CAAE,EAEhE,OAAOmlF,CACR,CAED,SAAU,CACR,OAAO,MAAM,KAAK,KAAK,IAAI,EAAE,OAAO,MAAM,KAAK,KAAK,KAAK,OAAM,CAAE,CAAC,CACnE,CAED,WAAW0jE,EAAS,CAClB,OAAO,KAAK,UAAU,OAAO,CAACprI,EAAK9oC,IAAM8oC,EAAI,OAAOi3R,GAAU,MAAM//T,CAAC,EAAIk0K,EAAQl0K,CAAC,EAAIA,CAAC,EAAG,EAAE,CAC7F,CAED,IAAIwpB,EAAO,CACTu2S,GAAU,MAAMv2S,CAAK,EAAI,KAAK,KAAK,IAAIA,EAAM,IAAKA,CAAK,EAAI,KAAK,KAAK,IAAIA,CAAK,CAC/E,CAED,OAAOA,EAAO,CACZu2S,GAAU,MAAMv2S,CAAK,EAAI,KAAK,KAAK,OAAOA,EAAM,GAAG,EAAI,KAAK,KAAK,OAAOA,CAAK,CAC9E,CAED,OAAQ,CACN,MAAMqvD,EAAO,IAAI6nP,GACjB,OAAA7nP,EAAK,KAAO,IAAI,IAAI,KAAK,IAAI,EAC7BA,EAAK,KAAO,IAAI,IAAI,KAAK,IAAI,EACtBA,CACR,CAED,MAAMo6H,EAAU0tH,EAAa,CAC3B,MAAM9nP,EAAO,KAAK,QAClB,OAAAo6H,EAAS,KAAK,QAAQzpL,GAASqvD,EAAK,IAAIrvD,CAAK,CAAC,EAC9CypL,EAAS,KAAK,QAAQzpL,GAASqvD,EAAK,IAAIrvD,CAAK,CAAC,EAC9Cm3S,EAAY,KAAK,QAAQn3S,GAASqvD,EAAK,OAAOrvD,CAAK,CAAC,EACpDm3S,EAAY,KAAK,QAAQn3S,GAASqvD,EAAK,OAAOrvD,CAAK,CAAC,EAC7CqvD,CACR,CAEH,CCvDA,SAASrrC,IAAW,CAAEA,UAAW,OAAO,QAAU,SAAU5b,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAS,UAAUz7D,CAAC,EAAG,QAAS2W,KAAO8kD,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQ9kD,CAAG,IAAKrN,EAAOqN,CAAG,EAAI8kD,EAAO9kD,CAAG,EAAQ,CAAC,OAAOrN,GAAkB4b,GAAS,MAAM,KAAM,SAAS,CAAI,CAe9S,MAAMozR,EAAW,CAC9B,YAAYxkR,EAAS,CACnB,KAAK,KAAO,GACZ,KAAK,MAAQ,OACb,KAAK,WAAa,OAClB,KAAK,WAAa,GAClB,KAAK,QAAU,OACf,KAAK,WAAa,OAClB,KAAK,WAAa,IAAIskR,GACtB,KAAK,WAAa,IAAIA,GACtB,KAAK,eAAiB,OAAO,OAAO,IAAI,EACxC,KAAK,KAAO,OACZ,KAAK,MAAQ,GACb,KAAK,WAAa,GAClB,KAAK,aAAa,IAAM,CACtB,KAAK,UAAUx2G,GAAO,OAAO,CACnC,CAAK,EACD,KAAK,MAAQ9tK,GAAW,KAAO,OAASA,EAAQ,OAAS,QACzD,KAAK,KAAO5O,GAAS,CACnB,MAAO,GACP,OAAQ,GACR,WAAY,GACZ,UAAW,GACX,SAAU,GACV,SAAU,UAChB,EAAO4O,GAAW,KAAO,OAASA,EAAQ,IAAI,CAC3C,CAGD,IAAI,OAAQ,CACV,OAAO,KAAK,IACb,CAED,WAAWkrF,EAAQ,CACjB,MAAO,EACR,CAED,MAAMu5L,EAAM,CACV,GAAI,KAAK,QACP,OAAIA,GAAM,OAAO,OAAO,KAAK,KAAMA,CAAI,EAChC,KAKT,MAAMhoP,EAAO,OAAO,OAAO,OAAO,eAAe,IAAI,CAAC,EAEtD,OAAAA,EAAK,KAAO,KAAK,KACjBA,EAAK,WAAa,KAAK,WACvBA,EAAK,gBAAkB,KAAK,gBAC5BA,EAAK,gBAAkB,KAAK,gBAC5BA,EAAK,WAAa,KAAK,WAAW,MAAK,EACvCA,EAAK,WAAa,KAAK,WAAW,MAAK,EACvCA,EAAK,eAAiBrrC,GAAS,CAAE,EAAE,KAAK,cAAc,EAEtDqrC,EAAK,KAAO,CAAC,GAAG,KAAK,IAAI,EACzBA,EAAK,WAAa,CAAC,GAAG,KAAK,UAAU,EACrCA,EAAK,MAAQ,CAAC,GAAG,KAAK,KAAK,EAC3BA,EAAK,WAAa,CAAC,GAAG,KAAK,UAAU,EACrCA,EAAK,KAAOioP,GAAUtzR,GAAS,CAAE,EAAE,KAAK,KAAMqzR,CAAI,CAAC,EAC5ChoP,CACR,CAED,MAAM5zC,EAAO,CACX,IAAI4zC,EAAO,KAAK,QAChB,OAAAA,EAAK,KAAK,MAAQ5zC,EACX4zC,CACR,CAED,QAAQjrD,EAAM,CACZ,GAAIA,EAAK,SAAW,EAAG,OAAO,KAAK,KAAK,KACxC,IAAIirD,EAAO,KAAK,QAChB,OAAAA,EAAK,KAAK,KAAO,OAAO,OAAOA,EAAK,KAAK,MAAQ,CAAE,EAAEjrD,EAAK,CAAC,CAAC,EACrDirD,CACR,CASD,aAAajgB,EAAI,CACf,IAAIwhE,EAAS,KAAK,QAClB,KAAK,QAAU,GACf,IAAIx4F,EAASg3B,EAAG,IAAI,EACpB,YAAK,QAAUwhE,EACRx4F,CACR,CAED,OAAO46N,EAAQ,CACb,GAAI,CAACA,GAAUA,IAAW,KAAM,OAAO,KACvC,GAAIA,EAAO,OAAS,KAAK,MAAQ,KAAK,OAAS,QAAS,MAAM,IAAI,UAAU,wDAAwD,KAAK,IAAI,QAAQA,EAAO,IAAI,EAAE,EAClK,IAAIp0N,EAAO,KACP24R,EAAWvkE,EAAO,QAEtB,MAAMwkE,EAAaxzR,GAAS,CAAE,EAAEpF,EAAK,KAAM24R,EAAS,IAAI,EAMxD,OAAAA,EAAS,KAAOC,EAChBD,EAAS,aAAeA,EAAS,WAAa34R,EAAK,YACnD24R,EAAS,kBAAoBA,EAAS,gBAAkB34R,EAAK,iBAC7D24R,EAAS,kBAAoBA,EAAS,gBAAkB34R,EAAK,iBAG7D24R,EAAS,WAAa34R,EAAK,WAAW,MAAMo0N,EAAO,WAAYA,EAAO,UAAU,EAChFukE,EAAS,WAAa34R,EAAK,WAAW,MAAMo0N,EAAO,WAAYA,EAAO,UAAU,EAEhFukE,EAAS,MAAQ34R,EAAK,MACtB24R,EAAS,eAAiB34R,EAAK,eAG/B24R,EAAS,aAAaloP,GAAQ,CAC5B2jL,EAAO,MAAM,QAAQ5jM,GAAM,CACzBigB,EAAK,KAAKjgB,EAAG,OAAO,CAC5B,CAAO,CACP,CAAK,EACDmoQ,EAAS,WAAa,CAAC,GAAG34R,EAAK,WAAY,GAAG24R,EAAS,UAAU,EAC1DA,CACR,CAED,OAAO3hU,EAAG,CACR,OAAI,KAAK,KAAK,UAAYA,IAAM,KAAa,GACtC,KAAK,WAAWA,CAAC,CACzB,CAED,QAAQg9C,EAAS,CACf,IAAIogN,EAAS,KAEb,GAAIA,EAAO,WAAW,OAAQ,CAC5B,IAAIykE,EAAazkE,EAAO,WACxBA,EAASA,EAAO,QAChBA,EAAO,WAAa,GACpBA,EAASykE,EAAW,OAAO,CAACzkE,EAAQ2V,IAAcA,EAAU,QAAQ3V,EAAQpgN,CAAO,EAAGogN,CAAM,EAC5FA,EAASA,EAAO,QAAQpgN,CAAO,CAChC,CAED,OAAOogN,CACR,CAUD,KAAKhzO,EAAO4yB,EAAU,GAAI,CACxB,IAAI8kR,EAAiB,KAAK,QAAQ1zR,GAAS,CACzC,MAAAhkB,CACN,EAAO4yB,CAAO,CAAC,EAEPxa,EAASs/R,EAAe,MAAM13S,EAAO4yB,CAAO,EAEhD,GAAI5yB,IAAU,QAAa4yB,EAAQ,SAAW,IAAS8kR,EAAe,OAAOt/R,CAAM,IAAM,GAAM,CAC7F,IAAIu/R,EAAiBtZ,GAAWr+R,CAAK,EACjC43S,EAAkBvZ,GAAWjmR,CAAM,EACvC,MAAM,IAAI,UAAU,gBAAgBwa,EAAQ,MAAQ,OAAO,kEAAuE8kR,EAAe,KAAK;AAAA;AAAA,mBAAgCC,CAAc;AAAA,GAASC,IAAoBD,EAAiB,mBAAmBC,CAAe,GAAK,GAAG,CAC7R,CAED,OAAOx/R,CACR,CAED,MAAM86B,EAAUwf,EAAU,CACxB,IAAI1yD,EAAQkzC,IAAa,OAAYA,EAAW,KAAK,WAAW,OAAO,CAAClzC,EAAOovC,IAAOA,EAAG,KAAK,KAAMpvC,EAAOkzC,EAAU,IAAI,EAAGA,CAAQ,EAEpI,OAAIlzC,IAAU,SACZA,EAAQ,KAAK,cAGRA,CACR,CAED,UAAU89G,EAAQlrF,EAAU,GAAIh3C,EAAI,CAClC,GAAI,CACF,KAAA6vQ,EACA,KAAA/1O,EACA,KAAAxW,EAAO,CAAE,EACT,cAAAq/R,EAAgBzgL,EAChB,OAAA6iF,EAAS,KAAK,KAAK,OACnB,WAAAvsI,EAAa,KAAK,KAAK,UACxB,EAAGxhC,EACA5yB,EAAQ89G,EAEP6iF,IAEH3gM,EAAQ,KAAK,MAAMA,EAAOgkB,GAAS,CACjC,OAAQ,EAChB,EAAS4O,CAAO,CAAC,GAIb,IAAIxuB,EAAO,CACT,MAAApE,EACA,KAAA0V,EACA,QAAAkd,EACA,cAAA2rQ,EACA,OAAQ,KACR,MAAO,KAAK,KAAK,MACjB,KAAA9yC,EACA,KAAAvsP,CACN,EACQ24S,EAAe,GACf,KAAK,YAAYA,EAAa,KAAK,KAAK,UAAU,EACtD,IAAIC,EAAa,GACb,KAAK,iBAAiBA,EAAW,KAAK,KAAK,eAAe,EAC1D,KAAK,iBAAiBA,EAAW,KAAK,KAAK,eAAe,EAC9D/P,GAAS,CACP,KAAA3jS,EACA,MAAApE,EACA,KAAA0V,EACA,KAAA+1O,EACA,MAAOosD,EACP,SAAUzjP,CACX,EAAE51D,GAAO,CACR,GAAIA,EAAK,OAAO,KAAK5iB,EAAG4iB,EAAKwB,CAAK,EAClC+nS,GAAS,CACP,MAAO,KAAK,MAAM,OAAO+P,CAAU,EACnC,KAAA1zS,EACA,KAAAsR,EACA,KAAA+1O,EACA,MAAAzrP,EACA,SAAUo0D,CACX,EAAEx4E,CAAE,CACX,CAAK,CACF,CAED,SAASokB,EAAO4yB,EAASmlR,EAAS,CAChC,IAAI/kE,EAAS,KAAK,QAAQhvN,GAAS,GAAI4O,EAAS,CAC9C,MAAA5yB,CACD,EAAC,EAEF,OAAO,OAAO+3S,GAAY,WAAa/kE,EAAO,UAAUhzO,EAAO4yB,EAASmlR,CAAO,EAAI,IAAI,QAAQ,CAACrtJ,EAASqqB,IAAWi+D,EAAO,UAAUhzO,EAAO4yB,EAAS,CAACp0B,EAAKwB,IAAU,CAC/JxB,EAAKu2K,EAAOv2K,CAAG,EAAOksJ,EAAQ1qJ,CAAK,CACxC,EAAC,CACH,CAED,aAAaA,EAAO4yB,EAAS,CAC3B,IAAIogN,EAAS,KAAK,QAAQhvN,GAAS,GAAI4O,EAAS,CAC9C,MAAA5yB,CACD,EAAC,EACEoY,EAEJ,OAAA46N,EAAO,UAAUhzO,EAAOgkB,GAAS,GAAI4O,EAAS,CAC5C,KAAM,EACZ,CAAK,EAAG,CAACp0B,EAAKwB,IAAU,CAClB,GAAIxB,EAAK,MAAMA,EACf4Z,EAASpY,CACf,CAAK,EAEMoY,CACR,CAED,QAAQpY,EAAO4yB,EAAS,CACtB,OAAO,KAAK,SAAS5yB,EAAO4yB,CAAO,EAAE,KAAK,IAAM,GAAMp0B,GAAO,CAC3D,GAAIqpS,GAAgB,QAAQrpS,CAAG,EAAG,MAAO,GACzC,MAAMA,CACZ,CAAK,CACF,CAED,YAAYwB,EAAO4yB,EAAS,CAC1B,GAAI,CACF,YAAK,aAAa5yB,EAAO4yB,CAAO,EACzB,EACR,OAAQp0B,EAAK,CACZ,GAAIqpS,GAAgB,QAAQrpS,CAAG,EAAG,MAAO,GACzC,MAAMA,CACP,CACF,CAED,aAAc,CACZ,IAAIkQ,EAAe,KAAK,KAAK,QAE7B,OAAIA,GAAgB,KACXA,EAGF,OAAOA,GAAiB,WAAaA,EAAa,KAAK,IAAI,EAAI4oS,GAAU5oS,CAAY,CAC7F,CAED,WAAWkkB,EAAS,CAElB,OADa,KAAK,QAAQA,GAAW,CAAE,GACzB,aACf,CAED,QAAQ8pJ,EAAK,CACX,OAAI,UAAU,SAAW,EAChB,KAAK,cAGH,KAAK,MAAM,CACpB,QAASA,CACf,CAAK,CAEF,CAED,OAAO2pB,EAAW,GAAM,CACtB,IAAIh3I,EAAO,KAAK,QAChB,OAAAA,EAAK,KAAK,OAASg3I,EACZh3I,CACR,CAED,WAAWrvD,EAAO,CAChB,OAAOA,GAAS,IACjB,CAED,QAAQuyD,EAAUmuI,GAAO,QAAS,CAChC,OAAO,KAAK,KAAK,CACf,QAAAnuI,EACA,KAAM,UACN,UAAW,GAEX,KAAKvyD,EAAO,CACV,OAAOA,IAAU,MAClB,CAEP,CAAK,CACF,CAED,SAASuyD,EAAUmuI,GAAO,SAAU,CAClC,OAAO,KAAK,MAAM,CAChB,SAAU,UACX,GAAE,aAAa7hM,GAAKA,EAAE,KAAK,CAC1B,QAAA0zD,EACA,KAAM,WACN,UAAW,GAEX,KAAKvyD,EAAO,CACV,OAAO,KAAK,OAAO,WAAWA,CAAK,CACpC,CAEF,EAAC,CACH,CAED,aAAc,CACZ,IAAIqvD,EAAO,KAAK,MAAM,CACpB,SAAU,UAChB,CAAK,EACD,OAAAA,EAAK,MAAQA,EAAK,MAAM,OAAOlrD,GAAQA,EAAK,QAAQ,OAAS,UAAU,EAChEkrD,CACR,CAED,SAAS2oP,EAAa,GAAM,CAI1B,OAHW,KAAK,MAAM,CACpB,SAAUA,IAAe,EAC/B,CAAK,CAEF,CAED,UAAU5oQ,EAAI,CACZ,IAAIigB,EAAO,KAAK,QAChB,OAAAA,EAAK,WAAW,KAAKjgB,CAAE,EAChBigB,CACR,CAgBD,QAAQjrD,EAAM,CACZ,IAAI05J,EAwBJ,GAtBI15J,EAAK,SAAW,EACd,OAAOA,EAAK,CAAC,GAAM,WACrB05J,EAAO,CACL,KAAM15J,EAAK,CAAC,CACtB,EAEQ05J,EAAO15J,EAAK,CAAC,EAENA,EAAK,SAAW,EACzB05J,EAAO,CACL,KAAM15J,EAAK,CAAC,EACZ,KAAMA,EAAK,CAAC,CACpB,EAEM05J,EAAO,CACL,KAAM15J,EAAK,CAAC,EACZ,QAASA,EAAK,CAAC,EACf,KAAMA,EAAK,CAAC,CACpB,EAGQ05J,EAAK,UAAY,SAAWA,EAAK,QAAU4iC,GAAO,SAClD,OAAO5iC,EAAK,MAAS,WAAY,MAAM,IAAI,UAAU,iCAAiC,EAC1F,IAAIzuG,EAAO,KAAK,QACZ9B,EAAWipP,GAAiB14I,CAAI,EAChCm6I,EAAcn6I,EAAK,WAAaA,EAAK,MAAQzuG,EAAK,eAAeyuG,EAAK,IAAI,IAAM,GAEpF,GAAIA,EAAK,WACH,CAACA,EAAK,KAAM,MAAM,IAAI,UAAU,mEAAmE,EAGzG,OAAIA,EAAK,OAAMzuG,EAAK,eAAeyuG,EAAK,IAAI,EAAI,CAAC,CAACA,EAAK,WACvDzuG,EAAK,MAAQA,EAAK,MAAM,OAAOjgB,GACzB,EAAAA,EAAG,QAAQ,OAAS0uH,EAAK,OACvBm6I,GACA7oQ,EAAG,QAAQ,OAASme,EAAS,QAAQ,MAI5C,EACD8B,EAAK,MAAM,KAAK9B,CAAQ,EACjB8B,CACR,CAED,KAAKvQ,EAAMlsB,EAAS,CACd,CAAC,MAAM,QAAQksB,CAAI,GAAK,OAAOA,GAAS,WAC1ClsB,EAAUksB,EACVA,EAAO,KAGT,IAAIuQ,EAAO,KAAK,QACZtO,EAAOp+C,GAAQm8C,CAAI,EAAE,IAAIrpC,GAAO,IAAIghS,GAAIhhS,CAAG,CAAC,EAChD,OAAAsrC,EAAK,QAAQm3P,GAAO,CAEdA,EAAI,WAAW7oP,EAAK,KAAK,KAAK6oP,EAAI,GAAG,CAC/C,CAAK,EACD7oP,EAAK,WAAW,KAAK,IAAIm4O,IAAUzmP,EAAMnuB,CAAO,CAAC,EAC1Cy8B,CACR,CAED,UAAUkD,EAAS,CACjB,IAAIlD,EAAO,KAAK,QAChB,OAAAA,EAAK,WAAamnP,GAAiB,CACjC,QAAAjkP,EACA,KAAM,YAEN,KAAKvyD,EAAO,CACV,OAAIA,IAAU,QAAa,CAAC,KAAK,OAAO,OAAOA,CAAK,EAAU,KAAK,YAAY,CAC7E,OAAQ,CACN,KAAM,KAAK,OAAO,KACnB,CACX,CAAS,EACM,EACR,CAEP,CAAK,EACMqvD,CACR,CAED,MAAM8oP,EAAO5lP,EAAUmuI,GAAO,MAAO,CACnC,IAAIrxI,EAAO,KAAK,QAChB,OAAA8oP,EAAM,QAAQtsP,GAAO,CACnBwD,EAAK,WAAW,IAAIxD,CAAG,EAEvBwD,EAAK,WAAW,OAAOxD,CAAG,CAChC,CAAK,EACDwD,EAAK,gBAAkBmnP,GAAiB,CACtC,QAAAjkP,EACA,KAAM,QAEN,KAAKvyD,EAAO,CACV,GAAIA,IAAU,OAAW,MAAO,GAChC,IAAIo4S,EAAS,KAAK,OAAO,WACrB1uF,EAAW0uF,EAAO,WAAW,KAAK,OAAO,EAC7C,OAAO1uF,EAAS,SAAS1pN,CAAK,EAAI,GAAO,KAAK,YAAY,CACxD,OAAQ,CACN,OAAQo4S,EAAO,UAAU,KAAK,IAAI,EAClC,SAAA1uF,CACD,CACX,CAAS,CACF,CAEP,CAAK,EACMr6J,CACR,CAED,SAAS8oP,EAAO5lP,EAAUmuI,GAAO,SAAU,CACzC,IAAIrxI,EAAO,KAAK,QAChB,OAAA8oP,EAAM,QAAQtsP,GAAO,CACnBwD,EAAK,WAAW,IAAIxD,CAAG,EAEvBwD,EAAK,WAAW,OAAOxD,CAAG,CAChC,CAAK,EACDwD,EAAK,gBAAkBmnP,GAAiB,CACtC,QAAAjkP,EACA,KAAM,WAEN,KAAKvyD,EAAO,CACV,IAAIq4S,EAAW,KAAK,OAAO,WACvB3uF,EAAW2uF,EAAS,WAAW,KAAK,OAAO,EAC/C,OAAI3uF,EAAS,SAAS1pN,CAAK,EAAU,KAAK,YAAY,CACpD,OAAQ,CACN,OAAQq4S,EAAS,UAAU,KAAK,IAAI,EACpC,SAAA3uF,CACD,CACX,CAAS,EACM,EACR,CAEP,CAAK,EACMr6J,CACR,CAED,MAAMipP,EAAQ,GAAM,CAClB,IAAIjpP,EAAO,KAAK,QAChB,OAAAA,EAAK,KAAK,MAAQipP,EACXjpP,CACR,CAED,UAAW,CACT,MAAMA,EAAO,KAAK,QACZ,CACJ,MAAA5zC,EACA,KAAAkyI,CACN,EAAQt+F,EAAK,KAYT,MAXoB,CAClB,KAAAs+F,EACA,MAAAlyI,EACA,KAAM4zC,EAAK,KACX,MAAOA,EAAK,WAAW,SAAU,EACjC,SAAUA,EAAK,WAAW,SAAU,EACpC,MAAOA,EAAK,MAAM,IAAIjgB,IAAO,CAC3B,KAAMA,EAAG,QAAQ,KACjB,OAAQA,EAAG,QAAQ,MAC3B,EAAQ,EAAE,OAAO,CAAC95D,EAAGu7K,EAAK/iH,IAASA,EAAK,UAAU,GAAK,EAAE,OAASx4D,EAAE,IAAI,IAAMu7K,CAAG,CACjF,CAEG,CAEH,CAGAumJ,GAAW,UAAU,gBAAkB,GAEvC,UAAW36O,IAAU,CAAC,WAAY,cAAc,EAAG26O,GAAW,UAAU,GAAG36O,CAAM,IAAI,EAAI,SAAU/mD,EAAM1V,EAAO4yB,EAAU,GAAI,CAC5H,KAAM,CACJ,OAAA8I,EACA,WAAA6xH,EACA,OAAAylF,CACJ,EAAM8jE,IAAM,KAAMphS,EAAM1V,EAAO4yB,EAAQ,OAAO,EAC5C,OAAOogN,EAAOv2K,CAAM,EAAE/gC,GAAUA,EAAO6xH,CAAU,EAAGvpI,GAAS,CAAE,EAAE4O,EAAS,CACxE,OAAA8I,EACA,KAAAhmB,CACD,EAAC,CACJ,EAEA,UAAWipL,IAAS,CAAC,SAAU,IAAI,EAAGy4G,GAAW,UAAUz4G,CAAK,EAAIy4G,GAAW,UAAU,MAEzF,UAAWz4G,IAAS,CAAC,MAAO,MAAM,EAAGy4G,GAAW,UAAUz4G,CAAK,EAAIy4G,GAAW,UAAU,SAExFA,GAAW,UAAU,SAAWA,GAAW,UAAU,YC3jBrD,MAAMmB,IAAQnB,GAMKmB,IAAM,UCPzB,MAAMC,GAAWx4S,GAASA,GAAS,KCG5B,SAASogH,IAAS,CACvB,OAAO,IAAIq4L,EACb,CACe,MAAMA,WAAsBrB,EAAW,CACpD,aAAc,CACZ,MAAM,CACJ,KAAM,SACZ,CAAK,EACD,KAAK,aAAa,IAAM,CACtB,KAAK,UAAU,SAAUp3S,EAAO,CAC9B,GAAI,CAAC,KAAK,OAAOA,CAAK,EAAG,CACvB,GAAI,cAAc,KAAK,OAAOA,CAAK,CAAC,EAAG,MAAO,GAC9C,GAAI,eAAe,KAAK,OAAOA,CAAK,CAAC,EAAG,MAAO,EAChD,CAED,OAAOA,CACf,CAAO,CACP,CAAK,CACF,CAED,WAAWpqB,EAAG,CACZ,OAAIA,aAAa,UAASA,EAAIA,EAAE,QAAO,GAChC,OAAOA,GAAM,SACrB,CAED,OAAO28E,EAAUmuI,GAAO,QAAS,CAC/B,OAAO,KAAK,KAAK,CACf,QAAAnuI,EACA,KAAM,WACN,UAAW,GACX,OAAQ,CACN,MAAO,MACR,EAED,KAAKvyD,EAAO,CACV,OAAOw4S,GAASx4S,CAAK,GAAKA,IAAU,EACrC,CAEP,CAAK,CACF,CAED,QAAQuyD,EAAUmuI,GAAO,QAAS,CAChC,OAAO,KAAK,KAAK,CACf,QAAAnuI,EACA,KAAM,WACN,UAAW,GACX,OAAQ,CACN,MAAO,OACR,EAED,KAAKvyD,EAAO,CACV,OAAOw4S,GAASx4S,CAAK,GAAKA,IAAU,EACrC,CAEP,CAAK,CACF,CAEH,CACAogH,GAAO,UAAYq4L,GAAc,UCzDjC,IAAIC,IAAS,04BAETC,IAAO,yqCAEPC,IAAQ,sHAERC,IAAY74S,GAASw4S,GAASx4S,CAAK,GAAKA,IAAUA,EAAM,OAExD84S,IAAe,GAAG,WACf,SAAS14L,IAAS,CACvB,OAAO,IAAI24L,EACb,CACe,MAAMA,WAAqB3B,EAAW,CACnD,aAAc,CACZ,MAAM,CACJ,KAAM,QACZ,CAAK,EACD,KAAK,aAAa,IAAM,CACtB,KAAK,UAAU,SAAUp3S,EAAO,CAE9B,GADI,KAAK,OAAOA,CAAK,GACjB,MAAM,QAAQA,CAAK,EAAG,OAAOA,EACjC,MAAMg5S,EAAWh5S,GAAS,MAAQA,EAAM,SAAWA,EAAM,SAAU,EAAGA,EACtE,OAAIg5S,IAAaF,IAAqB94S,EAC/Bg5S,CACf,CAAO,CACP,CAAK,CACF,CAED,WAAWh5S,EAAO,CAChB,OAAIA,aAAiB,SAAQA,EAAQA,EAAM,QAAO,GAC3C,OAAOA,GAAU,QACzB,CAED,WAAWA,EAAO,CAChB,OAAO,MAAM,WAAWA,CAAK,GAAK,CAAC,CAACA,EAAM,MAC3C,CAED,OAAO47B,EAAQ22B,EAAUmuI,GAAO,OAAQ,CACtC,OAAO,KAAK,KAAK,CACf,QAAAnuI,EACA,KAAM,SACN,UAAW,GACX,OAAQ,CACN,OAAA32B,CACD,EAED,KAAK57B,EAAO,CACV,OAAOw4S,GAASx4S,CAAK,GAAKA,EAAM,SAAW,KAAK,QAAQ47B,CAAM,CAC/D,CAEP,CAAK,CACF,CAED,IAAI+P,EAAK4mB,EAAUmuI,GAAO,IAAK,CAC7B,OAAO,KAAK,KAAK,CACf,QAAAnuI,EACA,KAAM,MACN,UAAW,GACX,OAAQ,CACN,IAAA5mB,CACD,EAED,KAAK3rC,EAAO,CACV,OAAOw4S,GAASx4S,CAAK,GAAKA,EAAM,QAAU,KAAK,QAAQ2rC,CAAG,CAC3D,CAEP,CAAK,CACF,CAED,IAAIC,EAAK2mB,EAAUmuI,GAAO,IAAK,CAC7B,OAAO,KAAK,KAAK,CACf,KAAM,MACN,UAAW,GACX,QAAAnuI,EACA,OAAQ,CACN,IAAA3mB,CACD,EAED,KAAK5rC,EAAO,CACV,OAAOw4S,GAASx4S,CAAK,GAAKA,EAAM,QAAU,KAAK,QAAQ4rC,CAAG,CAC3D,CAEP,CAAK,CACF,CAED,QAAQszH,EAAOtsI,EAAS,CACtB,IAAIqmR,EAAqB,GACrB1mP,EACAvtD,EAEJ,OAAI4tB,IACE,OAAOA,GAAY,SACpB,CACC,mBAAAqmR,EAAqB,GACrB,QAAA1mP,EACA,KAAAvtD,CACD,EAAG4tB,EAEJ2/B,EAAU3/B,GAIP,KAAK,KAAK,CACf,KAAM5tB,GAAQ,UACd,QAASutD,GAAWmuI,GAAO,QAC3B,OAAQ,CACN,MAAAxhC,CACD,EACD,KAAMl/J,GAASw4S,GAASx4S,CAAK,GAAKA,IAAU,IAAMi5S,GAAsBj5S,EAAM,OAAOk/J,CAAK,IAAM,EACtG,CAAK,CACF,CAED,MAAM3sG,EAAUmuI,GAAO,MAAO,CAC5B,OAAO,KAAK,QAAQg4G,IAAQ,CAC1B,KAAM,QACN,QAAAnmP,EACA,mBAAoB,EAC1B,CAAK,CACF,CAED,IAAIA,EAAUmuI,GAAO,IAAK,CACxB,OAAO,KAAK,QAAQi4G,IAAM,CACxB,KAAM,MACN,QAAApmP,EACA,mBAAoB,EAC1B,CAAK,CACF,CAED,KAAKA,EAAUmuI,GAAO,KAAM,CAC1B,OAAO,KAAK,QAAQk4G,IAAO,CACzB,KAAM,OACN,QAAArmP,EACA,mBAAoB,EAC1B,CAAK,CACF,CAGD,QAAS,CACP,OAAO,KAAK,QAAQ,EAAE,EAAE,UAAU1G,GAAOA,IAAQ,KAAO,GAAKA,CAAG,CACjE,CAED,KAAK0G,EAAUmuI,GAAO,KAAM,CAC1B,OAAO,KAAK,UAAU70I,GAAOA,GAAO,KAAOA,EAAI,KAAM,EAAGA,CAAG,EAAE,KAAK,CAChE,QAAA0G,EACA,KAAM,OACN,KAAMsmP,GACZ,CAAK,CACF,CAED,UAAUtmP,EAAUmuI,GAAO,UAAW,CACpC,OAAO,KAAK,UAAU1gM,GAAUw4S,GAASx4S,CAAK,EAA0BA,EAAtBA,EAAM,YAAW,CAAU,EAAE,KAAK,CAClF,QAAAuyD,EACA,KAAM,cACN,UAAW,GACX,KAAMvyD,GAASw4S,GAASx4S,CAAK,GAAKA,IAAUA,EAAM,YAAa,CACrE,CAAK,CACF,CAED,UAAUuyD,EAAUmuI,GAAO,UAAW,CACpC,OAAO,KAAK,UAAU1gM,GAAUw4S,GAASx4S,CAAK,EAA0BA,EAAtBA,EAAM,YAAW,CAAU,EAAE,KAAK,CAClF,QAAAuyD,EACA,KAAM,cACN,UAAW,GACX,KAAMvyD,GAASw4S,GAASx4S,CAAK,GAAKA,IAAUA,EAAM,YAAa,CACrE,CAAK,CACF,CAEH,CACAogH,GAAO,UAAY24L,GAAa,UCxKhC,IAAItsP,IAAQzsD,GAASA,GAAS,CAACA,EAExB,SAASogH,IAAS,CACvB,OAAO,IAAI84L,EACb,CACe,MAAMA,WAAqB9B,EAAW,CACnD,aAAc,CACZ,MAAM,CACJ,KAAM,QACZ,CAAK,EACD,KAAK,aAAa,IAAM,CACtB,KAAK,UAAU,SAAUp3S,EAAO,CAC9B,IAAIg6N,EAASh6N,EAEb,GAAI,OAAOg6N,GAAW,SAAU,CAE9B,GADAA,EAASA,EAAO,QAAQ,MAAO,EAAE,EAC7BA,IAAW,GAAI,MAAO,KAE1BA,EAAS,CAACA,CACX,CAED,OAAI,KAAK,OAAOA,CAAM,EAAUA,EACzB,WAAWA,CAAM,CAChC,CAAO,CACP,CAAK,CACF,CAED,WAAWh6N,EAAO,CAChB,OAAIA,aAAiB,SAAQA,EAAQA,EAAM,QAAO,GAC3C,OAAOA,GAAU,UAAY,CAACysD,IAAMzsD,CAAK,CACjD,CAED,IAAI2rC,EAAK4mB,EAAUmuI,GAAO,IAAK,CAC7B,OAAO,KAAK,KAAK,CACf,QAAAnuI,EACA,KAAM,MACN,UAAW,GACX,OAAQ,CACN,IAAA5mB,CACD,EAED,KAAK3rC,EAAO,CACV,OAAOw4S,GAASx4S,CAAK,GAAKA,GAAS,KAAK,QAAQ2rC,CAAG,CACpD,CAEP,CAAK,CACF,CAED,IAAIC,EAAK2mB,EAAUmuI,GAAO,IAAK,CAC7B,OAAO,KAAK,KAAK,CACf,QAAAnuI,EACA,KAAM,MACN,UAAW,GACX,OAAQ,CACN,IAAA3mB,CACD,EAED,KAAK5rC,EAAO,CACV,OAAOw4S,GAASx4S,CAAK,GAAKA,GAAS,KAAK,QAAQ4rC,CAAG,CACpD,CAEP,CAAK,CACF,CAED,SAASutQ,EAAM5mP,EAAUmuI,GAAO,SAAU,CACxC,OAAO,KAAK,KAAK,CACf,QAAAnuI,EACA,KAAM,MACN,UAAW,GACX,OAAQ,CACN,KAAA4mP,CACD,EAED,KAAKn5S,EAAO,CACV,OAAOw4S,GAASx4S,CAAK,GAAKA,EAAQ,KAAK,QAAQm5S,CAAI,CACpD,CAEP,CAAK,CACF,CAED,SAASC,EAAM7mP,EAAUmuI,GAAO,SAAU,CACxC,OAAO,KAAK,KAAK,CACf,QAAAnuI,EACA,KAAM,MACN,UAAW,GACX,OAAQ,CACN,KAAA6mP,CACD,EAED,KAAKp5S,EAAO,CACV,OAAOw4S,GAASx4S,CAAK,GAAKA,EAAQ,KAAK,QAAQo5S,CAAI,CACpD,CAEP,CAAK,CACF,CAED,SAASl9H,EAAMwkB,GAAO,SAAU,CAC9B,OAAO,KAAK,SAAS,EAAGxkB,CAAG,CAC5B,CAED,SAASA,EAAMwkB,GAAO,SAAU,CAC9B,OAAO,KAAK,SAAS,EAAGxkB,CAAG,CAC5B,CAED,QAAQ3pH,EAAUmuI,GAAO,QAAS,CAChC,OAAO,KAAK,KAAK,CACf,KAAM,UACN,QAAAnuI,EACA,KAAM1G,GAAO2sP,GAAS3sP,CAAG,GAAK,OAAO,UAAUA,CAAG,CACxD,CAAK,CACF,CAED,UAAW,CACT,OAAO,KAAK,UAAU7rD,GAAUw4S,GAASx4S,CAAK,EAAgBA,EAAZA,EAAQ,CAAS,CACpE,CAED,MAAMy8D,EAAQ,CACZ,IAAI48O,EAEJ,IAAIC,EAAQ,CAAC,OAAQ,QAAS,QAAS,OAAO,EAG9C,GAFA78O,IAAW48O,EAAU58O,IAAW,KAAO,OAAS48O,EAAQ,YAAa,IAAK,QAEtE58O,IAAW,QAAS,OAAO,KAAK,SAAQ,EAC5C,GAAI68O,EAAM,QAAQ78O,EAAO,YAAW,CAAE,IAAM,GAAI,MAAM,IAAI,UAAU,uCAAyC68O,EAAM,KAAK,IAAI,CAAC,EAC7H,OAAO,KAAK,UAAUt5S,GAAUw4S,GAASx4S,CAAK,EAA0BA,EAAtB,KAAKy8D,CAAM,EAAEz8D,CAAK,CAAS,CAC9E,CAEH,CACAogH,GAAO,UAAY84L,GAAa,UC1HhC,IAAIK,IAAS,kJACE,SAASC,IAAa/nN,EAAM,CACzC,IAAIgoN,EAAc,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAE,EACpCC,EAAgB,EAChBphI,EACAqhI,EAEJ,GAAIA,EAASJ,IAAO,KAAK9nN,CAAI,EAAG,CAE9B,QAAS3yF,EAAI,EAAG3nB,EAAGA,EAAIsiU,EAAY36S,CAAC,EAAG,EAAEA,EAAG66S,EAAOxiU,CAAC,EAAI,CAACwiU,EAAOxiU,CAAC,GAAK,EAGtEwiU,EAAO,CAAC,GAAK,CAACA,EAAO,CAAC,GAAK,GAAK,EAChCA,EAAO,CAAC,EAAI,CAACA,EAAO,CAAC,GAAK,EAE1BA,EAAO,CAAC,EAAIA,EAAO,CAAC,EAAI,OAAOA,EAAO,CAAC,CAAC,EAAE,OAAO,EAAG,CAAC,EAAI,GAEpDA,EAAO,CAAC,IAAM,QAAaA,EAAO,CAAC,IAAM,MAAQA,EAAO,CAAC,IAAM,QAAaA,EAAO,CAAC,IAAM,IAAKrhI,EAAY,CAAC,IAAI,KAAKqhI,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,GAC/LA,EAAO,CAAC,IAAM,KAAOA,EAAO,CAAC,IAAM,SACrCD,EAAgBC,EAAO,EAAE,EAAI,GAAKA,EAAO,EAAE,EACvCA,EAAO,CAAC,IAAM,MAAKD,EAAgB,EAAIA,IAG7CphI,EAAY,KAAK,IAAIqhI,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAID,EAAeC,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,EAEtH,MAASrhI,EAAY,KAAK,MAAQ,KAAK,MAAM7mF,CAAI,EAAI,IAEnD,OAAO6mF,CACT,CChCA,IAAIsrB,GAAc,IAAI,KAAK,EAAE,EAEzBtD,IAASnoI,GAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,IAAM,gBAK7C,MAAMyhP,WAAmBxC,EAAW,CACjD,aAAc,CACZ,MAAM,CACJ,KAAM,MACZ,CAAK,EACD,KAAK,aAAa,IAAM,CACtB,KAAK,UAAU,SAAUp3S,EAAO,CAC9B,OAAI,KAAK,OAAOA,CAAK,EAAUA,GAC/BA,EAAQ65S,IAAS75S,CAAK,EAEd,MAAMA,CAAK,EAAsB4jM,GAAlB,IAAI,KAAK5jM,CAAK,EAC7C,CAAO,CACP,CAAK,CACF,CAED,WAAWpqB,EAAG,CACZ,OAAO0qN,IAAO1qN,CAAC,GAAK,CAAC,MAAMA,EAAE,QAAO,CAAE,CACvC,CAED,aAAaisB,EAAKmD,EAAM,CACtB,IAAIua,EAEJ,GAAKk3R,GAAI,MAAM50S,CAAG,EAKhB0d,EAAQ1d,MALW,CACnB,IAAIi4S,EAAO,KAAK,KAAKj4S,CAAG,EACxB,GAAI,CAAC,KAAK,WAAWi4S,CAAI,EAAG,MAAM,IAAI,UAAU,KAAK90S,CAAI,+DAA+D,EACxHua,EAAQu6R,CACd,CAII,OAAOv6R,CACR,CAED,IAAIosB,EAAK4mB,EAAUmuI,GAAO,IAAK,CAC7B,IAAIqhB,EAAQ,KAAK,aAAap2K,EAAK,KAAK,EACxC,OAAO,KAAK,KAAK,CACf,QAAA4mB,EACA,KAAM,MACN,UAAW,GACX,OAAQ,CACN,IAAA5mB,CACD,EAED,KAAK3rC,EAAO,CACV,OAAOw4S,GAASx4S,CAAK,GAAKA,GAAS,KAAK,QAAQ+hN,CAAK,CACtD,CAEP,CAAK,CACF,CAED,IAAIn2K,EAAK2mB,EAAUmuI,GAAO,IAAK,CAC7B,IAAIqhB,EAAQ,KAAK,aAAan2K,EAAK,KAAK,EACxC,OAAO,KAAK,KAAK,CACf,QAAA2mB,EACA,KAAM,MACN,UAAW,GACX,OAAQ,CACN,IAAA3mB,CACD,EAED,KAAK5rC,EAAO,CACV,OAAOw4S,GAASx4S,CAAK,GAAKA,GAAS,KAAK,QAAQ+hN,CAAK,CACtD,CAEP,CAAK,CACF,CAEH,CACA63F,GAAW,aAAeh2G,GACPg2G,GAAW,UCtE9B,SAASG,IAAYhrR,EAAO+2Q,EAAUkU,EAAaC,EAAW,CAC5D,IAAIr5S,EAAQ,GACRg7B,EAAS7M,GAAS,KAAO,EAAIA,EAAM,OAKvC,IAHIkrR,GAAar+Q,IACfo+Q,EAAcjrR,EAAM,EAAEnuB,CAAK,GAEtB,EAAEA,EAAQg7B,GACfo+Q,EAAclU,EAASkU,EAAajrR,EAAMnuB,CAAK,EAAGA,EAAOmuB,CAAK,EAEhE,OAAOirR,CACT,CAEA,IAAAE,IAAiBH,IClBjB,SAASI,IAAeruP,EAAQ,CAC9B,OAAO,SAASr2C,EAAK,CACnB,OAAOq2C,GAAU,KAAO,OAAYA,EAAOr2C,CAAG,CAClD,CACA,CAEA,IAAA2kS,IAAiBD,ICbbA,IAAiB7hU,IAGjB+hU,IAAkB,CAEpB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IACnC,EAAQ,KAAM,EAAQ,KACtB,EAAQ,KAAM,EAAQ,KACtB,EAAQ,KAER,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAC1B,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACtF,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACtF,EAAU,IAAM,EAAU,IAC1B,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,KAAM,EAAU,KAC1B,EAAU,KAAM,EAAU,KAC1B,EAAU,KAAM,EAAU,GAC5B,EAUIC,IAAeH,IAAeE,GAAe,EAEjDE,IAAiBD,ICtEbA,IAAehiU,IACfq/C,IAAWh/C,GAGX6hU,IAAU,8CAGVC,IAAoB,kBACpBC,IAAwB,kBACxBC,IAAsB,kBACtBC,IAAeH,IAAoBC,IAAwBC,IAG3DE,IAAU,IAAMD,IAAe,IAM/BE,IAAc,OAAOD,IAAS,GAAG,EAoBrC,SAASE,IAAO9oS,EAAQ,CACtB,OAAAA,EAAS0lB,IAAS1lB,CAAM,EACjBA,GAAUA,EAAO,QAAQuoS,IAASF,GAAY,EAAE,QAAQQ,IAAa,EAAE,CAChF,CAEA,IAAAE,IAAiBD,IC3CbE,IAAc,4CASlB,SAASC,IAAWjpS,EAAQ,CAC1B,OAAOA,EAAO,MAAMgpS,GAAW,GAAK,EACtC,CAEA,IAAAE,IAAiBD,ICbbE,IAAmB,qEASvB,SAASC,IAAeppS,EAAQ,CAC9B,OAAOmpS,IAAiB,KAAKnpS,CAAM,CACrC,CAEA,IAAAqpS,IAAiBD,ICbbE,GAAgB,kBAChBd,IAAoB,kBACpBC,IAAwB,kBACxBC,IAAsB,kBACtBC,IAAeH,IAAoBC,IAAwBC,IAC3Da,GAAiB,kBACjBC,GAAe,4BACfC,IAAgB,uBAChBC,IAAiB,+CACjBC,IAAqB,kBACrBC,IAAe,+JACfC,GAAe,4BACfC,IAAa,iBACbC,GAAeN,IAAgBC,IAAiBC,IAAqBC,IAGrEI,GAAS,OACTC,GAAU,IAAMF,GAAe,IAC/BnB,IAAU,IAAMD,IAAe,IAC/BuB,GAAW,OACXC,IAAY,IAAMZ,GAAiB,IACnCa,GAAU,IAAMZ,GAAe,IAC/Ba,GAAS,KAAOf,GAAgBS,GAAeG,GAAWX,GAAiBC,GAAeK,GAAe,IACzGS,IAAS,2BACTC,IAAa,MAAQ3B,IAAU,IAAM0B,IAAS,IAC9CE,IAAc,KAAOlB,GAAgB,IACrCmB,GAAa,kCACbC,GAAa,qCACbC,GAAU,IAAMd,GAAe,IAC/Be,IAAQ,UAGRC,GAAc,MAAQT,GAAU,IAAMC,GAAS,IAC/CS,IAAc,MAAQH,GAAU,IAAMN,GAAS,IAC/CU,GAAkB,MAAQf,GAAS,yBACnCgB,GAAkB,MAAQhB,GAAS,yBACnCiB,GAAWV,IAAa,IACxBW,GAAW,IAAMpB,IAAa,KAC9BqB,IAAY,MAAQP,IAAQ,MAAQ,CAACJ,IAAaC,GAAYC,EAAU,EAAE,KAAK,GAAG,EAAI,IAAMQ,GAAWD,GAAW,KAClHG,IAAa,mDACbC,IAAa,mDACbC,IAAQJ,GAAWD,GAAWE,IAC9BI,IAAU,MAAQ,CAACpB,IAAWM,GAAYC,EAAU,EAAE,KAAK,GAAG,EAAI,IAAMY,IAGxEE,IAAgB,OAAO,CACzBb,GAAU,IAAMP,GAAU,IAAMW,GAAkB,MAAQ,CAACd,GAASU,GAAS,GAAG,EAAE,KAAK,GAAG,EAAI,IAC9FG,IAAc,IAAME,GAAkB,MAAQ,CAACf,GAASU,GAAUE,GAAa,GAAG,EAAE,KAAK,GAAG,EAAI,IAChGF,GAAU,IAAME,GAAc,IAAME,GACpCJ,GAAU,IAAMK,GAChBK,IACAD,IACAlB,GACAqB,GACF,EAAE,KAAK,GAAG,EAAG,GAAG,EAShB,SAASE,IAAazrS,EAAQ,CAC5B,OAAOA,EAAO,MAAMwrS,GAAa,GAAK,EACxC,CAEA,IAAAE,IAAiBD,ICpEbxC,IAAa5iU,IACb+iU,IAAiB1iU,IACjBg/C,IAAWy3M,GACXsuE,IAAeruE,IAqBnB,SAASuuE,IAAM3rS,EAAQq7C,EAASuwP,EAAO,CAIrC,OAHA5rS,EAAS0lB,IAAS1lB,CAAM,EACxBq7C,EAAUuwP,EAAQ,OAAYvwP,EAE1BA,IAAY,OACP+tP,IAAeppS,CAAM,EAAIyrS,IAAazrS,CAAM,EAAIipS,IAAWjpS,CAAM,EAEnEA,EAAO,MAAMq7C,CAAO,GAAK,EAClC,CAEA,IAAAwwP,IAAiBF,IClCb7D,IAAczhU,IACdyiU,IAASpiU,IACTilU,IAAQxuE,IAGR6sE,IAAS,OAGT8B,IAAS,OAAO9B,IAAQ,GAAG,EAS/B,SAAS+B,IAAiBx3S,EAAU,CAClC,OAAO,SAASyL,EAAQ,CACtB,OAAO8nS,IAAY6D,IAAM7C,IAAO9oS,CAAM,EAAE,QAAQ8rS,IAAQ,EAAE,CAAC,EAAGv3S,EAAU,EAAE,CAC9E,CACA,CAEA,IAAAy3S,GAAiBD,ICvBbA,IAAmB1lU,GAuBnB4lU,IAAYF,IAAiB,SAAS5lS,EAAQqnK,EAAM7+K,EAAO,CAC7D,OAAOwX,GAAUxX,EAAQ,IAAM,IAAM6+K,EAAK,aAC5C,CAAC,EAED0+H,IAAiBD,qBClBjB,SAASE,IAAUrvR,EAAOod,EAAOC,EAAK,CACpC,IAAIxrC,EAAQ,GACRg7B,EAAS7M,EAAM,OAEfod,EAAQ,IACVA,EAAQ,CAACA,EAAQvQ,EAAS,EAAKA,EAASuQ,GAE1CC,EAAMA,EAAMxQ,EAASA,EAASwQ,EAC1BA,EAAM,IACRA,GAAOxQ,GAETA,EAASuQ,EAAQC,EAAM,EAAMA,EAAMD,IAAW,EAC9CA,KAAW,EAGX,QADI/zB,EAAS,MAAMwjB,CAAM,EAClB,EAAEh7B,EAAQg7B,GACfxjB,EAAOxX,CAAK,EAAImuB,EAAMnuB,EAAQurC,CAAK,EAErC,OAAO/zB,CACT,CAEA,IAAAimS,IAAiBD,IC9BbA,IAAY9lU,IAWhB,SAASgmU,IAAUvvR,EAAOod,EAAOC,EAAK,CACpC,IAAIxQ,EAAS7M,EAAM,OACnB,OAAAqd,EAAMA,IAAQ,OAAYxQ,EAASwQ,EAC3B,CAACD,GAASC,GAAOxQ,EAAU7M,EAAQqvR,IAAUrvR,EAAOod,EAAOC,CAAG,CACxE,CAEA,IAAAmyQ,IAAiBD,IChBb/C,IAAgB,kBAChBd,IAAoB,kBACpBC,IAAwB,kBACxBC,IAAsB,kBACtBC,IAAeH,IAAoBC,IAAwBC,IAC3DoB,IAAa,iBAGbc,IAAQ,UAGR2B,IAAe,OAAO,IAAM3B,IAAQtB,IAAiBX,IAAemB,IAAa,GAAG,EASxF,SAAS0C,IAAWxsS,EAAQ,CAC1B,OAAOusS,IAAa,KAAKvsS,CAAM,CACjC,CAEA,IAAAysS,GAAiBD,IClBjB,SAASE,IAAa1sS,EAAQ,CAC5B,OAAOA,EAAO,MAAM,EAAE,CACxB,CAEA,IAAA2sS,IAAiBD,ICVbpD,GAAgB,kBAChBd,IAAoB,kBACpBC,IAAwB,kBACxBC,IAAsB,kBACtBC,IAAeH,IAAoBC,IAAwBC,IAC3DoB,IAAa,iBAGb8C,IAAW,IAAMtD,GAAgB,IACjCV,GAAU,IAAMD,IAAe,IAC/B2B,GAAS,2BACTC,IAAa,MAAQ3B,GAAU,IAAM0B,GAAS,IAC9CE,GAAc,KAAOlB,GAAgB,IACrCmB,GAAa,kCACbC,GAAa,qCACbE,IAAQ,UAGRK,GAAWV,IAAa,IACxBW,GAAW,IAAMpB,IAAa,KAC9BqB,IAAY,MAAQP,IAAQ,MAAQ,CAACJ,GAAaC,GAAYC,EAAU,EAAE,KAAK,GAAG,EAAI,IAAMQ,GAAWD,GAAW,KAClHK,IAAQJ,GAAWD,GAAWE,IAC9B0B,IAAW,MAAQ,CAACrC,GAAc5B,GAAU,IAAKA,GAAS6B,GAAYC,GAAYkC,GAAQ,EAAE,KAAK,GAAG,EAAI,IAGxGE,IAAY,OAAOxC,GAAS,MAAQA,GAAS,KAAOuC,IAAWvB,IAAO,GAAG,EAS7E,SAASyB,IAAe/sS,EAAQ,CAC9B,OAAOA,EAAO,MAAM8sS,GAAS,GAAK,EACpC,CAEA,IAAAE,IAAiBD,ICvCbL,IAAermU,IACfmmU,IAAa9lU,GACbqmU,IAAiB5vE,IASrB,SAAS8vE,IAAcjtS,EAAQ,CAC7B,OAAOwsS,IAAWxsS,CAAM,EACpB+sS,IAAe/sS,CAAM,EACrB0sS,IAAa1sS,CAAM,CACzB,CAEA,IAAAktS,IAAiBD,ICjBbZ,IAAYhmU,IACZmmU,IAAa9lU,GACbumU,IAAgB9vE,IAChBz3M,IAAW03M,GASf,SAAS+vE,IAAgBC,EAAY,CACnC,OAAO,SAASptS,EAAQ,CACtBA,EAAS0lB,IAAS1lB,CAAM,EAExB,IAAIqtS,EAAab,IAAWxsS,CAAM,EAC9BitS,IAAcjtS,CAAM,EACpB,OAEAstS,EAAMD,EACNA,EAAW,CAAC,EACZrtS,EAAO,OAAO,CAAC,EAEfutS,EAAWF,EACXhB,IAAUgB,EAAY,CAAC,EAAE,KAAK,EAAE,EAChCrtS,EAAO,MAAM,CAAC,EAElB,OAAOstS,EAAIF,CAAU,EAAG,EAAGG,CAC/B,CACA,CAEA,IAAAC,IAAiBL,IChCbA,IAAkB9mU,IAmBlBonU,IAAaN,IAAgB,aAAa,EAE9CO,IAAiBD,ICrBb/nR,IAAWr/C,GACXonU,IAAa/mU,IAiBjB,SAAS+zO,IAAWz6M,EAAQ,CAC1B,OAAOytS,IAAW/nR,IAAS1lB,CAAM,EAAE,YAAa,EAClD,CAEA,IAAA2tS,IAAiBlzF,ICtBbA,IAAap0O,IACb0lU,IAAmBrlU,GAsBnBknU,IAAY7B,IAAiB,SAAS5lS,EAAQqnK,EAAM7+K,EAAO,CAC7D,OAAA6+K,EAAOA,EAAK,cACLrnK,GAAUxX,EAAQ8rN,IAAWjtC,CAAI,EAAIA,EAC9C,CAAC,EAEDqgI,IAAiBD,sBC5BjB,IAAI1X,IAAkB7vT,GAClBi0T,IAAa5zT,GACbm8T,IAAe1lE,GAuBnB,SAAS2wE,IAAQj0P,EAAQg6O,EAAU,CACjC,IAAI1tR,EAAS,GACb,OAAA0tR,EAAWgP,IAAahP,CAAW,EAEnCyG,IAAWzgP,EAAQ,SAAS9rD,EAAOyV,EAAKq2C,EAAQ,CAC9Cq8O,IAAgB/vR,EAAQ0tR,EAAS9lS,EAAOyV,EAAKq2C,CAAM,EAAG9rD,CAAK,CAC/D,CAAG,EACMoY,CACT,CAEA,IAAA4nS,IAAiBD,0CC3BjBE,GAAc,QAAG,SAASC,EAAO,CAC/B,OAAOC,GAASC,IAAYF,CAAK,EAAGA,CAAK,CAC3C,EAEAD,GAAA,cAAuBE,GAEvB,SAASA,GAAShyR,EAAO+xR,EAAO,CAC9B,IAAIG,EAASlyR,EAAM,OACfmyR,EAAS,IAAI,MAAMD,CAAM,EACzBE,EAAU,CAAE,EACZzhT,EAAIuhT,EAEJG,EAAgBC,IAAkBP,CAAK,EACvCQ,EAAYC,IAAcxyR,CAAK,EASnC,IANA+xR,EAAM,QAAQ,SAASh6B,EAAM,CAC3B,GAAI,CAACw6B,EAAU,IAAIx6B,EAAK,CAAC,CAAC,GAAK,CAACw6B,EAAU,IAAIx6B,EAAK,CAAC,CAAC,EACnD,MAAM,IAAI,MAAM,+DAA+D,CAErF,CAAG,EAEMpnR,KACAyhT,EAAQzhT,CAAC,GAAG8hT,EAAMzyR,EAAMrvB,CAAC,EAAGA,EAAG,IAAI,GAAK,EAG/C,OAAOwhT,EAEP,SAASM,EAAM5+S,EAAMlD,EAAG+hT,EAAc,CACpC,GAAGA,EAAa,IAAI7+S,CAAI,EAAG,CACzB,IAAI8+S,EACJ,GAAI,CACFA,EAAU,cAAgB,KAAK,UAAU9+S,CAAI,CAC9C,MAAU,CACT8+S,EAAU,EACX,CACD,MAAM,IAAI,MAAM,oBAAsBA,CAAO,CAC9C,CAED,GAAI,CAACJ,EAAU,IAAI1+S,CAAI,EACrB,MAAM,IAAI,MAAM,+EAA+E,KAAK,UAAUA,CAAI,CAAC,EAGrH,GAAI,CAAAu+S,EAAQzhT,CAAC,EACb,CAAAyhT,EAAQzhT,CAAC,EAAI,GAEb,IAAIiiT,EAAWP,EAAc,IAAIx+S,CAAI,GAAK,IAAI,IAG9C,GAFA++S,EAAW,MAAM,KAAKA,CAAQ,EAE1BjiT,EAAIiiT,EAAS,OAAQ,CACvBF,EAAa,IAAI7+S,CAAI,EACrB,EAAG,CACD,IAAIkB,EAAQ69S,EAAS,EAAEjiT,CAAC,EACxB8hT,EAAM19S,EAAOw9S,EAAU,IAAIx9S,CAAK,EAAG29S,CAAY,CAChD,OAAQ/hT,GACT+hT,EAAa,OAAO7+S,CAAI,CACzB,CAEDs+S,EAAO,EAAED,CAAM,EAAIr+S,EACpB,CACH,CAEA,SAASo+S,IAAYjoN,EAAI,CAEvB,QADIuyF,EAAM,IAAI,IACL5rL,EAAI,EAAGm1C,EAAMkkD,EAAI,OAAQr5F,EAAIm1C,EAAKn1C,IAAK,CAC9C,IAAIonR,EAAO/tL,EAAIr5F,CAAC,EAChB4rL,EAAI,IAAIw7F,EAAK,CAAC,CAAC,EACfx7F,EAAI,IAAIw7F,EAAK,CAAC,CAAC,CAChB,CACD,OAAO,MAAM,KAAKx7F,CAAG,CACvB,CAEA,SAAS+1H,IAAkBtoN,EAAI,CAE7B,QADI+nN,EAAQ,IAAI,IACPphT,EAAI,EAAGm1C,EAAMkkD,EAAI,OAAQr5F,EAAIm1C,EAAKn1C,IAAK,CAC9C,IAAIonR,EAAO/tL,EAAIr5F,CAAC,EACXohT,EAAM,IAAIh6B,EAAK,CAAC,CAAC,GAAGg6B,EAAM,IAAIh6B,EAAK,CAAC,EAAG,IAAI,GAAK,EAChDg6B,EAAM,IAAIh6B,EAAK,CAAC,CAAC,GAAGg6B,EAAM,IAAIh6B,EAAK,CAAC,EAAG,IAAI,GAAK,EACrDg6B,EAAM,IAAIh6B,EAAK,CAAC,CAAC,EAAE,IAAIA,EAAK,CAAC,CAAC,CAC/B,CACD,OAAOg6B,CACT,CAEA,SAASS,IAAcxoN,EAAI,CAEzB,QADIuyF,EAAM,IAAI,IACL5rL,EAAI,EAAGm1C,EAAMkkD,EAAI,OAAQr5F,EAAIm1C,EAAKn1C,IACzC4rL,EAAI,IAAIvyF,EAAIr5F,CAAC,EAAGA,CAAC,EAEnB,OAAO4rL,CACT,sCC3Fe,SAASs2H,IAAW/tP,EAAQguP,EAAgB,GAAI,CAC7D,IAAIf,EAAQ,GACR/xR,EAAQ,IAAI,IACZ+yR,EAAW,IAAI,IAAID,EAAc,IAAI,CAAC,CAAC/qU,EAAGK,CAAC,IAAM,GAAGL,CAAC,IAAIK,CAAC,EAAE,CAAC,EAEjE,SAAS4qU,EAAQC,EAAS3rS,EAAK,CAC7B,IAAIzT,EAAO+pD,GAAK,MAACq1P,CAAO,EAAE,CAAC,EAC3BjzR,EAAM,IAAInsB,CAAI,EACTk/S,EAAS,IAAI,GAAGzrS,CAAG,IAAIzT,CAAI,EAAE,GAAGk+S,EAAM,KAAK,CAACzqS,EAAKzT,CAAI,CAAC,CAC5D,CAED,UAAWyT,KAAOw9C,EAAQ,GAAItI,GAAIsI,EAAQx9C,CAAG,EAAG,CAC9C,IAAIzV,EAAQizD,EAAOx9C,CAAG,EACtB0Y,EAAM,IAAI1Y,CAAG,EACTghS,GAAI,MAAMz2S,CAAK,GAAKA,EAAM,UAAWmhT,EAAQnhT,EAAM,KAAMyV,CAAG,EAAW8xR,GAASvnS,CAAK,GAAK,SAAUA,GAAOA,EAAM,KAAK,QAAQ0V,GAAQyrS,EAAQzrS,EAAMD,CAAG,CAAC,CAC7J,CAED,OAAO0qS,IAAS,MAAM,MAAM,KAAKhyR,CAAK,EAAG+xR,CAAK,EAAE,SAClD,CCxBA,SAAS7pJ,GAAUl+D,EAAK35F,EAAK,CAC3B,IAAIqyJ,EAAM,IACV,OAAA14D,EAAI,KAAK,CAAC1iF,EAAKjiB,IAAO,CACpB,IAAI6tT,EAEJ,KAAMA,EAAY7iT,EAAI,OAAS,KAAO,OAAS6iT,EAAU,QAAQ5rS,CAAG,KAAO,GACzE,OAAAo7I,EAAMr9J,EACC,EAEb,CAAG,EACMq9J,CACT,CAEe,SAASywJ,GAAexiQ,EAAM,CAC3C,MAAO,CAAC5oE,EAAGK,IACF8/K,GAAUv3G,EAAM5oE,CAAC,EAAImgL,GAAUv3G,EAAMvoE,CAAC,CAEjD,CCjBA,SAASytC,IAAW,CAAEA,UAAW,OAAO,QAAU,SAAU5b,EAAQ,CAAE,QAAStJ,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIy7D,EAAS,UAAUz7D,CAAC,EAAG,QAAS2W,KAAO8kD,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQ9kD,CAAG,IAAKrN,EAAOqN,CAAG,EAAI8kD,EAAO9kD,CAAG,EAAQ,CAAC,OAAOrN,GAAkB4b,GAAS,MAAM,KAAM,SAAS,CAAI,CAe7T,IAAIkmC,GAAWiO,GAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,IAAM,kBAE9D,SAASopP,IAAQjqJ,EAAKt3J,EAAO,CAC3B,IAAIwhT,EAAQ,OAAO,KAAKlqJ,EAAI,MAAM,EAClC,OAAO,OAAO,KAAKt3J,CAAK,EAAE,OAAOyV,GAAO+rS,EAAM,QAAQ/rS,CAAG,IAAM,EAAE,CACnE,CAEA,MAAMgsS,IAAcH,GAAe,EAAE,EACtB,MAAMI,WAAqBtK,EAAW,CACnD,YAAYC,EAAM,CAChB,MAAM,CACJ,KAAM,QACZ,CAAK,EACD,KAAK,OAAS,OAAO,OAAO,IAAI,EAChC,KAAK,YAAcoK,IACnB,KAAK,OAAS,GACd,KAAK,eAAiB,GACtB,KAAK,aAAa,IAAM,CACtB,KAAK,UAAU,SAAgBzhT,EAAO,CACpC,GAAI,OAAOA,GAAU,SACnB,GAAI,CACFA,EAAQ,KAAK,MAAMA,CAAK,CACzB,MAAa,CACZA,EAAQ,IACT,CAGH,OAAI,KAAK,OAAOA,CAAK,EAAUA,EACxB,IACf,CAAO,EAEGq3S,GACF,KAAK,MAAMA,CAAI,CAEvB,CAAK,CACF,CAED,WAAWr3S,EAAO,CAChB,OAAOkqD,GAASlqD,CAAK,GAAK,OAAOA,GAAU,UAC5C,CAED,MAAM89G,EAAQlrF,EAAU,GAAI,CAC1B,IAAI+uR,EAEJ,IAAI3hT,EAAQ,MAAM,MAAM89G,EAAQlrF,CAAO,EAGvC,GAAI5yB,IAAU,OAAW,OAAO,KAAK,WAAU,EAC/C,GAAI,CAAC,KAAK,WAAWA,CAAK,EAAG,OAAOA,EACpC,IAAIizD,EAAS,KAAK,OACdqlP,GAASqJ,EAAwB/uR,EAAQ,eAAiB,KAAO+uR,EAAwB,KAAK,KAAK,UAEnG9hT,EAAQ,KAAK,OAAO,OAAO,OAAO,KAAKG,CAAK,EAAE,OAAOpqB,GAAK,KAAK,OAAO,QAAQA,CAAC,IAAM,EAAE,CAAC,EAExFgsU,EAAoB,GAEpBC,EAAe79R,GAAS,CAAE,EAAE4O,EAAS,CACvC,OAAQgvR,EACR,aAAchvR,EAAQ,cAAgB,EAC5C,CAAK,EAEGkvR,EAAY,GAEhB,UAAWj7S,KAAQhH,EAAO,CACxB,IAAIsyD,EAAQc,EAAOpsD,CAAI,EACnBk7S,EAASp3P,GAAI3qD,EAAO6G,CAAI,EAE5B,GAAIsrD,EAAO,CACT,IAAImL,EACArH,EAAaj2D,EAAM6G,CAAI,EAE3Bg7S,EAAa,MAAQjvR,EAAQ,KAAO,GAAGA,EAAQ,IAAI,IAAM,IAAM/rB,EAE/DsrD,EAAQA,EAAM,QAAQ,CACpB,MAAO8D,EACP,QAASrjC,EAAQ,QACjB,OAAQgvR,CAClB,CAAS,EACD,IAAII,EAAY,SAAU7vP,EAAQA,EAAM,KAAO,OAC3CwuI,EAASqhH,GAAa,KAAO,OAASA,EAAU,OAEpD,GAAIA,GAAa,MAAgBA,EAAU,MAAO,CAChDF,EAAYA,GAAaj7S,KAAQ7G,EACjC,QACD,CAEDs9D,EAAa,CAAC1qC,EAAQ,cAAgB,CAAC+tK,EACvCxuI,EAAM,KAAKnyD,EAAM6G,CAAI,EAAGg7S,CAAY,EAAI7hT,EAAM6G,CAAI,EAE9Cy2D,IAAe,SACjBskP,EAAkB/6S,CAAI,EAAIy2D,EAEpC,MAAiBykP,GAAU,CAACzJ,IACpBsJ,EAAkB/6S,CAAI,EAAI7G,EAAM6G,CAAI,GAGlC+6S,EAAkB/6S,CAAI,IAAM7G,EAAM6G,CAAI,IACxCi7S,EAAY,GAEf,CAED,OAAOA,EAAYF,EAAoB5hT,CACxC,CAED,UAAU89G,EAAQggD,EAAO,GAAIt3J,EAAU,CACrC,IAAI2pD,EAAS,GACT,CACF,KAAAs7L,EACA,KAAAvsP,EAAO,CAAE,EACT,cAAAq/R,EAAgBzgL,EAChB,WAAA1pD,EAAa,KAAK,KAAK,WACvB,UAAA6tP,EAAY,KAAK,KAAK,SACvB,EAAGnkJ,EACJ5+J,EAAO,CAAC,CACN,OAAQ,KACR,MAAOq/R,CACb,EAAO,GAAGr/R,CAAI,EAGV4+J,EAAK,aAAe,GACpBA,EAAK,cAAgBygI,EACrBzgI,EAAK,KAAO5+J,EAEZ,MAAM,UAAU4+G,EAAQggD,EAAM,CAACt/J,EAAKwB,IAAU,CAC5C,GAAIxB,EAAK,CACP,GAAI,CAACqpS,GAAgB,QAAQrpS,CAAG,GAAK41D,EACnC,OAAO,KAAK5tD,EAAShI,EAAKwB,CAAK,EAGjCmwD,EAAO,KAAK3xD,CAAG,CAChB,CAED,GAAI,CAACyjT,GAAa,CAAC/3P,GAASlqD,CAAK,EAAG,CAClCwG,EAAS2pD,EAAO,CAAC,GAAK,KAAMnwD,CAAK,EACjC,MACD,CAEDu+R,EAAgBA,GAAiBv+R,EAEjC,IAAIioS,EAAQ,KAAK,OAAO,IAAIxyR,GAAO,CAACsO,EAAGnoC,IAAO,CAC5C,IAAI85B,EAAOD,EAAI,QAAQ,GAAG,IAAM,IAAMqoJ,EAAK,KAAO,GAAGA,EAAK,IAAI,IAAM,IAAMroJ,EAAM,GAAGqoJ,EAAK,MAAQ,EAAE,KAAKroJ,CAAG,KACtG08C,EAAQ,KAAK,OAAO18C,CAAG,EAE3B,GAAI08C,GAAS,aAAcA,EAAO,CAChCA,EAAM,SAASnyD,EAAMyV,CAAG,EAAGuO,GAAS,CAAE,EAAE85I,EAAM,CAE5C,KAAApoJ,EACA,KAAAxW,EAIA,OAAQ,GACR,OAAQc,EACR,cAAeu+R,EAAc9oR,CAAG,CAC5C,CAAW,EAAG75B,CAAE,EACN,MACD,CAEDA,EAAG,IAAI,CACf,CAAO,EAEDmsT,GAAS,CACP,KAAAt8C,EACA,MAAAw8C,EACA,MAAAjoS,EACA,OAAAmwD,EACA,SAAUiE,EACV,KAAM,KAAK,YACX,KAAM0pG,EAAK,IACZ,EAAEt3J,CAAQ,CACjB,CAAK,CACF,CAED,MAAM6wS,EAAM,CACV,MAAMhoP,EAAO,MAAM,MAAMgoP,CAAI,EAC7B,OAAAhoP,EAAK,OAASrrC,GAAS,CAAE,EAAE,KAAK,MAAM,EACtCqrC,EAAK,OAAS,KAAK,OACnBA,EAAK,eAAiB,KAAK,eAC3BA,EAAK,YAAc,KAAK,YACjBA,CACR,CAED,OAAO2jL,EAAQ,CACb,IAAI3jL,EAAO,MAAM,OAAO2jL,CAAM,EAC1BkvE,EAAa7yP,EAAK,OAEtB,OAAS,CAAC8C,EAAOgwP,CAAW,IAAK,OAAO,QAAQ,KAAK,MAAM,EAAG,CAC5D,MAAM/5S,EAAS85S,EAAW/vP,CAAK,EAE3B/pD,IAAW,OACb85S,EAAW/vP,CAAK,EAAIgwP,EACX/5S,aAAkBgvS,IAAc+K,aAAuB/K,KAChE8K,EAAW/vP,CAAK,EAAIgwP,EAAY,OAAO/5S,CAAM,EAEhD,CAED,OAAOinD,EAAK,aAAa,IAAMA,EAAK,MAAM6yP,EAAY,KAAK,cAAc,CAAC,CAC3E,CAED,qBAAsB,CACpB,IAAIE,EAAM,GAEV,YAAK,OAAO,QAAQ3sS,GAAO,CACzB,MAAM08C,EAAQ,KAAK,OAAO18C,CAAG,EAC7B2sS,EAAI3sS,CAAG,EAAI,YAAa08C,EAAQA,EAAM,WAAY,EAAG,MAC3D,CAAK,EAEMiwP,CACR,CAED,aAAc,CACZ,GAAI,YAAa,KAAK,KACpB,OAAO,MAAM,cAIf,GAAK,KAAK,OAAO,OAIjB,OAAO,KAAK,qBACb,CAED,MAAMC,EAAWnB,EAAW,GAAI,CAC9B,IAAI7xP,EAAO,KAAK,QACZ4D,EAAS,OAAO,OAAO5D,EAAK,OAAQgzP,CAAS,EACjD,OAAAhzP,EAAK,OAAS4D,EACd5D,EAAK,YAAciyP,GAAe,OAAO,KAAKruP,CAAM,CAAC,EAEjDiuP,EAAS,SAEN,MAAM,QAAQA,EAAS,CAAC,CAAC,IAAGA,EAAW,CAACA,CAAQ,GACrD7xP,EAAK,eAAiB,CAAC,GAAGA,EAAK,eAAgB,GAAG6xP,CAAQ,GAG5D7xP,EAAK,OAAS2xP,IAAW/tP,EAAQ5D,EAAK,cAAc,EAC7CA,CACR,CAED,KAAKvQ,EAAM,CACT,MAAMwjQ,EAAS,GAEf,UAAW7sS,KAAOqpC,EACZ,KAAK,OAAOrpC,CAAG,IAAG6sS,EAAO7sS,CAAG,EAAI,KAAK,OAAOA,CAAG,GAGrD,OAAO,KAAK,QAAQ,aAAa45C,IAC/BA,EAAK,OAAS,GACPA,EAAK,MAAMizP,CAAM,EACzB,CACF,CAED,KAAKxjQ,EAAM,CACT,MAAMuQ,EAAO,KAAK,QACZ4D,EAAS5D,EAAK,OACpBA,EAAK,OAAS,GAEd,UAAW55C,KAAOqpC,EAChB,OAAOmU,EAAOx9C,CAAG,EAGnB,OAAO45C,EAAK,aAAa,IAAMA,EAAK,MAAM4D,CAAM,CAAC,CAClD,CAED,KAAK/zD,EAAMD,EAAI0/L,EAAO,CACpB,IAAI4jH,EAAa99S,UAAOvF,EAAM,EAAI,EAClC,OAAO,KAAK,UAAUi5D,GAAO,CAC3B,GAAIA,GAAO,KAAM,OAAOA,EACxB,IAAIqqP,EAASrqP,EAEb,OAAIxN,GAAIwN,EAAKj5D,CAAI,IACfsjT,EAASx+R,GAAS,GAAIm0C,CAAG,EACpBwmI,GAAO,OAAO6jH,EAAOtjT,CAAI,EAC9BsjT,EAAOvjT,CAAE,EAAIsjT,EAAWpqP,CAAG,GAGtBqqP,CACb,CAAK,CACF,CAED,UAAUC,EAAU,GAAMlwP,EAAUmuI,GAAO,UAAW,CAChD,OAAO+hH,GAAY,WACrBlwP,EAAUkwP,EACVA,EAAU,IAGZ,IAAIpzP,EAAO,KAAK,KAAK,CACnB,KAAM,YACN,UAAW,GACX,QAASkD,EAET,KAAKvyD,EAAO,CACV,GAAIA,GAAS,KAAM,MAAO,GAC1B,MAAM0iT,EAAcnB,IAAQ,KAAK,OAAQvhT,CAAK,EAC9C,MAAO,CAACyiT,GAAWC,EAAY,SAAW,GAAK,KAAK,YAAY,CAC9D,OAAQ,CACN,QAASA,EAAY,KAAK,IAAI,CAC/B,CACX,CAAS,CACF,CAEP,CAAK,EACD,OAAArzP,EAAK,KAAK,UAAYozP,EACfpzP,CACR,CAED,QAAQszP,EAAQ,GAAMpwP,EAAUmuI,GAAO,UAAW,CAChD,OAAO,KAAK,UAAU,CAACiiH,EAAOpwP,CAAO,CACtC,CAED,cAAcnjB,EAAI,CAChB,OAAO,KAAK,UAAU+oB,GAAOA,GAAO4nP,IAAQ5nP,EAAK,CAACp0C,EAAGtO,IAAQ25B,EAAG35B,CAAG,CAAC,CAAC,CACtE,CAED,WAAY,CACV,OAAO,KAAK,cAAcoqS,GAAS,CACpC,CAED,WAAY,CACV,OAAO,KAAK,cAAc3B,EAAS,CACpC,CAED,cAAe,CACb,OAAO,KAAK,cAAczoS,GAAOyoS,GAAUzoS,CAAG,EAAE,YAAW,CAAE,CAC9D,CAED,UAAW,CACT,IAAImJ,EAAO,MAAM,WACjB,OAAAA,EAAK,OAASo2R,GAAU,KAAK,OAAQh1S,GAASA,EAAM,SAAQ,CAAE,EACvD4e,CACR,CAEH,CACO,SAASwhG,GAAOi3L,EAAM,CAC3B,OAAO,IAAIqK,GAAarK,CAAI,CAC9B,CACAj3L,GAAO,UAAYshM,GAAa,UC7ThC,MAAMkB,IAA+BA,CAAC,CACpCj3S,OACAF,eACAo3S,kBACArrB,eACF,IAAM,CACE,MAAE9hT,KAAMyzK,GAAe,EACvB,CAAE9kE,SAAUsC,GAAS,EACrB,CAACm8N,EAAYC,CAAa,EAAIzxR,WAAS,UAAU,EACjD,CAAC6lQ,EAAS6rB,CAAU,EAAI1xR,WAAS,IAAI,EAE3CA,WAAS,CAAE,GACX,KAAM,CAAC+kN,EAASC,CAAU,EAAIhlN,WAAS,EAAI,EACrC2xR,EAAmBC,GAAW,EAAE7qM,MAAM,CAC1CrzG,KAAMk+S,GACI,EACPrhS,SACCnsC,EAAE,0CAA2C,qBAAqB,CACpE,EACFytU,UAAWD,GACD,EACPrhS,SACCnsC,EAAE,wCAAyC,wBAAwB,CACrE,EACF0tU,aAAcF,KAEXG,WACA/jQ,UAAWt/C,GAAWysD,MAAMzsD,CAAK,EAAI,KAAOA,CAAM,EAClD6hB,SAASnsC,EAAE,oCAAqC,kBAAkB,CAAC,EACnE4tU,UAAU5tU,EAAE,oCAAqC,kBAAkB,CAAC,EACvE6tU,aAAcL,GACJ,EACPrhS,SACCnsC,EACE,2CACA,2BACF,CACF,EACF8tU,kBAAmBN,GACT,EACPrhS,SACCnsC,EACE,2CACA,8BACF,CACF,EACCwuH,QACC,uDACAxuH,EACE,kCACA,wCACF,CACF,EACH,EACKqsC,EAAOihD,GAAQ,CACnB5G,SAAUqnP,GAAYR,CAAgB,EACtCl1P,cAAe,CACb/oD,KAAM,GACNm+S,UAAW,MACXC,aAAc,EACdG,aAAc,GACdC,kBAAmB,GACnBE,4BAA6B,EAC/B,EACD,EAEKC,EAAsB,SAAY,CAChCnvE,SACHh0K,OAAO,wBAAwBqiP,EAAgBjgU,EAAE,EAAE,EACnDggF,KAAc8nH,GAAA,CACC8sG,IACD/rR,GAAA,CACd,GAGC+tR,EAAuB,SAAY,CACvCljD,EAAW,EAAI,EACX,IACF,MAAM5rD,EAAM,MAAM8pD,GAAM5vO,IACtB,wBAAwBi+S,iBAAiBjgU,EAAE,EAC7C,EACAogU,EAAWt4H,EAAIp4J,IAAI,EACnBvQ,EAAK1a,SAAS,OAAQqjL,EAAIp4J,KAAKttB,IAAI,EACnC+c,EAAK1a,SAAS,YAAaqjL,EAAIp4J,KAAK4mQ,SAAS,EAC7Cn3Q,EAAK1a,SAAS,YAAaqjL,EAAIp4J,KAAK6wR,WAAa,KAAK,EACtDphS,EAAK1a,SAAS,eAAgBqjL,EAAIp4J,KAAK8wR,YAAY,EACnDrhS,EAAK1a,SAAS,eAAgBqjL,EAAIp4J,KAAKixR,YAAY,EAC9Cl8S,WACH,oBACAu7M,GAAOl4B,EAAIp4J,KAAKkxR,kBAAmB,YAAY,EAAEjqN,OAAO,YAAY,CACtE,EACAx3E,EAAK1a,SAAS,8BAA+BqjL,EAAIp4J,KAAKsxR,UAAU,EAEhEttE,EAAW,EAAK,QACT93O,EAAK,CACZi3J,QAAQouJ,IAAIrlT,CAAG,EACf83O,EAAW,EAAK,CAClB,GAGF13L,YAAU,KACJjzC,IAAQk3S,WAAiBjgU,KACN42S,IAEhB,IAAM,CACXwpB,EAAW,IAAI,IAEhB,CAACr3S,EAAMk3S,CAAe,CAAC,EAEpBptB,QAAWh9C,GAAc,oBAAoB,EAE7CzrL,EAAW,MAAO16B,GAAS,SAC/B,MAAMwxR,EAAU,CACd,GAAGxxR,EACHkxR,kBAAmB5gG,GAAOtwL,EAAKkxR,kBAAmB,YAAY,EAAEjqN,OAC9D,YACF,GAEF+8I,EAAW,EAAI,EACX,IACF,MAAM9B,GAAMkC,IAAI,wBAAwBmsE,EAAgBjgU,EAAE,GAAIkhU,CAAO,EACxDr4S,IACC+rR,UACPh5R,EAAK,CACN6lF,EAAA,CACJplE,QAAS,QACT8nE,OAAOvoF,OAAIqtL,SAASv5J,OAAb9zB,cAAmB2xD,OAAO,KAA1B3xD,cAA8B+zD,QACtC,SACO,CACR+jL,EAAW,EAAK,CAClB,GAEIytE,EAAmBvmB,GAAgBz7Q,EAAK4vC,QAAQ,EAEtD,SACG57B,GAAK,CAACpqB,OAAYF,eAA2B3L,WAC3C+4E,GAAY,CACXrrC,KAAMioP,EAAW,SAAW,QAC5B9iR,UAAU,kCAAiC7S,UAE1CgjT,IAAe,cACdpuR,GAAA,CAAA50B,SAAA,CACEwe,EAACw6D,GAAW,CAACnmE,UAAU,MAAK7S,WACzBk5E,GAAU,CAAAl5E,SAAEpqB,EAAE,4BAA4B,EAAc,EAC9C,EACb8oC,EAAA,OAAK7L,UAAU,4BAA2B7S,UACxC0e,EAAA,OAAK7L,UAAU,+DAA8D7S,SAAA,CAC3Ewe,EAAC48Q,GAAW,CACVvoR,UAAU,iBACVwoR,YAAahE,iBAASY,SACvB,EACDv5Q,EAAA,OAAK7L,UAAU,+CAA8C7S,UAC3Dwe,EAAA,MAAI3L,UAAU,oCAAmC7S,SAC9Cq3R,iBAAS+B,UACR,EACJ56Q,EAAA,MAAI3L,UAAU,uBAAwB,EACtC2L,EAAA,MAAI3L,UAAU,mDAAkD7S,SAC7Dq3R,iBAASnyR,KACR,CAAC,EACF,CAAC,EACH,EACLwZ,EAAA,OAAK7L,UAAU,iDAAgD7S,UAC7Dwe,EAAA,MAAI3L,UAAU,qCAAoC7S,SAC/CpqB,EAAE,sBAAsB,EACvB,EACJ8oC,EAAA,OAAK7L,UAAU,yCAAwC7S,UACrDwe,EAAA,UACEomD,QAASA,IAAMq+O,EAAc,MAAM,EACnC,aAAW,UACXpwS,UAAU,iHAAgH7S,WAE1H,OACE8M,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,UAElCwe,EAAA,KAAG0lS,SAAS,yBAAwBlkT,WAClC,QACE7oB,EAAE,64BACF4sC,OAAO,UACPpR,YAAY,IACZwzD,cAAc,QACdniD,eAAe,QAChB,EACA,EACHxF,EAAA,QAAAxe,WACE,YAAUld,GAAG,mBAAkBkd,WAC7B,QAAM8M,MAAM,KAAKF,OAAO,KAAKiX,KAAK,QAAS,EACnC,EACN,CAAC,EACJ,EACC,EACRrF,EAAC+6Q,GAAY,CACXC,eACE,UACE,aAAW,UACX3mR,UAAU,iHAAgH7S,WAE1H,OACE8M,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,kTACF4sC,OAAO,UACPpR,YAAY,IACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EACC,EAEVyrQ,GAAIA,IAAM,CACYo0B,GACtB,EACA7wE,KAAMp9P,EAAE,yCAAyC,EAClD,CAAC,EACC,CAAC,EACH,EACL8oC,EAAA,OAAK7L,UAAU,2EAA0E7S,UACvFwe,EAAA,OAAK3L,UAAU,8BAA6B7S,WAC1C,MAAI6S,UAAU,iDAAgD7S,SAC3DpqB,EAAE,6BAA6B,EAC9B,EACD,EACL4oC,EAAA,OAAK3L,UAAU,oEAAmE7S,WAChF,OAAK6S,UAAU,8GAA6G7S,UAC1Hwe,EAAA,MAAI3L,UAAU,wCAAuC7S,SAClDpqB,EAAE,8BAA8B,EAC/B,EACJ4oC,EAAA,QAAM3L,UAAU,iEAAgE7S,SAC7E8iN,GAAOu0E,iBAAS8sB,gBAAiB,YAAY,EAAE1qN,OAC9C,cACF,EACI,CAAC,EACJ,EACF,CAAC,EACH,EACL/6E,EAAA,OAAK7L,UAAU,6DAA4D7S,UACzEwe,EAAA,OAAK3L,UAAU,8BAA6B7S,WAC1C,MAAI6S,UAAU,iDAAgD7S,SAC3DpqB,EAAE,wBAAwB,EACzB,EACD,EACL8oC,EAAA,OAAK7L,UAAU,uCAAsC7S,SAAA,CACnDwe,EAACi7Q,GAAY,CACXC,uBACAniQ,SAAU,CACRi1H,IAAK6qI,iBAAS+sB,WACdl/S,KAAMtvB,EAAE,8BAA8B,EACtCiuB,KAAM,SACR,EACAwzR,UACD,EACD74Q,EAACi7Q,GAAY,CACXC,uBACAniQ,SAAU,CACRi1H,IAAK6qI,iBAASgtB,YACdn/S,KAAMtvB,EAAE,+BAA+B,EACvCiuB,KAAM,UACR,EACAwzR,UACD,EACD74Q,EAACi7Q,GAAY,CACXC,uBACAniQ,SAAU,CACRi1H,IAAK6qI,iBAASitB,WACdp/S,KAAMtvB,EAAE,8BAA8B,EACtCiuB,KAAM,SACR,EACAwzR,UACD,CAAC,EACC,CAAC,EACH,CAAC,EACH,CAAC,CACN,GAEH2rB,IAAe,SACbzsE,IACC,OAAK1jO,UAAU,gEAA+D7S,WAC5E,OACE,cAAY,OACZ6S,UAAU,8EACViR,QAAQ,cACRD,KAAK,OACLD,MAAM,6BAA4B5jB,UAElCwe,EAAA,QACErnC,EAAE,+WACF0sC,KAAK,eACN,EACDrF,EAAA,QACErnC,EAAE,glBACF0sC,KAAK,cACN,CAAC,EACC,EACF,EAELnF,EAAAkW,GAAA,CAAA50B,SAAA,CACEwe,EAACw6D,GAAW,CAACnmE,UAAU,MAAK7S,WACzBk5E,GAAU,CAAAl5E,SAAEpqB,EAAE,gCAAgC,EAAc,EAClD,EACb4oC,EAACglD,GAAI,IAAKvhD,EAAIjiB,WACZ,QACEktD,SAAUjrC,EAAKw/C,aAAavU,CAAQ,EACpCr6C,UAAU,0BAAyB7S,SAAA,CAEnCwe,EAACklD,GAAS,CACRvgD,QAASlB,EAAKkB,QACdje,KAAK,OACLmuD,OAAQA,CAAC,CAAEhB,aACR4R,GAAQ,CAAAjkE,SAAA,CACPwe,EAAC6kD,GAAK,CAAArjE,SAAEpqB,EAAE,0BAA0B,EAAS,EAC7C4oC,EAAC4lD,GAAW,CAAApkE,WACTkrC,GAAK,IAAKmnB,EAAQ,CACR,GACb7zC,EAAC8lD,KAAa,CAAC,EACP,EAEb,EAED9lD,EAACklD,GAAS,CACRvgD,QAASlB,EAAKkB,QACdje,KAAK,eACLmuD,OAAQA,CAAC,CAAEhB,aACR4R,GAAQ,CAAAjkE,SAAA,CACPwe,EAAC6kD,GAAK,CAAArjE,SAAEpqB,EAAE,uBAAuB,EAAS,EAC1C4oC,EAAC4lD,GAAW,CAAApkE,WACTm8R,GAAe,CACdE,UAAWp6Q,EAAK08C,YAAY0kP,UAC5BnjT,MAAOmyD,EAAMnyD,MACb+G,SAAUorD,EAAMprD,SAChBm1R,aAAel8R,GACb+hB,EAAK1a,SAAS,YAAarH,CAAK,EAEnC,CACU,GACbse,EAAC8lD,KAAa,CAAC,EACP,EAEb,EACD9lD,EAACklD,GAAS,CACRvgD,QAASlB,EAAKkB,QACdje,KAAK,eACLmuD,OAAQA,CAAC,CAAEhB,aACR4R,GAAQ,CAAAjkE,SAAA,CACPwe,EAAC6kD,GAAK,CAAArjE,SAAEpqB,EAAE,6BAA6B,EAAS,EAChD4oC,EAAC4lD,GAAW,CAAApkE,WACTkrC,GAAK,CAACrnC,KAAK,SAAQ,GAAKwuD,EAAQ,CACtB,GACb7zC,EAAC8lD,KAAa,CAAC,EACP,EAEb,EACD9lD,EAACklD,GAAS,CACRvgD,QAASlB,EAAKkB,QACdje,KAAK,oBACLmuD,OAAQA,CAAC,CAAEhB,aACR4R,GAAQ,CAAAjkE,SAAA,CACPwe,EAAC6kD,GAAK,CAAArjE,SAAEpqB,EAAE,2BAA2B,EAAS,EAC9C4oC,EAAC4lD,GAAW,CAAApkE,WACTkrC,GAAK,CACJrnC,KAAK,MAAK,GACNwuD,EAAK,GACL4xP,EAAiB,oBAAqB,CACxC3mB,KAAM,aACP,EACF,CACU,GACb9+Q,EAAC8lD,KAAa,CAAC,EACP,EAEb,EACD5lD,EAAA,OAAK7L,UAAU,yBAAwB7S,SAAA,CACrCwe,EAAC8B,GAAM,CACLzc,KAAK,SACLsb,QAAQ,gBACRylD,QAASA,IAAMq+O,EAAc,UAAU,EAAEjjT,SAExCpqB,EAAE,aAAa,EACV,EACR4oC,EAAC8B,GAAM,CAACzc,KAAK,SAAS6H,SAAU6qO,EAAQv2O,SACrCpqB,EAAE,aAAa,EACV,CAAC,EACN,CAAC,EACF,EACF,CAAC,CACP,GACF,EACQ,EACT,CAEX,EClaA,SAAS2uU,IAAuB,CAAEC,qBAAoB9sB,eAAc,EAAG,CAC/D,MACJ+sB,4BACAC,+BACAC,4BACAC,+BACA/sB,yBACAthD,WACE0gD,GAAS,EAEP4tB,EAAiCxtB,GAAA,CACrCqtB,EAA6BrtB,CAAO,EACpCutB,EAA6B,EAAI,GAGnC,OAAIruE,IAEA,OAAK1jO,UAAU,uBAAsB7S,UACnCwe,EAAA,MAAI3L,UAAU,uEAAsE7S,SACjFpqB,GAAE,iCAAiC,EAClC,EACJ4oC,EAAA,OAAK3L,UAAU,oDAAmD7S,SAC/D,CAAC,GAAGqqD,MAAM,CAAC,CAAC,EAAElnD,IAAI,CAAC8gB,EAAGnjB,IACpBu4R,KAAqBv4R,IAAQ,CAC/B,EACE,CAAC,EACH,IAKP,OAAK+R,UAAU,uBAAsB7S,UACnCwe,EAAA,MAAI3L,UAAU,uEAAsE7S,SACjFpqB,GAAE,iCAAiC,CAClC,GACHy0E,MAAMC,QAAQk6P,CAAkB,GAAKA,EAAmB1oR,OAAS,EAC/Do9O,KAAOr5H,IAAG,CAAChtI,UAAU,oDAAmD7S,SACtEwkT,EAAmBrhT,IAAI,CAACk0R,EAASv2R,MAC/B23R,GAAW,CAEV7zN,QAASA,IAAMigP,EAAkBxtB,CAAO,EACxCA,UACA5kR,MAAM,IACNimR,SAAU,EAAM,EAJX53R,CAKN,CACF,EACS,EAEZ0d,EAAC+5Q,GAAS,CACR1lR,UAAU,wBACVo0E,MAAOrxG,GAAE,qBAAqB,EAC9BsxG,YAAatxG,GAAE,0BAA0B,EAAEoqB,WAE1CsgB,GAAM,CACLskD,QAASA,IAAM,CACbizN,EAAuB,EAAI,CAC7B,EAAE73R,SAEDpqB,GAAE,mCAAmC,EAChC,EACC,EAEb4oC,EAACskS,IAA4B,CAC3Bj3S,KAAM84S,EACNh5S,aAAci5S,EACd7B,gBAAiB0B,EACjB/sB,gBACD,CAAC,EACC,CAET,CClFA,MAAMle,IAAkBz5Q,GAA0B4lN,gBAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAG5lN,CAAO,EAAkB4lN,EAAmB,cAAC,OAAQ,CAAE,EAAG,64BAA84B,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,EAAC,ECqBzsCm/F,IAAgBA,CAAC,CAAE9rB,cAAapjT,EAAGyhT,UAAS1rR,cAAa,IAAM,CAC7D,MAAE+rR,iBAAkBqtB,GAAa,EACjCC,EAAgB,SAAY,CAC5B,IACItwE,SAAM5J,KAAK,wCAAyC,CACxDm6E,4BAA6B5tB,EAAQv0S,GACtC,EACa40S,IACD/rR,UACNymD,EAAO,CACNA,cAAM,2BAA4BA,CAAK,CACjD,GAGF,SACE,OAAKv/C,UAAU,iDAAgD7S,UAC7Dwe,EAAA,MAAI3L,UAAU,qCAAoC7S,SAC/CpqB,EAAE,sBAAsB,EACvB,EACJ8oC,EAAA,OAAK7L,UAAU,yCAAwC7S,SAAA,CACrD0e,EAACgpC,GAAW,CAAA1nD,SAAA,CACVwe,EAACupC,GAAkB,CAAC7/C,QAAO,GAAAlI,WACzB,UAAQ6S,UAAU,yCAAwC7S,SAAA,CACxDwe,EAACy7P,IAAW,CAACpnQ,UAAU,qHAAsH,EAC7I2L,EAAA,QACE3L,UAAU,oDACV+xD,QAAgBluF,KAAEq/P,gBAAgB,EAAE/1O,SAEnCpqB,EAAE,gBAAgB,EACf,CAAC,EACD,EACU,EACpB8oC,EAAC6pC,GAAkB,CAAAvoD,SAAA,CACjBwe,EAACqrC,GAAiB,CAAA7pD,WACf2oD,GAAgB,CAAA3oD,SACdpqB,EAAE,kCAAkC,EACrB,EACD,EACnB8oC,EAACorC,GAAiB,CAACj3C,UAAU,sBAAqB7S,SAAA,CAChDwe,EAAC4qC,GAAiB,CAAAppD,SAAEpqB,EAAE,eAAe,EAAqB,EAC1D4oC,EAACwqC,GAAiB,CAAC4b,QAASogP,EAAchlT,SACvCpqB,EAAE,gBAAgB,EACF,CAAC,EACH,CAAC,EACF,CAAC,EACV,EACb8oC,EAAC68I,GAAI,CACHp8J,GAAI,4BAA4Bk4R,EAAQv0S,EAAE,GAC1C+vB,UAAU,yCACV+xD,QAAgBluF,KAAEq/P,gBAAgB,EAAE/1O,SAAA,CAEpCwe,EAAC0mS,IAAQ,CAACryS,UAAU,qHAAsH,EAC1I2L,EAAA,QACE3L,UAAU,oDACV+xD,QAAgBluF,KAAEq/P,gBAAgB,EAAE/1O,SAEnCpqB,EAAE,qBAAsB,oBAAoB,EACzC,CAAC,EACH,CAAC,EACJ,CAAC,EACH,CAET,EChFMuvU,IAAkBA,CAAC,CAAEC,oBAAmBC,sBAAqBzvU,GAAE,IAAM,CACzE,MAAMsiL,EAAWlF,KAEXymI,EAAeA,CAAC,CAAEzpR,YAEpB,OAAK6C,UAAU,+FAA8F7S,UAC3G0e,EAAA,OAAK7L,UAAU,0BAAyB7S,UACtCwe,EAAA,OAAKk7F,IAAK4/K,GAAgBzmR,UAAU,YAAY,iBAAa,EAC7D2L,EAAA,OAAK3L,UAAU,sBAAqB7S,WAClC,MAAI6S,UAAU,qCAAoC7S,SAAEgQ,EAAK9K,KAAS,EAC/D,CAAC,EACH,EACLsZ,EAAA,UACEomD,QAASA,IAAMszF,EAAS,qBAAqBloJ,EAAKs1S,WAAW,EAAE,EAC/D,aAAW,QACXzyS,UAAU,gDAA+C7S,WAEzD,OACE8M,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,+GACF4sC,OAAO,UACPpR,YAAY,OACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EACC,CAAC,EACN,EAIT,SACE4Q,GAAA,CAAA50B,UACGolT,EAAkB7gT,OAAgB29J,KAAIp/K,KAAO,IAAI,EAAEg5C,SAAW,EAC7Dpd,EAAA,OAAK7L,UAAU,6DAA4D7S,UACzEwe,EAAA,OAAK3L,UAAU,8BAA6B7S,WAC1C,MAAI6S,UAAU,+CAA8C7S,SACzDpqB,EAAE,iBAAiB,EAClB,EACD,EACL8oC,EAAA,OAAK7L,UAAU,mEAAkE7S,UAC/Ewe,EAAA,OACE1R,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAGH,EACLpF,EAAA,KAAG3L,UAAU,wBAAuB7S,SACjCpqB,EACC,oFACF,EACC,CAAC,EACD,CAAC,EACH,EAEL8oC,EAAA,OAAK7L,UAAU,6DAA4D7S,UACzEwe,EAAA,OAAK3L,UAAU,8BAA6B7S,WAC1C,MAAI6S,UAAU,+CAA8C7S,SACzDpqB,EAAE,gCAAgC,EACjC,EACD,EACL4oC,EAAA,OAAK3L,UAAU,uCAAsC7S,SAClDolT,EACE7gT,OAAgB29J,KAAIp/K,KAAO,IAAI,EAC/BqgB,IACCqb,KAACi7Q,EAAY,CAAezpR,QAATA,EAAKltB,EAAiB,CAC1C,EACA,CAAC,CACH,GAEN,CAACuiU,EAAoB1vP,MAAeusG,KAAIojJ,cAAgB,IAAI,GAC3D5mS,EAAA,OAAK7L,UAAU,6DAA4D7S,UACzEwe,EAAA,OAAK3L,UAAU,8BAA6B7S,WAC1C,MAAI6S,UAAU,+CAA8C7S,SACzDpqB,EAAE,6BAA6B,EAC9B,EACD,EACL4oC,EAAA,OAAK3L,UAAU,uCAAsC7S,SAClDqlT,EAAoBliT,OAEjB6M,EAAKs1S,eAAgB7rB,EAAY,CAAezpR,QAATA,EAAKltB,EAAiB,CACjE,EACG,CAAC,EACH,CACN,EACD,CAEN,EC7FMyiU,IAAiBA,CAAC,CAAEluB,UAAS9gD,SAAQ,IAAM,WACzC,MAAE3gQ,KAAMyzK,GAAe,EACvB6O,EAAWlF,KAEjB,OAAIujF,IAEA,OAAK1jO,UAAU,6EAA4E7S,UACzFwe,EAAA,OAAK3L,UAAU,qCAA0C,EACzD6L,EAAA,OAAK7L,UAAU,+CAA8C7S,UAC3Dwe,EAAA,OAAK3L,UAAU,+BAAoC,EACnD2L,EAAA,OAAK3L,UAAU,+BAAoC,EACnD2L,EAAA,OAAK3L,UAAU,oCAAyC,EACxD2L,EAAA,OAAK3L,UAAU,qCAA0C,CAAC,EACvD,CAAC,EACH,IAKP,OAAKA,UAAU,+DAA8D7S,SAAA,CAC3Ewe,EAAC48Q,GAAW,CAACC,YAAahE,EAAQY,SAAW,EAC7Cv5Q,EAAA,OAAK7L,UAAU,2BAA0B7S,UACvCwe,EAAA,MAAI3L,UAAU,mDAAkD7S,SAC7DpqB,IACCyhT,mBAASY,WAATZ,cAAmBprO,MAAM,KAAKgP,MAAMylF,UAAU22I,iBAAS6B,aACzD,EACE,EACJ16Q,EAAA,MAAI3L,UAAU,oCAAmC7S,SAAEq3R,EAAQnyR,IAAS,KACnEmyR,IAAQmuB,mBAARnuB,cAA0BouB,yBACzB,OAAK5yS,UAAU,sBAAqB7S,SAAA,CAClC0e,EAACsmD,GAAG,CAACnyD,UAAU,OAAOH,KAAK,KAAKyM,QAAQ,QAAOnf,UAC7Cwe,EAAA,OACE1R,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,gwBACF4sC,OAAO,UACP,eAAa,MACb,iBAAe,QACf,kBAAgB,QACjB,EACE,EAEJnuC,EAAE,mCAAoC,CACrC2/N,OAAO8hF,mBAASmuB,mBAATnuB,cAA2BouB,qBACnC,CAAC,EACC,EACLjnS,EAAC8B,GAAM,CACL5N,KAAK,KACLkyD,QAASA,IACPszF,gBACE,sBAAqBm/H,mBAASmuB,mBAATnuB,cAA2BquB,iBAAiB,EACnE,GACD1lT,SAEApqB,EAAE,+BAA+B,EAC5B,CAAC,EACN,CACN,EACE,CAAC,EACH,CAET,ECzEM+vU,IAAiBA,CAAC,CAAE3sB,cAAapjT,EAAGyhT,SAAQ,IAAM,CACtD,MAAMuuB,EAAU,CACd,CACExjF,OACE,OACEt1N,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,qwBACF4sC,OAAO,UACPpR,YAAY,UACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EAEP4gD,QAASA,IAAMo0N,EAAYpjT,EAAE,6BAA6B,CAAC,GAE7D,CACEwsP,OACE,OACEt1N,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,ohCACF4sC,OAAO,UACPpR,YAAY,UACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EAEP4gD,QAASA,IAAMo0N,EAAYpjT,EAAE,6BAA6B,CAAC,GAE7D,CACEwsP,OACE,OACEt1N,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,07BACF4sC,OAAO,UACPpR,YAAY,UACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EAEP4gD,QAASA,IAAMo0N,EAAYpjT,EAAE,6BAA6B,CAAC,GAE7D,CACEwsP,OACE,OACEt1N,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,qgBACF4sC,OAAO,UACPpR,YAAY,UACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EAEP4gD,QAASA,IAAMo0N,EAAYpjT,EAAE,6BAA6B,CAAC,EAC5D,EAGH,SACE,OAAKi9B,UAAU,iDAAgD7S,UAC7Dwe,EAAA,MAAI3L,UAAU,qCAAoC7S,SAC/CpqB,EAAE,iCAAiC,EAClC,EACJ4oC,EAAA,OAAK3L,UAAU,yCAAwC7S,SACpD4lT,EAAQziT,IAAI,CAACgf,EAAQrhB,MACpB,UAEE8jE,QAASziD,EAAOyiD,QAChB,aAAYhvF,EAAE,6BAA6BkrB,EAAQ,CAAC,EAAE,EACtD+R,UAAU,iHAAgH7S,SAEzHmiB,EAAOigN,IAAI,EALPthO,CAMC,CACT,EACE,CAAC,EACH,CAET,ECrGM+kT,IAAeA,CAAC,CAAExuB,UAASzhT,CAAE,IAAM,OACvC,SACE,OAAKi9B,UAAU,kEAAiE7S,UAC9Ewe,EAAA,OAAK3L,UAAU,8BAA6B7S,WAC1C,MAAI6S,UAAU,+CAA8C7S,SACzDpqB,EAAE,UAAU,EACX,EACD,EACL4oC,EAAA,OAAK3L,UAAU,kCAAiC7S,UAC7Cq3R,mBAASyuB,YAATzuB,cAAoBl0R,IAAI,CAAC6M,EAAMlP,MAC9B,KACE4rJ,KAAM18I,EAAK+1S,SAEXz9S,OAAO,SACPuK,UAAU,yEAAwE7S,UAElFwe,EAAA,OAAK3L,UAAU,kFAAiF7S,WAC9F,OACE4jB,MAAM,6BACN9W,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLE,OAAO,eACP,eAAa,IACb,iBAAe,QACf,kBAAgB,QAChBiiS,MAAM,4BAA2BhmT,UAEjCwe,EAAA,UAAQI,GAAG,KAAKo1G,GAAG,KAAKr+I,EAAE,KAAM,EAChC6oC,EAAA,WAASsgE,OAAO,wBAAyB,CAAC,EACvC,EACF,EACLtgE,EAAA,KAAG3L,UAAU,0CAAyC7S,SACnDgQ,EAAKi2S,WAAWnqR,OAAS,GACtB9rB,EAAKi2S,WAAWx7P,UAAU,EAAG,EAAE,EAAI,MACnCz6C,EAAKi2S,WACR,CAAC,GAzBCnlT,CA0BJ,EACJ,CACE,CAAC,EACH,CAET,ECtCMolT,IAAkBA,CAAC,CAAE7uB,UAASzhT,EAAG2gQ,SAAQ,IAAM,SACnD,OAAIA,IAEA,OAAK1jO,UAAU,oFAAmF7S,WAChG,OAAK6S,UAAU,+CAA8C7S,UAC3Dwe,EAAA,OAAK3L,UAAU,+BAAoC,EACnD2L,EAAA,OAAK3L,UAAU,+BAAoC,EACnD2L,EAAA,OAAK3L,UAAU,oCAAyC,EACxD2L,EAAA,OAAK3L,UAAU,qCAA0C,CAAC,EACvD,EACF,IAIP,OAAKA,UAAU,2EAA0E7S,UACvF0e,EAAA,OAAK7L,UAAU,8BAA6B7S,UAC1Cwe,EAAA,MAAI3L,UAAU,+CAA8C7S,SACzDpqB,EAAE,6BAA6B,EAC9B,EACJ4oC,EAAA,OAAK3L,UAAU,0BAAyB7S,WACtC,QAAM6S,UAAU,oHAAmH7S,UACjIwe,EAAA,OACE1R,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,owBACF4sC,OAAO,UACPpR,YAAY,IACZwzD,cAAc,QACdniD,eAAe,QAChB,EACE,EACJ,GAAGqzQ,EAAQ4B,oBAAoB,IAAIrjT,EAAE,kBAAkB,CAAC,EAAE,EACvD,EACH,CAAC,EACH,EACL8oC,EAAA,OAAK7L,UAAU,oEAAmE7S,SAAA,CAChFwe,EAAC2nS,GAAS,CACRl/N,MAAOrxG,EAAE,6BAA6B,EACtCsqB,QACE00B,GAAA,CAAA50B,SAAA,GACGq3R,mBAASmuB,mBAATnuB,cAA2BouB,yBACzBzqO,GAAe,CAACE,cAAe,GAAGl7E,WAChC87E,GAAO,CAAA97E,SAAA,CACNwe,EAACg+D,GAAc,CAAC,aAAW,OAAMx8E,WAC/B,OACE8M,MAAM,KACNF,OAAO,KACPkX,QAAQ,YACRD,KAAK,OACLD,MAAM,6BAA4B5jB,WAElC,QACE7oB,EAAE,kwBACF4sC,OAAO,UACP,eAAa,MACb,iBAAe,QACf,kBAAgB,QACjB,EACE,EACS,EAChBvF,EAACm+D,GAAc,CAAA38E,SACZpqB,EAAE,gCAAiC,CAClC2/N,OAAO8hF,mBAASmuB,mBAATnuB,cAA2BouB,qBACnC,EACa,CAAC,EACV,EACM,EAElBpuB,EAAQ4B,qBAAqB,IAAErjT,EAAE,kBAAkB,CAAC,EACrD,EAEL,EACD4oC,EAAC2nS,GAAS,CACRl/N,MAAOrxG,EAAE,qBAAsB,OAAO,EACtCsqB,MAAOm3R,EAAQ+uB,YAChB,IACA/uB,iBAASgvB,iBACPF,GAAS,CACRl/N,MAAOrxG,EAAE,4BAA6B,SAAS,EAC/CsqB,MAAOm3R,EAAQgvB,aAChB,CACF,EACE,CAAC,EACH,CAET,EAEMF,GAAYA,CAAC,CAAEl/N,QAAO/mF,OAAM,MAE9B,OAAK2S,UAAU,yGAAwG7S,UACrHwe,EAAA,MAAI3L,UAAU,wCAAuC7S,SAAEinF,EAAU,EACjEzoE,EAAA,QAAM3L,UAAU,iEAAgE7S,SAC7EE,EACG,CAAC,EACJ,ECxGIomT,IAAet2J,GACT0kF,GAAM,IAAI,gCAAiC,CAAE,OAAA1kF,CAAM,CAAE,EAK3Du2J,IAAiC,MAAOC,IAClC,MAAM9xE,GAAM,IAAI,kCAAmC,CAClE,OAAQ,CAAE,4BAA6B8xE,CAAW,CACtD,CAAG,GAEe,KCSZC,IAA6BA,CAAC,CAClC56S,OACAF,eACAo3S,iBACF,IAAM,OACE,MAAEntU,IAAGyxK,QAASgC,GAAe,EAC7B,CAACguI,EAAS6rB,CAAU,EAAI1xR,WAAS,CAAE,GACnC,CAAC+kN,EAASC,CAAU,EAAIhlN,WAAS,EAAK,EACtC,CAAC6zR,EAAqBqB,CAAsB,EAAIl1R,WAAS,CAAE,GAC3D,CAAC4zR,EAAmBuB,CAAoB,EAAIn1R,WAAS,CAAE,GACvD,CAAE+yD,SAAUsC,GAAS,EACrB8uM,EAAWh9C,GAAc,oBAAoB,EAEnD75L,YAAU,KACJjzC,IAAQk3S,WAAiBjgU,MACP8jU,IACGC,KAGlB,IAAM,CACX3D,EAAW,CAAE,GACbwD,EAAuB,CAAE,GACzBC,EAAqB,CAAE,KAExB,CAAC96S,EAAMk3S,iBAAiBjgU,EAAE,CAAC,EAE9B,MAAM8jU,EAAsB,SAAY,WACtCpwE,EAAW,EAAI,EACX,IACF,MAAM5rD,EAAM,MAAM8pD,GAAM5vO,IACtB,iCAAiCi+S,iBAAiBjgU,EAAE,EACtD,EAEA,GAAI8nM,WAAKp4J,KAAM,CACb,MAAMs0R,EAAsB,MAAMP,IAChCxD,iBAAiBjgU,EACnB,EAEWogU,EAAA,CACT,GAAGt4H,EAAIp4J,KACPgzR,iBAAkBsB,EACnB,OAED5D,EAAW,CAAE,GAGfwD,EAAuB,CACrB,CACE5jU,GAAI,EACJoiB,KAAMtvB,EAAE,+BAA+B,EACvC0vU,aAAa16H,mBAAKp4J,OAALo4J,cAAWm8H,iBAE1B,CACEjkU,GAAI,EACJoiB,KAAMtvB,EAAE,8BAA8B,EACtC0vU,aAAa16H,mBAAKp4J,OAALo4J,cAAWo8H,gBAE1B,CACElkU,GAAI,EACJoiB,KAAMtvB,EAAE,8BAA8B,EACtC0vU,aAAa16H,mBAAKp4J,OAALo4J,cAAWq8H,cACzB,EACF,QACMvoT,EAAK,CACZi3J,QAAQouJ,IAAIrlT,CAAG,SACP,CACR,MAAM,IAAIshE,QAAS4qF,GAAY3tH,WAAW2tH,EAAS,GAAG,CAAC,EACvD4rF,EAAW,EAAK,CAClB,GAGIqwE,EAAyB,SAAY,CACrC,IAIF,IAAIK,GAHQ,MAAMxyE,GAAM5vO,IACtB,oEAAoEi+S,iBAAiBjgU,EAAE,EACzF,GACoB0vC,KAEf00R,EAAUp4P,QAAcozG,EAAIr+J,OAAS,mBAAmB,GAC3DqjT,EAAUlqR,KAAK,CACbl6C,GAAI,IACJoiB,KAAMtvB,EAAE,+BAA+B,EACvCiuB,KAAM,oBACNyhT,YAAa,yEAAyEvC,iBAAiBjgU,EAAE,SAASukK,EAAKm+D,QAAQ,GAC/HywB,cAAehsL,KACfk9P,cAAel9P,IAAK,CACrB,EAEH08P,EAAqBO,CAAS,QACvBxoT,EAAK,CACZi3J,QAAQouJ,IAAIrlT,CAAG,CACjB,GAGIs6R,EAAuB58G,GAAA,CACrB73F,EAAA,CACJ2C,YAAak1F,EACbj9J,QAAS,UACV,GAGH,SACG8W,GAAK,CAACpqB,OAAYF,eAA2B3L,WAC3C+4E,GAAY,CACXrrC,KAAMioP,EAAW,SAAW,QAC5B9iR,UAAU,iCAAgC7S,SAAA,CAE1Cwe,EAACw6D,GAAW,CAAAh5E,WACTk5E,GAAU,CAAAl5E,SAAEpqB,EAAE,4BAA4B,EAAc,EAC9C,EACb8oC,EAAA,OAAK7L,UAAU,uBAAsB7S,SAAA,CACnCwe,EAAC+mS,IAAc,CAAChvE,UAAkB8gD,UAAmB,EACrD74Q,EAACsmS,IAAa,CACZ9rB,cACArtR,eACA/1B,IACAyhT,UACA9gD,UACD,EACD/3N,EAACmnS,IAAc,CAAC3sB,cAA0BpjT,IAAO,EACjD4oC,EAAC0nS,IAAe,CAAC3vE,UAAkB8gD,UAAkBzhT,IAAO,EAC5D4oC,EAAC2mS,IAAe,CACdC,oBACAC,sBACAzvU,IACD,IACAyhT,mBAASyuB,YAATzuB,cAAoBv7P,QAAS,KAC3B+pR,IAAY,CAACxuB,UAAkBzhT,IAAO,CACxC,EACE,CAAC,EACM,EACT,CAEX,EChJA,SAASwxU,IAAqB,CAAEC,mBAAkB3vB,eAAc,EAAG,CAC3D,MACJ4vB,0BACAC,6BACAC,0BACAC,6BACAlxE,WACEuhD,GAAgB,EAEd+sB,EAAiCxtB,GAAA,CACrCkwB,EAA2BlwB,CAAO,EAClCowB,EAA2B,EAAI,GAOjC,OAJA3oQ,YAAU,IAAM,CACA44O,GAChB,EAAG,CAAE,GAEDnhD,IAEA,OAAK1jO,UAAU,uBAAsB7S,UACnCwe,EAAA,MAAI3L,UAAU,uEAAsE7S,SACjFpqB,GAAE,+BAA+B,EAChC,EACJ4oC,EAAA,OAAK3L,UAAU,oDAAmD7S,SAC/D,CAAC,GAAGqqD,MAAM,CAAC,CAAC,EAAElnD,IAAI,CAAC8gB,EAAGnjB,IACpBu4R,KAAqBv4R,IAAQ,CAC/B,EACE,CAAC,EACH,IAKP,OAAK+R,UAAU,uBAAsB7S,UACnCwe,EAAA,MAAI3L,UAAU,uEAAsE7S,SACjFpqB,GAAE,+BAA+B,EAChC,EACHyxU,EAAiBvrR,OAAS,EACzBtd,EAAC06P,GAAOr5H,IAAG,CAAChtI,UAAU,oDAAmD7S,SACtEqnT,EAAiBlkT,IAAI,CAACk0R,EAASv2R,MAC7B23R,GAAW,CACVpB,UACAzyN,QAASA,IAAMigP,EAAkBxtB,CAAO,CAAE,EACrCv2R,CACN,CACF,EACS,EAEZ0d,EAAC+5Q,GAAS,CACR1lR,UAAU,wBACVo0E,MAAOrxG,GAAE,qBAAqB,EAC9BsxG,YAAatxG,GAAE,yBAAyB,EAC9B,EAEd4oC,EAACioS,IAA0B,CACzB1D,gBAAiBuE,EACjBz7S,KAAM27S,EACN77S,aAAc87S,EACf,CAAC,EACC,CAET,CCjDA,MAAMC,IAAcA,CAAC,CAAEhwB,eAAc,IAAM,mBACnC,MAAE9hT,GAAMyzK,GAAe,EACvB,CACJ+tI,UACAO,aACAgwB,kBACA/vB,qBACAgwB,uBACAC,2BACE/vB,GAAgB,EAEd,CAACgwB,EAAgBC,CAAiB,EAAIv2R,WAAS,CAAE,GACjD,CAAC2pQ,EAAY6sB,CAAa,EAAIx2R,WAAS,CAAE,GACzC,CAACy2R,EAAeC,CAAgB,EAAI12R,WAAS,CAAE,GAC/C,CAAC22R,EAAmBC,CAAoB,EAAI52R,WAAS,CAAE,GAEvD62R,EAAoBA,IAAM,CAC9BP,EAAehsR,SAAW,GACxB44M,GACG5vO,IAAI,kBAAkB,EACtBg+D,KAAc8nH,GAAA,CACbm9H,EAAkBn9H,EAAIp4J,IAAI,EAC3B,EACAy4M,MAAevsO,GAAA,CACdi3J,QAAQouJ,IAAIrlT,CAAG,EAChB,GAGPogD,YAAU,IAAM,CACIupQ,GACpB,EAAG,CAAE,GAEL,MAAMC,EAA0B5xU,GAAA,CACNmxU,EAAA,CACtB,GAAGD,EACH1iT,KAAMxuB,EAAE4xB,OAAOpI,MAChB,GAGGqoT,EAAkC7xU,GAAA,CACtC,MAAM4jR,EAAYwtD,EAAe/kT,SAAeiN,iBAAMltB,MAAOpM,CAAC,EAAEwuB,KAExC2iT,EAAA,CACtB,GAAGD,EACH5vB,aAAc,CACZ9yR,KAAMo1P,EACNx3Q,GAAIpM,CACN,EACAuhT,SAAU,CACR/yR,KAAM,GACNpiB,GAAI,EACN,EACAo1S,YAAa,CACXhzR,KAAM,GACNpiB,GAAI,EACN,EACA84R,MAAO,CACL12Q,KAAM,GACNpiB,GAAI,EACN,EACD,EAED4xP,GACG5vO,IAAI,cAAe,CAClBkrJ,OAAQ,CACNw4J,eAAgB9xU,CAClB,EACD,EACAosF,KAAc8nH,GAAA,CACbo9H,EAAcp9H,EAAIp4J,IAAI,EACvB,EACAy4M,MAAevsO,GAAA,CACdi3J,QAAQouJ,IAAIrlT,CAAG,EAChB,GAGC+pT,EAA8B/xU,GAAA,CAClC,MAAM4jR,EAAY6gC,EAAWp4R,SAAeiN,iBAAMltB,MAAOpM,CAAC,EAAEwuB,KAEpC2iT,EAAA,CACtB,GAAGD,EACH3vB,SAAU,CACR/yR,KAAMo1P,EACNx3Q,GAAIpM,CACN,EACAwhT,YAAa,CACXhzR,KAAM,GACNpiB,GAAI,EACN,EACA84R,MAAO,CACL12Q,KAAM,GACNpiB,GAAI,EACN,EACD,EAED4xP,GACG5vO,IAAI,kBAAmB,CACtBkrJ,OAAQ,CACN8zJ,WAAYptU,CACd,EACD,EACAosF,KAAc8nH,GAAA,CACbs9H,EAAiBt9H,EAAIp4J,IAAI,EAC1B,EACAy4M,MAAevsO,GAAA,CACdi3J,QAAQouJ,IAAIrlT,CAAG,EAChB,GAGCgqT,EAAiChyU,GAAA,CACrC,MAAM4jR,EAAY2tD,EAAcllT,SAAeiN,iBAAMltB,MAAOpM,CAAC,EAAEwuB,KAEvC2iT,EAAA,CACtB,GAAGD,EACH1vB,YAAa,CACXhzR,KAAMo1P,EACNx3Q,GAAIpM,CACN,EACAklS,MAAO,CACL12Q,KAAM,GACNpiB,GAAI,EACN,EACD,EAED4xP,GACG5vO,IAAI,uBAAwB,CAC3BkrJ,OAAQ,CACN24J,cAAejyU,CACjB,EACD,EACAosF,KAAc8nH,GAAA,CACbw9H,EAAqBx9H,EAAIp4J,IAAI,EAC9B,EACAy4M,MAAevsO,GAAA,CACdi3J,QAAQouJ,IAAIrlT,CAAG,EAChB,GAGCkqT,EAA2BlyU,GAAA,CAC/B,MAAM4jR,EAAY6tD,EAAkBplT,SAAeiN,iBAAMltB,MAAOpM,CAAC,EAAEwuB,KAE3C2iT,EAAA,CACtB,GAAGD,EACHhsC,MAAO,CACL12Q,KAAMo1P,EACNx3Q,GAAIpM,CACN,EACD,GAGGmyU,EAAsBf,EAAe3kT,IAAmB80R,IAAA,CAC5D/3R,MAAO+3R,iBAAUn1S,GACjB64B,MAAOs8Q,EAAS/yR,IAChB,IAEI4jT,EAAkB3tB,EAAWh4R,IAAmB80R,IAAA,CACpD/3R,MAAO+3R,iBAAUn1S,GACjB64B,MAAOs8Q,EAAS/yR,IAChB,IAEI6jT,EAAqBd,EAAc9kT,IAAmB80R,IAAA,CAC1D/3R,MAAO+3R,iBAAUn1S,GACjB64B,MAAOs8Q,EAAS/yR,IAChB,IAEI8jT,EAA0Bb,EAAkBhlT,IAAgBy4Q,IAAA,CAChE17Q,MAAO07Q,iBAAO94R,GACd64B,MAAOigQ,EAAM12Q,IACb,IAEF45C,YAAU,IAAM,UACV8oQ,mBAAsB5vB,eAAtB4vB,QAAoC9kU,IACtC4xP,GACG5vO,IAAI,cAAe,CAClBkrJ,OAAQ,CACNw4J,gBAAgBZ,mBAAsB5vB,eAAtB4vB,cAAoC9kU,EACtD,EACD,EACAggF,KAAc8nH,GAAA,CACbo9H,EAAcp9H,EAAIp4J,IAAI,EACvB,EACAy4M,MAAevsO,GAAA,CACdi3J,QAAQouJ,IAAIrlT,CAAG,EAChB,CAEJ,IAACkpT,mBAAsB5vB,eAAtB4vB,cAAoC9kU,EAAE,CAAC,EAE3Cg8D,YAAU,IAAM,cACV8oQ,mBAAsB3vB,WAAtB2vB,QAAgC9kU,IAClC4xP,GACG5vO,IAAI,kBAAmB,CACtBkrJ,OAAQ,CACN8zJ,YAAY8D,mBAAsB3vB,WAAtB2vB,cAAgC9kU,EAC9C,EACD,EACAggF,KAAc8nH,GAAA,CACbs9H,EAAiBt9H,EAAIp4J,IAAI,EAC1B,EACAy4M,MAAevsO,GAAA,CACdi3J,QAAQouJ,IAAIrlT,CAAG,EAChB,GAGDkpT,mBAAsB1vB,cAAtB0vB,QAAmC9kU,IACrC4xP,GACG5vO,IAAI,uBAAwB,CAC3BkrJ,OAAQ,CACN24J,eAAef,mBAAsB1vB,cAAtB0vB,cAAmC9kU,EACpD,EACD,EACAggF,KAAc8nH,GAAA,CACbw9H,EAAqBx9H,EAAIp4J,IAAI,EAC9B,EACAy4M,MAAevsO,GAAA,CACdi3J,QAAQouJ,IAAIrlT,CAAG,EAChB,CACL,EACC,EACDkpT,mBAAsB3vB,WAAtB2vB,cAAgC9kU,IAChC8kU,mBAAsB1vB,cAAtB0vB,cAAmC9kU,EAAE,CACtC,EAED,MAAMmmU,EAAeA,IAAM,gBACzB,MAAMC,EAAiB,CACrB,GAAG9xB,EACHlyR,MAAM0iT,iBAAsB1iT,OAAQ,GACpC8yR,eAAc4vB,mBAAsB5vB,eAAtB4vB,cAAoC1iT,OAAQ,GAC1D+yR,WAAU2vB,mBAAsB3vB,WAAtB2vB,cAAgC1iT,OAAQ,GAClDgzR,cAAa0vB,mBAAsB1vB,cAAtB0vB,cAAmC1iT,OAAQ,GACxDikT,mBAAkBvB,mBAAsBuB,mBAAtBvB,cAAwC1iT,OAAQ,GAClE02Q,QAAOgsC,oBAAsBhsC,QAAtBgsC,eAA6B1iT,OAAQ,IAG9CyyR,EAAWuxB,CAAc,EACzBxxB,EAAcwxB,CAAc,GAGxBvzB,EAAWh9C,GAAc,oBAAoB,EAEnD,SACG1iN,GAAK,CAACpqB,KAAM87S,EAAiBh8S,aAAcisR,EAAmB53R,WAC5D+4E,GAAY,CACXrrC,KAAMioP,EAAW,SAAW,QAC5B9iR,UAAU,iCAAgC7S,SAAA,CAE1Cwe,EAACw6D,GAAW,CAAAh5E,WACTk5E,GAAU,CAAAl5E,SAAEpqB,EAAE,eAAe,EAAc,EACjC,EACb8oC,EAAA,OAAK7L,UAAU,2BAA0B7S,UACvC0e,EAAA,OAAK7L,UAAU,sBAAqB7S,SAAA,CAClCwe,EAAC6kD,GAAK,CAAArjE,SAAEpqB,EAAE,oBAAoB,EAAS,EACvC4oC,EAAC0sB,GAAK,CACJhrC,MAAO0nT,iBAAsB1iT,KAC7B+B,SAAiBqhT,KAAiB5xU,CAAC,EACpC,CAAC,EACC,EACLgoC,EAAA,OAAK7L,UAAU,sBAAqB7S,SAAA,CAClCwe,EAAC6kD,GAAK,CAAArjE,SAAEpqB,EAAE,qBAAqB,EAAS,EACxC8oC,EAACwtD,GAAM,CACLr9D,cAA0B3O,GAAA,CACxBqoT,EAAyBroT,CAAK,CAChC,EACAwL,SAAUo8S,EAAehsR,SAAW,EACpCltB,eAAcg5S,mBAAsB5vB,eAAtB4vB,cAAoC9kU,KAAM,GAAGkd,SAAA,CAE3Dwe,EAACwuD,GAAa,CAAAhtE,SACZwe,EAACsvD,GAAa,IACD,EACftvD,EAAC+vD,GAAa,CAAAvuE,SACX6oT,EAAoB1lT,IAAI,CAAC80R,EAAUn3R,MAE/B+zE,GAAU,CAAa30E,MAAO+3R,EAAS/3R,MAAMF,SAC3CpqB,EAAEqiT,EAASt8Q,KAAK,GADF7a,CAEL,CAEf,EACY,CAAC,EACV,CAAC,EACN,EACL4d,EAAA,OAAK7L,UAAU,sBAAqB7S,SAAA,CAClCwe,EAAC6kD,GAAK,CAAArjE,SAAEpqB,EAAE,iBAAiB,EAAS,EACpC8oC,EAACwtD,GAAM,CACLr9D,cAA0B3O,GAAA,CACxBuoT,EAAqBvoT,CAAK,CAC5B,EACAwL,SAAUyvR,EAAWr/P,SAAW,EAChCltB,eAAcg5S,mBAAsB3vB,WAAtB2vB,cAAgC9kU,KAAM,GAAGkd,SAAA,CAEvDwe,EAACwuD,GAAa,CAAAhtE,SACZwe,EAACsvD,GAAa,IACD,EACftvD,EAAC+vD,GAAa,CAAAvuE,SACX8oT,EAAgB3lT,IAAI,CAAC80R,EAAUn3R,MAE3B+zE,GAAU,CAAa30E,MAAO+3R,EAAS/3R,MAAMF,SAC3CpqB,EAAEqiT,EAASt8Q,KAAK,GADF7a,CAEL,CAEf,EACY,CAAC,EACV,CAAC,EACN,EACL4d,EAAA,OAAK7L,UAAU,sBAAqB7S,SAAA,CAClCwe,EAAC6kD,GAAK,CAAArjE,SAAEpqB,EAAE,oBAAoB,EAAS,EACvC8oC,EAACwtD,GAAM,CACLr9D,cAA0B3O,GAAA,CACxBwoT,EAAwBxoT,CAAK,CAC/B,EACAwL,SAAUu8S,EAAcnsR,SAAW,EACnCltB,eAAcg5S,mBAAsB1vB,cAAtB0vB,cAAmC9kU,KAAM,GAAGkd,SAAA,CAE1Dwe,EAACwuD,GAAa,CAAAhtE,SACZwe,EAACsvD,GAAa,IACD,EACftvD,EAAC+vD,GAAa,CAAAvuE,SACX+oT,EAAmB5lT,IAAI,CAAC80R,EAAUn3R,MAE9B+zE,GAAU,CAAa30E,MAAO+3R,EAAS/3R,MAAMF,SAC3CpqB,EAAEqiT,EAASt8Q,KAAK,GADF7a,CAEL,CAEf,EACY,CAAC,EACV,CAAC,EACN,EACL4d,EAAA,OAAK7L,UAAU,sBAAqB7S,SAAA,CAClCwe,EAAC6kD,GAAK,CAAArjE,SAAEpqB,EAAE,cAAc,EAAS,EACjC8oC,EAACwtD,GAAM,CACLr9D,cAA0B3O,GAAA,CACxB0oT,EAAkB1oT,CAAK,CACzB,EACAwL,SAAUy8S,EAAkBrsR,SAAW,EACvCltB,eAAcg5S,mBAAsBhsC,QAAtBgsC,cAA6B9kU,KAAM,GAAGkd,SAAA,CAEpDwe,EAACwuD,GAAa,CAAAhtE,SACZwe,EAACsvD,GAAa,IACD,EACftvD,EAAC+vD,GAAa,CAAAvuE,SACXgpT,EAAwB7lT,IAAI,CAAC80R,EAAUn3R,MAEnC+zE,GAAU,CAAa30E,MAAO+3R,EAAS/3R,MAAMF,SAC3Ci4R,EAASt8Q,OADK7a,CAEL,CAEf,EACY,CAAC,EACV,CAAC,EACN,CAAC,EACH,EACL0d,EAACy6D,GAAW,CAACpmE,UAAU,OAAM7S,WAC1BsgB,GAAM,CACLskD,QAASA,IAAM,CACAqkP,IACbrxB,EAAmB,EAAK,CAC1B,EAAE53R,SAEDpqB,EAAE,aAAa,EACV,EACG,CAAC,EACF,EACT,CAEX,EClYewzU,IAAA,qwCCMFC,GAAiBA,CAAC,CAAEvqP,WAAU8F,UAAS50D,OAAMnM,MAAK,IAAM,CAC7D,MAAEjuB,KAAMyzK,GAAe,EAE7B,SACE,OAAKx2I,UAAU,6BAA4B7S,UACzCwe,EAAA,OACE3L,UAAWwL,GACT,wGACAygD,EACI,4BACA,uCACN,EACA8F,UAAiB5kE,WAEjB,OACE6S,UAAU,WACV6mG,IAAK1pG,EAAKs5S,SAAWF,IACrB3vM,IAAKzpG,EAAK9K,KACX,EACE,EACLsZ,EAAA,QACE3L,UAAWwL,GACT,yCACAygD,EAAW,iBAAmB,eAChC,EAAE9+D,SAED6D,IAAS,WACNjuB,EAAEo6B,EAAK9K,IAAI,EACX8K,EAAK9K,KAAK42B,OAAS,GACjB9rB,EAAK9K,KAAKulD,UAAU,EAAG,EAAE,EAAI,MAC7Bz6C,EAAK9K,KACP,CAAC,EACJ,CAET,ECxCaqkT,GAAa,CACxB,SAAU,EACV,MAAO,EACP,QAAS,EACT,KAAM,CACR,EAEaC,IAAsB,CACjC,UAAW,aAAa,QAAQ,SAAS,IAAM,KAAO,MAAQ,MAC9D,YAAa,GACb,aAAc,GACd,aAAc,EACd,qBAAsB,GACtB,MAAO,GACP,YAAa,GACb,SAAU,IACZ,ECdA,IAAIC,IAAY7kT,OAAOupD,eACnBu7P,IAAa9kT,OAAOotD,iBACpB23P,IAAoB/kT,OAAO63F,0BAC3BmtN,GAAsBhlT,OAAO23F,sBAC7BstN,GAAejlT,OAAOsmD,UAAUC,eAChC2+P,GAAellT,OAAOsmD,UAAU2xC,qBAChCktN,GAAkBA,CAAC1xP,EAAK1iD,EAAKzV,IAAUyV,KAAO0iD,EAAMoxP,IAAUpxP,EAAK1iD,EAAK,CAAEu8C,WAAY,GAAMwqC,aAAc,GAAMC,SAAU,GAAMz8F,OAAM,CAAC,EAAIm4D,EAAI1iD,CAAG,EAAIzV,EACtJ8pT,GAAiBA,CAAC5zU,EAAGK,IAAM,CAC7B,QAASswB,KAAQtwB,IAAMA,EAAI,CAAE,GACvBozU,GAAa/sN,KAAKrmH,EAAGswB,CAAI,GAC3BgjT,GAAgB3zU,EAAG2wB,EAAMtwB,EAAEswB,CAAI,CAAC,EACpC,GAAI6iT,GACF,QAAS7iT,KAAQ6iT,GAAoBnzU,CAAC,EAChCqzU,GAAahtN,KAAKrmH,EAAGswB,CAAI,GAC3BgjT,GAAgB3zU,EAAG2wB,EAAMtwB,EAAEswB,CAAI,CAAC,EAEtC,OAAO3wB,CACT,EACI6zU,IAAgBA,CAAC7zU,EAAGK,IAAMizU,IAAWtzU,EAAGuzU,IAAkBlzU,CAAC,CAAC,EAC5DyzU,GAAYA,CAACzvP,EAAQ0vP,IAAY,CACnC,IAAI7hT,EAAS,GACb,QAASvB,KAAQ0zD,EACXovP,GAAa/sN,KAAKriC,EAAQ1zD,CAAI,GAAKojT,EAAQvtN,QAAQ71F,CAAI,EAAI,IAC7DuB,EAAOvB,CAAI,EAAI0zD,EAAO1zD,CAAI,GAC9B,GAAI0zD,GAAU,MAAQmvP,GACpB,QAAS7iT,KAAQ6iT,GAAoBnvP,CAAM,EACrC0vP,EAAQvtN,QAAQ71F,CAAI,EAAI,GAAK+iT,GAAahtN,KAAKriC,EAAQ1zD,CAAI,IAC7DuB,EAAOvB,CAAI,EAAI0zD,EAAO1zD,CAAI,GAEhC,OAAOuB,CACT,EAGI8hT,IAAKxlT,OAAOupD,eACZk8P,IAAKzlT,OAAOotD,iBACZs4P,IAAK1lT,OAAO63F,0BACZ8tN,GAAK3lT,OAAO23F,sBACZiuN,GAAK5lT,OAAOsmD,UAAUC,eACtB40H,GAAKn7K,OAAOsmD,UAAU2xC,qBACtBiqG,GAAKA,CAAC1vN,EAAG5B,EAAGwpB,IAAMxpB,KAAK4B,EAAIgzU,IAAGhzU,EAAG5B,EAAG,CAAE08E,WAAY,GAAMwqC,aAAc,GAAMC,SAAU,GAAMz8F,MAAOlB,CAAE,CAAC,EAAI5nB,EAAE5B,CAAC,EAAIwpB,EACjHroB,GAAIA,CAACS,EAAG5B,IAAM,CAChB,QAASwpB,KAAKxpB,IAAMA,EAAI,CAAE,GACxBg1U,GAAG1tN,KAAKtnH,EAAGwpB,CAAC,GAAK8nM,GAAG1vN,EAAG4nB,EAAGxpB,EAAEwpB,CAAC,CAAC,EAChC,GAAIurT,GACF,QAASvrT,KAAKurT,GAAG/0U,CAAC,EAChBuqM,GAAGjjF,KAAKtnH,EAAGwpB,CAAC,GAAK8nM,GAAG1vN,EAAG4nB,EAAGxpB,EAAEwpB,CAAC,CAAC,EAClC,OAAO5nB,CACT,EACIC,GAAIA,CAACD,EAAG5B,IAAM60U,IAAGjzU,EAAGkzU,IAAG90U,CAAC,CAAC,EACzBi1U,GAAKA,CAACrzU,EAAG5B,IAAM,CACjB,IAAIwpB,EAAI,CAAE,EACV,QAAS7nB,KAAKC,EACZozU,GAAG1tN,KAAK1lH,EAAGD,CAAC,GAAK3B,EAAEonH,QAAQzlH,CAAC,EAAI,IAAM6nB,EAAE7nB,CAAC,EAAIC,EAAED,CAAC,GAClD,GAAIC,GAAK,MAAQmzU,GACf,QAASpzU,KAAKozU,GAAGnzU,CAAC,EAChB5B,EAAEonH,QAAQzlH,CAAC,EAAI,GAAK4oM,GAAGjjF,KAAK1lH,EAAGD,CAAC,IAAM6nB,EAAE7nB,CAAC,EAAIC,EAAED,CAAC,GACpD,OAAO6nB,CACT,EACIilB,GAAIA,CAAC7sC,EAAG5B,EAAGwpB,IAAM8nM,GAAG1vN,EAAG,OAAO5B,GAAK,SAAWA,EAAI,GAAKA,EAAGwpB,CAAC,EAC3DznB,GAAIA,CAACH,EAAG5B,EAAGwpB,IAAM,IAAIghE,QAAQ,CAAC7oF,EAAG4nB,IAAM,CACzC,IAAItnB,EAAKX,GAAM,CACb,GAAI,CACFG,EAAE+nB,EAAEuwD,KAAKz4E,CAAC,CAAC,CACb,OAASP,EAAG,CACVwoB,EAAExoB,CAAC,CACL,CACF,EAAGE,EAAKK,GAAM,CACZ,GAAI,CACFG,EAAE+nB,EAAE0rT,MAAM5zU,CAAC,CAAC,CACd,OAASP,EAAG,CACVwoB,EAAExoB,CAAC,CACL,CACF,EAAGU,EAAKH,GAAMA,EAAEghI,KAAO3gI,EAAEL,EAAEopB,KAAK,EAAI8/D,QAAQ4qF,QAAQ9zK,EAAEopB,KAAK,EAAE4iE,KAAKrrF,EAAGhB,CAAC,EACtEQ,GAAG+nB,EAAIA,EAAE01C,MAAMt9D,EAAG5B,CAAC,GAAG+5E,MAAM,CAC9B,CAAC,EACG29C,IAAK,KAAM,CACby9M,sBAAsBn1U,EAAG,CACvB,OAAOm1U,sBAAsBn1U,CAAC,CAChC,CACAo1U,qBAAqBp1U,EAAG,CACtBo1U,qBAAqBp1U,CAAC,CACxB,CACF,EACIq1U,IAAK,KAAM,CACb5/P,aAAc,CACZhnC,GAAE,KAAM,gBAAiB,CAAC,EAC1BA,GAAE,KAAM,iBAAkB,IAAI,CAChC,CACA0mS,sBAAsBn1U,EAAG,CACvB,OAAO,KAAKs1U,eAAiBrrP,OAAOqnO,mBAAqB,KAAKgkB,cAAgB,GAAI,KAAKA,eAAiB,EAAG,KAAKC,eAAiBrvI,aAAa,IAAM,CAClJlmM,EAAEy0E,KAAKu9G,KAAK,CACd,CAAC,EAAG,KAAKsjJ,aACX,CACAF,qBAAqBp1U,EAAG,CACtB,KAAKu1U,gBAAkBC,eAAe,KAAKD,cAAc,CAC3D,CACF,EACIE,IAAK,KAAM,CACbhgQ,aAAc,CACZhnC,GAAE,KAAM,WAAW,EACnB,KAAKinS,UAAY,OAAOP,uBAAyB,WAAa,IAAIz9M,IAAO,IAAI29M,GAC/E,CACAF,sBAAsBn1U,EAAG,CACvB,OAAW,KAAC01U,UAAUP,sBAAsBn1U,CAAC,CAC/C,CACAo1U,qBAAqBp1U,EAAG,CACtB,KAAK01U,UAAUN,qBAAqBp1U,CAAC,CACvC,CACF,EACIQ,GAAI,OAAOq1E,OAAU,KAAe,OAAOA,OAAO9zB,SAAY,IAC9D4zR,GAAK,IAAI/b,WAAW,CAAC,GAAI,GAAI,EAAG,CAAC,CAAC,EAClCgc,IAAK,CAAC,IAAK,KAAM,KAAM,SAAU,KAAM,IAAK,GAAG,EAC/CC,GAAK,SACLC,GAAK,6BACLC,IAAK,IACLC,KAAM,IAAM,CACd,IAAIh2U,EACA4B,EAAI,OAAOmgD,SAAY,KAAe/hD,EAAI+hD,SAASk0R,gBAAkB,KAAO,OAASj2U,EAAEkkI,IAAM,OACjG,OAAgB16G,WAAI,GAAI,CACtB,IAAI7nB,EAAG4nB,EAAIC,EAAGvnB,EAAGhB,EAAGQ,EAAI,IAAI+oF,QAAQ,CAACtpF,EAAGd,IAAM,CAC5C6B,EAAIf,EAAGD,EAAIb,CACb,CAAC,EAAGkB,EAAI8tB,OAAOitJ,OAAO,GAAI9yJ,CAAC,EAAGxoB,EAAI,iBAAkB2B,EAAI,GAAIuxS,EAC5D,OAAOlyP,SAAY,KAAeA,SAASk0R,gBAAkBvzU,EAAIq/C,SAASk0R,cAAc/xM,KAAMtiI,IAAMc,EAAId,GAAIc,EAAE82E,WAAW,OAAO,EAAI92E,EAAI,GAAKA,EAAIA,EAAEwzU,OAAO,EAAGxzU,EAAEo0E,QAAQ,SAAU,EAAE,EAAEq/P,YAAY,GAAG,EAAI,CAAC,EAAGliC,EAAM/yS,GAAMsuO,MAAMtuO,EAAG,CAAEk1U,YAAa,aAAc,CAAC,EAAE9oP,KAAMltF,GAAMA,EAAE6kB,GAAK7kB,EAAE8hM,YAAW,EAAK13G,QAAQi1G,OAAOhiJ,MAAMr9C,EAAEq/K,OAAS,MAAQr/K,EAAE42K,GAAG,CAAC,CAAC,EACrV,IAAIq/J,EAAK9sT,EAAE+sT,OAASn2J,QAAQouJ,IAAIrtP,KAAKi/F,OAAO,EAAGo2J,EAAKhtT,EAAEitT,UAAYr2J,QAAQvjG,MAAMsE,KAAKi/F,OAAO,EAC5F/wJ,OAAOitJ,OAAO9yJ,EAAGjoB,CAAC,EAAGA,EAAI,KAAMioB,EAAEktT,cAAgB11U,EAAIwoB,EAAEktT,aACvD,IAAIC,EAAKntT,EAAEotT,WAAYC,EAAIC,EAAK,GAAOC,EAAIC,EAAIt0U,EAAGo7Q,EAAIm5D,EAAI7xT,EAAGnkB,EAAGi2U,EAAIC,EACpE,SAASC,GAAK,CACZ,IAAIj2U,EAAI01U,EAAG/5R,OACXtzB,EAAE6tT,MAAQL,EAAK,IAAIM,UAAUn2U,CAAC,EAAGqoB,EAAE+tT,OAASz5D,EAAK,IAAI05D,WAAWr2U,CAAC,EAAGqoB,EAAEiuT,OAAS/0U,EAAI,IAAIm3T,WAAW14T,CAAC,EAAGqoB,EAAEkuT,QAAUT,EAAK,IAAIU,YAAYx2U,CAAC,EAAGqoB,EAAEouT,OAASxyT,EAAI,IAAIyyT,WAAW12U,CAAC,EAAGqoB,EAAEsuT,QAAU72U,EAAI,IAAI82U,YAAY52U,CAAC,EAAGqoB,EAAEwuT,QAAUd,EAAK,IAAIe,aAAa92U,CAAC,EAAGqoB,EAAE0uT,QAAUf,EAAK,IAAIgB,aAAah3U,CAAC,CAC5R,CACA,IAAIi3U,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAC3B,SAASC,GAAK,CACZ,IAAIp3U,EAAIqoB,EAAEgvT,OAAOt6Q,MAAK,EACtBk6Q,EAAGK,QAAQt3U,CAAC,CACd,CACA,IAAIoB,EAAI,EAAGm2U,EAAK,KAChB,SAASC,EAAGx3U,EAAG,CACb,IAAId,EACJ,MAAOA,EAAImpB,EAAEovT,UAAY,MAAQv4U,EAAEknH,KAAK/9F,EAAGroB,CAAC,EAAGA,EAAI,WAAaA,EAAI,IAAKq1U,EAAGr1U,CAAC,EAAG21U,EAAK,GAAM31U,EAAI,IAAI03U,YAAYC,aAAa33U,EAAI,0CAA0C,EAAGD,EAAEC,CAAC,EAAGA,CACrL,CACA,IAAI43U,EAAM53U,GAAMA,EAAEs4E,WAAW,uCAAuC,EAAGgxH,EACvE,SAAS5lE,EAAG1jI,EAAG,CACb,GAAIA,GAAKspM,GAAMksI,EACb,OAAW,IAAA9c,WAAW8c,CAAE,EAC1B,KAAM,iDACR,CACA,SAASqC,EAAG73U,EAAG,CACb,OAAOw1U,EAAKlsP,QAAQ4qF,QAAS,EAAC9nF,KAAK,IAAMs3C,EAAG1jI,CAAC,CAAC,EAAI+yS,EAAG/yS,CAAC,EAAEosF,KAAMltF,GAAM,IAAIw5T,WAAWx5T,CAAC,EAAG,IAAMwkI,EAAG1jI,CAAC,CAAC,CACpG,CACA,SAAS83U,EAAG93U,EAAGd,EAAGD,EAAG,CACnB,OAAO44U,EAAG73U,CAAC,EAAEosF,KAAM1sF,GAAMg4U,YAAYK,YAAYr4U,EAAGR,CAAC,CAAC,EAAEktF,KAAKntF,EAAIS,GAAM,CACrE21U,EAAG,0CAA0C31U,CAAC,EAAE,EAAG83U,EAAG93U,CAAC,CACzD,CAAC,CACH,CACA,SAASs4U,EAAGh4U,EAAGd,EAAG,CAChB,IAAID,EAAIqqM,EACR,OAAOksI,GAAM,OAAOkC,YAAYO,sBAAwB,YAAcL,EAAG34U,CAAC,GAAK,OAAOqvO,OAAS,WAAawpG,EAAG74U,EAAGe,EAAGd,CAAC,EAAIovO,MAAMrvO,EAAG,CAAEi2U,YAAa,aAAc,CAAC,EAAE9oP,KAAM1sF,GAAMg4U,YAAYO,qBAAqBv4U,EAAGM,CAAC,EAAEosF,KAAKltF,EAAG,SAAS89B,GAAG,CACxO,OAAOq4S,EAAG,kCAAkCr4S,EAAC,EAAE,EAAGq4S,EAAG,2CAA2C,EAAGyC,EAAG74U,EAAGe,EAAGd,CAAC,CAC/G,CAAC,CAAC,CACJ,CACA,SAASg5U,GAAGl4U,EAAG,CACb,KAAKwuB,KAAO,aAAc,KAAKutD,QAAU,gCAAgC/7E,CAAC,IAAK,KAAKu+K,OAASv+K,CAC/F,CACA,IAAIm4U,GAAMn4U,GAAM,CACd,KAAO,EAAIA,EAAEolD,QACXplD,EAAE+8D,QAAQ10C,CAAC,CACf,EAAG+vT,GAAK/vT,EAAEgwT,eAAiB,GAAMC,GAAK,OAAOC,YAAe,IAAc,IAAIA,YAAgB,OAAQxuI,GAAKA,CAAC/pM,EAAGd,EAAGD,IAAM,CACtH,IAAIS,EAAIR,EAAID,EACZ,IAAKA,EAAIC,EAAGc,EAAEf,CAAC,GAAK,EAAEA,GAAKS,IACzB,EAAET,EACJ,GAAI,GAAKA,EAAIC,GAAKc,EAAE27C,QAAU28R,GAC5B,OAAOA,GAAGE,OAAOx4U,EAAEy4U,SAASv5U,EAAGD,CAAC,CAAC,EACnC,IAAKS,EAAI,GAAIR,EAAID,GAAK,CACpB,IAAI+9B,GAAIh9B,EAAEd,GAAG,EACb,GAAI89B,GAAI,IAAK,CACX,IAAI79B,GAAIa,EAAEd,GAAG,EAAI,GACjB,IAAK89B,GAAI,MAAQ,IACft9B,GAAKmuF,OAAO6qP,cAAc17S,GAAI,KAAO,EAAI79B,EAAC,MACvC,CACH,IAAIyB,GAAIZ,EAAEd,GAAG,EAAI,GACjB89B,IAAKA,GAAI,MAAQ,KAAOA,GAAI,KAAO,GAAK79B,IAAK,EAAIyB,IAAKo8B,GAAI,IAAM,GAAK79B,IAAK,GAAKyB,IAAK,EAAIZ,EAAEd,GAAG,EAAI,GAAI,MAAQ89B,GAAIt9B,GAAKmuF,OAAO6qP,aAAa17S,EAAC,GAAKA,IAAK,MAAOt9B,GAAKmuF,OAAO6qP,aAAa,MAAQ17S,IAAK,GAAI,MAAQA,GAAI,IAAI,EACxN,CACF,MACEt9B,GAAKmuF,OAAO6qP,aAAa17S,EAAC,CAC9B,CACA,OAAOt9B,CACT,EACA,MAAMi5U,EAAG,CACPpkQ,YAAYr1E,EAAG,CACb,KAAKwE,GAAKxE,EAAI,EAChB,CACF,CACA,IAAI05U,GAAK,EAAGzoH,GAAKA,CAACnwN,EAAGd,EAAGD,IAAM,CAC5B,IAAIS,EAAI6B,EACR,GAAI,EAAItC,EAAG,CACTA,EAAIC,EAAID,EAAI,EACZ,QAAS+9B,GAAI,EAAGA,GAAIh9B,EAAEolD,OAAQ,EAAEpoB,GAAG,CACjC,IAAI79B,GAAIa,EAAE64U,WAAW77S,EAAC,EACtB,GAAI,OAAS79B,IAAK,OAASA,GAAG,CAC5B,IAAIyB,GAAIZ,EAAE64U,WAAW,EAAE77S,EAAC,EACxB79B,GAAI,QAAUA,GAAI,OAAS,IAAMyB,GAAI,IACvC,CACA,GAAI,KAAOzB,GAAG,CACZ,GAAID,GAAKD,EACP,MACFS,EAAER,GAAG,EAAIC,EACX,KAAO,CACL,GAAI,MAAQA,GAAG,CACb,GAAID,EAAI,GAAKD,EACX,MACFS,EAAER,GAAG,EAAI,IAAMC,IAAK,CACtB,KAAO,CACL,GAAI,OAASA,GAAG,CACd,GAAID,EAAI,GAAKD,EACX,MACFS,EAAER,GAAG,EAAI,IAAMC,IAAK,EACtB,KAAO,CACL,GAAID,EAAI,GAAKD,EACX,MACFS,EAAER,GAAG,EAAI,IAAMC,IAAK,GAAIO,EAAER,GAAG,EAAI,IAAMC,IAAK,GAAK,EACnD,CACAO,EAAER,GAAG,EAAI,IAAMC,IAAK,EAAI,EAC1B,CACAO,EAAER,GAAG,EAAI,IAAMC,GAAI,EACrB,CACF,CACAO,EAAER,CAAC,EAAI,CACT,CACF,EAAG45U,GAAK,GAAIC,GAAM/4U,GAAM,CACtB,KAAOA,EAAEolD,QAAU,CACjB,IAAIlmD,EAAIc,EAAEukF,IAAG,EACbvkF,EAAEukF,MAAMrlF,CAAC,CACX,CACF,EACA,SAAS85U,GAAGh5U,EAAG,CACb,OAAO,KAAKi5U,aAAan5U,EAAEE,GAAK,CAAC,CAAC,CACpC,CACA,IAAImpM,GAAK,GAAI+vI,GAAK,GAAIC,GAAK,GAAIC,GAAIz3U,GAAIA,CAAC3B,EAAGd,EAAGD,IAAM,CAClD,SAASS,EAAEb,GAAG,CACZ,GAAIA,GAAII,EAAEJ,EAAC,EAAGA,GAAEumD,SAAWplD,EAAEolD,OAC3B,MAAU,IAAAg0R,GAAG,iCAAiC,EAChD,QAASr6U,GAAI,EAAGA,GAAIiB,EAAEolD,OAAQ,EAAErmD,GAC9BoB,GAAEH,EAAEjB,EAAC,EAAGF,GAAEE,EAAC,CAAC,CAChB,CACAiB,EAAE+kD,QAASlmD,IAAMs6U,GAAGt6U,EAAC,EAAIK,CAAC,EAC1B,IAAI89B,GAAI22C,MAAMz0E,EAAEkmD,MAAM,EAAGjmD,GAAI,CAAE,EAAEyB,GAAI,EACrC1B,EAAE6lD,QAAQ,CAAClmD,GAAGE,KAAM,CAClBm6U,GAAGzkQ,eAAe51E,EAAC,EAAIm+B,GAAEj+B,EAAC,EAAIm6U,GAAGr6U,EAAC,GAAKM,GAAEmnD,KAAKznD,EAAC,EAAGsqM,GAAG10H,eAAe51E,EAAC,IAAMsqM,GAAGtqM,EAAC,EAAI,CAAE,GAAGsqM,GAAGtqM,EAAC,EAAEynD,KAAK,IAAM,CACvGtpB,GAAEj+B,EAAC,EAAIm6U,GAAGr6U,EAAC,EAAG,EAAE+B,GAAGA,KAAMzB,GAAEimD,QAAU1lD,EAAEs9B,EAAC,CAC1C,CAAC,EACH,CAAC,EAAG79B,GAAEimD,SAAW,GAAK1lD,EAAEs9B,EAAC,CAC3B,EAAGq8S,GAAIh4U,GAAKrB,GAAM,CAChB,QAASd,EAAI,GAAIqC,EAAEvB,CAAC,GAClBd,GAAKm6U,GAAG93U,EAAEvB,GAAG,CAAC,EAChB,OAAOd,CACT,EAAGK,EACH,SAAS+5U,GAAGt5U,EAAGd,EAAGD,EAAI,CAAE,EAAE,CACxB,IAAIS,EAAIR,EAAEsvB,KACV,GAAI,CAACxuB,EACH,MAAU,IAAAT,EAAE,SAASG,CAAC,+CAA+C,EACvE,GAAIw5U,GAAGzkQ,eAAez0E,CAAC,EAAG,CACxB,GAAIf,EAAEwG,GACJ,OACF,UAAUlG,EAAE,yBAAyBG,CAAC,SAAS,CACjD,CACAw5U,GAAGl5U,CAAC,EAAId,EAAG,OAAOi6U,GAAGn5U,CAAC,EAAGmpM,GAAG10H,eAAez0E,CAAC,IAAMd,EAAIiqM,GAAGnpM,CAAC,EAAG,OAAOmpM,GAAGnpM,CAAC,EAAGd,EAAE6lD,QAAS/nB,IAAMA,GAAC,CAAE,EACjG,CACA,SAAS78B,GAAEH,EAAGd,EAAGD,EAAI,CAAE,EAAE,CACvB,OAAOq6U,GAAGt5U,EAAGd,EAAGD,CAAC,CACnB,CACA,IAAIs6U,GAAMv5U,GAAM,CACd,UAAUT,EAAES,EAAEwD,GAAGG,GAAGF,GAAG+qB,KAAO,2BAA2B,CAC3D,EAAGgrT,GAAK,GAAOC,GAAKA,IAAM,CACzB,EAAEC,GAAKA,CAAC15U,EAAGd,EAAGD,IAAMC,IAAMD,EAAIe,EAAIf,EAAE6E,KAAO,OAAS,MAAQ9D,EAAI05U,GAAG15U,EAAGd,EAAGD,EAAE6E,EAAE,EAAG9D,IAAM,KAAO,KAAOf,EAAE6U,GAAG9T,CAAC,GAAI25U,GAAK,GAAIC,GAAK,CAAE,EAAEC,GAAKA,IAAM,CAC1I,KAAOD,GAAGx0R,QAAU,CAClB,IAAIplD,EAAI45U,GAAGr1P,IAAG,EACdvkF,EAAEwD,GAAGY,GAAK,GAAOpE,EAAEgqF,OAAM,CAC3B,CACF,EAAG8vP,GAAIC,GAAK,GAAIC,GAAKA,CAACh6U,EAAGd,IAAM,CAC7B,GAAIA,IAAM,OACR,MAAU,IAAAK,EAAE,6BAA6B,EAC3C,KAAOS,EAAE8D,IACP5E,EAAIc,EAAEuE,GAAGrF,CAAC,EAAGc,EAAIA,EAAE8D,GACrB,OAAOi2U,GAAG76U,CAAC,CACb,EAAGskI,GAAKA,CAACxjI,EAAGd,IAAM,CAChB,GAAI,CAACA,EAAEyE,IAAM,CAACzE,EAAEwE,GACd,MAAM,IAAI01U,GAAG,0CAA0C,EACzD,GAAI,CAAC,CAACl6U,EAAE6E,IAAM,CAAC,CAAC7E,EAAE0E,GAChB,MAAM,IAAIw1U,GAAG,kDAAkD,EACjE,OAAOl6U,EAAEytB,MAAQ,CAAEnD,MAAO,CAAE,EAAGi6G,GAAGv1G,OAAO07G,OAAO5pI,EAAG,CAAEwD,GAAI,CAAEgmB,MAAOtqB,EAAG+mH,SAAU,EAAK,CAAE,CAAC,CAAC,CAC1F,EAAGwd,GAAMzjI,GAAM,OAAOi6U,qBAAwB,KAAex2M,GAAMvkI,GAAMA,EAAGc,IAAMw5U,GAAK,IAAIS,qBAAsB/6U,GAAM,CACrHA,EAAIA,EAAEsE,GAAI,EAAEtE,EAAEytB,MAAMnD,MAAOtqB,EAAEytB,MAAMnD,QAAU,IAAMtqB,EAAE0E,GAAK1E,EAAE6E,GAAGG,GAAGhF,EAAE0E,EAAE,EAAI1E,EAAEyE,GAAGF,GAAGS,GAAGhF,EAAEwE,EAAE,EAC3F,CAAC,EAAG+/H,GAAMvkI,GAAM,CACd,IAAID,EAAIC,EAAEsE,GACV,OAAOvE,EAAE2E,IAAM41U,GAAGr+P,SAASj8E,EAAG,CAAEsE,GAAIvE,CAAE,EAAGC,CAAC,EAAGA,CAC/C,EAAGu6U,GAAMv6U,GAAM,CACbs6U,GAAGj9P,WAAWr9E,CAAC,CACjB,EAAGukI,GAAGzjI,CAAC,GACP,SAASk6U,IAAK,CAEd,KAAIC,GAAKA,CAACn6U,EAAGd,IAAMgvB,OAAOupD,eAAev4E,EAAG,OAAQ,CAAEsqB,MAAOxpB,CAAE,CAAC,EAAGo6U,GAAKA,CAACp6U,EAAGd,EAAGD,IAAM,CACnF,GAAIe,EAAEd,CAAC,EAAE2E,KAAO,OAAQ,CACtB,IAAInE,EAAIM,EAAEd,CAAC,EACXc,EAAEd,CAAC,EAAI,YAAY89B,GAAG,CACpB,GAAI,CAACh9B,EAAEd,CAAC,EAAE2E,GAAG4wE,eAAez3C,GAAEooB,MAAM,EAClC,MAAM,IAAI7lD,EAAE,aAAaN,CAAC,iDAAiD+9B,GAAEooB,MAAM,uBAAuBplD,EAAEd,CAAC,EAAE2E,EAAE,IAAI,EACvH,OAAO7D,EAAEd,CAAC,EAAE2E,GAAGm5B,GAAEooB,MAAM,EAAE4Y,MAAM,KAAMhhC,EAAC,CACxC,EAAGh9B,EAAEd,CAAC,EAAE2E,GAAK,GAAI7D,EAAEd,CAAC,EAAE2E,GAAGnE,EAAE8E,EAAE,EAAI9E,CACnC,CACF,EAAG26U,GAAKA,CAACr6U,EAAGd,EAAGD,IAAM,CACnB,GAAIopB,EAAEosD,eAAez0E,CAAC,EAAG,CACvB,GAAIf,IAAM,QAAUopB,EAAEroB,CAAC,EAAE6D,KAAO,QAAUwkB,EAAEroB,CAAC,EAAE6D,GAAG5E,CAAC,IAAM,OACvD,MAAM,IAAIM,EAAE,gCAAgCS,CAAC,SAAS,EACxD,GAAIo6U,GAAG/xT,EAAGroB,EAAGA,CAAC,EAAGqoB,EAAEosD,eAAex1E,CAAC,EACjC,MAAU,IAAAM,EAAE,uFAAuFN,CAAC,IAAI,EAC1GopB,EAAEroB,CAAC,EAAE6D,GAAG5E,CAAC,EAAIC,CACf,MACEmpB,EAAEroB,CAAC,EAAId,EAAGD,IAAM,SAAWopB,EAAEroB,CAAC,EAAEkG,GAAKjH,EACzC,EAAGq7U,GAAMt6U,GAAM,CACb,GAAIA,IAAM,OACR,MAAO,WACTA,EAAIA,EAAE41E,QAAQ,iBAAkB,GAAG,EACnC,IAAI12E,EAAIc,EAAE64U,WAAW,CAAC,EACtB,MAAS,KAAI35U,GAAK,IAAMA,EAAI,IAAIc,CAAC,GAAKA,CACxC,EACA,SAASu6U,GAAGv6U,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,GAAG,CAClC,KAAK2vB,KAAOxuB,EAAG,KAAKu0E,YAAcr1E,EAAG,KAAKmF,GAAKpF,EAAG,KAAKiF,GAAKxE,EAAG,KAAKoE,GAAKk5B,GAAG,KAAK73B,GAAKhG,GAAG,KAAKoF,GAAK3D,GAAG,KAAKkT,GAAKjV,GAAG,KAAK8G,GAAK,CAAE,CACjI,CACA,IAAI60U,GAAKA,CAACx6U,EAAGd,EAAGD,IAAM,CACpB,KAAOC,IAAMD,GAAK,CAChB,GAAI,CAACC,EAAEqF,GACL,MAAM,IAAIhF,EAAE,gCAAgCN,EAAEuvB,IAAI,wBAAwBtvB,EAAEsvB,IAAI,EAAE,EACpFxuB,EAAId,EAAEqF,GAAGvE,CAAC,EAAGd,EAAIA,EAAE4E,EACrB,CACA,OAAO9D,CACT,EACA,SAASy6U,GAAGz6U,EAAGd,EAAG,CAChB,GAAIA,IAAM,KAAM,CACd,GAAI,KAAKyF,GACP,MAAU,IAAApF,EAAE,uBAAuB,KAAKivB,IAAI,EAAE,EAChD,MAAO,EACT,CACA,GAAI,CAACtvB,EAAEsE,GACL,MAAM,IAAIjE,EAAE,gBAAgB6pM,GAAGlqM,CAAC,CAAC,UAAU,KAAKsvB,IAAI,EAAE,EACxD,GAAI,CAACtvB,EAAEsE,GAAGE,GACR,MAAU,IAAAnE,EAAE,mDAAmD,KAAKivB,IAAI,EAAE,EAC5E,OAAOgsT,GAAGt7U,EAAEsE,GAAGE,GAAIxE,EAAEsE,GAAGG,GAAGF,GAAI,KAAKA,EAAE,CACxC,CACA,SAASi3U,GAAG16U,EAAGd,EAAG,CAChB,GAAIA,IAAM,KAAM,CACd,GAAI,KAAKyF,GACP,MAAM,IAAIpF,EAAE,uBAAuB,KAAKivB,IAAI,EAAE,EAChD,GAAI,KAAK9pB,GAAI,CACX,IAAIzF,EAAI,KAAK2F,KACb,OAAO5E,IAAM,MAAQA,EAAEsmD,KAAK,KAAKpiD,GAAIjF,CAAC,EAAGA,CAC3C,CACA,MAAO,EACT,CACA,GAAI,CAACC,GAAK,CAACA,EAAEsE,GACX,MAAM,IAAIjE,EAAE,gBAAgB6pM,GAAGlqM,CAAC,CAAC,UAAU,KAAKsvB,IAAI,EAAE,EACxD,GAAI,CAACtvB,EAAEsE,GAAGE,GACR,MAAU,IAAAnE,EAAE,mDAAmD,KAAKivB,IAAI,EAAE,EAC5E,GAAI,CAAC,KAAK/pB,IAAMvF,EAAEsE,GAAGG,GAAGc,GACtB,MAAU,IAAAlF,EAAE,mCAAmCL,EAAEsE,GAAGO,GAAK7E,EAAEsE,GAAGO,GAAGyqB,KAAOtvB,EAAEsE,GAAGG,GAAG6qB,IAAI,sBAAsB,KAAKA,IAAI,EAAE,EACvH,GAAIvvB,EAAIu7U,GAAGt7U,EAAEsE,GAAGE,GAAIxE,EAAEsE,GAAGG,GAAGF,GAAI,KAAKA,EAAE,EAAG,KAAKiB,GAAI,CACjD,GAAIxF,EAAEsE,GAAGI,KAAO,OACd,MAAM,IAAIrE,EAAE,iDAAiD,EAC/D,OAAQ,KAAKyG,GAAE,CACb,IAAM,GACJ,GAAI9G,EAAEsE,GAAGO,KAAO,KACd9E,EAAIC,EAAEsE,GAAGI,OAET,OAAU,IAAArE,EAAE,mCAAmCL,EAAEsE,GAAGO,GAAK7E,EAAEsE,GAAGO,GAAGyqB,KAAOtvB,EAAEsE,GAAGG,GAAG6qB,IAAI,sBAAsB,KAAKA,IAAI,EAAE,EACvH,MACF,IAAK,GACHvvB,EAAIC,EAAEsE,GAAGI,GACT,MACF,IAAK,GACH,GAAI1E,EAAEsE,GAAGO,KAAO,KACd9E,EAAIC,EAAEsE,GAAGI,OACN,CACH,IAAIlE,EAAIR,EAAEwjO,MAAK,EACfzjO,EAAI,KAAK2G,GAAG3G,EAAG07U,GAAG,IAAMj7U,EAAEsqF,QAAQ,CAAC,EAAGhqF,IAAM,MAAQA,EAAEsmD,KAAK,KAAKpiD,GAAIjF,CAAC,CACvE,CACA,MACF,QACE,MAAM,IAAIM,EAAE,6BAA6B,CAC7C,CACF,CACA,OAAON,CACT,CACA,SAAS27U,GAAG56U,EAAGd,EAAG,CAChB,GAAIA,IAAM,KAAM,CACd,GAAI,KAAKyF,GACP,MAAU,IAAApF,EAAE,uBAAuB,KAAKivB,IAAI,EAAE,EAChD,MAAQ,EACV,CACA,GAAI,CAACtvB,EAAEsE,GACL,MAAU,IAAAjE,EAAE,gBAAgB6pM,GAAGlqM,CAAC,CAAC,UAAU,KAAKsvB,IAAI,EAAE,EACxD,GAAI,CAACtvB,EAAEsE,GAAGE,GACR,MAAM,IAAInE,EAAE,mDAAmD,KAAKivB,IAAI,EAAE,EAC5E,GAAItvB,EAAEsE,GAAGG,GAAGc,GACV,MAAM,IAAIlF,EAAE,mCAAmCL,EAAEsE,GAAGG,GAAG6qB,IAAI,sBAAsB,KAAKA,IAAI,EAAE,EAC9F,OAAOgsT,GAAGt7U,EAAEsE,GAAGE,GAAIxE,EAAEsE,GAAGG,GAAGF,GAAI,KAAKA,EAAE,CACxC,CACA,SAASo3U,GAAG76U,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,GAAGE,GAAGK,GAAG0B,GAAG,CAC3C,KAAK0tB,KAAOxuB,EAAG,KAAKyD,GAAKvE,EAAG,KAAKyF,GAAK1F,EAAG,KAAKwF,GAAK/E,EAAG,KAAKgF,GAAKs4B,GAAG,KAAKt3B,GAAKvG,GAAG,KAAK6G,GAAKpF,GAAG,KAAKoE,GAAKnG,GAAG,KAAK+F,GAAK7F,GAAG,KAAK6G,GAAKxG,GAAG,KAAK8E,GAAKpD,GAAGk8B,IAAK99B,EAAE4E,KAAO,OAAS,KAAKg3U,WAAaJ,IAAM,KAAKI,WAAap7U,EAAI+6U,GAAKG,GAAI,KAAK32U,GAAK,KAC3O,CACA,IAAI82U,GAAKA,CAAC/6U,EAAGd,EAAGD,IAAM,CACpB,GAAI,CAACopB,EAAEosD,eAAez0E,CAAC,EACrB,MAAM,IAAIo5U,GAAG,qCAAqC,EACpD/wT,EAAEroB,CAAC,EAAE6D,KAAO,QAAU5E,IAAM,OAASopB,EAAEroB,CAAC,EAAE6D,GAAG5E,CAAC,EAAIC,GAAKmpB,EAAEroB,CAAC,EAAId,EAAGmpB,EAAEroB,CAAC,EAAEwE,GAAKvF,EAC7E,EAAGiuD,GAAG8tR,GAAKA,CAACh7U,EAAGd,EAAGD,EAAI,MAAQe,EAAE0iF,SAAS,GAAG,GAAK1iF,EAAIA,EAAE41E,QAAQ,KAAM,GAAG,EAAG12E,KAAQmpB,EAAE,WAAaroB,CAAC,GAAGd,EAAG,GAAGD,CAAC,GAAKC,EAAIguD,GAAE9+B,IAAIlvB,CAAC,EAAE,GAAGD,CAAC,EAAGC,GAAI+7U,GAAKA,CAACj7U,EAAGd,IAAM,IAAID,IAAM+7U,GAAGh7U,EAAGd,EAAGD,CAAC,EAAGgC,GAAIA,CAACjB,EAAGd,IAAM,CAC5Lc,EAAIqB,GAAErB,CAAC,EACP,IAAIf,EAAIe,EAAE0iF,SAAS,GAAG,EAAIu4P,GAAGj7U,EAAGd,CAAC,EAAIguD,GAAE9+B,IAAIlvB,CAAC,EAC5C,GAAI,OAAOD,GAAK,WACd,MAAM,IAAIM,EAAE,2CAA2CS,CAAC,KAAKd,CAAC,EAAE,EAClE,OAAOD,CACT,EAAGi8U,GAAIC,GAAMn7U,GAAM,CACjBA,EAAIo7U,GAAGp7U,CAAC,EACR,IAAId,EAAImC,GAAErB,CAAC,EACX,OAAOgkB,GAAEhkB,CAAC,EAAGd,CACf,EAAGm8U,GAAKA,CAACr7U,EAAGd,IAAM,CAChB,SAASD,EAAEE,GAAG,CACZ69B,GAAE79B,EAAC,GAAK+5U,GAAG/5U,EAAC,IAAMg6U,GAAGh6U,EAAC,EAAIg6U,GAAGh6U,EAAC,EAAE4lD,QAAQ9lD,CAAC,GAAKS,EAAE4mD,KAAKnnD,EAAC,EAAG69B,GAAE79B,EAAC,EAAI,IAClE,CACA,IAAIO,EAAI,CAAE,EAAEs9B,GAAI,CAAE,EAClB,MAAM99B,EAAE6lD,QAAQ9lD,CAAC,EAAG,IAAIi8U,GAAG,GAAGl7U,CAAC,KAAON,EAAE+sB,IAAI0uT,EAAE,EAAEptT,KAAK,CAAC,IAAI,CAAC,CAAC,CAC9D,EAAGutT,GAAKA,CAACt7U,EAAGd,IAAM,CAChB,QAASD,EAAI,CAAE,EAAES,EAAI,EAAGA,EAAIM,EAAGN,IAC7BT,EAAEqnD,KAAKxmD,EAAEZ,EAAI,EAAIQ,GAAK,CAAC,CAAC,EAC1B,OAAOT,CACT,EACA,SAASs8U,GAAGv7U,EAAG,CACb,QAASd,EAAI,EAAGA,EAAIc,EAAEolD,OAAQ,EAAElmD,EAC9B,GAAIc,EAAEd,CAAC,IAAM,MAAQc,EAAEd,CAAC,EAAE+E,KAAO,OAC/B,MAAW,GACf,MAAO,EACT,CACA,SAASu3U,GAAGx7U,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG,CACzB,IAAI79B,GAAID,EAAEkmD,OACV,GAAI,EAAIjmD,GACN,MAAM,IAAII,EAAE,gFAAgF,EAC9F,IAAIqB,GAAI1B,EAAE,CAAC,IAAM,MAAQD,IAAM,KAAMJ,GAAI08U,GAAGr8U,CAAC,EAAGH,GAAIG,EAAE,CAAC,EAAEsvB,OAAS,OAAQpvB,GAAID,GAAI,EAAG2B,GAAI6yE,MAAMv0E,EAAC,EAAGC,GAAI,CAAE,EAAEO,GAAI,CAAE,EACjH,OAAOu6U,GAAGn6U,EAAG,YAAYitD,GAAG,CAC1B,GAAIrtD,GAAEwlD,OAAS,EAAG/lD,GAAE+lD,OAASxkD,GAAI,EAAI,EAAGvB,GAAE,CAAC,EAAI29B,GAAGp8B,GAAG,CACnD,IAAIU,GAAIpC,EAAE,CAAC,EAAE47U,WAAWl7U,GAAG,IAAI,EAC/BP,GAAE,CAAC,EAAIiC,EACT,CACA,QAAS7B,GAAI,EAAGA,GAAIL,GAAG,EAAEK,GACvBqB,GAAErB,EAAC,EAAIP,EAAEO,GAAI,CAAC,EAAEq7U,WAAWl7U,GAAGqtD,GAAExtD,EAAC,CAAC,EAAGJ,GAAEinD,KAAKxlD,GAAErB,EAAC,CAAC,EAClD,GAAIwtD,GAAIvtD,EAAE,GAAGL,EAAC,EAAGR,GACfk6U,GAAGn5U,EAAC,MAEJ,KAAKH,GAAImB,GAAI,EAAI,EAAGnB,GAAIP,EAAEkmD,OAAQ3lD,KAAK,CACrC,IAAIY,GAAIZ,KAAM,EAAI6B,GAAIR,GAAErB,GAAI,CAAC,EAC7BP,EAAEO,EAAC,EAAEwE,KAAO,MAAQ/E,EAAEO,EAAC,EAAEwE,GAAG5D,EAAC,CAC/B,CACF,OAAOiB,GAAIvC,GAAIG,EAAE,CAAC,EAAE+5U,aAAahsR,EAAC,EAAI,OAAQ3rD,EAChD,CAAC,CACH,CACA,IAAIm6U,GAAMz7U,GAAM,CACdA,EAAIA,EAAEgqK,KAAI,EACV,IAAI9qK,EAAIc,EAAEkmH,QAAQ,GAAG,EACrB,OAAOhnH,IAAM,GAAKc,EAAEg1U,OAAO,EAAG91U,CAAC,EAAIc,CACrC,EAAG07U,GAAK,GAAIp7U,GAAI,GAAIq7U,GAAM37U,GAAM,CAC9B,EAAIA,GAAK,EAAEM,GAAEN,EAAI,CAAC,IAAM,IAAMM,GAAEN,CAAC,EAAI,OAAQ07U,GAAGp1R,KAAKtmD,CAAC,EACxD,EAAG47U,GAAM57U,GAAM,CACb,GAAI,CAACA,EACH,MAAM,IAAIT,EAAE,oCAAsCS,CAAC,EACrD,OAAOM,GAAEN,CAAC,CACZ,EAAG26U,GAAM36U,GAAM,CACb,OAAQA,EAAC,CACP,KAAU,OACR,MAAO,GACT,KAAS,KACP,MAAO,GACT,IAAS,GACP,MAAO,GACT,IAAK,GACH,MAAQ,GACV,QACE,IAAId,EAAIw8U,GAAGn3P,IAAG,GAAMjkF,GAAE8kD,OACtB,OAAO9kD,GAAEpB,CAAC,EAAIc,EAAGM,GAAEpB,EAAI,CAAC,EAAI,EAAGA,CACnC,CACF,EAAG28U,GAAK,CAAErtT,KAAM,kBAAmByqT,aAAej5U,GAAM,CACtD,IAAId,EAAI08U,GAAG57U,CAAC,EACZ,OAAO27U,GAAG37U,CAAC,EAAGd,CAChB,EAAG47U,WAAYA,CAAC96U,EAAGd,IAAMy7U,GAAGz7U,CAAC,EAAG8E,GAAI,EAAG83U,qBAAsB9C,GAAI/0U,GAAI,IAAK,EAAG83U,GAAKA,CAAC/7U,EAAGd,EAAGD,IAAM,CAC7F,OAAQC,EACN,KAAM,GACJ,OAAOD,EAAI,SAASS,EAAG,CACrB,OAAW,KAACu5U,aAAapD,EAAGn2U,CAAC,CAAC,CAChC,EAAI,SAASA,EAAG,CACd,OAAW,KAACu5U,aAAa13U,EAAE7B,CAAC,CAAC,CAC/B,EACF,IAAK,GACH,OAAOT,EAAI,SAASS,EAAG,CACrB,YAAYu5U,aAAat8D,EAAGj9Q,GAAK,CAAC,CAAC,CACrC,EAAI,SAASA,EAAG,CACd,OAAO,KAAKu5U,aAAanD,EAAGp2U,GAAK,CAAC,CAAC,CACrC,EACF,IAAK,GACH,OAAOT,EAAI,SAASS,EAAG,CACrB,OAAW,KAACu5U,aAAah1T,EAAEvkB,GAAK,CAAC,CAAC,CACpC,EAAI,SAASA,EAAG,CACd,OAAW,KAACu5U,aAAan5U,EAAEJ,GAAK,CAAC,CAAC,CACpC,EACF,QACE,MAAM,IAAI2hI,UAAU,0BAA0BniI,CAAC,MAAMc,CAAC,EAAE,CAC5D,CACF,EAAG48Q,GAAKA,CAAC58Q,EAAGd,IAAM,CAChB,IAAID,EAAIi6U,GAAGl5U,CAAC,EACZ,GAAIf,IAAM,OACR,MAAMe,EAAI,GAAGd,CAAC,qBAAqBi8U,GAAGn7U,CAAC,CAAC,GAAI,IAAIT,EAAES,CAAC,EACrD,OAAOf,CACT,EAAGmqM,GAAMppM,GAAM,CACb,GAAIA,IAAM,KACR,MAAO,OACT,IAAId,EAAI,OAAOc,EACf,OAAOd,IAAM,UAAYA,IAAM,SAAWA,IAAM,WAAac,EAAEmhD,SAAU,EAAG,GAAKnhD,CACnF,EAAGg8U,GAAKA,CAACh8U,EAAGd,IAAM,CAChB,OAAQA,EAAC,CACP,IAAM,GACJ,OAAO,SAASD,EAAG,CACjB,OAAW,KAACg6U,aAAalD,EAAG92U,GAAK,CAAC,CAAC,CACrC,EACF,IAAM,GACJ,OAAO,SAASA,EAAG,CACjB,OAAW,KAACg6U,aAAajD,EAAG/2U,GAAK,CAAC,CAAC,CACrC,EACF,QACE,MAAM,IAAIoiI,UAAU,wBAAwBniI,CAAC,MAAMc,CAAC,EAAE,CAC1D,CACF,EAAGi8U,GAAKA,CAACj8U,EAAGd,EAAGD,IAAM,CACnB,OAAQC,EACN,KAAK,GACH,OAAOD,EAAKS,GAAMm2U,EAAGn2U,CAAC,EAAKA,GAAM6B,EAAE7B,CAAC,EACtC,IAAM,GACJ,OAAOT,EAAKS,GAAMi9Q,EAAGj9Q,GAAK,CAAC,EAAKA,GAAMo2U,EAAGp2U,GAAK,CAAC,EACjD,IAAK,GACH,OAAOT,EAAKS,GAAMukB,EAAEvkB,GAAK,CAAC,EAAKA,GAAMI,EAAEJ,GAAK,CAAC,EAC/C,QACE,MAAU,IAAA2hI,UAAU,0BAA0BniI,CAAC,MAAMc,CAAC,EAAE,CAC5D,CACF,EAAGk8U,GAAKhuT,OAAOitJ,OAAO,CAAEghK,SAAU,EAAK,EAAGN,EAAE,EAAGO,GAAK,OAAO7D,YAAe,IAAc,IAAIA,YAAY,UAAU,EAAI,OAAQ8D,GAAKA,CAACr8U,EAAGd,IAAM,CAC3I,QAASD,EAAIe,GAAK,EAAGN,EAAIT,EAAIC,EAAI,EAAG,EAAED,GAAKS,IAAMo2U,EAAG72U,CAAC,GACnD,EAAEA,EACJ,GAAIA,IAAM,EAAG,GAAKA,EAAIe,GAAKo8U,GACzB,OAAOA,GAAG5D,OAAOj3U,EAAEk3U,SAASz4U,EAAGf,CAAC,CAAC,EACnC,IAAKA,EAAI,GAAIS,EAAI,EAAG,EAAEA,GAAKR,EAAI,GAAI,EAAEQ,EAAG,CACtC,IAAIs9B,GAAI2/O,EAAG38Q,EAAI,EAAIN,GAAK,CAAC,EACzB,GAAIs9B,IAAK,EACP,MACF/9B,GAAK4uF,OAAO6qP,aAAa17S,EAAC,CAC5B,CACA,OAAO/9B,CACT,EAAGq9U,GAAKA,CAACt8U,EAAGd,EAAGD,IAAM,CACnB,GAAIA,GAAK,OAASA,EAAI,YAAa,EAAIA,EACrC,MAAO,GACTA,GAAK,EACL,IAAIS,EAAIR,EACRD,EAAIA,EAAI,EAAIe,EAAEolD,OAASnmD,EAAI,EAAIe,EAAEolD,OACjC,QAASpoB,GAAI,EAAGA,GAAI/9B,EAAG,EAAE+9B,GACvB2/O,EAAGz9Q,GAAK,CAAC,EAAIc,EAAE64U,WAAW77S,EAAC,EAAG99B,GAAK,EACrC,OAAOy9Q,EAAGz9Q,GAAK,CAAC,EAAI,EAAGA,EAAIQ,CAC7B,EAAG68U,GAAMv8U,GAAM,EAAIA,EAAEolD,OAAQo3R,GAAKA,CAACx8U,EAAGd,IAAM,CAC1C,QAASD,EAAI,EAAGS,EAAI,GAAI,EAAET,GAAKC,EAAI,IAAM,CACvC,IAAI89B,GAAI/Y,EAAEjkB,EAAI,EAAIf,GAAK,CAAC,EACxB,GAAI+9B,IAAK,EACP,MACF,EAAE/9B,EAAG,OAAS+9B,IAAKA,IAAK,MAAOt9B,GAAKmuF,OAAO6qP,aAAa,MAAQ17S,IAAK,GAAI,MAAQA,GAAI,IAAI,GAAKt9B,GAAKmuF,OAAO6qP,aAAa17S,EAAC,CAC1H,CACA,OAAOt9B,CACT,EAAG+8U,GAAKA,CAACz8U,EAAGd,EAAGD,IAAM,CACnB,GAAIA,GAAK,OAASA,EAAI,YAAa,EAAIA,EACrC,MAAQ,GACV,IAAIS,EAAIR,EACRD,EAAIS,EAAIT,EAAI,EACZ,QAAS+9B,GAAI,EAAGA,GAAIh9B,EAAEolD,OAAQ,EAAEpoB,GAAG,CACjC,IAAI79B,GAAIa,EAAE64U,WAAW77S,EAAC,EACtB,GAAI,OAAS79B,IAAK,OAASA,GAAG,CAC5B,IAAIyB,GAAIZ,EAAE64U,WAAW,EAAE77S,EAAC,EACxB79B,GAAI,QAAUA,GAAI,OAAS,IAAMyB,GAAI,IACvC,CACA,GAAIqjB,EAAE/kB,GAAK,CAAC,EAAIC,GAAGD,GAAK,EAAGA,EAAI,EAAID,EACjC,KACJ,CACA,OAAOglB,EAAE/kB,GAAK,CAAC,EAAI,EAAGA,EAAIQ,CAC5B,EAAGg9U,GAAM18U,GAAM,CACb,QAASd,EAAI,EAAGD,EAAI,EAAGA,EAAIe,EAAEolD,OAAQ,EAAEnmD,EAAG,CACxC,IAAIS,EAAIM,EAAE64U,WAAW55U,CAAC,EACtB,OAASS,GAAK,OAASA,GAAK,EAAET,EAAGC,GAAK,CACxC,CACA,OAAOA,CACT,EAAGy9U,GAAK,CAAE,EAAEC,GAAM58U,GAAM,CACtB,IAAId,EAAIy9U,GAAGv3R,OACX,OAAOu3R,GAAGr2R,KAAKtmD,CAAC,EAAGd,CACrB,EAAG29U,GAAKA,CAAC78U,EAAGd,IAAM,CAChB,QAASD,EAAI00E,MAAM3zE,CAAC,EAAGN,EAAI,EAAGA,EAAIM,EAAG,EAAEN,EACrCT,EAAES,CAAC,EAAIk9Q,GAAG98Q,EAAEZ,EAAI,EAAIQ,GAAK,CAAC,EAAG,aAAeA,CAAC,EAC/C,OAAOT,CACT,EAAG69U,GAAKzzM,QAAQC,UAAWyzM,GAAK,GAAIC,GAAOh9U,GAAM,CAC/C,GAAI,EAAEA,aAAak4U,IAAMl4U,GAAK,UAC5B,MAAMA,CACV,EAAGgzS,GAAK,EAAGiqC,GAAMj9U,GAAM,CACrB,IAAId,EACJ,MAAM02U,EAAK51U,EAAGo4U,IAAM,EAAIplC,MAAQ9zS,EAAImpB,EAAE60T,SAAW,MAAQh+U,EAAEknH,KAAK/9F,EAAGroB,CAAC,EAAG21U,EAAK,IAAO,IAAIuC,GAAGl4U,CAAC,CAC7F,EAAGgqH,GAAMhqH,GAAM,CACb,GAAI,CAAC21U,EACH,GAAI,CACF,GAAI31U,EAAG,EAAE,EAAEo4U,IAAM,EAAIplC,IACnB,GAAI,CACF4iC,EAAK51U,EAAI41U,EAAIqH,GAAGj9U,CAAC,CACnB,OAASd,EAAG,CACV89U,GAAI99U,CAAC,CACP,CACJ,OAASA,EAAG,CACV89U,GAAI99U,CAAC,CACP,CACJ,EAAGi+U,GAAK,CAAE,EAAEC,GAAKA,IAAM,CACrB,GAAI,CAACC,GAAI,CACP,IAAIr9U,EAAI,CAAEs9U,KAAM,WAAYC,QAAS,WAAYC,KAAM,IAAKC,IAAK,IAAKC,KAAM,iBAAkBC,MAAO,OAAO1hK,WAAa,UAAYA,UAAUs+D,WAAat+D,UAAUs+D,UAAU,CAAC,GAAK,KAAK3kK,QAAQ,IAAK,GAAG,EAAI,SAAUroC,EAAG1tC,GAAK,gBAAiB,EAAGX,EACrP,IAAKA,KAAKi+U,GACRA,GAAGj+U,CAAC,IAAM,OAAS,OAAOc,EAAEd,CAAC,EAAIc,EAAEd,CAAC,EAAIi+U,GAAGj+U,CAAC,EAC9C,IAAID,EAAI,GACR,IAAKC,KAAKc,EACRf,EAAEqnD,KAAK,GAAGpnD,CAAC,IAAIc,EAAEd,CAAC,CAAC,EAAE,EACvBm+U,GAAKp+U,CACP,CACA,OAAOo+U,EACT,EAAGA,GAAIO,GAAK,CAAC,KAAM,CAAE,EAAE,CAAE,GAAGC,GAAKA,IAAM,CACrC,GAAI,OAAOC,QAAU,UAAY,OAAOA,OAAOC,iBAAmB,WAChE,OAAQ/9U,GAAM89U,OAAOC,gBAAgB/9U,CAAC,EACxCw3U,EAAG,kBAAkB,CACvB,EAAGwG,GAAMh+U,IAAOg+U,GAAKH,GAAE,GAAI79U,CAAC,EAC5Bo5U,GAAK/wT,EAAE41T,cAAgB,cAAc1hS,KAAM,CACzCg4B,YAAYv0E,EAAG,CACb,MAAMA,CAAC,EAAG,KAAKwuB,KAAO,eACxB,CACF,EACA,QAAS0vT,GAAKvqQ,MAAM,GAAG,EAAGwqQ,GAAK,EAAG,IAAMA,GAAI,EAAEA,GAC5CD,GAAGC,EAAE,EAAItwP,OAAO6qP,aAAayF,EAAE,EACjC9E,GAAK6E,GAAI3+U,EAAI8oB,EAAE+1T,aAAe,cAAc7hS,KAAM,CAChDg4B,YAAYv0E,EAAG,CACb,MAAMA,CAAC,EAAG,KAAKwuB,KAAO,cACxB,CACF,EAAGN,OAAOitJ,OAAO++J,GAAG1lQ,UAAW,CAAE6pQ,UAAW,SAASr+U,EAAG,CACtD,GAAI,EAAE,gBAAgBk6U,IAAMl6U,aAAak6U,IACvC,MAAY,GACd,IAAIh7U,EAAI,KAAKsE,GAAGG,GAAGF,GAAIxE,EAAI,KAAKuE,GAAGE,GACnC1D,EAAEwD,GAAKxD,EAAEwD,GACT,IAAI9D,EAAIM,EAAEwD,GAAGG,GAAGF,GAChB,IAAKzD,EAAIA,EAAEwD,GAAGE,GAAIxE,EAAE4E,IAClB7E,EAAIC,EAAEqF,GAAGtF,CAAC,EAAGC,EAAIA,EAAE4E,GACrB,KAAOpE,EAAEoE,IACP9D,EAAIN,EAAE6E,GAAGvE,CAAC,EAAGN,EAAIA,EAAEoE,GACrB,OAAO5E,IAAMQ,GAAKT,IAAMe,CAC1B,EAAG0iO,MAAO,UAAW,CACnB,GAAI,KAAKl/N,GAAGE,IAAM61U,GAAG,IAAI,EAAG,KAAK/1U,GAAGc,GAClC,OAAW,KAACd,GAAGmpB,MAAMnD,OAAS,EAAG,KACnC,IAAIxpB,EAAIyjI,GAAIvkI,EAAIgvB,OAAQjvB,EAAIC,EAAE0qI,OAAQlqI,EAAIwuB,OAAOw7G,eAAe,IAAI,EAAG1sG,GAAI,KAAKx5B,GAChF,OAAOxD,EAAIA,EAAEf,EAAEmnH,KAAKlnH,EAAGQ,EAAG,CAAE8D,GAAI,CAAEgmB,MAAO,CAAEmD,MAAOqQ,GAAErQ,MAAOvoB,GAAI44B,GAAE54B,GAAIE,GAAI04B,GAAE14B,GAAIZ,GAAIs5B,GAAEt5B,GAAIC,GAAIq5B,GAAEr5B,GAAIC,GAAIo5B,GAAEp5B,GAAIG,GAAIi5B,GAAEj5B,EAAG,CAAE,CAAE,CAAC,CAAC,EAAG/D,EAAEwD,GAAGmpB,MAAMnD,OAAS,EAAGxpB,EAAEwD,GAAGY,GAAK,GAAOpE,CACzK,EAAGgqF,QAAS,CACV,GAAI,KAAKxmF,GAAGE,IAAM61U,GAAG,IAAI,EAAG,KAAK/1U,GAAGY,IAAM,CAAC,KAAKZ,GAAGc,GACjD,MAAU,IAAA/E,EAAE,uCAAuC,EACrDk6U,GAAG,IAAI,EACP,IAAIz5U,EAAI,KAAKwD,GACb,EAAExD,EAAE2sB,MAAMnD,MAAOxpB,EAAE2sB,MAAMnD,QAAU,IAAMxpB,EAAE4D,GAAK5D,EAAE+D,GAAGG,GAAGlE,EAAE4D,EAAE,EAAI5D,EAAE2D,GAAGF,GAAGS,GAAGlE,EAAE0D,EAAE,GAAI,KAAKF,GAAGc,KAAO,KAAKd,GAAGI,GAAK,OAAQ,KAAKJ,GAAGE,GAAK,OACtI,EAAG46U,UAAW,UAAW,CACvB,MAAO,CAAC,KAAK96U,GAAGE,EAClB,EAAG66U,YAAa,UAAW,CACzB,GAAI,KAAK/6U,GAAGE,IAAM61U,GAAG,IAAI,EAAG,KAAK/1U,GAAGY,IAAM,CAAC,KAAKZ,GAAGc,GACjD,MAAM,IAAI/E,EAAE,uCAAuC,EACrD,OAAOq6U,GAAGtzR,KAAK,IAAI,EAAGszR,GAAGx0R,SAAW,GAAK00R,IAAMA,GAAGD,EAAE,EAAG,KAAKr2U,GAAGY,GAAK,GAAM,IAC5E,CAAE,CAAC,EAAGikB,EAAEm2T,0BAA4B,IAAMtwT,OAAOo6C,KAAKyxQ,EAAE,EAAE30R,OAAQ/8B,EAAEo2T,0BAA4B,IAAM,CACpG,IAAIz+U,EAAI,GAAId,EACZ,IAAKA,KAAK66U,GACRA,GAAGtlQ,eAAev1E,CAAC,GAAKc,EAAEsmD,KAAKyzR,GAAG76U,CAAC,CAAC,EACtC,OAAOc,CACT,EAAGqoB,EAAEq2T,oBAAsB7E,GAAIxxT,EAAEs2T,iBAAoB3+U,GAAM,CACzD85U,GAAK95U,EAAG45U,GAAGx0R,QAAU00R,IAAMA,GAAGD,EAAE,CAClC,EAAG3rT,OAAOitJ,OAAO0/J,GAAGrmQ,UAAW,CAAEpvE,GAAGpF,EAAG,CACrC,OAAW,KAACgF,KAAOhF,EAAI,KAAKgF,GAAGhF,CAAC,GAAIA,CACtC,EAAG8E,GAAG9E,EAAG,CACP,IAAId,GACHA,EAAI,KAAKgF,KAAO,MAAQhF,EAAEknH,KAAK,KAAMpmH,CAAC,CACzC,EAAGgE,GAAI,EAAG83U,qBAAsB9C,GAAIC,aAAc,SAASj5U,EAAG,CAC5D,SAASd,GAAI,CACX,OAAW,KAACwF,GAAK8+H,GAAG,KAAK//H,GAAGY,GAAI,CAAEV,GAAI,KAAK+B,GAAIhC,GAAIzE,EAAG8E,GAAI,KAAMH,GAAI5D,CAAE,CAAC,EAAIwjI,GAAG,KAAK//H,GAAGY,GAAI,CAAEV,GAAI,KAAMD,GAAI1D,CAAE,CAAC,CAC/G,CACA,IAAIf,EAAI,KAAKmG,GAAGpF,CAAC,EACjB,GAAI,CAACf,EACH,OAAO,KAAK6F,GAAG9E,CAAC,EAAG,KACrB,IAAIN,EAAIs6U,GAAG,KAAKv2U,GAAIxE,CAAC,EACrB,GAAIS,IAAM,OACR,OAAOA,EAAE8D,GAAGmpB,MAAMnD,QAAU,GAAK9pB,EAAE8D,GAAGE,GAAKzE,EAAGS,EAAE8D,GAAGI,GAAK5D,EAAGN,EAAEgjO,MAAK,IAAOhjO,EAAIA,EAAEgjO,MAAO,EAAE,KAAK59N,GAAG9E,CAAC,EAAGN,GACtG,GAAIA,EAAI,KAAK+D,GAAG0B,GAAGlG,CAAC,EAAGS,EAAIi6U,GAAGj6U,CAAC,EAAG,CAACA,EACjC,OAAOR,EAAEknH,KAAK,IAAI,EACpB1mH,EAAI,KAAK+E,GAAK/E,EAAEuF,GAAKvF,EAAE8sK,YACvB,IAAIxvI,GAAI08S,GAAGz6U,EAAG,KAAKwE,GAAI/D,EAAE+D,EAAE,EAC3B,OAAOu5B,KAAM,KAAO99B,EAAEknH,KAAK,IAAI,EAAI,KAAK1hH,GAAK8+H,GAAG9jI,EAAE+D,GAAGY,GAAI,CAAEV,GAAIjE,EAAGgE,GAAIs5B,GAAGj5B,GAAI,KAAMH,GAAI5D,CAAE,CAAC,EAAIwjI,GAAG9jI,EAAE+D,GAAGY,GAAI,CAAEV,GAAIjE,EAAGgE,GAAIs5B,EAAE,CAAC,CAC5H,CAAE,CAAC,EAAGk+S,GAAK7yT,EAAEu2T,kBAAoB,CAAC5+U,EAAGd,IAAM,CACzC,IAAID,EAAIk7U,GAAGj7U,EAAG,SAASQ,EAAG,CACxB,KAAK8uB,KAAOtvB,EAAG,KAAK68E,QAAUr8E,EAAGA,EAAI68C,MAAM78C,CAAC,EAAEy4C,MAAOz4C,IAAM,SAAW,KAAKy4C,MAAQ,KAAKgJ,SAAU,EAAG;AAAA,EACzGzhD,EAAEk2E,QAAQ,qBAAsB,EAAE,EAChC,CAAC,EACD,OAAO32E,EAAEu1E,UAAYtmD,OAAO07G,OAAO5pI,EAAEw0E,SAAS,EAAGv1E,EAAEu1E,UAAUD,YAAct1E,EAAGA,EAAEu1E,UAAUrzB,SAAW,UAAW,CAC9G,YAAY46B,UAAY,OAAS,KAAKvtD,KAAO,GAAG,KAAKA,IAAI,KAAK,KAAKutD,OAAO,EAC5E,EAAG98E,CACL,GAAGs9C,MAAO,kBAAkB,EAAGj8C,GAAEgmD,KAAK,EAAG,EAAG,OAAQ,EAAG,KAAM,EAAG,GAAM,EAAG,GAAO,CAAC,EAAGj+B,EAAEw2T,oBAAsB,IAAMv+U,GAAE8kD,OAAS,EAAI,EAAIs2R,GAAGt2R,OACxI,IAAI05R,GAAK,CAAEp+U,EAAGA,CAACV,EAAGd,EAAGD,EAAGS,IAAM,CAC5B83U,EAAG,qBAAqBx3U,EAAI+pM,GAAGxoM,EAAGvB,CAAC,EAAI,EAAE,SAAW,CAACd,EAAIA,EAAI6qM,GAAGxoM,EAAGrC,CAAC,EAAI,GAAK,mBAAoBD,EAAGS,EAAIA,EAAIqqM,GAAGxoM,EAAG7B,CAAC,EAAI,GAAK,kBAAkB,CAAC,CACjJ,EAAGqB,EAAGA,CAACf,EAAGd,EAAGD,IAAM,CACjB,IAAIS,EAAI,IAAIi5U,GAAG34U,CAAC,EAChB,MAAMF,EAAEJ,EAAEgE,GAAK,IAAM,CAAC,EAAI,EAAG5D,EAAEJ,EAAEgE,GAAK,GAAK,CAAC,EAAIxE,EAAGY,EAAEJ,EAAEgE,GAAK,GAAK,CAAC,EAAIzE,EAAG25U,GAAK54U,EAAG44U,EACnF,EAAGh5U,EAAG,UAAW,CACf,MAAQ,EACV,EAAG0B,EAAGA,IAAM,GACTH,EAAGA,IAAM,CACX,EAAEI,EAAG,UAAW,CACf,MAAO,EACT,EAAGH,EAAGA,IAAM,CACX,EAAEzB,EAAG,UAAW,CAChB,EAAE0B,EAAGA,IAAM,GACTG,EAAGA,IAAM,CACVg2U,EAAG,EAAE,CACP,EAAGp4U,EAAIY,GAAM,CACX,IAAId,EAAI45U,GAAG94U,CAAC,EACZ,OAAO84U,GAAG94U,CAAC,EACX,IAAIf,EAAIC,EAAE0F,GAAIlF,EAAIR,EAAEgF,GAAI84B,GAAI99B,EAAE6F,GAAI5F,GAAI69B,GAAEvQ,IAAK7rB,IAAMA,GAAE4E,EAAE,EAAEk7C,OAAO1jB,GAAEvQ,IAAK7rB,IAAMA,GAAEkF,EAAE,CAAC,EAClFnE,GAAE,CAAC3B,CAAC,EAAGb,GAAIyB,IAAM,CACf,IAAI/B,GAAI,GACR,OAAOm+B,GAAE+nB,QAAQ,CAAChmD,GAAGK,KAAM,CACzB,IAAI0B,GAAIF,GAAExB,EAAC,EAAGC,GAAIN,GAAEuG,GAAI1F,GAAIb,GAAEwG,GAAI0nD,GAAIrsD,GAAExB,GAAI49B,GAAEooB,MAAM,EAAG9jD,GAAIvC,GAAE8G,GAAIpG,GAAIV,GAAEgH,GACvElH,GAAEE,GAAEmG,EAAE,EAAI,CAAEu3C,KAAOp8C,IAAMS,GAAEm4U,aAAa55U,GAAEO,GAAGS,EAAC,CAAC,EAAG0+U,MAAOA,CAAC1+U,GAAG2+U,KAAO,CAClE,IAAIx/U,GAAI,CAAE,EACV8B,GAAE7B,GAAGY,GAAG4sD,GAAE6tR,WAAWt7U,GAAGw/U,EAAE,CAAC,EAAGjG,GAAGv5U,EAAC,CACpC,CAAE,CACJ,CAAC,EAAG,CAAC,CAAEgvB,KAAMtvB,EAAEsvB,KAAMyqT,aAAel6U,IAAM,CACxC,IAAIK,GAAI,CAAE,EAAE0B,GACZ,IAAKA,MAAKjC,GACRO,GAAE0B,EAAC,EAAIjC,GAAEiC,EAAC,EAAE27C,KAAK19C,EAAC,EACpB,OAAOW,EAAEX,EAAC,EAAGK,EACf,EAAG07U,WAAYA,CAAC/7U,GAAGK,KAAM,CACvB,QAAS0B,MAAKjC,GACZ,GAAI,EAAEiC,MAAK1B,IACT,MAAM,IAAIiiI,UAAU,mBAAmBvgI,EAAC,GAAG,EAC/C,IAAIzB,GAAIJ,EAAC,EACT,IAAK6B,MAAKjC,GACRA,GAAEiC,EAAC,EAAEi+U,MAAM1/U,GAAGD,GAAE0B,EAAC,CAAC,EACpB,OAAO/B,KAAM,MAAQA,GAAEunD,KAAK5mD,EAAGL,EAAC,EAAGA,EACrC,EAAG2E,GAAI,EAAG83U,qBAAsB9C,GAAI/0U,GAAIvE,CAAE,CAAC,CAC7C,CAAC,CACH,EAAGW,EAAGA,IAAM,CACX,EAAEktC,EAAGA,CAACvtC,EAAGd,EAAGD,EAAGS,IAAM,CACpBR,EAAImC,GAAEnC,CAAC,EAAGiB,GAAEH,EAAG,CAAEwuB,KAAMtvB,EAAG+5U,aAAc,SAASj8S,GAAG,CAClD,MAAO,CAAC,CAACA,EACX,EAAG89S,WAAY,SAAS99S,GAAG79B,GAAG,CAC5B,OAAOA,GAAIF,EAAIS,CACjB,EAAGsE,GAAI,EAAG83U,qBAAsB,SAAS9+S,GAAG,CAC1C,YAAYi8S,aAAa13U,EAAEy7B,EAAC,CAAC,CAC/B,EAAG/4B,GAAI,IAAK,CAAC,CACf,EAAGhF,EAAGA,CAACe,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,GAAGE,GAAGK,GAAG0B,GAAGzB,GAAGO,KAAM,CAC/CkB,GAAIO,GAAEP,EAAC,EAAG3B,GAAI8B,GAAE+7B,GAAG79B,EAAC,EAAGN,KAAMA,GAAIoC,GAAEL,GAAG/B,EAAC,GAAIO,KAAMA,GAAI6B,GAAElC,GAAGK,EAAC,GAAIQ,GAAIqB,GAAE5B,GAAGO,EAAC,EACzE,IAAIqtD,GAAIqtR,GAAGx5U,EAAC,EACZu5U,GAAGptR,GAAG,UAAW,CACfouR,GAAG,oBAAoBv6U,EAAC,wBAAyB,CAACpB,CAAC,CAAC,CACtD,CAAC,EAAGiC,GAAE,CAAC3B,EAAGd,EAAGD,CAAC,EAAGS,EAAI,CAACA,CAAC,EAAI,GAAK4B,IAAM,CACpC,GAAIA,GAAIA,GAAE,CAAC,EAAG5B,EACZ,IAAID,GAAI6B,GAAEmC,GAAIpD,GAAIZ,GAAE4E,QAEpBhE,GAAI65U,GAAG1lQ,UACTlzE,GAAI64U,GAAGr5U,GAAG,YAAYm+U,GAAI,CACxB,GAAI/wT,OAAOw7G,eAAe,IAAI,IAAMs1M,GAClC,MAAU,IAAAz/U,EAAE,0BAA4BuB,EAAC,EAC3C,GAAItB,GAAE2E,KAAO,OACX,MAAM,IAAI5E,EAAEuB,GAAI,gCAAgC,EAClD,IAAIo+U,GAAK1/U,GAAE2E,GAAG86U,GAAG75R,MAAM,EACvB,GAAI85R,KAAO,OACT,UAAU3/U,EAAE,2BAA2BuB,EAAC,uCAAuCm+U,GAAG75R,MAAM,iBAAiBl3B,OAAOo6C,KAAK9oE,GAAE2E,EAAE,EAAEg9C,SAAU,wBAAuB,EAC9J,OAAO+9R,GAAGlhR,MAAM,KAAMihR,EAAE,CAC1B,CAAC,EACD,IAAID,GAAK9wT,OAAO07G,OAAOvpI,GAAG,CAAEk0E,YAAa,CAAE/qD,MAAOloB,EAAE,CAAE,CAAC,EACvDA,GAAEkzE,UAAYwqQ,GACd,IAAIx/U,GAAI,IAAI+6U,GAAGz5U,GAAGQ,GAAG09U,GAAIp/U,GAAGH,GAAGN,GAAGN,GAAGO,EAAC,EACtC,GAAII,GAAEsE,GAAI,CACR,IAAIq7U,IACHA,GAAK3/U,GAAEsE,IAAIe,IAAM,OAASs6U,GAAGt6U,GAAK,CAAE,GAAGrF,GAAEsE,GAAGe,GAAGyhD,KAAK9mD,EAAC,CACxD,CACA,OAAOC,GAAI,IAAIo7U,GAAG/5U,GAAGtB,GAAG,GAAM,GAAO,EAAK,EAAG2/U,GAAK,IAAItE,GAAG/5U,GAAI,IAAKtB,GAAG,GAAO,GAAO,EAAK,EAAGa,GAAI,IAAIw6U,GAAG/5U,GAAI,UAAWtB,GAAG,GAAO,GAAM,EAAK,EAAGm6U,GAAG35U,CAAC,EAAI,CAAEwsK,YAAa2yK,GAAIl6U,GAAI5E,EAAE,EAAG06U,GAAG9tR,GAAG3rD,EAAC,EAAG,CAAC7B,GAAG0/U,GAAI9+U,EAAC,CACtM,CAAC,CACH,EAAGrB,EAAGA,CAACgB,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,KAAM,CAC1B,IAAIyB,GAAI06U,GAAGp8U,EAAGD,CAAC,EACf+9B,GAAI/7B,GAAEvB,EAAGs9B,EAAC,EAAGr7B,GAAE,CAAE,EAAE,CAAC3B,CAAC,EAAInB,IAAM,CAC7BA,GAAIA,GAAE,CAAC,EACP,IAAIE,GAAI,eAAeF,GAAE2vB,IAAI,GAC7B,GAAI3vB,GAAE4E,GAAGU,KAAO,SAAWtF,GAAE4E,GAAGU,GAAK,CAAE,GAAGtF,GAAE4E,GAAGU,GAAGjF,EAAI,CAAC,IAAM,OAC3D,MAAM,IAAIK,EAAE,8EAA8EL,EAAI,CAAC,gBAAgBL,GAAE2vB,IAAI,qGAAqG,EAC5N,OAAO3vB,GAAE4E,GAAGU,GAAGjF,EAAI,CAAC,EAAI,IAAM,CAC5Bm8U,GAAG,oBAAoBx8U,GAAE2vB,IAAI,wBAAyB5tB,EAAC,CACzD,EAAGe,GAAE,CAAE,EAAEf,GAAIxB,KAAOA,GAAEytT,OAAO,EAAG,EAAG,IAAI,EAAGhuT,GAAE4E,GAAGU,GAAGjF,EAAI,CAAC,EAAIs8U,GAAGz8U,GAAGK,GAAG,KAAM49B,GAAG79B,EAAC,EAAG,GAAG,EAAG,CAAE,CAC3F,CAAC,CACH,EAAG2B,EAAGA,CAACd,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,KAAM,CAChC,IAAIE,GAAIu8U,GAAGr8U,EAAGS,CAAC,EACfR,EAAImC,GAAEnC,CAAC,EAAGA,EAAIu8U,GAAGv8U,CAAC,EAAGC,GAAI8B,GAAE+7B,GAAG79B,EAAC,EAAGwC,GAAE,CAAE,EAAE,CAAC3B,CAAC,EAAIZ,IAAM,CAClD,SAAS0B,IAAI,CACXu6U,GAAG,eAAeh8U,EAAC,wBAAyBN,EAAC,CAC/C,CACAK,GAAIA,GAAE,CAAC,EACP,IAAIC,GAAI,GAAGD,GAAEovB,IAAI,IAAItvB,CAAC,GACtBA,EAAEo5E,WAAW,IAAI,IAAMp5E,EAAIgiI,OAAOhiI,EAAE60E,UAAU,CAAC,CAAC,GAAIl1E,IAAKO,GAAEqE,GAAGkC,GAAG2gD,KAAKpnD,CAAC,EACvE,IAAIU,GAAIR,GAAEqE,GAAGY,GAAI4oD,GAAIrtD,GAAEV,CAAC,EACxB,OAAO+tD,KAAM,QAAUA,GAAEppD,KAAO,QAAUopD,GAAE9wB,YAAc/8B,GAAEovB,MAAQy+B,GAAEzoD,KAAOvF,EAAI,GAAK6B,GAAE0D,GAAKvF,EAAI,EAAG6B,GAAEq7B,UAAY/8B,GAAEovB,KAAM5uB,GAAEV,CAAC,EAAI4B,KAAMs5U,GAAGx6U,GAAGV,EAAGG,EAAC,EAAGO,GAAEV,CAAC,EAAE2E,GAAG5E,EAAI,CAAC,EAAI6B,IAAIa,GAAE,CAAE,EAAE5C,GAAIuC,KAAOA,GAAIk6U,GAAGn8U,GAAGiC,GAAGlC,GAAGD,GAAGyB,EAAC,EAAGhB,GAAEV,CAAC,EAAE2E,KAAO,QAAUvC,GAAEkD,GAAKvF,EAAI,EAAGW,GAAEV,CAAC,EAAIoC,IAAK1B,GAAEV,CAAC,EAAE2E,GAAG5E,EAAI,CAAC,EAAIqC,GAAG,CAAE,EAAC,EAAG,EAC7R,CAAC,CACH,EAAG2iB,EAAIjkB,GAAMG,GAAEH,EAAG67U,EAAE,EAAGv8U,EAAGA,CAACU,EAAGd,EAAGD,EAAGS,IAAM,CACxC,SAASs9B,IAAI,CAEb99B,GAAImC,GAAEnC,CAAC,EAAG89B,GAAE09C,OAAS,CAAE,EAAEv6E,GAAEH,EAAG,CAAEwuB,KAAMtvB,EAAGq1E,YAAav3C,GAAGi8S,aAAc,SAAS95U,GAAG,CACjF,OAAO,KAAKo1E,YAAYmG,OAAOv7E,EAAC,CAClC,EAAG27U,WAAYA,CAAC37U,GAAGyB,KAAMA,GAAE4oB,MAAOxlB,GAAI,EAAG83U,qBAAsBC,GAAG78U,EAAGD,EAAGS,CAAC,EAAGuE,GAAI,IAAK,CAAC,EAAGo2U,GAAGn7U,EAAG89B,EAAC,CAClG,EAAGr8B,EAAGA,CAACX,EAAGd,EAAGD,IAAM,CACjB,IAAIS,EAAIk9Q,GAAG58Q,EAAG,MAAM,EACpBd,EAAImC,GAAEnC,CAAC,EAAGc,EAAIN,EAAE60E,YAAa70E,EAAIwuB,OAAO07G,OAAOlqI,EAAE60E,YAAYC,UAAW,CAAEhrD,MAAO,CAAEA,MAAOvqB,CAAE,EAAGs1E,YAAa,CAAE/qD,MAAO2wT,GAAG,GAAGz6U,EAAE8uB,IAAI,IAAItvB,CAAC,GAAI,UAAW,CACpJ,EAAE,CAAE,CAAC,EAAGc,EAAE06E,OAAOz7E,CAAC,EAAIS,EAAGM,EAAEd,CAAC,EAAIQ,CACnC,EAAGG,EAAGA,CAACG,EAAGd,EAAGD,IAAM,CACjBC,EAAImC,GAAEnC,CAAC,EAAGiB,GAAEH,EAAG,CAAEwuB,KAAMtvB,EAAG+5U,aAAev5U,GAAMA,EAAGo7U,WAAYA,CAACp7U,EAAGs9B,KAAMA,GAAGh5B,GAAI,EAAG83U,qBAAsBE,GAAG98U,EAAGD,CAAC,EAAGgF,GAAI,IAAK,CAAC,CAC9H,EAAGhE,EAAGA,CAACD,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,KAAM,CAC1B,IAAIyB,GAAI06U,GAAGp8U,EAAGD,CAAC,EACfe,EAAIqB,GAAErB,CAAC,EAAGA,EAAIy7U,GAAGz7U,CAAC,EAAGg9B,GAAI/7B,GAAEvB,EAAGs9B,EAAC,EAAGq9S,GAAGr6U,EAAG,UAAW,CACjDq7U,GAAG,eAAer7U,CAAC,wBAAyBY,EAAC,CAC/C,EAAG1B,EAAI,CAAC,EAAGyC,GAAE,GAAIf,GAAI/B,KAAOk8U,GAAG/6U,EAAGw7U,GAAGx7U,EAAG,CAACnB,GAAE,CAAC,EAAG,IAAI,EAAE6hD,OAAO7hD,GAAE4+E,MAAM,CAAC,CAAC,EAAG,KAAMzgD,GAAG79B,EAAC,EAAGD,EAAI,CAAC,EAAG,CAAE,EAAC,CACnG,EAAGL,EAAGA,CAACmB,EAAGd,EAAGD,EAAGS,EAAGs9B,KAAM,CACvB,GAAI99B,EAAImC,GAAEnC,CAAC,EAAG89B,KAAM,KAAOA,GAAI,YAAaA,GAAKn+B,IAAMA,GAAGa,IAAM,EAAG,CACjE,IAAIP,GAAI,GAAK,EAAIF,EACjB+9B,GAAKn+B,IAAMA,IAAKM,KAAMA,EACxB,CACA,IAAIyB,GAAI1B,EAAEwjF,SAAS,UAAU,EAAI,SAAS7jF,GAAGE,GAAG,CAC9C,OAAOA,KAAM,CACf,EAAI,SAASF,GAAGE,GAAG,CACjB,OAAOA,EACT,EACAoB,GAAEH,EAAG,CAAEwuB,KAAMtvB,EAAG+5U,aAAcj8S,GAAG89S,WAAYl6U,GAAGoD,GAAI,EAAG83U,qBAAsBG,GAAG/8U,EAAGD,EAAGS,IAAM,CAAC,EAAGuE,GAAI,IAAK,CAAC,CAC5G,EAAGrD,EAAGA,CAACZ,EAAGd,EAAGD,IAAM,CACjB,SAASS,EAAEP,GAAG,CACZ,OAAO,IAAI69B,GAAE64S,EAAGl6R,OAAQ77C,EAAEX,GAAI,GAAK,CAAC,EAAGW,EAAEX,IAAK,CAAC,CAAC,CAClD,CACA,IAAI69B,GAAI,CAACm5S,UAAWzd,WAAY2d,WAAYG,YAAaE,WAAYE,YAAaE,aAAcE,YAAY,EAAE93U,CAAC,EAC/GD,EAAIoC,GAAEpC,CAAC,EAAGkB,GAAEH,EAAG,CAAEwuB,KAAMvvB,EAAGg6U,aAAcv5U,EAAGsE,GAAI,EAAG83U,qBAAsBp8U,CAAE,EAAG,CAAE+F,GAAI,EAAK,CAAC,CAC3F,EAAGtG,EAAIa,GAAM,CACXG,GAAEH,EAAGk8U,EAAE,CACT,EAAG75U,GAAIA,CAACrC,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,GAAGE,GAAGK,GAAG0B,GAAGzB,KAAM,CAC7CJ,EAAIoC,GAAEpC,CAAC,EAAGE,GAAI8B,GAAE+7B,GAAG79B,EAAC,EAAGN,GAAIoC,GAAEL,GAAG/B,EAAC,EAAGO,GAAI6B,GAAElC,GAAGK,EAAC,EAAGC,GAAI4B,GAAEH,GAAGzB,EAAC,EAAGsC,GAAE,CAAC3B,CAAC,EAAG,CAACd,CAAC,EAAIU,KAAOA,GAAIA,GAAE,CAAC,EAAG,CAAC,IAAIi7U,GAAG57U,EAAGW,GAAE6D,GAAI,GAAO,GAAO,GAAM7D,GAAGF,EAAGP,GAAGN,GAAGO,GAAGC,EAAC,CAAC,EAAE,CACtJ,EAAGS,EAAGA,CAACE,EAAGd,IAAM,CACdA,EAAImC,GAAEnC,CAAC,EACP,IAAID,EAAIC,IAAM,cACdiB,GAAEH,EAAG,CAAEwuB,KAAMtvB,EAAG+5U,aAAc,SAASv5U,EAAG,CACxC,IAAIs9B,GAAIl9B,EAAEJ,GAAK,CAAC,EAAGP,GAAIO,EAAI,EAC3B,GAAIT,EACF,QAAS2B,GAAIzB,GAAGN,GAAI,EAAGA,IAAKm+B,GAAG,EAAEn+B,GAAG,CAClC,IAAIE,GAAII,GAAIN,GACZ,GAAIA,IAAKm+B,IAAKz7B,EAAExC,EAAC,GAAK,EAAG,CACvB,GAAI6B,GAAIA,GAAImpM,GAAGxoM,EAAGX,GAAG7B,GAAI6B,EAAC,EAAI,GAAIxB,KAAM,OACtC,IAAIA,GAAIwB,QAERxB,IAAK,KAAMA,IAAKwB,GAClBA,GAAI7B,GAAI,CACV,CACF,KACG,CACH,IAAKK,GAAIu0E,MAAM32C,EAAC,EAAGn+B,GAAI,EAAGA,GAAIm+B,GAAG,EAAEn+B,GACjCO,GAAEP,EAAC,EAAIgvF,OAAO6qP,aAAan3U,EAAEpC,GAAIN,EAAC,CAAC,EACrCO,GAAIA,GAAE2uB,KAAK,EAAE,CACf,CACA,OAAO/J,GAAEtkB,CAAC,EAAGN,EACf,EAAG07U,WAAY,SAASp7U,EAAGs9B,GAAG,CAC5BA,cAAaoiT,cAAgBpiT,GAAI,IAAI07R,WAAW17R,EAAC,GACjD,IAAI79B,GAAGyB,GAAI,OAAOo8B,IAAK,SACvB,GAAI,EAAEp8B,IAAKo8B,cAAa07R,YAAc17R,cAAaqiT,mBAAqBriT,cAAam5S,WACnF,MAAM,IAAI52U,EAAE,uCAAuC,EACrD,GAAIN,GAAK2B,GACP,QAAS/B,GAAIM,GAAI,EAAGN,GAAIm+B,GAAEooB,OAAQ,EAAEvmD,GAAG,CACrC,IAAIE,GAAIi+B,GAAE67S,WAAWh6U,EAAC,EACtB,KAAOE,GAAII,KAAM,MAAQJ,GAAII,IAAK,EAAI,OAASJ,IAAK,OAASA,IAAKI,IAAK,EAAG,EAAEN,IAAKM,IAAK,CACxF,MAEAA,GAAI69B,GAAEooB,OACR,GAAIvmD,GAAI0qM,GAAG,EAAIpqM,GAAI,CAAC,EAAGJ,GAAIF,GAAI,EAAGiB,EAAEjB,IAAK,CAAC,EAAIM,GAAGF,GAAK2B,GACpDuvN,GAAGnzL,GAAGj+B,GAAGI,GAAI,CAAC,UACPyB,GACP,IAAKA,GAAI,EAAGA,GAAIzB,GAAG,EAAEyB,GAAG,CACtB,IAAIxB,GAAI49B,GAAE67S,WAAWj4U,EAAC,EACtB,GAAI,IAAMxB,GACR,MAAM4kB,GAAEjlB,EAAC,EAAG,IAAIQ,EAAE,wDAAwD,EAC5EgC,EAAExC,GAAI6B,EAAC,EAAIxB,EACb,KAEKwB,QAAI,EAAGA,GAAIzB,GAAG,EAAEyB,GACnBW,EAAExC,GAAI6B,EAAC,EAAIo8B,GAAEp8B,EAAC,EAClB,OAAOlB,IAAM,MAAQA,EAAE4mD,KAAKtiC,GAAGnlB,EAAC,EAAGA,EACrC,EAAGmF,GAAI,EAAG83U,qBAAsB9C,GAAI/0U,GAAGvE,EAAG,CACxCskB,GAAEtkB,CAAC,CACL,CAAE,CAAC,CACL,EAAGR,EAAGA,CAACc,EAAGd,EAAGD,IAAM,CACjB,GAAIA,EAAIoC,GAAEpC,CAAC,EAAGC,IAAM,EAClB,IAAIQ,EAAI28U,GAAIr/S,GAAIs/S,GAAIn9U,GAAIo9U,GAAI37U,GAAK/B,IAAMi3U,EAAGj3U,IAAK,CAAC,OAEhDK,IAAM,IAAMQ,EAAI88U,GAAIx/S,GAAIy/S,GAAIt9U,GAAIu9U,GAAI97U,GAAK/B,IAAMiB,EAAEjB,IAAK,CAAC,GACzDsB,GAAEH,EAAG,CAAEwuB,KAAMvvB,EAAGg6U,aAAep6U,IAAM,CACnC,QAASE,GAAIe,EAAEjB,IAAK,CAAC,EAAGO,GAAG0B,GAAIjC,GAAI,EAAGQ,GAAI,EAAGA,IAAKN,GAAG,EAAEM,GAAG,CACxD,IAAIO,GAAIf,GAAI,EAAIQ,GAAIH,GACnBG,IAAKN,IAAK6B,GAAEhB,EAAC,GAAK,KAAOkB,GAAIpB,EAAEoB,GAAGlB,GAAIkB,EAAC,EAAG1B,KAAM,OAASA,GAAI0B,IAAK1B,IAAK,KAAMA,IAAK0B,IAAIA,GAAIlB,GAAIV,EACjG,CACA,OAAO8kB,GAAEnlB,EAAC,EAAGO,EACf,EAAG07U,WAAYA,CAACj8U,GAAGE,KAAM,CACvB,GAAI,OAAOA,IAAK,SACd,MAAM,IAAIQ,EAAE,6CAA6CN,CAAC,EAAE,EAC9D,IAAIG,GAAID,GAAEJ,EAAC,EAAG+B,GAAIyoM,GAAG,EAAInqM,GAAIF,CAAC,EAC9B,OAAOY,EAAEgB,IAAK,CAAC,EAAI1B,GAAIF,EAAG89B,GAAEj+B,GAAG+B,GAAI,EAAG1B,GAAIF,CAAC,EAAGL,KAAM,MAAQA,GAAEynD,KAAKtiC,GAAGljB,EAAC,EAAGA,EAC5E,EAAGkD,GAAI,EAAG83U,qBAAsB9C,GAAI/0U,GAAGpF,GAAG,CACxCmlB,GAAEnlB,EAAC,CACL,CAAE,CAAC,CACL,EAAGQ,EAAGA,CAACW,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,KAAM,CAC1B25U,GAAG94U,CAAC,EAAI,CAAEwuB,KAAMntB,GAAEnC,CAAC,EAAG0F,GAAI3D,GAAEhC,EAAGS,CAAC,EAAGwE,GAAIjD,GAAE+7B,GAAG79B,EAAC,EAAG4F,GAAI,CAAG,EACzD,EAAGmoD,EAAGA,CAACltD,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,GAAGE,GAAGK,KAAM,CACtC05U,GAAG94U,CAAC,EAAE+E,GAAGuhD,KAAK,CAAEphD,GAAI7D,GAAEnC,CAAC,EAAGsG,GAAIvG,EAAGqG,GAAIrE,GAAEvB,EAAGs9B,EAAC,EAAGz3B,GAAIpG,GAAG2G,GAAIlF,GAAGiF,GAAI5E,GAAEpC,GAAGE,EAAC,EAAGgH,GAAI3G,EAAE,CAAC,CAClF,EAAG6tD,EAAGA,CAACjtD,EAAGd,IAAM,CACdA,EAAImC,GAAEnC,CAAC,EAAGiB,GAAEH,EAAG,CAAEiG,GAAI,GAAMuoB,KAAMtvB,EAAG8E,GAAI,EAAGi1U,aAAcA,IAAM,CAC9D,EAAE6B,WAAYA,IAAM,EACnB,CAAC,CACL,EAAG75U,EAAGA,IAAM,CACVm3U,GAAK,GAAOplC,GAAK,CACnB,EAAG1yS,EAAGA,IAAM,CACV,KAAM,GAAI,CACZ,EAAG4B,GAAIA,CAAClC,EAAGd,EAAGD,EAAGS,KAAOM,EAAI28U,GAAG38U,CAAC,EAAGd,EAAI08U,GAAG18U,CAAC,EAAGc,EAAE,KAAMd,EAAGD,EAAGS,CAAC,GAAIQ,EAAGy7U,GAAI5nU,GAAIA,CAAC/T,EAAGd,EAAGD,IAAM,CACvF,IAAIS,EAAIm9U,GAAG78U,EAAGd,CAAC,EAAG89B,GAAIt9B,EAAEq9D,MAAK,EAC7B/8D,IACA,IAAIb,GAAIw0E,MAAM3zE,CAAC,EACf,OAAOd,EAAI,iBAAiBQ,EAAE+sB,IAAK7rB,IAAMA,GAAE4tB,IAAI,EAAET,KAAK,IAAI,CAAC,QAAQiP,GAAExO,IAAI,IAAKouT,GAAGzC,GAAGj7U,EAAG,CAAC0B,GAAG/B,GAAGE,GAAGK,KAAM,CACrG,QAAS0B,GAAI,EAAGzB,GAAI,EAAGA,GAAIW,EAAG,EAAEX,GAC9BF,GAAEE,EAAC,EAAIK,EAAEL,EAAC,EAAEy8U,qBAAqB18U,GAAI0B,EAAC,EAAGA,IAAKpB,EAAEL,EAAC,EAAE2E,GACrD,OAAOnF,GAAII,IAAM,EAAI69U,GAAGj+U,GAAGM,EAAC,EAAIN,GAAEm/D,MAAMp9D,GAAGzB,EAAC,EAAGyB,GAAI,GAAI/B,GAAIm+B,GAAE89S,WAAWl6U,GAAG/B,EAAC,EAAG+B,GAAEwkD,SAAWtlD,EAAEf,IAAK,CAAC,EAAI47U,GAAG/5U,EAAC,GAAI/B,EAClH,CAAC,CAAC,CACJ,EAAGuD,GAAKpC,GAAM,CACZ,EAAIA,IAAMM,GAAEN,EAAI,CAAC,GAAK,EACxB,EAAGiC,GAAKjC,GAAM,CACZ,IAAId,EAAI08U,GAAG57U,CAAC,EACZ+4U,GAAG75U,CAAC,EAAGy8U,GAAG37U,CAAC,CACb,EAAGg9B,EAAGA,CAACh9B,EAAGd,KAAOc,EAAI48Q,GAAG58Q,EAAG,mBAAmB,EAAGA,EAAIA,EAAE87U,qBAAqB58U,CAAC,EAAGy7U,GAAG36U,CAAC,GAAIO,EAAGA,CAACP,EAAGd,IAAM,CACnG,GAAI69U,GAAG/8U,CAAC,IAAM0lF,aAAaq3P,GAAG/8U,CAAC,EAAEoM,EAAE,EAAG,OAAO2wU,GAAG/8U,CAAC,GAAI,CAACd,EACpD,MAAQ,GACV,IAAID,EAAIsnD,WAAW,IAAM,CACvB,OAAOw2R,GAAG/8U,CAAC,EAAGgqH,GAAG,IAAMs1N,GAAGt/U,EAAGu/U,YAAYzuJ,IAAG,CAAE,CAAC,CACjD,EAAG5xL,CAAC,EACJ,OAAO69U,GAAG/8U,CAAC,EAAI,CAAEoM,GAAInN,EAAGkH,GAAIjH,CAAE,EAAG,CACnC,EAAGsB,EAAGA,CAACR,EAAGd,EAAGD,EAAGS,IAAM,CACpB,IAAIs9B,GAAqB,IAAIu2C,KAAM,EAAEisQ,YAAW,EAAIrgV,GAAI,IAAIo0E,KAAKv2C,GAAG,EAAG,CAAC,EAAEyiT,kBAAiB,EAC3FziT,GAAI,IAAIu2C,KAAKv2C,GAAG,EAAG,CAAC,EAAEyiT,kBAAiB,EAAI3/U,EAAEE,GAAK,CAAC,EAAI,GAAKylD,KAAK2P,IAAIj2D,GAAG69B,EAAC,EAAG/Y,EAAE/kB,GAAK,CAAC,EAAI,EAAEC,IAAK69B,IAAI99B,EAAK0B,IAAM,CAC5G,IAAI/B,GAAI4mD,KAAKC,IAAI9kD,EAAC,EAClB,MAAO,MAAM,GAAKA,GAAI,IAAM,GAAG,GAAGitF,OAAOpoC,KAAK6P,MAAMz2D,GAAI,EAAE,CAAC,EAAE6gV,SAAS,EAAG,GAAG,CAAC,GAAG7xP,OAAOhvF,GAAI,EAAE,EAAE6gV,SAAS,EAAG,GAAG,CAAC,EACjH,EAAG1/U,EAAId,EAAEC,EAAC,EAAGD,EAAIA,EAAE89B,EAAC,EAAGA,GAAI79B,IAAKgxN,GAAGnwN,EAAGf,EAAG,EAAE,EAAGkxN,GAAGjxN,EAAGQ,EAAG,EAAE,IAAMywN,GAAGnwN,EAAGN,EAAG,EAAE,EAAGywN,GAAGjxN,EAAGD,EAAG,EAAE,EAC1F,EAAGqD,GAAIA,IAAMi9U,YAAYzuJ,IAAK,EAAE9vL,EAAIhB,GAAM,CACxC,IAAId,EAAIqC,EAAE6jD,OACV,GAAIplD,KAAO,EAAG,WAAaA,EACzB,MAAY,GACd,QAASf,EAAI,EAAG,GAAKA,EAAGA,GAAK,EAAG,CAC9B,IAAIS,EAAIR,GAAK,EAAI,GAAMD,GACvBS,EAAI+lD,KAAK0P,IAAIz1D,EAAGM,EAAI,SAAS,EAC7BA,EAAG,CACDN,GAAK+lD,KAAK0P,IAAI,WAAY,MAAQ1P,KAAKk6R,KAAKl6R,KAAK2P,IAAIp1D,EAAGN,CAAC,EAAI,KAAK,CAAC,EAAIg2U,EAAG/5R,OAAOikS,WAAa,OAAS,MACvG,GAAI,CACFlK,EAAGmK,KAAKngV,CAAC,EAAGu2U,IACZ,IAAIj5S,GAAI,EACR,MAAMh9B,CACR,MAAY,EAEZg9B,GAAI,MACN,CACA,GAAIA,GACF,QACJ,CACA,MAAO,EACT,EAAGt7B,EAAGA,CAAC1B,EAAGd,IAAM,CACd,IAAID,EAAI,EACR,OAAOm+U,GAAE,EAAGr4R,QAAQ,CAACrlD,EAAGs9B,KAAM,CAC5B,IAAI79B,GAAID,EAAID,EACZ,IAAK+9B,GAAIl9B,EAAEE,EAAI,EAAIg9B,IAAK,CAAC,EAAI79B,GAAGA,GAAI,EAAGA,GAAIO,EAAE0lD,OAAQ,EAAEjmD,GACrD02U,EAAG74S,IAAG,EAAIt9B,EAAEm5U,WAAW15U,EAAC,EAC1B02U,EAAG74S,EAAC,EAAI,EAAG/9B,GAAKS,EAAE0lD,OAAS,CAC7B,CAAC,EAAG,CACN,EAAGzjD,EAAGA,CAAC3B,EAAGd,IAAM,CACd,IAAID,EAAIm+U,GAAE,EACVt9U,EAAEE,GAAK,CAAC,EAAIf,EAAEmmD,OACd,IAAI1lD,EAAI,EACR,OAAOT,EAAE8lD,QAAS/nB,IAAMt9B,GAAKs9B,GAAEooB,OAAS,CAAC,EAAGtlD,EAAEZ,GAAK,CAAC,EAAIQ,EAAG,CAC7D,EAAG2oB,EAAGA,IAAM,GAAI5oB,EAAGA,IAAM,GAAIW,EAAG,UAAW,CACzC,MAAO,GACT,EAAGZ,EAAGA,CAACQ,EAAGd,EAAGD,EAAGS,IAAM,CACpB,QAASs9B,GAAI,EAAG79B,GAAI,EAAGA,GAAIF,EAAGE,KAAK,CACjC,IAAIyB,GAAId,EAAEZ,GAAK,CAAC,EAAGL,GAAIiB,EAAEZ,EAAI,GAAK,CAAC,EACnCA,GAAK,EACL,QAASH,GAAI,EAAGA,GAAIF,GAAGE,KAAK,CAC1B,IAAIK,GAAIY,EAAGc,GAAIS,EAAEX,GAAI7B,EAAC,EAAGM,GAAIu+U,GAAGx+U,EAAC,EACjC0B,KAAM,GAAKA,KAAM,KAAO1B,KAAM,EAAI+1U,EAAKE,GAAItrI,GAAG1qM,GAAG,CAAC,CAAC,EAAGA,GAAE+lD,OAAS,GAAK/lD,GAAEinD,KAAKxlD,EAAC,CAChF,CACAk8B,IAAKn+B,EACP,CACA,OAAOiB,EAAEJ,GAAK,CAAC,EAAIs9B,GAAG,CACxB,EAAGhZ,EAAGA,CAAChkB,EAAGd,KAAO8+U,GAAGz8U,EAAEk3U,SAASz4U,EAAGA,EAAId,CAAC,CAAC,EAAG,GAAIopB,EAAGw3T,GAAIr/U,EAAGs/U,GAAI//U,EAAGggV,GAAIjhV,EAAGkhV,GAAI1gV,EAAG2gV,GAAIngV,EAAGogV,GAAIzgV,EAAG0gV,GAAIv/U,EAAGw/U,GAAIvhV,EAAGwhV,GAAIngV,EAAGogV,GAAI9+U,EAAGw7U,EAAG,EAAG97U,GAAI,UAAW,CAC3I,IAAIlC,EACJ,SAASe,EAAEN,EAAG,CACZ,IAAIs9B,GACJ,OAAO77B,GAAIzB,EAAEqC,QAAS2zU,EAAKv0U,GAAEq/U,GAAIvK,EAAI,EAAE/oR,GAAI/rD,GAAEuB,GAAIw0U,EAAGI,QAAQn2U,GAAEoB,EAAE,EAAGnB,KAAM47B,GAAI3U,EAAEo4T,yBAA2B,MAAQzjT,GAAEopF,KAAK/9F,EAAGjnB,CAAC,EAAGA,GAAK,GAAMm2U,IAAO73U,EAAI63U,EAAIA,EAAK,KAAM73U,EAAC,GAAMyB,EAC9K,CACA,IAAIjC,EAAI,CAAEQ,EAAGo/U,EAAG,EAChB,GAAI19U,KAAMnC,EAAIopB,EAAEo4T,yBAA2B,MAAQxhV,EAAEmnH,KAAK/9F,EAAGjnB,CAAC,EAAGinB,EAAEq4T,gBACjE,GAAI,CACF,OAAOr4T,EAAEq4T,gBAAgBxhV,EAAGc,CAAC,CAC/B,OAASN,EAAG,CACV21U,EAAG,sDAAsD31U,CAAC,EAAE,EAAGK,EAAEL,CAAC,CACpE,CACF,OAAO4pM,GAAM,OAASA,EAAKsuI,EAAG,sBAAsB,EAAI,uBAAyBvvT,EAAEs4T,WAAat4T,EAAEs4T,WAAW,uBAAwBn/U,CAAC,EAAIA,EAAI,wBAAyBw2U,EAAG94U,EAAG,SAASQ,EAAG,CACvLM,EAAEN,EAAE4lH,QAAQ,CACd,CAAC,EAAEivI,MAAMx0P,CAAC,EAAG,EACf,EAAC,EAAIwpM,GAAMvpM,IAAOupM,GAAKpoM,GAAEqB,IAAIxC,CAAC,EAAGo7U,GAAMp7U,IAAOo7U,GAAKj6U,GAAEsB,IAAIzC,CAAC,EAAGgkB,GAAKhkB,IAAOgkB,GAAI7iB,GAAEwB,IAAI3C,CAAC,EAAGs/U,GAAKA,CAACt/U,EAAGd,KAAOogV,GAAKn+U,GAAEyB,IAAI5C,EAAGd,CAAC,EAAG8B,GAAIA,CAAChB,EAAGd,KAAO8B,GAAIG,GAAEyS,IAAI5T,EAAGd,CAAC,EAAGuC,GAAKzB,IAAOyB,GAAIN,GAAE0B,IAAI7C,CAAC,EAAGE,GAAIA,KAAOA,GAAIiB,GAAE2B,IAAE,EACtMulB,EAAEu4T,aAAe,CAAC5gV,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,MAAOkpB,EAAEu4T,aAAez/U,GAAE4B,IAAI/C,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,EAAC,EAAGkpB,EAAEw4T,aAAe,CAAC7gV,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,MAAOkpB,EAAEw4T,aAAe1/U,GAAE6B,IAAIhD,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,EAAC,EAAGkpB,EAAEy4T,aAAe,CAAC9gV,EAAGd,EAAGD,EAAGS,KAAO2oB,EAAEy4T,aAAe3/U,GAAE8B,IAAIjD,EAAGd,EAAGD,EAAGS,CAAC,EAAG2oB,EAAE04T,YAAc,CAAC/gV,EAAGd,EAAGD,KAAOopB,EAAE04T,YAAc5/U,GAAE+B,IAAIlD,EAAGd,EAAGD,CAAC,EACrS,IAAI+hV,GAAK34T,EAAE44T,cAAgB,CAACjhV,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,MAAOmiV,GAAK34T,EAAE44T,cAAgB9/U,GAAEgC,IAAInD,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,EAAC,EAC3GwpB,EAAE64T,aAAe,CAAClhV,EAAGd,EAAGD,EAAGS,EAAGs9B,MAAO3U,EAAE64T,aAAe//U,GAAEiC,IAAIpD,EAAGd,EAAGD,EAAGS,EAAGs9B,EAAC,EAAG3U,EAAE84T,eAAiB,CAACnhV,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,MAAOynB,EAAE84T,eAAiBhgV,GAAEkC,IAAIrD,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,EAAC,EAAGynB,EAAE+4T,eAAiB,CAACphV,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,MAAOynB,EAAE+4T,eAAiBjgV,GAAE0S,IAAI7T,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,EAAC,EAAGynB,EAAEg5T,gBAAkB,CAACrhV,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,GAAGE,MAAOspB,EAAEg5T,gBAAkBlgV,GAAEmC,IAAItD,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,GAAGE,EAAC,EAAGspB,EAAEi5T,iBAAmB,CAACthV,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,GAAGE,GAAGK,MAAOipB,EAAEi5T,iBAAmBngV,GAAEoC,IAAIvD,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,GAAGE,GAAGK,EAAC,EAC7d,SAAS+gV,GAAGngV,EAAGd,EAAG,CAChB,IAAID,EAAIiB,KACR,GAAI,CACFgtD,GAAE9+B,IAAIpuB,CAAC,EAAEd,CAAC,CACZ,OAASQ,EAAG,CACV,GAAI+B,GAAExC,CAAC,EAAGS,IAAMA,EAAI,EAClB,MAAMA,EACRsB,GAAE,EAAG,CAAC,CACR,CACF,CACA,SAASo/U,GAAGpgV,EAAGd,EAAGD,EAAG,CACnB,IAAIS,EAAIQ,GAAG,EACX,GAAI,CACFgtD,GAAE9+B,IAAIpuB,CAAC,EAAEd,EAAGD,CAAC,CACf,OAAS+9B,GAAG,CACV,GAAIv7B,GAAE/B,CAAC,EAAGs9B,KAAMA,GAAI,EAClB,MAAMA,GACRh8B,GAAE,EAAG,CAAC,CACR,CACF,CACA,SAASg/U,GAAGhgV,EAAGd,EAAGD,EAAGS,EAAG,CACtB,IAAIs9B,GAAI98B,GAAG,EACX,GAAI,CACF,OAAOgtD,GAAE9+B,IAAIpuB,CAAC,EAAEd,EAAGD,EAAGS,CAAC,CACzB,OAASP,GAAG,CACV,GAAIsC,GAAEu7B,EAAC,EAAG79B,KAAMA,GAAI,EAClB,MAAMA,GACR6B,GAAE,EAAG,CAAC,CACR,CACF,CACA,SAAS++U,GAAG//U,EAAGd,EAAGD,EAAG,CACnB,IAAIS,EAAIQ,GAAC,EACT,GAAI,CACF,OAAOgtD,GAAE9+B,IAAIpuB,CAAC,EAAEd,EAAGD,CAAC,CACtB,OAAS+9B,GAAG,CACV,GAAIv7B,GAAE/B,CAAC,EAAGs9B,KAAMA,GAAI,EAClB,MAAMA,GACRh8B,GAAE,EAAG,CAAC,CACR,CACF,CACA,SAAS8+U,GAAG9/U,EAAGd,EAAG,CAChB,IAAID,EAAIiB,GAAG,EACX,GAAI,CACF,OAAOgtD,GAAE9+B,IAAIpuB,CAAC,EAAEd,CAAC,CACnB,OAASQ,EAAG,CACV,GAAI+B,GAAExC,CAAC,EAAGS,IAAMA,EAAI,EAClB,MAAMA,EACRsB,GAAE,EAAG,CAAC,CACR,CACF,CACA,SAASi/U,GAAGjgV,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAG,CAC5B,IAAIyB,GAAIV,KACR,GAAI,CACF,OAAOgtD,GAAE9+B,IAAIpuB,CAAC,EAAEd,EAAGD,EAAGS,EAAGs9B,GAAG79B,EAAC,CAC/B,OAASN,GAAG,CACV,GAAI4C,GAAEb,EAAC,EAAG/B,KAAMA,GAAI,EAClB,MAAMA,GACRmC,GAAE,EAAG,CAAC,CACR,CACF,CACA,SAASs/U,GAAGtgV,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG,CACzB,IAAI79B,GAAIe,GAAG,EACX,GAAI,CACFgtD,GAAE9+B,IAAIpuB,CAAC,EAAEd,EAAGD,EAAGS,EAAGs9B,EAAC,CACrB,OAASp8B,GAAG,CACV,GAAIa,GAAEtC,EAAC,EAAGyB,KAAMA,GAAI,EAClB,MAAMA,GACRI,GAAE,EAAG,CAAC,CACR,CACF,CACA,SAASq/U,GAAGrgV,EAAGd,EAAGD,EAAGS,EAAG,CACtB,IAAIs9B,GAAI98B,GAAG,EACX,GAAI,CACFgtD,GAAE9+B,IAAIpuB,CAAC,EAAEd,EAAGD,EAAGS,CAAC,CAClB,OAASP,GAAG,CACV,GAAIsC,GAAEu7B,EAAC,EAAG79B,KAAMA,GAAI,EAClB,MAAMA,GACR6B,GAAE,EAAG,CAAC,CACR,CACF,CACA,SAASk/U,GAAGlgV,EAAG,CACb,IAAId,EAAIgB,GAAC,EACT,GAAI,CACFgtD,GAAE9+B,IAAIpuB,CAAC,EAAG,CACZ,OAASf,EAAG,CACV,GAAIwC,GAAEvC,CAAC,EAAGD,IAAMA,EAAI,EAClB,MAAMA,EACR+B,GAAE,EAAG,CAAC,CACR,CACF,CACA,SAASu/U,GAAGvgV,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,GAAG,CAClC,IAAIE,GAAImB,GAAC,EACT,GAAI,CACF8gV,GAAGhhV,EAAGd,EAAGD,EAAGS,EAAGs9B,GAAG79B,GAAGyB,GAAG/B,EAAC,CAC3B,OAASO,GAAG,CACV,GAAIqC,GAAE1C,EAAC,EAAGK,KAAMA,GAAI,EAClB,MAAMA,GACR4B,GAAE,EAAG,CAAC,CACR,CACF,CACA,IAAIugV,GACJhK,EAAK,SAASv3U,GAAI,CAChBuhV,IAAMC,GAAI,EAAED,KAAOhK,EAAKv3U,EAC1B,EACA,SAASwhV,IAAK,CACZ,SAASxhV,GAAI,CACX,IAAIf,EACJ,GAAI,CAACsiV,KAAOA,GAAK,GAAMl5T,EAAEo5T,UAAY,GAAM,CAAC9L,GAAK,CAC/C,GAAIwC,GAAGjB,CAAE,EAAGn2U,EAAEsnB,CAAC,GAAIppB,EAAIopB,EAAEq5T,uBAAyB,MAAQziV,EAAEmnH,KAAK/9F,CAAC,EAAGA,EAAEs5T,QACrE,IAAK,OAAOt5T,EAAEs5T,SAAW,aAAet5T,EAAEs5T,QAAU,CAACt5T,EAAEs5T,OAAO,GAAIt5T,EAAEs5T,QAAQv8R,QAAU,CACpF,IAAIlmD,EAAImpB,EAAEs5T,QAAQ5kR,MAAO,EACzBo6Q,EAAGG,QAAQp4U,CAAC,CACd,CACFi5U,GAAGhB,CAAE,CACP,CACF,CACA,GAAI,EAAE,EAAI/1U,GAAI,CACZ,GAAIinB,EAAEgvT,OACJ,IAAK,OAAOhvT,EAAEgvT,QAAU,aAAehvT,EAAEgvT,OAAS,CAAChvT,EAAEgvT,MAAM,GAAIhvT,EAAEgvT,OAAOjyR,QACtEgyR,EAAE,EACNe,GAAGlB,CAAE,EAAG,EAAI71U,IAAMinB,EAAEu5T,WAAav5T,EAAEu5T,UAAU,YAAY,EAAGr7R,WAAW,IAAM,CAC3EA,WAAW,IAAMl+B,EAAEu5T,UAAU,EAAE,EAAG,CAAC,EAAG5hV,EAAC,CACzC,EAAG,CAAC,GAAKA,EAAC,EACZ,CACF,CACA,GAAIqoB,EAAEw5T,QACJ,IAAK,OAAOx5T,EAAEw5T,SAAW,aAAex5T,EAAEw5T,QAAU,CAACx5T,EAAEw5T,OAAO,GAAI,EAAIx5T,EAAEw5T,QAAQz8R,QAC9E/8B,EAAEw5T,QAAQt9P,IAAG,EAAI,EACrB,OAAOi9P,GAAI,EAAE/gV,EAAIF,EAAGE,CACtB,CACF,GAAI,EACAqhV,IAAKhN,IACLiN,GAAK,KAAM,CACbxtQ,aAAc,CACZ,UAAUh4B,MAAM,8DAA8D,CAChF,CACA,OAAOylS,SAASljV,EAAG,CACjB,OAAO+B,GAAE,KAAM,KAAM,WAAa,CAChC,aAAaihV,IAAG,CAAEnB,WAAYA,IAAM7hV,CAAE,CAAC,CACzC,CAAC,CACH,CACA,OAAOmjV,iBAAkB,CACvB,OAAOphV,GAAE,KAAM,KAAM,WAAa,CAChC,YAAYqhV,iBAAmB,KAAKA,eAAiB,KAAKF,SAAS,KAAKG,QAAQ,EAAE5tF,MAAOz1P,GAAM+B,GAAE,KAAM,KAAM,WAAa,CACxH,IAAIynB,EAAI,qBAAqBssT,EAAE,IAAID,EAAE,8BACrC11J,QAAQ9O,KAAK,iCAAiC,KAAKgyK,QAAQ,YAAYrjV,EAAEi9E,OAAO,EAAE,EAAGkjG,QAAQ9O,KAAK,4CAA4C7nJ,CAAC,EAAE,EACjJ,GAAI,CACF,OAAa,WAAK05T,SAAS15T,CAAC,CAC9B,OAAS7nB,EAAG,CACV,MAAMw+K,QAAQvjG,MAAM,4BAA4B58E,EAAEi9E,OAAO,EAAE,EAAGkjG,QAAQvjG,MAAM,2BAA2Bj7E,EAAEs7E,OAAO,EAAE,EAAG,IAAIx/B,MAAM,uCAAuC,CACxK,CACF,CAAC,CAAC,GAAI,KAAK2lS,cACb,CAAC,CACH,CACA,OAAOhmG,MAAO,CACZ,OAAOr7O,GAAE,KAAM,KAAM,WAAa,CAChC,OAAO,KAAKohV,gBAAiB,CAC/B,CAAC,CACH,CACA,OAAOG,WAAWtjV,EAAG,CACnB,KAAKqjV,SAAWrjV,EAAG,KAAKojV,eAAiB,IAC3C,CACF,EACA30S,GAAEw0S,GAAI,iBAAkB,IAAI,EAAGx0S,GAAEw0S,GAAI,WAAY,gCAAgCnN,EAAE,IAAID,EAAE,6BAA6B,EACtH,IAAI0N,GAAK,KAAM,CACb9tQ,aAAc,CACZhnC,GAAE,KAAM,kBAAmC,IAAIigR,GAAK,CACtD,CACA5mQ,iBAAiB9nD,EAAGwpB,EAAG,CACrB,IAAI7nB,EAAI,KAAK6hV,gBAAgBl0T,IAAItvB,CAAC,EAClC2B,IAAMA,EAAoB,IAAIw0E,IAAO,KAAKqtQ,gBAAgBzsQ,IAAI/2E,EAAG2B,CAAC,GAAIA,EAAEokD,IAAIv8B,CAAC,CAC/E,CACAw+B,oBAAoBhoD,EAAGwpB,EAAG,CACxB,IAAI7nB,EAAI,KAAK6hV,gBAAgBl0T,IAAItvB,CAAC,EAClC2B,IAAM6nB,GAAK7nB,EAAEupF,OAAO1hE,CAAC,EAAG7nB,EAAEu7B,OAAS,GAAK,KAAKsmT,gBAAgBt4P,OAAOlrF,CAAC,GAAK,KAAKwjV,gBAAgBt4P,OAAOlrF,CAAC,EACzG,CACA8wG,SAAS9wG,EAAG,CACV,IAAIwpB,EAAI,KAAKg6T,gBAAgBl0T,IAAItvB,EAAEquB,IAAI,EACvC7E,GAAK,MAAQA,EAAEy8B,QAAStkD,GAAMA,EAAE3B,CAAC,CAAC,CACpC,CACAyjV,yBAA0B,CACxB,KAAKD,gBAAgB16C,MAAK,CAC5B,CACF,EACIjoS,GAAI,KAAM,CACZ,OAAO6iV,qBAAsB,CAC3B,GAAI,KAAKC,UACP,OACF,IAAI3jV,EAAKwpB,GAAM,CACbA,EAAEy8B,QAAStkD,GAAM,CACf,IAAI4nB,EAAI,KAAKq6T,kBAAkBt0T,IAAI3tB,EAAEmxB,MAAM,EAC3CvJ,IAAM5nB,EAAE6yQ,eAAiBjrP,EAAEs6T,SAAU,EAAGt6T,EAAEu6T,OAAM,EAClD,CAAC,CACH,EACA,KAAKH,UAAY,IAAII,qBAAqB/jV,EAAG,CAAEknE,UAAW,CAAE,CAAC,CAC/D,CACA,OAAO2+H,QAAQ7lM,EAAGwpB,EAAG,CACnB,IAAI7nB,EACJ,KAAK+hV,oBAAqB,EAAE,CAAC,KAAKE,kBAAkBvuQ,IAAIr1E,CAAC,IAAM,KAAK4jV,kBAAkB7sQ,IAAI/2E,EAAGwpB,CAAC,GAAI7nB,EAAI,KAAKgiV,YAAc,MAAQhiV,EAAEkkM,QAAQ7lM,CAAC,EAC9I,CACA,OAAOgkV,UAAUhkV,EAAG,CAClB,IAAIwpB,EAAG7nB,GACN6nB,EAAI,KAAKm6T,YAAc,MAAQn6T,EAAEw6T,UAAUhkV,CAAC,EAAG,KAAK4jV,kBAAkB14P,OAAOlrF,CAAC,EAAG,KAAK4jV,kBAAkB1mT,OAAS,KAAOv7B,EAAI,KAAKgiV,YAAc,MAAQhiV,EAAEsiV,WAAU,EAAI,KAAKN,UAAY,KAC3L,CACF,EACAl1S,GAAE5tC,GAAG,YAAa,IAAI,EAAG4tC,GAAE5tC,GAAG,oBAAqC,IAAI6tT,GAAK,EAC5E,IAAI9rT,GAAI,KAAM,CACZ,OAAO8gV,qBAAsB,CAC3B,GAAI,KAAKC,UACP,OACF,IAAI3jV,EAAKwpB,GAAM,CACbA,EAAEy8B,QAAStkD,GAAM,CACf,IAAI4nB,EAAI,KAAKq6T,kBAAkBt0T,IAAI3tB,EAAEmxB,MAAM,EAC3C,GAAI,CAACvJ,EACH,OACF,GAAI,CAACtnB,EAAGhB,CAAC,EAAIsoB,EACbq9D,aAAa3lF,CAAC,EACd,IAAIQ,EAAIgmD,WAAW,IAAM,CACvBxlD,EAAEiiV,OAAM,CACV,EAAG,GAAG,EACN,KAAKN,kBAAkB7sQ,IAAIp1E,EAAEmxB,OAAQ,CAAC7wB,EAAGR,CAAC,CAAC,CAC7C,CAAC,CACH,EACA,KAAKkiV,UAAY,IAAIQ,eAAenkV,CAAC,CACvC,CACA,OAAO6lM,QAAQ7lM,EAAGwpB,EAAG,CACnB,IAAI7nB,EACJ,KAAK+hV,oBAAqB,EAAE,CAAC,KAAKE,kBAAkBvuQ,IAAIr1E,CAAC,IAAM,KAAK4jV,kBAAkB7sQ,IAAI/2E,EAAG,CAACwpB,EAAG,CAAC,CAAC,GAAI7nB,EAAI,KAAKgiV,YAAc,MAAQhiV,EAAEkkM,QAAQ7lM,CAAC,EACnJ,CACA,OAAOgkV,UAAUhkV,EAAG,CAClB,IAAIwpB,EAAG7nB,GACN6nB,EAAI,KAAKm6T,YAAc,MAAQn6T,EAAEw6T,UAAUhkV,CAAC,EAAG,KAAK4jV,kBAAkB14P,OAAOlrF,CAAC,EAAG,KAAK4jV,kBAAkB1mT,OAAS,KAAOv7B,EAAI,KAAKgiV,YAAc,MAAQhiV,EAAEsiV,WAAU,EAAI,KAAKN,UAAY,KAC3L,CACF,EACAl1S,GAAE7rC,GAAG,YAAa,IAAI,EAAG6rC,GAAE7rC,GAAG,oBAAqC,IAAI8rT,GAAK,EAC5E,SAAS01B,IAAGxiV,EAAG,CACb,MAAO,+BAA+BitB,KAAKjtB,CAAC,CAC9C,CACA,SAAS8oM,IAAG9oM,EAAG,CACb,GAAI,CAACwiV,IAAGxiV,CAAC,EACP,MAAQ,GACV,IAAI5B,EAAI4B,EAAEk1E,QAAQ,IAAK,EAAE,EACzB,OAAO92E,EAAIA,EAAEsmD,SAAW,EAAI,GAAGtmD,CAAC,KAAOA,EAAG8hD,SAAS9hD,EAAG,EAAE,CAC1D,CACA,SAASqkV,GAAGziV,EAAG,CACb,GAAIA,EAAEk/U,WAAa,EACjB,MAAY,GACd,IAAI9gV,EAAI,IAAI45T,WAAWh4T,EAAE+8E,MAAM,EAAGg3P,GAAGmL,UAAU,CAAC,EAChD,QAASt3T,EAAI,EAAGA,EAAImsT,GAAGrvR,OAAQ98B,GAAK,EAClC,GAAImsT,GAAGnsT,CAAC,IAAMxpB,EAAEwpB,CAAC,EACf,MAAY,GAChB,MAAO,EACT,CACA,SAAS86T,GAAG1iV,EAAG,CACb,OAAOg0U,IAAGz1P,MAAOngF,GAAMovB,OAAOsmD,UAAUC,eAAe2xC,KAAK1lH,EAAG5B,CAAC,CAAC,CACnE,CACA,SAAS6kI,GAAGjjI,EAAG,CACb,GAAI,OAAOA,GAAK,SACd,GAAI,CACF,OAAO0iV,GAAGxmK,KAAKl9H,MAAMh/C,CAAC,CAAC,CACzB,MAAY,CACV,MAAO,EACT,KAEA,QAAO0iV,GAAG1iV,CAAC,CACf,CACA,SAAS2iV,IAAK,CACZ,MAAQ,KAAK/jV,GAAIq1E,OAAO2uQ,iBAAmB,GAAK,GAAKzO,GACvD,CACA,SAAS0O,GAAG7iV,EAAG,CACb,IAAI5B,EAAI4B,EAAEqhE,sBAAuB,EACjC,OAAOjjE,EAAEihD,KAAO,GAAKjhD,EAAEghD,MAAQ,GAAKhhD,EAAEsjG,SAAWztB,OAAO0jC,aAAex3D,SAAS+hB,gBAAgBtgB,eAAiBxjD,EAAEkhD,QAAU20B,OAAOwqO,YAAct+P,SAAS+hB,gBAAgBlgB,YAC7K,CACA,IAAI8gS,GAAKA,CAAC9iV,EAAG5B,IAAM4B,IAAM,UAAY5B,EAAE2kV,KAAKC,QAAUhjV,IAAM,SAAW5B,EAAE2kV,KAAKE,OAASjjV,IAAM,iBAAmB5B,EAAE2kV,KAAKG,cAAgB9kV,EAAE2kV,KAAKI,QAC1IC,GAAKA,CAACpjV,EAAG5B,IAAM4B,IAAM,UAAY5B,EAAEilV,IAAIC,QAAUtjV,IAAM,QAAU5B,EAAEilV,IAAIE,MAAQvjV,IAAM,OAAS5B,EAAEilV,IAAIG,KAAOxjV,IAAM,aAAe5B,EAAEilV,IAAII,UAAYzjV,IAAM,YAAc5B,EAAEilV,IAAIK,SAAWtlV,EAAEilV,IAAIM,KAC7LC,GAAKA,CAAC5jV,EAAG5B,IAAM,CACjB,IAAIwpB,EAAI,IAAIxpB,EAAEylV,YACd,OAAOj8T,EAAEk8T,UAAU9jV,EAAE,CAAC,CAAC,EAAG4nB,EAAEk8T,UAAU9jV,EAAE,CAAC,CAAC,EAAG4nB,CAC/C,EACIm8T,GAAKA,CAAC/jV,EAAG5B,IAAM,CACjB,IAAIwpB,EAAI,IAAIxpB,EAAEylV,YACd,OAAO7jV,EAAE0kD,SAAW,IAAM98B,EAAEk8T,UAAU9jV,EAAE,CAAC,CAAC,EAAG4nB,EAAEk8T,UAAU9jV,EAAE,CAAC,CAAC,GAAI4nB,CACnE,EACI9nB,GAAI,MAAMkkV,EAAG,CACfnwQ,YAAYz1E,EAAG,CACbyuC,GAAE,KAAM,SAAS,EACjBA,GAAE,KAAM,WAAY,IAAI,EACxBA,GAAE,KAAM,eAAe,EACvBA,GAAE,KAAM,oBAAqB,IAAI,EACjCA,GAAE,KAAM,eAAe,EACvBA,GAAE,KAAM,iBAAkB,IAAI,EAC9BA,GAAE,KAAM,gBAAiB,EAAE,EAC3BA,GAAE,KAAM,YAAa,EAAK,EAC1BA,GAAE,KAAM,mBAAoB,IAAI,EAChCA,GAAE,KAAM,kBAAkB,EAC1BA,GAAE,KAAM,oBAAoB,EAC5BA,GAAE,KAAM,oBAAoB,EAC5BA,GAAE,KAAM,qBAAqB,EAC7BA,GAAE,KAAM,oBAAoB,EAC5B,IAAIjlB,EAAG7nB,EAAG4nB,EACV,KAAKs8T,QAAU7lV,EAAEyqL,OAAQ,KAAKq7J,SAAW,KAAKD,QAAQE,WAAW,IAAI,EAAG,KAAKC,cAAgB,IAAIzC,GAAM,KAAK0C,cAAgB,IAAIxQ,IAAM,KAAKyQ,cAAgBrkV,GAAEV,GAAE,GAAInB,EAAEmmV,YAAY,EAAG,CAAE3B,mBAAoBh7T,EAAIxpB,EAAEmmV,eAAiB,KAAO,OAAS38T,EAAEg7T,mBAAqBD,GAAE,EAAI6B,mBAAoB78T,GAAK5nB,EAAI3B,EAAEmmV,eAAiB,KAAO,OAASxkV,EAAEykV,oBAAsB,KAAO78T,EAAI,EAAK,CAAC,EAAG05T,GAAG7lG,KAAM,EAAC9vJ,KAAMrrF,GAAM,CAC9Y,IAAIhB,EAAGQ,EAAGH,EAAGP,EAAG2B,EAAGuxS,EAAIoiC,EACvBuP,GAAGS,YAAcpkV,EAAG,KAAKqkV,eAAiB,IAAIrkV,EAAEskV,gBAAgB,CAAE5iE,UAAW1iR,EAAIjB,EAAE2jR,WAAa,KAAO1iR,EAAI,GAAOgiI,gBAAiB,EAAGujN,eAAgB/kV,EAAIzB,EAAEq2C,OAAS,KAAO50C,EAAI,GAAOy8E,KAAMwmQ,IAAIpjV,EAAItB,EAAEk+E,OAAS,KAAO58E,EAAI,UAAWW,CAAC,EAAGy3K,QAASisK,IAAI5kV,EAAIf,EAAE05K,UAAY,KAAO34K,EAAI,CAAE,EAAEkB,CAAC,EAAGqrS,OAAQ5qS,EAAI1C,EAAEstS,QAAU,KAAO5qS,EAAI,EAAG+jV,uBAAwBxyC,EAAKj0S,EAAEymV,wBAA0B,KAAOxyC,EAAK,GAAMyyC,QAASrQ,EAAKr2U,EAAE0mV,SAAW,KAAOrQ,EAAK,GAAI9tE,OAAQvoQ,EAAEuoQ,OAAS,CAAEz7L,MAAO04Q,GAAGxlV,EAAEuoQ,OAAOz7L,MAAO7qE,CAAC,EAAG0kV,IAAK3B,GAAGhlV,EAAEuoQ,OAAOo+E,IAAK1kV,CAAC,CAAE,EAAIA,EAAE2kV,oBAAsB,EAAC,EAAG,KAAKZ,cAAcl1O,SAAS,CAAEziF,KAAM,OAAQ,CAAC,EAAGruB,EAAEg9C,KAAO,KAAK6pS,cAAc7mV,EAAEg9C,IAAI,EAAIh9C,EAAEkkI,KAAO,KAAK4iN,aAAa9mV,EAAEkkI,GAAG,EAAGlkI,EAAEijI,iBAAmB,KAAK8jN,mBAAmB/mV,EAAEijI,eAAe,CAC7tB,CAAC,EAAEwyH,MAAOxzP,GAAM,CACd,KAAK+jV,cAAcl1O,SAAS,CAAEziF,KAAM,YAAauuD,MAAO,IAAIn/B,MAAM,+BAA+Bx7C,CAAC,EAAE,CAAE,CAAC,CACzG,CAAC,EAAG,KAAK+kV,iBAAmB,KAAKC,aAAa/lQ,KAAK,IAAI,EAAG,KAAKgmQ,mBAAqB,KAAKC,eAAejmQ,KAAK,IAAI,EAAG,KAAKkmQ,mBAAqB,KAAKC,eAAenmQ,KAAK,IAAI,EAAG,KAAKomQ,oBAAsB,KAAKC,gBAAgBrmQ,KAAK,IAAI,EAAG,KAAKsmQ,mBAAqB,KAAKC,gBAAgBvmQ,KAAK,IAAI,CACpS,CACAwmQ,eAAe1nV,EAAG,CAChBmgL,QAAQvjG,MAAM58E,CAAC,EAAG,KAAKgmV,cAAcl1O,SAAS,CAAEziF,KAAM,YAAauuD,MAAO,IAAIn/B,MAAMz9C,CAAC,CAAE,CAAC,CAC1F,CACA2nV,WAAW3nV,EAAG,CACZ,OAAO+B,GAAE,KAAM,KAAM,WAAa,CAChC,IAAIynB,EAAI,MAAMgmN,MAAMxvO,CAAC,EACrB,GAAI,CAACwpB,EAAEvE,GACL,MAAU,IAAAw4B,MAAM,4CAA4Cz9C,CAAC,KAAKwpB,EAAEi2J,MAAM,KAAKj2J,EAAEk2J,UAAU,EAAE,EAC/F,IAAI/9K,EAAI,MAAM6nB,EAAE04K,YAAW,EAC3B,OAAOmiJ,GAAG1iV,CAAC,EAAIA,EAAI,IAAI83U,YAAW,EAAGC,OAAO/3U,CAAC,CAC/C,CAAC,CACH,CACAklV,cAAc7mV,EAAG,CACf,GAAI,KAAKsmV,iBAAmB,KAC1B,OACF,IAAI98T,EAAI,KAAKq8T,QAAQvuT,MAAO31B,EAAI,KAAKkkV,QAAQzuT,OAAQ7N,EAAI,GACzD,GAAI,OAAOvpB,GAAK,SAAU,CACxB,GAAI,CAAC6kI,GAAG7kI,CAAC,EAAG,CACV,KAAK0nV,eAAe,6FAA6F,EACjH,MACF,CACAn+T,EAAI,KAAK+8T,eAAesB,kBAAkB5nV,EAAGwpB,EAAG7nB,CAAC,CACnD,SAAW3B,aAAasgV,YAAa,CACnC,GAAI,CAAC+D,GAAGrkV,CAAC,EAAG,CACV,KAAK0nV,eAAe,mGAAmG,EACvH,MACF,CACAn+T,EAAI,KAAK+8T,eAAeuB,kBAAkB7nV,EAAGwpB,EAAG7nB,CAAC,CACnD,SAAW,OAAO3B,GAAK,SAAU,CAC/B,GAAI,CAAC6kI,GAAG7kI,CAAC,EAAG,CACV,KAAK0nV,eAAe,6FAA6F,EACjH,MACF,CACAn+T,EAAI,KAAK+8T,eAAesB,kBAAkB9pK,KAAKC,UAAU/9K,CAAC,EAAGwpB,EAAG7nB,CAAC,CACnE,KAAO,CACL,KAAK+lV,eAAe;AAAA;AAAA;AAAA;AAAA,sBAIJ,OAAO1nV,CAAC,EAAE,EAC1B,MACF,CACAupB,GAAK,KAAKy8T,cAAcl1O,SAAS,CAAEziF,KAAM,MAAO,CAAC,EAAG7tB,IAAK,KAAK0jV,OAAQ,EAAE,KAAK8B,cAAcl1O,SAAS,CAAEziF,KAAM,QAASy5T,aAAc,KAAKxB,eAAewB,aAAY,CAAG,CAAC,EAAG,KAAKC,QAAS,EAAE,KAAKzB,eAAehoT,OAAQ,EAACqlP,WAAa,KAAK2iE,eAAe9hE,OAAQ,KAAK8hE,eAAezmC,aAAe,KAAKmmC,cAAcl1O,SAAS,CAAEziF,KAAM,MAAO,CAAC,EAAG,KAAK25T,kBAAoB,KAAK/B,cAAc9Q,sBAAsB,KAAK8S,MAAM/mQ,KAAK,IAAI,CAAC,GAAKi/F,QAAQvjG,MAAM,6DAA6D,GAAIp8E,IAAK,KAAKqlV,mBAAmBqC,oBAAsB,KAAKhC,cAAcE,mBAAqBvlV,GAAEglM,QAAQ,KAAKggJ,QAAS,IAAI,EAAG,KAAKK,cAAciC,YAAcvlV,GAAEijM,QAAQ,KAAKggJ,QAAS,IAAI,IAAM,KAAK6B,eAAe,+BAA+B,CAC/uB,CACAZ,aAAa9mV,EAAG,CACd,KAAK2nV,WAAW3nV,CAAC,EAAEstF,KAAM9jE,GAAM,KAAKq9T,cAAcr9T,CAAC,CAAC,EAAEisO,MAAOjsO,GAAM,KAAKk+T,eAAe,2CAA2C1nV,CAAC,KAAKwpB,CAAC,EAAE,CAAC,CAC9I,CACA,IAAI4+T,mBAAoB,CACtB,IAAIpoV,EACJ,OAAQA,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAEooV,kBAAmB,CAC3E,CACA,IAAIC,eAAgB,CAClB,IAAIroV,EACJ,OAAQA,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAEqoV,cAAe,CACvE,CACA,IAAI9/E,QAAS,CACX,IAAI/+O,EACJ,IAAIxpB,GAAKwpB,EAAI,KAAK88T,iBAAmB,KAAO,OAAS98T,EAAE8U,OAAM,EAAGiqO,OAChE,GAAIvoQ,EACF,MAAO,CAAE8sE,MAAO,CAAC9sE,EAAE8sE,MAAMx9C,IAAI,CAAC,EAAGtvB,EAAE8sE,MAAMx9C,IAAI,CAAC,CAAC,EAAGq3T,KAAM,IAAM,CAC5D,IAAIhlV,EAAG4nB,EAAGtnB,EAAGhB,EAAGQ,EAAGH,EACnB,OAAQtB,EAAE2mV,IAAG,CACX,MAAOhlV,EAAIikV,GAAGS,cAAgB,KAAO,OAAS1kV,EAAEsjV,IAAIC,SAClD,MAAO,UACT,MAAO37T,EAAIq8T,GAAGS,cAAgB,KAAO,OAAS98T,EAAE07T,IAAIE,OAClD,MAAO,QACT,MAAOljV,EAAI2jV,GAAGS,cAAgB,KAAO,OAASpkV,EAAEgjV,IAAIG,MAClD,MAAO,OACT,MAAOnkV,EAAI2kV,GAAGS,cAAgB,KAAO,OAASplV,EAAEgkV,IAAII,WAClD,MAAO,aACT,MAAO5jV,EAAImkV,GAAGS,cAAgB,KAAO,OAAS5kV,EAAEwjV,IAAIK,UAClD,MAAO,YACT,MAAOhkV,EAAIskV,GAAGS,cAAgB,KAAO,OAAS/kV,EAAE2jV,IAAIM,MAClD,MAAO,OACT,QACE,MAAO,SACX,CACF,GAAK,EACT,CACA,IAAImB,QAAS,CACX,IAAIl9T,EACJ,OAAQA,EAAI,KAAK88T,iBAAmB,KAAO,OAAS98T,EAAE8U,OAAQ,EAACooT,MACjE,CACA,IAAI4B,UAAW,CACb,IAAItoV,EACJ,GAAI,CACF,IAAIwpB,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAEuoV,iBACvD,GAAI,KAAKjC,iBAAmB,MAAQ,CAAC98T,EACnC,OAAW,KACb,IAAI7nB,EAAIm8K,KAAKl9H,MAAMp3B,CAAC,EACpB,OAAO4F,OAAOo6C,KAAK7nE,CAAC,EAAE2kD,SAAW,EAAI,KAAO3kD,CAC9C,MAAY,CACV,OAAW,IACb,CACF,CACA,IAAIwkV,cAAe,CACjB,OAAO,KAAKD,aACd,CACA,IAAIxsK,SAAU,CACZ,IAAIlwJ,EACJ,IAAIxpB,GAAKwpB,EAAI,KAAK88T,iBAAmB,KAAO,OAAS98T,EAAE8U,OAAM,EAAGo7I,QAChE,GAAI15K,GAAKA,EAAEk9B,SAAW,EACpB,MAAO,CAACl9B,EAAEsvB,IAAI,CAAC,EAAGtvB,EAAEsvB,IAAI,CAAC,CAAC,CAC9B,CACA,IAAI+mB,MAAO,CACT,IAAIr2C,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAEs+B,OAAM,EAAGkoT,gBAAkB,KAAOh9T,EAAI,EACnG,CACA,IAAI00D,MAAO,CACT,IAAI10D,EAAG7nB,EAAG4nB,EAAGtnB,EACb,IAAIjC,GAAKwpB,EAAI,KAAK88T,iBAAmB,KAAO,OAAS98T,EAAE8U,OAAQ,EAAC4/C,KAChE,OAAOl+E,MAAQ2B,EAAIikV,GAAGS,cAAgB,KAAO,OAAS1kV,EAAEgjV,KAAKC,SAAW,UAAY5kV,MAAQupB,EAAIq8T,GAAGS,cAAgB,KAAO,OAAS98T,EAAEo7T,KAAKE,QAAU,SAAW7kV,MAAQiC,EAAI2jV,GAAGS,cAAgB,KAAO,OAASpkV,EAAE0iV,KAAKG,eAAiB,iBAAmB,SAC3P,CACA,IAAI0D,UAAW,CACb,OAAO,KAAKC,SACd,CACA,IAAIxlN,iBAAkB,CACpB,IAAIjjI,EACJ,OAAQA,EAAI,KAAK0oV,mBAAqB,KAAO1oV,EAAI,EACnD,CACA,IAAI2jR,UAAW,CACb,IAAI3jR,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAEs+B,OAAM,EAAGqlP,WAAa,KAAOn6P,EAAI,EAC9F,CACA,IAAIi9T,uBAAwB,CAC1B,IAAIzmV,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAEs+B,SAASmoT,wBAA0B,KAAOj9T,EAAI,EAC3G,CACA,IAAI8jR,OAAQ,CACV,IAAIttS,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAEs+B,OAAQ,EAACgvQ,QAAU,KAAO9jR,EAAI,CAC3F,CACA,IAAIm/T,SAAU,CACZ,YAAYrC,iBAAmB,IACjC,CACA,IAAIsC,UAAW,CACb,IAAI5oV,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAE4oV,SAAU,IAAK,KAAOp/T,EAAI,EACvF,CACA,IAAIq2R,WAAY,CACd,IAAI7/S,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAE6/S,UAAW,IAAK,KAAOr2R,EAAI,EACxF,CACA,IAAIq/T,UAAW,CACb,IAAI7oV,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAE6oV,SAAQ,IAAO,KAAOr/T,EAAI,EACvF,CACA,IAAIs/T,WAAY,CACd,IAAI9oV,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAE8oV,UAAS,IAAO,KAAOt/T,EAAI,EACxF,CACA,IAAIs+T,cAAe,CACjB,IAAI9nV,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAE8nV,aAAY,IAAO,KAAOt+T,EAAI,CAC3F,CACA,IAAIu/T,WAAY,CACd,IAAI/oV,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAE+oV,cAAgB,KAAOv/T,EAAI,CACxF,CACA,IAAIw/T,aAAc,CAChB,IAAIhpV,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAEgpV,YAAa,IAAK,KAAOx/T,EAAI,CAC1F,CACA,IAAI2gF,UAAW,CACb,IAAInqG,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAEmqG,SAAU,IAAK,KAAO3gF,EAAI,CACvF,CACA,IAAIy/T,iBAAkB,CACpB,IAAIjpV,EAAGwpB,EACP,OAAQA,GAAKxpB,EAAI,KAAKsmV,iBAAmB,KAAO,OAAStmV,EAAEipV,gBAAiB,IAAK,KAAOz/T,EAAI,CAC9F,CACA,IAAIihK,QAAS,CACX,OAAW,KAACo7J,OACd,CACAzoG,KAAKp9O,EAAG,CACN,IAAIwpB,EAAG7nB,EAAG4nB,EAAGtnB,EAAGhB,EAAGQ,EAAGH,EAAGP,EACzB,KAAKulV,iBAAmB,MAAQV,GAAGS,cAAgB,OAAS,KAAKC,eAAe4C,UAAU,CAAEvlE,UAAWn6P,EAAIxpB,EAAE2jR,WAAa,KAAOn6P,EAAI,GAAOy5G,gBAAiB,EAAGujN,eAAgB7kV,EAAI3B,EAAEq2C,OAAS,KAAO10C,EAAI,GAAOu8E,KAAMwmQ,IAAIn7T,EAAIvpB,EAAEk+E,OAAS,KAAO30D,EAAI,UAAWq8T,GAAGS,WAAW,EAAG3sK,QAASisK,IAAI1jV,EAAIjC,EAAE05K,UAAY,KAAOz3K,EAAI,CAAE,EAAE2jV,GAAGS,WAAW,EAAG/4C,OAAQrsS,EAAIjB,EAAEstS,QAAU,KAAOrsS,EAAI,EAAGwlV,uBAAwBhlV,EAAIzB,EAAEymV,wBAA0B,KAAOhlV,EAAI,GAAMilV,QAASplV,EAAItB,EAAE0mV,SAAW,KAAOplV,EAAI,GAAIinQ,OAAQvoQ,EAAEuoQ,OAAS,CAAEz7L,MAAO04Q,GAAGxlV,EAAEuoQ,OAAOz7L,MAAO84Q,GAAGS,WAAW,EAAGM,IAAK3B,GAAGhlV,EAAEuoQ,OAAOo+E,IAAKf,GAAGS,WAAW,CAAE,EAAIT,GAAGS,YAAYO,qBAAsB,CAAC,EAAG5mV,EAAEg9C,KAAO,KAAK6pS,cAAc7mV,EAAEg9C,IAAI,EAAIh9C,EAAEkkI,KAAO,KAAK4iN,aAAa9mV,EAAEkkI,GAAG,EAAG,KAAK6iN,oBAAoBhmV,EAAIf,EAAEijI,kBAAoB,KAAOliI,EAAI,EAAE,EACtwB,CACAgnV,SAAU,CACR,GAAI,KAAKzB,iBAAmB,MAAQ,KAAKR,WAAa,KACpD,MAAY,GACd,GAAI,KAAKQ,eAAezoQ,SAAU,CAChC,IAAIr0D,EAAI,KAAK88T,eAAezpS,OAAM,EAAIl7C,EAAI,IAAI4+U,kBAAkB/2T,EAAG,EAAG,KAAKq8T,QAAQvuT,MAAQ,KAAKuuT,QAAQzuT,OAAS,CAAC,EAAG7N,EAAI,KACzH,OAAc,OAAA4/T,UAAa,KAAe5/T,EAAI,KAAKu8T,SAASsD,gBAAgB,KAAKvD,QAAQvuT,MAAO,KAAKuuT,QAAQzuT,MAAM,EAAG7N,EAAEyzB,KAAK+5B,IAAIp1E,CAAC,GAAK4nB,EAAI,IAAI4/T,UAAUxnV,EAAG,KAAKkkV,QAAQvuT,MAAO,KAAKuuT,QAAQzuT,MAAM,EAAG,KAAK0uT,SAASuD,aAAa9/T,EAAG,EAAG,CAAC,EAAG,KAAKy8T,cAAcl1O,SAAS,CAAEziF,KAAM,SAAUy5T,aAAc,KAAKxB,eAAewB,aAAY,CAAG,CAAC,EAAG,EAChV,CACA,MAAO,EACT,CACAG,OAAQ,CACN,GAAI,KAAK3B,iBAAmB,MAAQ,KAAKR,WAAa,MAAQ,CAAC,KAAKQ,eAAezmC,UAAS,EAC1F,OACF,IAAI7/S,EAAI,KAAKsmV,eAAegD,eAC5B,KAAKhD,eAAeiD,SAASvpV,CAAC,IAAM,KAAKgmV,cAAcl1O,SAAS,CAAEziF,KAAM,QAASy5T,aAAc,KAAKxB,eAAewB,aAAY,CAAG,CAAC,EAAG,KAAKC,QAAO,GAAM,KAAKzB,eAAeliE,WAAU,IAAO,KAAKkiE,eAAehoT,OAAQ,EAACkoT,cAAgB,KAAKR,cAAcl1O,SAAS,CAAEziF,KAAM,OAAQ06T,UAAW,KAAKzC,eAAeyC,UAAS,CAAG,CAAC,EAAI,KAAK/C,cAAcl1O,SAAS,CAAEziF,KAAM,UAAW,CAAC,IAAK,KAAK25T,kBAAoB,KAAK/B,cAAc9Q,sBAAsB,KAAK8S,MAAM/mQ,KAAK,IAAI,CAAC,CACpd,CACAsjM,MAAO,CACD,KAAK8hE,iBAAmB,QAE3B,KAAKA,eAAe9hE,KAAI,GAAM,KAAK8hE,eAAezmC,UAAS,KAAQ,KAAK4oC,UAAY,GAAO,KAAKzC,cAAcl1O,SAAS,CAAEziF,KAAM,MAAO,CAAC,EAAG,KAAK25T,kBAAoB,KAAK/B,cAAc9Q,sBAAsB,KAAK8S,MAAM/mQ,KAAK,IAAI,CAAC,GAAI1gF,IAAK,KAAKqlV,mBAAmBqC,mBAAqB,KAAKhC,cAAcE,mBAAqB,CAAC3B,GAAG,KAAKoB,OAAO,GAAK,KAAK/B,OAAM,EAClW,CACA0F,OAAQ,CACF,KAAKlD,iBAAmB,OAE3B,KAAKA,eAAekD,MAAK,GAAM,KAAKlD,eAAeuC,SAAQ,IAAO,KAAK7C,cAAcl1O,SAAS,CAAEziF,KAAM,OAAQ,CAAC,CAClH,CACAg7Q,MAAO,CACD,KAAKi9C,iBAAmB,MAE5B,KAAKA,eAAej9C,KAAM,IAAK,KAAK28C,cAAcl1O,SAAS,CAAEziF,KAAM,QAASy5T,aAAc,KAAKxB,eAAewB,aAAe,EAAC,EAAG,KAAKC,QAAS,EAAE,KAAK/B,cAAcl1O,SAAS,CAAEziF,KAAM,MAAO,CAAC,EAC/L,CACAk7T,SAASvpV,EAAG,CACN,KAAKsmV,iBAAmB,MAAQtmV,EAAI,GAAKA,EAAI,KAAKsmV,eAAe0C,eAErE,KAAK1C,eAAex2C,KAAK9vS,CAAC,IAAM,KAAKgmV,cAAcl1O,SAAS,CAAEziF,KAAM,QAASy5T,aAAc,KAAKxB,eAAewB,aAAY,CAAG,CAAC,EAAG,KAAKC,QAAO,EAChJ,CACA0B,SAASzpV,EAAG,CACV,KAAKsmV,iBAAmB,MAAQ,KAAKA,eAAe4C,UAAUrnV,GAAEV,GAAE,GAAI,KAAKmlV,eAAehoT,QAAQ,EAAG,CAAEgvQ,MAAOttS,CAAE,CAAC,CAAC,CACpH,CACA+mV,mBAAmB/mV,EAAG,CACpB,KAAKsmV,iBAAmB,OAAS9lV,IAAK,KAAKqlV,mBAAmBqC,kBAAoB,KAAKrC,QAAQz6S,MAAM63F,gBAAkBjjI,EAAI,KAAKsmV,eAAe4C,UAAUrnV,GAAEV,GAAE,CAAE,EAAE,KAAKmlV,eAAehoT,OAAQ,GAAG,CAAE2kG,gBAAiBynE,IAAG1qM,CAAC,CAAE,CAAC,CAAC,EAAG,KAAK0oV,iBAAmB1oV,EACxP,CACA0pV,QAAQ1pV,EAAG,CACT,KAAKsmV,iBAAmB,MAAQ,KAAKA,eAAe4C,UAAUrnV,GAAEV,GAAE,CAAE,EAAE,KAAKmlV,eAAehoT,OAAQ,GAAG,CAAEkoT,cAAexmV,CAAE,CAAC,CAAC,CAC5H,CACA2pV,yBAAyB3pV,EAAG,CAC1B,KAAKsmV,iBAAmB,MAAQ,KAAKA,eAAe4C,UAAUrnV,GAAEV,GAAE,GAAI,KAAKmlV,eAAehoT,OAAM,CAAE,EAAG,CAAEmoT,sBAAuBzmV,CAAE,CAAC,CAAC,CACpI,CACA8nD,iBAAiB9nD,EAAGwpB,EAAG,CACrB,KAAKw8T,cAAcl+R,iBAAiB9nD,EAAGwpB,CAAC,CAC1C,CACAw+B,oBAAoBhoD,EAAGwpB,EAAG,CACxB,KAAKw8T,cAAch+R,oBAAoBhoD,EAAGwpB,CAAC,CAC7C,CACA4/Q,SAAU,CACR,IAAIppS,EACJQ,IAAK,KAAKqlV,mBAAmBqC,oBAAsBrnV,GAAEmjV,UAAU,KAAK6B,OAAO,EAAGjjV,GAAEohV,UAAU,KAAK6B,OAAO,IAAK7lV,EAAI,KAAKsmV,iBAAmB,MAAQtmV,EAAEkrF,OAAM,EAAI,KAAKo7P,eAAiB,KAAM,KAAKR,SAAW,KAAM,KAAKE,cAAcl1O,SAAS,CAAEziF,KAAM,SAAU,CAAC,EAAG,KAAK23T,cAAcvC,0BAA2B,KAAKmG,8BAA+B,CACnV,CACA9F,QAAS,CACP,KAAKkE,oBAAsB,OAAS,KAAK/B,cAAc7Q,qBAAqB,KAAK4S,iBAAiB,EAAG,KAAKA,kBAAoB,KAAM,KAAKS,UAAY,GAAM,KAAKzC,cAAcl1O,SAAS,CAAEziF,KAAM,QAAS,CAAC,EAC3M,CACAw1T,UAAW,CACT,KAAKmE,oBAAsB,OAAS,KAAKA,kBAAoB,KAAK/B,cAAc9Q,sBAAsB,KAAK8S,MAAM/mQ,KAAK,IAAI,CAAC,EAAG,KAAKunQ,UAAY,GAAO,KAAKzC,cAAcl1O,SAAS,CAAEziF,KAAM,UAAW,CAAC,EACxM,CACA61T,QAAS,CACP,GAAI,GAAC,KAAKoC,gBAAkB,CAAC,KAAKsC,UAElC,IAAIpoV,IAAK,KAAKqlV,mBAAmBqC,kBAAmB,CAClD,IAAI1+T,EAAI,KAAK08T,cAAc1B,kBAAoB3uQ,OAAO2uQ,kBAAoB,EAAG,CAAEptT,OAAQz1B,EAAG21B,MAAO/N,CAAE,EAAI,KAAKs8T,QAAQ5iR,sBAAqB,EACzI,KAAK4iR,QAAQvuT,MAAQ/N,EAAIC,EAAG,KAAKq8T,QAAQzuT,OAASz1B,EAAI6nB,CACxD,CACA,KAAK88T,eAAepC,OAAO,KAAK2B,QAAQvuT,MAAO,KAAKuuT,QAAQzuT,MAAM,GAAK,KAAK2wT,QAAO,EACrF,CACA8B,WAAW7pV,EAAGwpB,EAAG,CACf,KAAK88T,iBAAmB,MAAQV,GAAGS,cAAgB,MAAQ,KAAKC,eAAe4C,UAAUrnV,GAAEV,GAAE,CAAE,EAAE,KAAKmlV,eAAehoT,OAAQ,GAAG,CAAEo7I,QAASisK,GAAG,CAAC3lV,EAAGwpB,CAAC,EAAGo8T,GAAGS,WAAW,CAAE,CAAC,CAAC,CAC1K,CACAyD,QAAQ9pV,EAAG,CACT,KAAKsmV,iBAAmB,MAAQV,GAAGS,cAAgB,MAAQ,KAAKC,eAAe4C,UAAUrnV,GAAEV,GAAE,CAAE,EAAE,KAAKmlV,eAAehoT,OAAQ,GAAG,CAAE4/C,KAAMwmQ,GAAG1kV,EAAG4lV,GAAGS,WAAW,CAAE,CAAC,CAAC,CAClK,CACA0D,gBAAgB/pV,EAAG,CACjB,IAAIiC,EAAIjC,EAAG,CAAEwkV,iBAAkBh7T,EAAG48T,kBAAmBzkV,CAAE,EAAIM,EAAGsnB,EAAI0rT,GAAGhzU,EAAG,CAAC,mBAAoB,mBAAmB,CAAC,EACjH,KAAKikV,cAAgBrkV,GAAEV,GAAEA,GAAE,CAAE,EAAE,KAAK+kV,aAAa,EAAG38T,CAAC,EAAG,CAAEi7T,iBAAkBh7T,GAAK+6T,GAAI,EAAE6B,kBAAmBzkV,GAAgB,EAAK,CAAC,EAAGnB,IAAK,KAAKqlV,mBAAmBqC,oBAAsB,KAAKhC,cAAciC,WAAavlV,GAAEijM,QAAQ,KAAKggJ,QAAS,IAAI,EAAIjjV,GAAEohV,UAAU,KAAK6B,OAAO,EAAG,KAAKK,cAAcE,kBAAoBvlV,GAAEglM,QAAQ,KAAKggJ,QAAS,IAAI,GAAKhlV,GAAEmjV,UAAU,KAAK6B,OAAO,EAAG,KAAK4C,WAAa,KAAK5E,SAAU,GACvZ,CACAmG,cAAchqV,EAAG,CACX,KAAKsmV,iBAAmB,MAAQ,KAAKA,eAAe8B,kBAAmB,IAAKpoV,IAEhF,KAAKsmV,eAAe0D,cAAchqV,EAAG,KAAK6lV,QAAQvuT,MAAO,KAAKuuT,QAAQzuT,MAAM,GAAK,KAAK4uT,cAAcl1O,SAAS,CAAEziF,KAAM,MAAO,CAAC,EAAG,KAAK61T,UAAY,KAAK8B,cAAcl1O,SAAS,CAAEziF,KAAM,YAAauuD,MAAO,IAAIn/B,MAAM,wBAAwBz9C,CAAC,EAAE,CAAE,CAAC,EACnP,CACAiqV,UAAUjqV,EAAG,CACX,KAAKsmV,iBAAmB,MAAQ,KAAKA,eAAe4C,UAAUrnV,GAAEV,GAAE,CAAE,EAAE,KAAKmlV,eAAehoT,OAAM,CAAE,EAAG,CAAEooT,OAAQ1mV,CAAE,CAAC,CAAC,CACrH,CACAkqV,SAAU,CACR,IAAI1gU,EACJ,IAAIxpB,GAAKwpB,EAAI,KAAK88T,iBAAmB,KAAO,OAAS98T,EAAE0gU,UACvD,GAAIlqV,EAAG,CACL,IAAI2B,EAAI,GACR,QAAS4nB,EAAI,EAAGA,EAAIvpB,EAAEk9B,KAAI,EAAI3T,GAAK,EAAG,CACpC,IAAItnB,EAAIjC,EAAEsvB,IAAI/F,CAAC,EACf5nB,EAAE6lD,KAAK,CAAE93B,KAAMztB,EAAEytB,KAAMsyD,KAAM//E,EAAE+/E,KAAMmoB,SAAUloG,EAAEkoG,QAAS,CAAC,CAC7D,CACA,OAAOxoG,CACT,CACA,MAAO,CAAE,CACX,CACAwoV,UAAUnqV,EAAG,CACX,GAAI,KAAKsmV,iBAAmB,KAC1B,MAAO,GACT,IAAI98T,EAAI,KAAK88T,eAAe6D,UAAUnqV,CAAC,EACvC,OAAO,KAAK+nV,QAAS,EAAEv+T,CACzB,CACA4gU,cAAcpqV,EAAG,CACf,GAAI,KAAKsmV,iBAAmB,KAC1B,MAAY,GACd,IAAI98T,EAAI,KAAK88T,eAAe8D,cAAcpqV,CAAC,EAC3C,OAAW,KAAC+nV,QAAS,EAAEv+T,CACzB,CACA6gU,UAAUrqV,EAAG,CACX,KAAKsmV,iBAAmB,MAAQV,GAAGS,cAAgB,MAAQ,KAAKC,eAAe4C,UAAUrnV,GAAEV,GAAE,GAAI,KAAKmlV,eAAehoT,QAAQ,EAAG,CAAEiqO,OAAQ,CAAEz7L,MAAO04Q,GAAGxlV,EAAE8sE,MAAO84Q,GAAGS,WAAW,EAAGM,IAAK3B,GAAGhlV,EAAE2mV,IAAKf,GAAGS,WAAW,CAAE,CAAE,CAAC,CAAC,CACrN,CACA3sP,YAAY15F,EAAGwpB,EAAG7nB,EAAG4nB,EAAG,CACtB,OAAW,KAAC+8T,iBAAmB,KAAO,GAAQ,KAAKA,eAAe5sP,YAAY15F,EAAGwpB,EAAG7nB,EAAG4nB,CAAC,CAC1F,CACA,OAAO+5T,WAAWtjV,EAAG,CACnBijV,GAAGK,WAAWtjV,CAAC,CACjB,CACAsqV,iBAAiBtqV,EAAG,CAClB,IAAIwpB,EAAG7nB,EACP,OAAQA,GAAK6nB,EAAI,KAAK88T,iBAAmB,KAAO,OAAS98T,EAAE8gU,iBAAiBtqV,CAAC,IAAM,KAAO2B,EAAI,EAChG,CACA4oV,mBAAoB,CAClB,IAAI/gU,EAAG7nB,EACP,IAAI3B,GAAK2B,GAAK6nB,EAAI,KAAK88T,iBAAmB,KAAO,OAAS98T,EAAE+gU,kBAAiB,IAAO,KAAO5oV,EAAI,GAC/F,OAAO3B,GAAK,KAAKwqV,8BAA+BxqV,CAClD,CACAyqV,kBAAmB,CACjB,IAAIjhU,EAAG7nB,EACP,IAAI3B,GAAK2B,GAAK6nB,EAAI,KAAK88T,iBAAmB,KAAO,OAAS98T,EAAEihU,iBAAgB,IAAO,KAAO9oV,EAAI,GAC9F,OAAO3B,GAAK,KAAK4pV,8BAA6B,EAAI5pV,CACpD,CACA0qV,oBAAoB1qV,EAAG,CACrB,IAAIwpB,EAAI,KAAKq8T,QAAQ5iR,sBAAqB,EAAIthE,EAAI,KAAKkkV,QAAQvuT,MAAQ9N,EAAE8N,MAAO/N,EAAI,KAAKs8T,QAAQzuT,OAAS5N,EAAE4N,OAAQn1B,EAAI,KAAKikV,cAAc1B,kBAAoB3uQ,OAAO2uQ,kBAAoB,EAAGvjV,GAAKjB,EAAEglD,QAAUx7B,EAAEw3B,MAAQr/C,EAAIM,EAAGR,GAAKzB,EAAEilD,QAAUz7B,EAAEy3B,KAAO13B,EAAItnB,EAC7P,MAAO,CAAEzB,EAAGS,EAAGR,EAAGgB,CAAE,CACtB,CACAwlV,aAAajnV,EAAG,CACd,GAAI,CAAEQ,EAAGgpB,EAAG/oB,EAAGkB,CAAE,EAAI,KAAK+oV,oBAAoB1qV,CAAC,EAC/C,KAAK2qV,mBAAmBnhU,EAAG7nB,CAAC,CAC9B,CACAwlV,eAAennV,EAAG,CAChB,GAAI,CAAEQ,EAAGgpB,EAAG/oB,EAAGkB,CAAE,EAAI,KAAK+oV,oBAAoB1qV,CAAC,EAC/C,KAAK4qV,qBAAqBphU,EAAG7nB,CAAC,CAChC,CACA0lV,eAAernV,EAAG,CAChB,GAAI,CAAEQ,EAAGgpB,EAAG/oB,EAAGkB,CAAE,EAAI,KAAK+oV,oBAAoB1qV,CAAC,EAC/C,KAAK6qV,qBAAqBrhU,EAAG7nB,CAAC,CAChC,CACA4lV,gBAAgBvnV,EAAG,CACjB,GAAI,CAAEQ,EAAGgpB,EAAG/oB,EAAGkB,CAAE,EAAI,KAAK+oV,oBAAoB1qV,CAAC,EAC/C,KAAK8qV,sBAAsBthU,EAAG7nB,CAAC,CACjC,CACA8lV,gBAAgBznV,EAAG,CACjB,GAAI,CAAEQ,EAAGgpB,EAAG/oB,EAAGkB,CAAE,EAAI,KAAK+oV,oBAAoB1qV,CAAC,EAC/C,KAAK+qV,qBAAqBvhU,EAAG7nB,CAAC,CAChC,CACAgpV,mBAAmB3qV,EAAGwpB,EAAG,CACvB,IAAI7nB,EACJ,OAAQA,EAAI,KAAK2kV,iBAAmB,KAAO,OAAS3kV,EAAEgpV,mBAAmB3qV,EAAGwpB,CAAC,CAC/E,CACAohU,qBAAqB5qV,EAAGwpB,EAAG,CACzB,IAAI7nB,EACJ,OAAQA,EAAI,KAAK2kV,iBAAmB,KAAO,OAAS3kV,EAAEipV,qBAAqB5qV,EAAGwpB,CAAC,CACjF,CACAqhU,qBAAqB7qV,EAAGwpB,EAAG,CACzB,IAAI7nB,EACJ,OAAQA,EAAI,KAAK2kV,iBAAmB,KAAO,OAAS3kV,EAAEkpV,qBAAqB7qV,EAAGwpB,CAAC,CACjF,CACAshU,sBAAsB9qV,EAAGwpB,EAAG,CAC1B,IAAI7nB,EACJ,OAAQA,EAAI,KAAK2kV,iBAAmB,KAAO,OAAS3kV,EAAEmpV,sBAAsB9qV,EAAGwpB,CAAC,CAClF,CACAuhU,qBAAqB/qV,EAAGwpB,EAAG,CACzB,IAAI7nB,EACJ,OAAQA,EAAI,KAAK2kV,iBAAmB,KAAO,OAAS3kV,EAAEopV,qBAAqB/qV,EAAGwpB,CAAC,CACjF,CACAwhU,0BAA2B,CACzB,GAAI,CAAC,KAAK1E,eACR,MAAO,GACT,IAAItmV,EAAI,KAAKsmV,eAAe2E,2BAA0B,EAAIzhU,EAAI,CAAE,EAChE,QAAS7nB,EAAI,EAAGA,EAAI3B,EAAEk9B,OAAQv7B,GAAK,EACjC6nB,EAAEg+B,KAAKxnD,EAAEsvB,IAAI3tB,CAAC,CAAC,EACjB,OAAO6nB,CACT,CACAghU,6BAA8B,CAC5B,GAAIhqV,IAAK,KAAKqlV,mBAAmBqC,mBAAqB,KAAK5B,iBAAmB,MAAQ,KAAKsC,SAAU,CACnG,IAAI5oV,EAAI,KAAKgrV,yBAA0B,EACvChrV,EAAE4jF,SAAS,WAAW,GAAK,KAAKiiQ,QAAQ/9R,iBAAiB,YAAa,KAAKk/R,gBAAgB,EAAGhnV,EAAE4jF,SAAS,aAAa,GAAK,KAAKiiQ,QAAQ/9R,iBAAiB,cAAe,KAAKo/R,kBAAkB,EAAGlnV,EAAE4jF,SAAS,aAAa,GAAK,KAAKiiQ,QAAQ/9R,iBAAiB,cAAe,KAAKs/R,kBAAkB,EAAGpnV,EAAE4jF,SAAS,cAAc,GAAK,KAAKiiQ,QAAQ/9R,iBAAiB,eAAgB,KAAKw/R,mBAAmB,EAAGtnV,EAAE4jF,SAAS,aAAa,GAAK,KAAKiiQ,QAAQ/9R,iBAAiB,eAAgB,KAAK0/R,kBAAkB,CACjf,CACF,CACAoC,+BAAgC,CAC9BppV,IAAK,KAAKqlV,mBAAmBqC,oBAAsB,KAAKrC,QAAQ79R,oBAAoB,YAAa,KAAKg/R,gBAAgB,EAAG,KAAKnB,QAAQ79R,oBAAoB,cAAe,KAAKk/R,kBAAkB,EAAG,KAAKrB,QAAQ79R,oBAAoB,cAAe,KAAKo/R,kBAAkB,EAAG,KAAKvB,QAAQ79R,oBAAoB,eAAgB,KAAKs/R,mBAAmB,EAAG,KAAKzB,QAAQ79R,oBAAoB,eAAgB,KAAKw/R,kBAAkB,EACna,CACA0D,qBAAqBlrV,EAAG,CACtB,IAAIwpB,EAAG7nB,EACP,OAAQA,GAAK6nB,EAAI,KAAK88T,iBAAmB,KAAO,OAAS98T,EAAE0hU,qBAAqBlrV,CAAC,IAAM,KAAO2B,EAAI,EACpG,CACAwpV,eAAgB,CACd,IAAIxpV,EAAG4nB,EAAGtnB,EAAGhB,EACb,IAAIjB,GAAKupB,GAAK5nB,EAAI,KAAK2kV,iBAAmB,KAAO,OAAS3kV,EAAEwpV,gBAAgB77T,IAAI,CAAC,IAAM,KAAO/F,EAAI,EAAGC,GAAKvoB,GAAKgB,EAAI,KAAKqkV,iBAAmB,KAAO,OAASrkV,EAAEkpV,cAAa,EAAG77T,IAAI,CAAC,IAAM,KAAOruB,EAAI,EACnM,MAAO,CAAEq2B,MAAOt3B,EAAGo3B,OAAQ5N,CAAE,CAC/B,CACA4hU,8BAA8BprV,EAAGwpB,EAAG,CAClC,IAAI7nB,EAAG4nB,EACP,OAAQA,GAAK5nB,EAAI,KAAK2kV,iBAAmB,KAAO,OAAS3kV,EAAEypV,8BAA8BprV,EAAGwpB,CAAC,IAAM,KAAOD,EAAI,EAChH,CACA8hU,8BAA8BrrV,EAAGwpB,EAAG,CAClC,IAAI7nB,EAAG4nB,EACP,OAAQA,GAAK5nB,EAAI,KAAK2kV,iBAAmB,KAAO,OAAS3kV,EAAE0pV,8BAA8BrrV,EAAGwpB,CAAC,IAAM,KAAOD,EAAI,EAChH,CACA+hU,6BAA6BtrV,EAAGwpB,EAAG,CACjC,IAAI7nB,EAAG4nB,EACP,OAAQA,GAAK5nB,EAAI,KAAK2kV,iBAAmB,KAAO,OAAS3kV,EAAE2pV,6BAA6BtrV,EAAGwpB,CAAC,IAAM,KAAOD,EAAI,EAC/G,CACAgiU,oBAAoBvrV,EAAG,CACrB,IAAIyB,EACJ,IAAI+nB,GAAK/nB,EAAI,KAAK6kV,iBAAmB,KAAO,OAAS7kV,EAAE+pV,eAAexrV,CAAC,EACvE,GAAI,CAACwpB,GAAKA,EAAE0T,KAAI,IAAO,EACrB,OACF,IAAIv7B,EAAI6nB,EAAE8F,IAAI,CAAC,EAAG/F,EAAIC,EAAE8F,IAAI,CAAC,EAAGrtB,EAAIunB,EAAE8F,IAAI,CAAC,EAAGruB,EAAIuoB,EAAE8F,IAAI,CAAC,EACzD,MAAO,CAAE9uB,EAAGmB,EAAGlB,EAAG8oB,EAAG+N,MAAOr1B,EAAGm1B,OAAQn2B,CAAE,CAC3C,CACF,EACAwtC,GAAE/sC,GAAG,cAAe,IAAI,EACxB,IAAI+pV,IAAK/pV,GACLgqV,IAAM,KAAM,CACdj2Q,aAAc,CACZ,GAAI,OAAOk2Q,OAAU,IACnB,MAAU,IAAAluS,MAAM,8CAA8C,EAChE,IAAIz9C,EAAI,IAAIo2E,KAAK,CAAC,IAAIwjP,WAAW,CAAC,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,I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","names":["l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","X","react_production_min","reactModule","require$$0","exports","schedulerModule","aa","ca","require$$1","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","id","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","reactDom_production_min","checkDCE","err","reactDomModule","createRoot","client","__assign","s","i","__rest","__spreadArray","to","from","pack","ar","reactJsxRuntime_production_min","jsxRuntimeModule","createContext2","rootComponentName","defaultContext","Context","React.createContext","Provider","props","children","context","value","React.useMemo","jsx","useContext2","consumerName","React.useContext","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","BaseContext","index","scope","_a","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","setRef","ref","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","React.useCallback","Slot","React","forwardedRef","slotProps","childrenArray","toArray","slottable","find","isSlottable","newElement","newChildren","map","child","count","only","SlotClone","displayName","childrenRef","getElementRef","props2","mergeProps","type","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","test","args","filter","Boolean","join","element","getter","Object","getOwnPropertyDescriptor","get","mayWarn","isReactWarning","createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","itemMap","COLLECTION_SLOT_NAME","CollectionSlot","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","useCallbackRef","callback","callbackRef","React.useRef","React.useEffect","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","React.useState","prevValueRef","NODES","Primitive","primitive","Node","React.forwardRef","asChild","primitiveProps","Comp","dispatchDiscreteCustomEvent","target","ReactDOM.flushSync","useLayoutEffect2","React.useLayoutEffect","useStateMachine","initialState","machine","React.useReducer","state","Presence","present","presence","usePresence","React2.Children","React2.cloneElement","setNode","React2.useState","stylesRef","React2.useRef","prevPresentRef","prevAnimationNameRef","send","React2.useEffect","currentAnimationName","getAnimationName","useLayoutEffect","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","React2.useCallback","node2","_b","useReactId","useId","deterministicId","setId","reactId","COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","CollapsibleProvider","useCollapsibleContext","Collapsible","__scopeCollapsible","openProp","defaultOpen","disabled","onOpenChange","collapsibleProps","open","setOpen","prevOpen","getState","TRIGGER_NAME","CollapsibleTrigger","triggerProps","CONTENT_NAME","CollapsibleContent","forceMount","contentProps","CollapsibleContentImpl","isPresent","setIsPresent","heightRef","height","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","rAF","rect","Root","Trigger","Content","DirectionContext","useDirection","localDir","globalDir","ACCORDION_NAME","ACCORDION_KEYS","Collection","createAccordionContext","createAccordionScope","useCollapsibleScope","Accordion","accordionProps","singleProps","multipleProps","AccordionImplMultiple","AccordionImplSingle","AccordionValueProvider","useAccordionValueContext","AccordionCollapsibleProvider","useAccordionCollapsibleContext","valueProp","defaultValue","onValueChange","collapsible","accordionSingleProps","AccordionImpl","accordionMultipleProps","handleItemOpen","itemValue","prevValue","handleItemClose","AccordionImplProvider","useAccordionContext","__scopeAccordion","dir","orientation","accordionRef","getItems","isDirectionLTR","handleKeyDown","triggerCollection","item","triggerIndex","triggerCount","nextIndex","homeIndex","endIndex","moveNext","movePrev","clampedIndex","ITEM_NAME","AccordionItemProvider","useAccordionItemContext","AccordionItem","accordionItemProps","accordionContext","valueContext","collapsibleScope","triggerId","CollapsiblePrimitive.Root","open2","HEADER_NAME","AccordionHeader","headerProps","itemContext","AccordionTrigger","collapsibleContext","CollapsiblePrimitive.Trigger","AccordionContent","CollapsiblePrimitive.Content","Item","Header","Trigger2","Content2","defaultAttributes","toKebabCase","string","createLucideIcon","iconName","iconNode","Component","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","className","rest","createElement","tag","attrs","Check","ChevronDown","ChevronRight","ChevronsUpDown","Circle","EyeOff","Eye","Search","o","clsx","CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","property","theme","prefix","getPrefixedClassGroupEntries","classGroup","processClassesRecursively","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","key","path","currentClassPartObject","pathPart","func","classGroupEntries","prefixedClassGroup","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","bracketDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","classGroupsInConflict","classNames","result","originalClassName","variantModifier","modifierId","classId","conflictGroups","group","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isArbitraryNumber","isInteger","isPercent","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","getDefaultConfig","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getOverscroll","getOverflow","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getPositions","getLineStyles","getBlendModes","getAlign","getZeroAndEmpty","getBreaks","getNumberAndArbitrary","twMerge","cn","inputs","_i","_jsx","AccordionPrimitive","_jsxs","falsyToString","cx","cva","base","_config_compoundVariants","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","cvClass","cvClassName","compoundVariantOptions","buttonVariants","default","secondaryGray","secondaryColor","tertiaryGray","outline","sm","full","Button","DayPickerContext","createContext","useDayPicker","useContext","classNamesArr","style","InternalModifier","usePrevious","useSize","setSize","resizeObserver","entries","entry","borderSizeEntry","borderSize","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","CheckboxProvider","useCheckboxContext","Checkbox","__scopeCheckbox","checkedProp","defaultChecked","required","onCheckedChange","form","checkboxProps","button","setButton","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","initialCheckedStateRef","form2","reset","jsxs","isIndeterminate","prevChecked","BubbleInput","INDICATOR_NAME","CheckboxIndicator","indicatorProps","control","bubbles","inputProps","controlSize","input","inputProto","defaultCheckedRef","Indicator","CheckboxPrimitive","xmlns","fill","viewBox","stroke","strokeLinejoin","_","_extends","$e42e1063c40fb3ef$export$b9ecd428b558ff10","$6ed0406888f73fc4$var$setRef","$6ed0406888f73fc4$export$43e446d32b3d21af","$6ed0406888f73fc4$export$c7b2cbe3552a0d05","$3vqmr$useCallback","$c512c27ab02ef895$export$50c7b4e9d9f19c1","$c512c27ab02ef895$export$fd42f52fd3ae1109","$3bkAK$createContext","$3bkAK$useMemo","$3bkAK$createElement","$3bkAK$useContext","$c512c27ab02ef895$var$composeContextScopes","createScope1","nextScopes1","$9f79659886946c16$export$e5c5a5f917a5871c","$dxlwH$useLayoutEffect","$1746a345f3d73bb7$var$useReactId","$2AODx$react","$1746a345f3d73bb7$var$count","$1746a345f3d73bb7$export$f680877a34711e37","$2AODx$react.useState","$2AODx$useLayoutEffect","$b1b2314f5f9a1d84$export$25bec8c6f54ee79a","$lwiWj$useRef","$lwiWj$useEffect","$lwiWj$useMemo","_callbackRef$current","$71cd76cc60e0454e$export$6f32135080cb4c3","$71cd76cc60e0454e$var$useUncontrolledState","value1","$bnPw9$useCallbackRef","$bnPw9$useCallback","$bnPw9$useState","$bnPw9$useRef","$bnPw9$useEffect","$5e63c961fc1ce211$export$8c6ed5c666ac1360","$9IrjX$forwardRef","$9IrjX$Children","$5e63c961fc1ce211$var$isSlottable","$9IrjX$isValidElement","$9IrjX$createElement","$5e63c961fc1ce211$var$SlotClone","$9IrjX$babelruntimehelpersesmextends","$9IrjX$cloneElement","$5e63c961fc1ce211$var$mergeProps","$9IrjX$composeRefs","$5e63c961fc1ce211$export$d9f1ccf0bdb05d45","$9IrjX$Fragment","$8927f6f2acc4f386$var$NODES","$8927f6f2acc4f386$export$250ffa63cdc0d034","$4q5Fq$forwardRef","$4q5Fq$Slot","$4q5Fq$useEffect","$4q5Fq$createElement","$4q5Fq$babelruntimehelpersesmextends","$8927f6f2acc4f386$export$6d1a0317bde7de7f","$4q5Fq$flushSync","$addc16e1bbe58fd0$export$3a72a57244d6e765","onEscapeKeyDownProp","onEscapeKeyDown","$hPSQ5$useCallbackRef","$hPSQ5$useEffect","$5cb92bef7577960e$var$CONTEXT_UPDATE","$5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE","$5cb92bef7577960e$var$FOCUS_OUTSIDE","$5cb92bef7577960e$var$originalBodyPointerEvents","$5cb92bef7577960e$var$DismissableLayerContext","$kqwpH$createContext","$5cb92bef7577960e$export$177fb62ff3ec1f22","$kqwpH$forwardRef","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","$kqwpH$useContext","node1","$kqwpH$useState","force","$kqwpH$useComposedRefs","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","$5cb92bef7577960e$var$usePointerDownOutside","isPointerDownOnBranch","branch","focusOutside","$5cb92bef7577960e$var$useFocusOutside","$kqwpH$useEscapeKeydown","$kqwpH$useEffect","$5cb92bef7577960e$var$dispatchUpdate","handleUpdate","$kqwpH$createElement","$kqwpH$Primitive","$kqwpH$babelruntimehelpersesmextends","$kqwpH$composeEventHandlers","handlePointerDownOutside","$kqwpH$useCallbackRef","isPointerInsideReactTreeRef","$kqwpH$useRef","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent","$5cb92bef7577960e$var$handleAndDispatchCustomEvent","eventDetail","timerId","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","handler","detail","discrete","$kqwpH$dispatchDiscreteCustomEvent","$d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT","$d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT","$d3863c46a17e8a28$var$EVENT_OPTIONS","$d3863c46a17e8a28$export$20e40289641fbbb6","$45QHv$forwardRef","loop","trapped","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","container1","setContainer","$45QHv$useState","onMountAutoFocus","$45QHv$useCallbackRef","onUnmountAutoFocus","lastFocusedElementRef","$45QHv$useRef","$45QHv$useComposedRefs","focusScope","$45QHv$useEffect","handleFocusIn","$d3863c46a17e8a28$var$focus","handleFocusOut","$d3863c46a17e8a28$var$focusScopesStack","previouslyFocusedElement","mountEvent","$d3863c46a17e8a28$var$focusFirst","$d3863c46a17e8a28$var$removeLinks","$d3863c46a17e8a28$var$getTabbableCandidates","unmountEvent","$45QHv$useCallback","isTabKey","focusedElement","container","first","last","$d3863c46a17e8a28$var$getTabbableEdges","$45QHv$createElement","$45QHv$Primitive","$45QHv$babelruntimehelpersesmextends","candidates","select","candidate","$d3863c46a17e8a28$var$findVisible","nodes","walker","isHiddenInput","elements","$d3863c46a17e8a28$var$isHidden","upTo","$d3863c46a17e8a28$var$isSelectableInput","$d3863c46a17e8a28$var$createFocusScopesStack","stack","activeFocusScope","$d3863c46a17e8a28$var$arrayRemove","_stack$","array","updatedArray","items","$f1701beae083dbae$export$602eac185826482c","$7SXl2$forwardRef","_globalThis$document","portalProps","$7SXl2$reactdom","$7SXl2$createElement","$7SXl2$Primitive","$7SXl2$babelruntimehelpersesmextends","$fe963b355347cc68$export$3e6543de14f8614f","$iqq3r$useReducer","nextState","$921a889cee6df7e8$export$99c2b779aa4e8b8b","$921a889cee6df7e8$var$usePresence","$iqq3r$Children","$iqq3r$useComposedRefs","$iqq3r$cloneElement","$iqq3r$useState","$iqq3r$useRef","$iqq3r$useEffect","$921a889cee6df7e8$var$getAnimationName","$iqq3r$useLayoutEffect","$iqq3r$flushSync","$iqq3r$useCallback","$3db38b7d1fb3fe6a$var$count","$3db38b7d1fb3fe6a$export$b7ece24a22aeda8c","$1wErz$useEffect","_edgeGuards$","_edgeGuards$2","edgeGuards","$3db38b7d1fb3fe6a$var$createFocusGuard","zeroRightClassName","fullWidthClassName","noScrollbarsClassName","removedBarSizeVariable","assignRef","initialValue","useState","useIsomorphicLayoutEffect","currentValues","useMergeRefs","newValue","oldValue","prevRefs_1","nextRefs_1","current_1","ItoI","innerCreateMedium","defaults","middleware","buffer","assigned","medium","data","cbs","pendingQueue","executeQueue","cycle","createSidecarMedium","options","SideCar","sideCar","Error","Target","read","isSideCarExport","exportSidecar","exported","useMedium","effectCar","nothing","RemoveScroll","parentRef","onScrollCapture","onWheelCapture","onTouchMoveCapture","callbacks","setCallbacks","forwardProps","removeScrollBar","enabled","shards","noIsolation","inert","allowPinchZoom","as","Container","containerRef","containerProps","_Fragment","lockRef","defaultProps","fullWidth","zeroRight","currentNonce","getNonce","makeStyleTag","nonce","injectStyles","css","insertStyleTag","head","stylesheetSingleton","counter","stylesheet","styleHookSingleton","sheet","isDynamic","styleSingleton","useStyle","Sheet","dynamic","zeroGap","parse","getOffset","gapMode","cs","left","top","right","getGapWidth","offsets","documentWidth","windowWidth","Style","lockAttribute","getStyles","allowRelative","important","concat","getCurrentUseCounter","parseInt","document","body","getAttribute","isFinite","useLockAttribute","setAttribute","toString","newCounter","removeAttribute","RemoveScrollBar","noRelative","noImportant","passiveSupported","nonPassive","elementCouldBeVScrolled","elementCouldBeHScrolled","locationCouldBeScrolled","axis","current","isScrollable","elementCouldBeScrolled","getScrollVariables","getVScrollVariables","scrollTop","scrollHeight","clientHeight","getHScrollVariables","scrollLeft","scrollWidth","clientWidth","getDirectionFactor","direction","handleScroll","endTarget","sourceDelta","noOverscroll","directionFactor","delta","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","position","scroll_1","capacity","elementScroll","getTouchXY","changedTouches","clientX","clientY","getDeltaXY","deltaX","deltaY","extractRef","deltaCompare","generateStyle","idCounter","lockStack","RemoveScrollSideCar","shouldPreventQueue","touchStartRef","activeAxis","lastProps","add","allow_1","forEach","remove","shouldCancelEvent","parent","touches","length","touch","touchStart","currentAxis","moveDirection","Math","abs","canBeScrolledInMainDirection","cancelingAxis","shouldPrevent","_event","sourceEvent","should","preventDefault","shardNodes","contains","shouldStop","shouldCancel","push","setTimeout","scrollTouchStart","undefined","scrollWheel","scrollTouchMove","addEventListener","inst","removeEventListener","SideCar$1","ReactRemoveScroll","$67UHm$RemoveScroll","getDefaultParent","originalTarget","sampleTarget","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","targets","correctedTarget","applyAttributeToOthers","parentNode","markerName","controlAttribute","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","attr","alreadyHidden","counterValue","markerValue","hideOthers","activeParentNode","$5d3850c4d0b4e6c7$var$DIALOG_NAME","$5d3850c4d0b4e6c7$var$createDialogContext","$5d3850c4d0b4e6c7$export$cc702773b8ea3e41","$67UHm$createContextScope","$5d3850c4d0b4e6c7$var$DialogProvider","$5d3850c4d0b4e6c7$var$useDialogContext","$5d3850c4d0b4e6c7$export$3ddf2d174ce01153","__scopeDialog","modal","triggerRef","$67UHm$useRef","contentRef","$67UHm$useControllableState","$67UHm$createElement","$67UHm$useId","$67UHm$useCallback","$5d3850c4d0b4e6c7$var$PORTAL_NAME","$5d3850c4d0b4e6c7$var$PortalProvider","$5d3850c4d0b4e6c7$var$usePortalContext","$5d3850c4d0b4e6c7$export$dad7c95542bacce0","$67UHm$Children","$67UHm$Presence","$67UHm$Portal","$5d3850c4d0b4e6c7$var$OVERLAY_NAME","$5d3850c4d0b4e6c7$export$bd1d06c79be19e17","$67UHm$forwardRef","portalContext","overlayProps","$5d3850c4d0b4e6c7$var$DialogOverlayImpl","$67UHm$babelruntimehelpersesmextends","$67UHm$Slot","$67UHm$Primitive","$5d3850c4d0b4e6c7$var$getState","$5d3850c4d0b4e6c7$var$CONTENT_NAME","$5d3850c4d0b4e6c7$export$b6d9565de1e068cf","$5d3850c4d0b4e6c7$var$DialogContentModal","$5d3850c4d0b4e6c7$var$DialogContentNonModal","$67UHm$useComposedRefs","$67UHm$useEffect","content","$67UHm$hideOthers","$5d3850c4d0b4e6c7$var$DialogContentImpl","$67UHm$composeEventHandlers","_context$triggerRef$c","originalEvent","ctrlLeftClick","hasInteractedOutsideRef","_props$onCloseAutoFoc","_context$triggerRef$c2","_props$onInteractOuts","_context$triggerRef$c3","trapFocus","onOpenAutoFocus","onCloseAutoFocus","$67UHm$useFocusGuards","$67UHm$Fragment","$67UHm$FocusScope","$67UHm$DismissableLayer","$5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9","$5d3850c4d0b4e6c7$export$602eac185826482c","$5d3850c4d0b4e6c7$export$c6fdb837b070b4ff","$5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2","t.createContext","t.useContext","t.forwardRef","t.useRef","t.useId","t.useMemo","$","j","t.createElement","t.useEffect","y.Root","y.Portal","y.Overlay","y.Content","t.useLayoutEffect","t.useSyncExternalStore","t.useState","useEscapeKeydown","ownerDocument","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","usePointerDownOutside","useFocusOutside","dispatchUpdate","BRANCH_NAME","DismissableLayerBranch","handleAndDispatchPointerDownOutsideEvent2","handleAndDispatchCustomEvent","Branch","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","FOCUS_SCOPE_NAME","FocusScope","handleFocusIn2","focus","handleFocusOut2","relatedTarget","handleMutations2","mutations","mutation","mutationObserver","focusScopesStack","focusFirst","removeLinks","getTabbableCandidates","container2","getTabbableEdges","findVisible","isHidden","isSelectableInput","createFocusScopesStack","arrayRemove","PORTAL_NAME","Portal","containerProp","mounted","setMounted","ReactDOM","useFocusGuards","createFocusGuard","alwaysContainsScroll","elementCanBeScrolled","overflow","ctrlKey","shadowParent","cancelable","getOutermostShadowParent","ShadowRoot","host","DIALOG_NAME","createDialogContext","createDialogScope","DialogProvider","useDialogContext","Dialog","DialogTrigger","composedTriggerRef","PortalProvider","usePortalContext","DialogPortal","React.Children","PortalPrimitive","OVERLAY_NAME","DialogOverlay","DialogOverlayImpl","DialogContent","DialogContentModal","DialogContentNonModal","DialogContentImpl","hasPointerDownOutsideRef","Fragment","TitleWarning","DescriptionWarning","TITLE_NAME","DialogTitle","titleProps","DESCRIPTION_NAME","DialogDescription","descriptionProps","CLOSE_NAME","DialogClose","closeProps","TITLE_WARNING_NAME","WarningProvider","useWarningContext","titleId","titleWarningContext","MESSAGE","DESCRIPTION_WARNING_NAME","descriptionId","describedById","Overlay","Title","Description","Close","DialogPrimitive","Command","CommandPrimitive","CommandInput","Input","CommandList","List","CommandEmpty","Empty","CommandGroup","Group","CommandSeparator","Separator","CommandItem","sides","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","end","evaluate","getSide","placement","getAlignment","getOppositeAxis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getSideList","side","isStart","lr","bt","getOppositeAxisPlacements","flipAlignment","list","expandPaddingObject","getPaddingObject","rectToClientRect","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","fn","nextX","nextY","detectOverflow","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","hide","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","len","limitMin","limitMax","_middlewareData$offse2","isOriginSide","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","hasWindow","getNodeName","isNode","getWindow","_node$ownerDocument","getDocumentElement","isElement","isHTMLElement","isShadowRoot","isOverflowElement","overflowX","overflowY","display","getComputedStyle","isTableElement","isTopLayer","selector","isContainingBlock","elementOrCss","webkit","isWebKit","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","getNodeScroll","getNearestOverflowAncestor","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getCssDimensions","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","ignoreScrollbarX","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","getViewportRect","visualViewport","visualViewportBased","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","root","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","size$1","hide$1","arrow$1","limitShift$1","mergedOptions","platformWithCache","computePosition$1","useEffect","deepEqual","keys","getDPR","roundByDPR","dpr","useLatestRef","useFloating","externalReference","externalFloating","transform","whileElementsMounted","setData","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","openRef","fullData","isMountedRef","floatingStyles","initialStyles","isRef","arrow$2","deps","NAME","Arrow","arrowProps","POPPER_NAME","createPopperContext","createPopperScope","PopperProvider","usePopperContext","Popper","__scopePopper","anchor","setAnchor","ANCHOR_NAME","PopperAnchor","virtualRef","anchorProps","PopperContentProvider","useContentContext","PopperContent","sideOffset","align","alignOffset","arrowPadding","avoidCollisions","collisionBoundary","collisionPaddingProp","sticky","hideWhenDetached","updatePositionStrategy","onPlaced","setContent","setArrow","arrowSize","arrowWidth","arrowHeight","desiredPlacement","collisionPadding","hasExplicitBoundaries","isNotNull","isPositioned","anchorWidth","anchorHeight","contentStyle","floatingUIarrow","transformOrigin","placedSide","placedAlign","getSideAndAlignFromPlacement","handlePlaced","arrowX","arrowY","cannotCenterArrow","_c","contentZIndex","setContentZIndex","_d","_e","_f","ARROW_NAME","OPPOSITE_SIDE","PopperArrow","contentContext","baseSide","ArrowPrimitive.Root","isArrowHidden","noArrowAlign","arrowXCenter","arrowYCenter","Root2","Anchor","POPOVER_NAME","createPopoverContext","createPopoverScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","__scopePopover","popperScope","hasCustomAnchor","setHasCustomAnchor","PopperPrimitive.Root","PopoverAnchor","onCustomAnchorAdd","onCustomAnchorRemove","PopperPrimitive.Anchor","PopoverTrigger","trigger","PopoverPortal","PopoverContent","PopoverContentModal","PopoverContentNonModal","isRightClickOutsideRef","PopoverContentImpl","isRightClick","PopperPrimitive.Content","PopoverClose","PopoverArrow","PopperPrimitive.Arrow","PopoverPrimitive","ROOT_NAME","createAlertDialogContext","createAlertDialogScope","useDialogScope","AlertDialog","__scopeAlertDialog","alertDialogProps","dialogScope","DialogPrimitive.Root","AlertDialogTrigger","DialogPrimitive.Trigger","AlertDialogPortal","DialogPrimitive.Portal","AlertDialogOverlay","DialogPrimitive.Overlay","AlertDialogContentProvider","useAlertDialogContentContext","AlertDialogContent","cancelRef","DialogPrimitive.WarningProvider","DialogPrimitive.Content","AlertDialogTitle","DialogPrimitive.Title","AlertDialogDescription","DialogPrimitive.Description","ACTION_NAME","AlertDialogAction","actionProps","DialogPrimitive.Close","CANCEL_NAME","AlertDialogCancel","cancelProps","Portal2","Overlay2","Action","Cancel","Title2","Description2","AlertDialogPrimitive","AlertDialogHeader","AlertDialogFooter","isCheckBoxInput","isDateObject","Date","isNullOrUndefined","isObjectType","isObject","Array","isArray","getEventValue","getNodeParentName","substring","search","isNameInFieldArray","names","has","isPlainObject","tempObject","prototypeCopy","constructor","prototype","hasOwnProperty","isWeb","window","HTMLElement","cloneObject","copy","isFileListInstance","FileList","Set","Blob","compact","isUndefined","val","object","split","reduce","isBoolean","isKey","stringToPath","replace","set","tempPath","lastIndex","objValue","isNaN","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onBlur","onSubmit","onTouched","all","INPUT_VALIDATION_RULES","maxLength","minLength","pattern","validate","HookFormContext","useFormContext","FormProvider","getProxyFormState","formState","localProxyFormState","isRoot","defaultValues","_defaultValues","defineProperty","_key","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","exact","some","currentName","startsWith","useSubscribe","_props","useRef","subscription","subject","subscribe","next","unsubscribe","useFormState","methods","_formState","_mounted","_localProxyFormState","isDirty","isLoading","dirtyFields","touchedFields","validatingFields","isValidating","isValid","errors","_name","_updateFormState","_subjects","_updateValid","useMemo","isString","generateWatchOutput","_names","formValues","isGlobal","watch","fieldName","watchAll","useWatch","values","updateValue","_formValues","_getWatch","_removeUnmounted","useController","shouldUnregister","isArrayField","_registerProps","register","rules","fieldState","defineProperties","invalid","enumerable","isTouched","error","field","elm","_fields","setCustomValidity","message","reportValidity","_shouldUnregisterField","_options","updateMounted","mount","_state","action","unregister","_updateDisabledField","fields","Controller","render","appendErrors","validateAllFieldCriteria","types","getValidationModes","mode","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","slice","iterateFieldsByAction","fieldsNames","abortEarly","currentField","updateFieldArrayRootError","fieldArrayErrors","isFileInput","isFunction","owner","defaultView","isMessage","isRadioInput","isRegex","RegExp","defaultResult","validResult","getCheckboxValue","option","attributes","defaultReturn","getRadioValue","previous","getValidateError","every","getValueAndMessage","validationData","validateField","disabledFieldNames","shouldUseNativeValidation","isFieldArray","valueAsNumber","inputValue","inputRef","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","bind","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueNumber","valueDate","valueAsDate","convertTimeToDate","time","toDateString","isTime","isWeek","maxLengthOutput","minLengthOutput","patternValue","match","validateError","validationResult","baseGet","updatePath","isEmptyArray","obj","unset","paths","childObject","createSubject","_observers","observers","observer","isPrimitive","object1","object2","getTime","keys1","keys2","val1","includes","val2","isMultipleSelect","live","isConnected","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","setValueAs","NaN","getFieldValue","files","selectedOptions","getResolverOptions","criteriaMode","getRuleValue","rule","source","ASYNC_FUNCTION","hasPromiseValidation","fieldReference","validateFunction","hasValidation","schemaErrorLookup","foundError","pop","skipValidation","isSubmitted","reValidateMode","unsetEmptyArray","defaultOptions","shouldFocusError","createFormControl","submitCount","isSubmitting","isSubmitSuccessful","unMount","delayErrorCallback","timer","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","debounce","wait","clearTimeout","shouldUpdateValid","resolver","_executeSchema","executeBuiltInValidation","_updateIsValidating","_updateFieldArray","method","shouldSetValues","shouldUpdateFieldsAndState","fieldValues","argA","argB","_getDirty","updateErrors","_setErrors","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","disabledField","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","previousFieldError","delayError","updatedFormState","executeSchemaAndUpdateState","shouldOnlyCheckValid","valid","isFieldArrayRoot","isPromiseFunction","fieldError","getValues","_getFieldArray","optionRef","selected","checkboxRef","radioRef","shouldTouch","shouldValidate","setValues","fieldKey","cloneValue","isFieldValueUpdated","getCurrentFieldValue","_updateIsFieldValueUpdated","Number","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","Promise","shouldFocus","getFieldState","clearErrors","inputName","setError","currentError","currentRef","restOfErrorTree","payload","delete","keepValue","keepError","keepDirty","keepTouched","keepIsValidating","keepDefaultValue","keepIsValid","disabledIsDefined","progressive","fieldRef","querySelectorAll","radioOrCheckbox","_focusError","_disableForm","handleSubmit","onValid","onInvalid","onValidError","persist","resetField","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","keepDefaultValues","keepValues","keepDirtyValues","fieldsToCheck","closest","keepSubmitCount","keepIsSubmitted","keepErrors","keepIsSubmitSuccessful","_resetDefaultValues","then","resetOptions","setFocus","shouldSelect","useForm","_formControl","_values","Label","labelVariants","LabelPrimitive","Form","FormFieldContext","FormField","useFormField","fieldContext","FormItemContext","formItemId","formDescriptionId","formMessageId","FormItem","FormLabel","htmlFor","FormControl","FormDescription","FormMessage","String","PasswordInput","showPassword","setShowPassword","isDisabled","onClick","prev","EyeIcon","EyeOffIcon","Tag","tagVariants","blue","gray","green","red","yellow","xs","role","Pagination","currentPage","totalPages","onPageChange","generatePageNumbers","pages","listItemClass","LeftArrow","page","RightArrow","strokeLinecap","ENTRY_FOCUS","GROUP_NAME","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","isKeyboardFocus","entryFocusEvent","activeItem","currentItem","candidateNodes","RovingFocusGroupItem","focusable","active","itemProps","autoId","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","startIndex","RADIO_NAME","createRadioContext","createRadioScope","RadioProvider","useRadioContext","Radio","__scopeRadio","onCheck","radioProps","RadioIndicator","ARROW_KEYS","RADIO_GROUP_NAME","createRadioGroupContext","createRadioGroupScope","createContextScope2","useRovingFocusGroupScope","useRadioScope","RadioGroupProvider","useRadioGroupContext","RadioGroup","React2.forwardRef","__scopeRadioGroup","rovingFocusGroupScope","jsx2","RovingFocusGroup.Root","Primitive2","RadioGroupItem","radioScope","useComposedRefs2","isArrowKeyPressedRef","handleKeyUp","RovingFocusGroup.Item","composeEventHandlers2","INDICATOR_NAME2","RadioGroupIndicator","Item2","RadioGroupPrimitive","VisuallyHidden","OPEN_KEYS","SELECTION_KEYS","SELECT_NAME","createSelectContext","createSelectScope","SelectProvider","useSelectContext","SelectNativeOptionsProvider","useSelectNativeOptionsContext","Select","__scopeSelect","autoComplete","setTrigger","valueNode","setValueNode","valueNodeHasChildren","setValueNodeHasChildren","triggerPointerDownPosRef","nativeOptionsSet","setNativeOptionsSet","nativeSelectKey","optionsSet","BubbleSelect","SelectTrigger","pointerTypeRef","searchRef","handleTypeaheadSearch","resetTypeahead","useTypeaheadSearch","enabledItems","nextItem","findNextItem","handleOpen","pointerEvent","shouldShowPlaceholder","isTypingAhead","VALUE_NAME","SelectValue","placeholder","valueProps","onValueNodeHasChildrenChange","hasChildren","ICON_NAME","SelectIcon","iconProps","SelectPortal","SelectContent","fragment","setFragment","frag","ReactDOM.createPortal","SelectContentProvider","SelectContentImpl","CONTENT_MARGIN","useSelectContentContext","CONTENT_IMPL_NAME","viewport","setViewport","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","setIsPositioned","firstValidItemFoundRef","firstItem","restItems","lastItem","focusSelectedItem","pointerMoveDelta","handlePointerMove","handlePointerUp","close","itemRefCallback","isFirstValidItem","handleItemLeave","itemTextRefCallback","SelectPosition","SelectPopperPosition","SelectItemAlignedPosition","popperContentProps","isModifierKey","currentElement","ITEM_ALIGNED_POSITION_NAME","popperProps","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","triggerRect","contentRect","valueNodeRect","itemTextRect","itemTextOffset","leftDelta","minContentWidth","contentWidth","rightEdge","clampedLeft","rightDelta","leftEdge","clampedRight","itemsHeight","contentStyles","contentBorderTopWidth","contentPaddingTop","contentBorderBottomWidth","contentPaddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","itemOffsetMiddle","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","viewportOffsetBottom","clampedTriggerMiddleToBottomEdge","isFirstItem","handleScrollButtonChange","SelectViewportProvider","POPPER_POSITION_NAME","useSelectViewportContext","VIEWPORT_NAME","SelectViewport","viewportProps","viewportContext","prevScrollTopRef","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","SelectGroupContextProvider","useSelectGroupContext","SelectGroup","groupId","LABEL_NAME","SelectLabel","labelProps","groupContext","SelectItemContextProvider","useSelectItemContext","SelectItem","textValueProp","isSelected","textValue","setTextValue","isFocused","setIsFocused","textId","handleSelect","prevTextValue","ITEM_TEXT_NAME","SelectItemText","itemTextProps","nativeOptionsContext","itemTextNode","setItemTextNode","textContent","nativeOption","onNativeOptionAdd","onNativeOptionRemove","ITEM_INDICATOR_NAME","SelectItemIndicator","itemIndicatorProps","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton","canScrollUp","setCanScrollUp","handleScroll2","canScrollUp2","SelectScrollButtonImpl","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton","canScrollDown","setCanScrollDown","maxScroll","canScrollDown2","onAutoScroll","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","SEPARATOR_NAME","SelectSeparator","separatorProps","SelectArrow","selectProps","selectProto","onSearchChange","handleSearchChange","timerRef","updateSearch","normalizedSearch","char","currentItemIndex","wrappedItems","Value","Icon","Viewport","ItemText","ScrollUpButton","ScrollDownButton","SelectPrimitive","SheetPrimitive","SheetPortal","SheetOverlay","sheetVariants","bottom","SheetContent","SheetHeader","SheetFooter","SheetTitle","SheetDescription","SWITCH_NAME","createSwitchContext","createSwitchScope","SwitchProvider","useSwitchContext","Switch","__scopeSwitch","switchProps","THUMB_NAME","SwitchThumb","thumbProps","Thumb","SwitchPrimitives","Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","Textarea","createTooltipContext","createTooltipScope","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider","__scopeTooltip","delayDuration","skipDelayDuration","disableHoverableContent","isOpenDelayed","setIsOpenDelayed","isPointerInTransitRef","skipDelayTimerRef","skipDelayTimer","inTransit","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip","disableHoverableContentProp","delayDurationProp","providerContext","contentId","openTimerRef","wasOpenDelayedRef","stateAttribute","handleClose","handleDelayedOpen","TooltipTrigger","isPointerDownRef","hasPointerMoveOpenedRef","TooltipContent","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","onClose","onPointerInTransitChange","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","currentTarget","exitPoint","exitSide","getExitSideFromRect","paddedExitPoints","getPaddedExitPoints","hoverTargetPoints","getPointsFromRect","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","pointerPosition","hasEnteredTarget","isPointerOutsideGraceArea","isPointInPolygon","VisuallyHiddenContentContextProvider","useVisuallyHiddenContentContext","ariaLabel","VisuallyHiddenPrimitive.Root","TooltipArrow","point","polygon","inside","points","newPoints","getHullPresorted","upperHull","lowerHull","Root3","TooltipPrimitive","createToastContext","createToastScope","ToastProviderProvider","useToastProviderContext","ToastProvider","__scopeToast","duration","swipeDirection","swipeThreshold","toastCount","setToastCount","isFocusedToastEscapeKeyDownRef","isClosePausedRef","VIEWPORT_DEFAULT_HOTKEY","VIEWPORT_PAUSE","VIEWPORT_RESUME","ToastViewport","hotkey","wrapperRef","headFocusProxyRef","tailFocusProxyRef","hotkeyLabel","hasToasts","wrapper","handlePause","pauseEvent","handleResume","resumeEvent","handleFocusOutResume","handlePointerLeaveResume","getSortedTabbableCandidates","tabbingDirection","tabbableCandidates","toastItem","toastNode","toastTabbableCandidates","isMetaKey","isTabbingBackwards","sortedCandidates","DismissableLayer.Branch","FocusProxy","FOCUS_PROXY_NAME","onFocusFromOutsideViewport","proxyProps","prevFocusedElement","TOAST_NAME","TOAST_SWIPE_START","TOAST_SWIPE_MOVE","TOAST_SWIPE_CANCEL","TOAST_SWIPE_END","Toast","toastProps","ToastImpl","ToastInteractiveProvider","useToastInteractiveContext","durationProp","onPause","onResume","onSwipeStart","onSwipeMove","onSwipeCancel","onSwipeEnd","pointerStartRef","swipeDeltaRef","closeTimerStartTimeRef","closeTimerRemainingTimeRef","closeTimerRef","onToastAdd","onToastRemove","startTimer","duration2","elapsedTime","announceTextContent","getAnnounceTextContent","ToastAnnounce","DismissableLayer.Root","hasSwipeMoveStarted","isHorizontalSwipe","clampedX","clampedY","moveStartBuffer","isDeltaInDirection","toast","event2","announceProps","renderAnnounceText","setRenderAnnounceText","isAnnounced","setIsAnnounced","useNextFrame","ToastTitle","ToastDescription","ToastAction","altText","ToastAnnounceExclude","ToastClose","interactiveContext","announceExcludeProps","isExcluded","isDeltaX","raf1","raf2","ToastPrimitives","toastVariants","primary","success","TOAST_LIMIT","TOAST_REMOVE_DELAY","genId","toastTimeouts","addToRemoveQueue","toastId","timeout","dispatch","reducer","toastId_1","listeners","memoryState","listener","dismiss","useToast","setState","Toaster","toasts","title","description","__insertCSS","code","DrawerContext","React__default","useDrawerContext","KEYBOARD_BUFFER","chain$1","isMac","testPlatform","isIPhone","isSafari","isIPad","isIOS","getScrollParent","nonTextInputTypes","preventScrollCount","restore","usePreventScroll","preventScrollMobileSafari","scrollable","lastY","onTouchStart","onTouchMove","onTouchEnd","isInput","onFocus","scrollIntoView","onWindowScroll","scrollX","scrollY","restoreStyles","setStyle","removeEvents","addEvent","cur","scrollableTop","targetTop","targetBottom","keyboardHeight","ignoreCache","originalStyles","getTranslate","mat","dampenValue","assignStyle","prevStyle","chain","fns","TRANSITIONS","VELOCITY_THRESHOLD","CLOSE_THRESHOLD","SCROLL_LOCK_TIMEOUT","BORDER_RADIUS","NESTED_DISPLACEMENT","WINDOW_TOP_OFFSET","DRAG_CLASS","useSnapPoints","activeSnapPointProp","setActiveSnapPointProp","snapPoints","drawerRef","overlayRef","fadeFromIndex","onSnapPointChange","snapToSequentialPoint","activeSnapPoint","setActiveSnapPoint","windowDimensions","setWindowDimensions","onResize","isLastSnapPoint","activeSnapPointIndex","snapPoint","shouldFade","snapPointsOffset","containerSize","_snapPoints_map","isPx","snapPointAsNumber","activeSnapPointOffset","snapToPoint","dimension","_snapPointsOffset_findIndex","newSnapPointIndex","snapPointDim","_snapPoints_findIndex","newIndex","onRelease","draggedDistance","closeDrawer","velocity","dismissible","currentPosition","isOverlaySnapPoint","isFirst","hasDraggedUp","closestSnapPoint","curr","dim","dragDirection","onDrag","getPercentageDragged","absDraggedDistance","isDraggingDown","targetSnapPointIndex","snapPointDistance","percentageDragged","noop","useScaleBackground","shouldScaleBackground","setBackgroundColorOnScale","noBodyStyles","timeoutIdRef","initialBackgroundColor","wrapperStylesCleanup","previousBodyPosition","usePositionFixed","nested","hasBeenOpened","preventScrollRestoration","activeUrl","setActiveUrl","scrollPos","setPositionFixed","innerHeight","bottomBarHeight","restorePositionSetting","onScroll","onDragProp","onReleaseProp","closeThreshold","scrollLockTimeout","handleOnly","fixed","disablePreventScroll","repositionInputs","onAnimationEnd","autoFocus","_drawerRef_current","_drawerRef_current1","setIsOpen","setHasBeenOpened","isDragging","setIsDragging","justReleased","setJustReleased","openTime","dragStartTime","dragEndTime","lastTimeDragPrevented","isAllowedToDrag","nestedOpenChangeTimer","pointerStart","keyboardIsOpen","previousDiffFromInitial","drawerHeightRef","drawerWidthRef","initialDrawerHeight","onReleaseSnapPoints","onDragSnapPoints","getSnapPointsPercentageDragged","onPress","shouldDrag","isDraggingInDirection","_window_getSelection","_lastTimeDragPrevented_current","highlightedText","swipeAmount","date","directionMultiplier","noCloseSnapPointsPreCondition","drawerDimension","snapPointPercentageDragged","dampenedDraggedDistance","translateValue","opacityValue","scaleValue","borderRadiusValue","_window_visualViewport","onVisualViewportChange","visualViewportHeight","totalHeight","diffFromInitial","drawerHeight","isTallEnough","offsetFromTop","activeSnapPointHeight","newDrawerHeight","fromWithin","cancelDrag","resetDrawer","currentSwipeAmount","timeTaken","distMoved","_drawerRef_current_getBoundingClientRect_height","visibleDrawerHeight","_drawerRef_current_getBoundingClientRect_width","visibleDrawerWidth","onNestedOpenChange","onNestedDrag","initialScale","newScale","newTranslate","onNestedRelease","composedRef","hasSnapPoints","delayedSnapPoints","setDelayedSnapPoints","lastKnownPointerEventRef","wasBeyondThePointRef","dFactor","handleOnPointerUp","yPosition","xPosition","swipeStartThreshold","LONG_HANDLE_PRESS_TIMEOUT","DOUBLE_TAP_TIMEOUT","Handle","preventCycle","closeTimeoutIdRef","shouldCancelInteractionRef","handleStartCycle","handleCancelInteraction","handleCycleSnapPoints","currentSnapIndex","nextSnapPoint","handleStartInteraction","NestedRoot","Drawer","DrawerPrimitive","DrawerTrigger","DrawerPortal","DrawerClose","DrawerOverlay","DrawerContent","DrawerHeader","DrawerFooter","DrawerTitle","DrawerDescription","metadata$1","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","componentName","location","propFullName","secret","getShim","ReactPropTypes","propTypesModule","hasOwn","classes","arg","appendClass","parseValue","newClass","module","edit","caret","operation","text","caret_position","parse_character","focused_input_character_index","character","_createForOfIteratorHelperLoose","allowArrayLike","it","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr","arr2","count_occurences","symbol","_iterator","_step","closeBraces","retained_template","template","empty_placeholder","cut_before","opening_braces","closing_braces","dangling_braces","template_formatter","shouldCloseBraces","placeholdersCountInTemplate","characterIndexInValue","templateWithFilledInPlaceholders","close_braces","format","formatter","found","possibly_last_input_character_index","isReadOnly","getSelection","Keys","getOperation","getCaretPosition","setCaretPosition","isAndroid","ANDROID_USER_AGENT_REG_EXP","_parse","_format","on_change","formatInputText","onKeyDown","selection","eraseSelection","_parse2","newValueAndCaret","formatted","_excluded","ownKeys","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","useInput","_ref$controlled","controlled","internalRef","useCallback","instance","_onChange","onInputChange","_onKeyDown","onInputKeyDown","commonProps","isEmptyValue","getOwnPropertySymbols","arguments","getOwnPropertyDescriptors","configurable","writable","indexOf","propertyIsEnumerable","call","_ref$inputComponent","inputComponent","InputComponent","_ref$type","propTypes","PropTypes","isRequired","elementType","bool","onCut","onPaste","Input$1","_typeof","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","_classCallCheck","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","_assertThisInitialized","_wrapNativeSuper","Class","_cache","_isNativeFunction","Wrapper","_construct","Parent","ParseError","_Error","_super","_this","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","DASHES","SLASHES","DOTS","WHITESPACE","BRACKETS","TILDES","VALID_PUNCTUATION","PLUS_CHARS","compare","objectConstructor","V3","V4","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","metadata","validateMetadata","setVersion","countryCode","country","callingCode","countryCodes","NumberingPlan","_type","globalMetadataObject","formats","Format","_type2","getType","Type","FIRST_GROUP_ONLY_PREFIX_PATTERN","typeOf","getCountryCallingCode","isSupportedCountry","version","RFC3966_EXTN_PREFIX","getExtensionDigitsPattern","createExtensionPattern","purpose","extLimitAfterExplicitLabel","extLimitAfterLikelyLabel","extLimitAfterAmbiguousChar","extLimitWhenNotSure","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","explicitExtLabels","ambiguousExtLabels","ambiguousSeparator","possibleSeparatorsNumberExtLabelNoComma","autoDiallingAndExtLabelsFound","rfcExtn","explicitExtn","ambiguousExtn","americanStyleExtnWithSuffix","autoDiallingExtn","onlyCommasExtn","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","number","isViablePhoneNumberStart","EXTN_PATTERN","extractExtension","numberWithoutExtension","matches","DIGITS","parseDigit","parseDigits","digit","parseIncompletePhoneNumber","parsePhoneNumberCharacter","prevParsedCharacters","emitEvent","mergeArrays","merged","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","actual_length","minimum_length","isPossiblePhoneNumber","isPossibleNumber","matchesEntirely","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","isNumberTypeEqualTo","isValidNumber","getPossibleCountriesForNumber","_metadata","possibleCountries","couldNationalNumberBelongToCountry","applyInternationalSeparatorStyle","formattedNumber","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","SINGLE_IDD_PREFIX_REG_EXP","getIddPrefix","countryMetadata","formatRFC3966","ext","DEFAULT_OPTIONS","extension","formatNumber","countryCallingCode","formatNationalNumber","addExtension","formatIDD","carrierCode","formatAs","chooseFormatForNumber","availableFormats","nationalNnumber","lastLeadingDigitsPattern","formatExtension","fromCountry","fromCountryCallingCode","iddPrefix","PhoneNumber","countryOrCountryCallingCode","_getCountryAndCountry","getCountryAndCountryCallingCode","phoneNumber","isCountryCode","metadataJson","CAPTURING_DIGIT_PATTERN","stripIddPrefix","IDDPrefixPattern","matchedGroups","extractNationalNumberFromPossiblyIncompleteNumber","prefixPattern","prefixMatch","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","nationalPrefix","possiblePositionOfTheFirstCapturedGroup","possibleNationalPrefix","extractNationalNumber","_extractNationalNumbe","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","nationalNumberBefore","nationalNumberAfter","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","possibleShorterNumber","possibleShorterNationalNumber","_extractNationalNumbe2","extractCountryCallingCode","isNumberWithIddPrefix","numberWithoutIDD","_extractCountryCallin","shorterNumber","_countryCallingCode","getCountryByNationalNumber","nationalPhoneNumber","countries","USE_NON_GEOGRAPHIC_COUNTRY_CODE","getCountryByCallingCode","defaultCountry","PLUS_SIGN","RFC3966_VISUAL_SEPARATOR_","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","ALPHANUM_","RFC3966_DOMAINLABEL_","VALID_ALPHA_","RFC3966_TOPLABEL_","RFC3966_DOMAINNAME_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","extractPhoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","isPhoneContextValid","phoneContext","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","numberToParse","extractFormattedPhoneNumber","phoneNumberString","indexOfRfc3966Prefix","indexOfNationalNumber","indexOfIsdn","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","parseInput","formattedPhoneNumber","_parsePhoneNumber","parsePhoneNumber","countryCallingCodeSource","_extractFormattedPhoneNumber","extract","throwOnError","startsAt","v2","withExtensionStripped","defaultCallingCode","exactCountry","parsePhoneNumberWithError","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_s","normalizeArguments","_Array$prototype$slic","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","_normalizeArguments","parsePhoneNumber_","AsYouTypeState","onCountryChange","onCallingCodeChange","_ref2","properties","_Object$keys","nextDigits","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","repeat","times","cutAndStripNonPairedParens","cutBeforeIndex","stripNonPairedParens","cleared_string","_dangling_braces","populateTemplateWithDigits","digits","_iterator2","_step2","formatCompleteNumber","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","matcher","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","canFormatCompleteNumber","nationalSignificantNumber","_ref3","useNationalPrefixFormattingRule","formattedNationalNumber","isValidFormattedNationalNumber","PatternParser","_this$context$","branches","instructions","expandSingleElementArray","OPERATOR","ILLEGAL_CHARACTER_REGEXP","operator","before","rightPart","_this$getContext","parseOneOfSet","PatternMatcher","allowOverflow","_match","characters","tree","characterString","restCharacters","subtree","partialMatch","_result","_char","DUMMY_DIGIT","LONGEST_NATIONAL_PHONE_NUMBER_LENGTH","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","MIN_LEADING_DIGITS_LENGTH","AsYouTypeFormatter","numberingPlan","formattedCompleteNumber","previouslyChosenFormat","newlyChosenFormat","_this2","international","leadingDigits","leadingDigitsPatternIndex","leadingDigitsPatternsCount","leadingDigitsPattern","_this3","_loop","_ret","IDDPrefix","missingPlus","internationalPrefix","_ref4","complexPrefixBeforeNationalSignificantNumber","strictPattern","nationalNumberDummyDigits","numberFormat","nationalPrefixIncludedInTemplate","numberFormatWithNationalPrefix","_ref5","usesNationalPrefix","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","onNationalSignificantNumberChange","_extractFormattedDigi","extractFormattedDigitsAndPlus","_extractFormattedDigi2","formattedDigits","hasPlus","justLeadingPlus","hasReceivedThreeLeadingDigits","stateUpdate","_extractCountryCallingCode","nationalPrefixForParsing","nationalDigits","prevNationalSignificantNumber","nationalSignificantNumberMatchesInput","nationalSignificantNumberIndex","_extractCountryCallin2","newCallingCode","_extractFormattedDigitsAndPlus","extractedNumber","_extractFormattedDigi3","_extractFormattedDigi4","AsYouType","optionsOrDefaultCountry","_this$getCountryAndCa","_this$getCountryAndCa2","_this$parser$input","_this$state","_this$state2","callingCode_","_this$state3","_callingCode","ambiguousCountries","getCountries","formatIncompletePhoneNumber","getPrefixForFormattingValueAsPhoneNumber","inputFormat","removePrefixFromFormattedPhoneNumber","parsePhoneNumberCharacter_","eventName","useInputKeyDownHandler","BACKSPACE_KEY_CODE","LEADING_PLUS","createInput","defaultMetadata","InputSmart","_ref$metadata","withCountryCallingCode","getTemplate","oneOf","InputBasic","newValueFormatted","getCountryFlag","getRegionalIndicatorSymbol","letter","_excluded2","Symbol","iterator","done","TypeError","CountrySelect","readOnly","onChange_","getSelectedOption","divider","DIVIDER_STYLE","arrayOf","shape","fontSize","backgroundColor","CountrySelectWithIcon","iconComponent","getIconAspectRatio","_ref3$arrowComponent","arrowComponent","DefaultArrowComponent","unicodeFlags","selectedOption","getUnicodeFlagIcon","aspectRatio","isSameOptionValue","FlagComponent","countryName","flags","flagUrl","alt","src","toLowerCase","objectOf","_excluded3","InternationalIcon","InternationalIcon1x1","InternationalIcon3x2","strokeMiterlimit","x1","y1","x2","y2","isE164Number","validateE164Number","sortCountryOptions","order","optionsOnTop","optionsOnBottom","appendTo","getSupportedCountryOptions","countryOptions","isCountrySupportedWithError","getSupportedCountries","createCountryIconComponent","flagComponent","internationalIcon","CountryIcon","_aspectRatio","DefaultInternationalIcon","Flag","setRefsValue","setRefValue","labels","getInternationalPhoneNumberPrefix","getPreSelectedCountry","getAnyCountry","couldNumberBelongToCountry","getCountrySelectOptions","countryNames","addInternationalOption","compareStringsLocales","_compareStrings","compareStrings","countrySelectOptions","generateNationalNumberDigits","getPhoneDigitsForNewCountry","phoneDigits","prevCountry","newCountry","useNationalFormat","stripCountryCallingCode","newCountryPrefix","e164","asYouType","partial_national_significant_number","getNationalSignificantNumberDigits","trimNumber","nationalSignificantNumberPart","overflowDigitsCount","getMaxNumberLength","getCountryForPartialE164Number","partialE164Number","latestCountrySelectedByUser","derived_country","getCountryFromPossiblyIncompleteInternationalPhoneNumber","onPhoneDigitsChange","prevPhoneDigits","countryRequired","limitMaxLength","countryCallingCodeEditable","_value","hasStartedTypingInNationalNumberDigitsHavingInputValueSelected","convertInternationalPhoneDigitsToNational","locales","countryCallingCodePrefix","country_calling_code","intlPhoneNumberPrefix","getInitialPhoneDigits","_ref6","_toPropertyKey","_toPrimitive","getPhoneInputWithCountryStateUpdateFromNewProps","prevProps","newDefaultCountry","newReset","displayInitialValueAsLocalNumber","initialValueFormat","prevDefaultCountry","prevReset","hasUserSelectedACountry","_getInitialPhoneDigits","parameters","isNewDefaultCountrySupported","noValueHasBeenEnteredByTheUser","noValueHasBeenEntered","valuesAreEqual","parsedCountry","supportedCountries","userCountrySelectionHistoryStateUpdate","couldNewValueCorrespondToLatestCountrySelectedByUser","_callSuper","Reflect","construct","ReferenceError","valueOf","setPrototypeOf","getPrototypeOf","__proto__","create","toPrimitive","PhoneNumberInput_","_React$PureComponent","_this$props","focusInputOnCountrySelection","newPhoneDigits","_phoneDigits","_this$props2","currentlySelectedCountry","_onPhoneDigitsChange","getFirstSupportedCountry","forceRerender","_onFocus","_onBlur","countrySelectProps","createRef","_this$props3","_international","_addInternationalOption","_this$props4","_defaultCountry","_countries","preSelectedCountry","selectedCountry","prevState","_this$props5","countryOptionsOrder","useMemoCountrySelectOptions","_getCountrySelectOptions","generator","dependencies","countrySelectOptionsMemoDependencies","areEqualArrays","countrySelectOptionsMemo","_this$props6","numberInputProps","smartCaret","CountrySelectComponent","countrySelectComponent","ContainerComponent","containerComponent","containerComponentProps","onCountryFocus","onCountryBlur","setInputRef","PureComponent","PhoneNumberInput","withDefaultProps","labelsPropType","oneOfType","metadataPropType","any","PhoneInput$1","defaultLabels","createPhoneInput","PhoneInputDefault","_ref$labels","PhoneInput","_arguments","index$1","_getCountryCallingCode","_excluded4","_excluded5","_excluded6","_excluded7","_excluded8","_excluded9","_excluded10","_excluded11","_excluded12","_excluded13","_excluded14","_excluded15","_excluded16","_excluded17","_excluded18","_excluded19","_excluded20","_excluded21","_excluded22","_excluded23","_excluded24","_excluded25","_excluded26","_excluded27","_excluded28","_excluded29","_excluded30","_excluded31","_excluded32","_excluded33","_excluded34","_excluded35","_excluded36","_excluded37","_excluded38","_excluded39","_excluded40","_excluded41","_excluded42","_excluded43","_excluded44","_excluded45","_excluded46","_excluded47","_excluded48","_excluded49","_excluded50","_excluded51","_excluded52","_excluded53","_excluded54","_excluded55","_excluded56","_excluded57","_excluded58","_excluded59","_excluded60","_excluded61","_excluded62","_excluded63","_excluded64","_excluded65","_excluded66","_excluded67","_excluded68","_excluded69","_excluded70","_excluded71","_excluded72","_excluded73","_excluded74","_excluded75","_excluded76","_excluded77","_excluded78","_excluded79","_excluded80","_excluded81","_excluded82","_excluded83","_excluded84","_excluded85","_excluded86","_excluded87","_excluded88","_excluded89","_excluded90","_excluded91","_excluded92","_excluded93","_excluded94","_excluded95","_excluded96","_excluded97","_excluded98","_excluded99","_excluded100","_excluded101","_excluded102","_excluded103","_excluded104","_excluded105","_excluded106","_excluded107","_excluded108","_excluded109","_excluded110","_excluded111","_excluded112","_excluded113","_excluded114","_excluded115","_excluded116","_excluded117","_excluded118","_excluded119","_excluded120","_excluded121","_excluded122","_excluded123","_excluded124","_excluded125","_excluded126","_excluded127","_excluded128","_excluded129","_excluded130","_excluded131","_excluded132","_excluded133","_excluded134","_excluded135","_excluded136","_excluded137","_excluded138","_excluded139","_excluded140","_excluded141","_excluded142","_excluded143","_excluded144","_excluded145","_excluded146","_excluded147","_excluded148","_excluded149","_excluded150","_excluded151","_excluded152","_excluded153","_excluded154","_excluded155","_excluded156","_excluded157","_excluded158","_excluded159","_excluded160","_excluded161","_excluded162","_excluded163","_excluded164","_excluded165","_excluded166","_excluded167","_excluded168","_excluded169","_excluded170","_excluded171","_excluded172","_excluded173","_excluded174","_excluded175","_excluded176","_excluded177","_excluded178","_excluded179","_excluded180","_excluded181","_excluded182","_excluded183","_excluded184","_excluded185","_excluded186","_excluded187","_excluded188","_excluded189","_excluded190","_excluded191","_excluded192","_excluded193","_excluded194","_excluded195","_excluded196","_excluded197","_excluded198","_excluded199","_excluded200","_excluded201","_excluded202","_excluded203","_excluded204","_excluded205","_excluded206","_excluded207","_excluded208","_excluded209","_excluded210","_excluded211","_excluded212","_excluded213","_excluded214","_excluded215","_excluded216","_excluded217","_excluded218","_excluded219","_excluded220","_excluded221","_excluded222","_excluded223","_excluded224","_excluded225","_excluded226","_excluded227","_excluded228","_excluded229","_excluded230","_excluded231","_excluded232","_excluded233","_excluded234","_excluded235","_excluded236","_excluded237","_excluded238","_excluded239","_excluded240","_excluded241","_excluded242","_excluded243","_excluded244","_excluded245","_excluded246","_excluded247","_excluded248","_excluded249","_excluded250","_excluded251","_excluded252","_excluded253","_excluded254","AC","cy","rx","ry","AD","AE","AF","AG","AI","AL","_ref7","AM","_ref8","AO","_ref9","AQ","_ref10","AR","_ref11","AS","_ref12","AT","_ref13","AU","_ref14","AW","_ref15","AX","_ref16","AZ","_ref17","BA","_ref18","BB","_ref19","BD","_ref20","BE","_ref21","BF","_ref22","BG","_ref23","BH","_ref24","BI","_ref25","BJ","_ref26","BL","_ref27","BM","_ref28","BN","_ref29","BO","_ref30","BQ","_ref31","BR","_ref32","BS","_ref33","BT","_ref34","BV","_ref35","BW","_ref36","BY","_ref37","BZ","_ref38","CA","_ref39","CC","_ref40","CD","_ref41","CF","_ref42","CG","_ref43","CH","_ref44","CI","_ref45","CK","_ref46","CL","_ref47","CM","_ref48","CN","_ref49","CO","_ref50","CR","_ref51","CU","_ref52","CV","_ref53","CW","_ref54","CX","_ref55","CY","_ref56","CZ","_ref57","DE","_ref58","DJ","_ref59","DK","_ref60","DM","_ref61","DO","_ref62","DZ","_ref63","EC","_ref64","EE","_ref65","EG","_ref66","EH","_ref67","ER","_ref68","ES","_ref69","ET","_ref70","EU","_ref71","FI","_ref72","FJ","_ref73","FK","_ref74","FM","_ref75","FO","_ref76","FR","_ref77","GA","_ref78","GB","_ref79","GD","_ref80","GE","_ref81","GF","_ref82","GG","_ref83","GH","_ref84","GI","_ref85","GL","_ref86","GM","_ref87","GN","_ref88","GP","_ref89","GQ","_ref90","GR","_ref91","GS","_ref92","GT","_ref93","GU","_ref94","GW","_ref95","GY","_ref96","HK","_ref97","fillRule","HM","_ref98","HN","_ref99","HR","_ref100","HT","_ref101","HU","_ref102","IC","_ref103","ID","_ref104","IE","_ref105","IL","_ref106","IM","_ref107","IN","_ref108","IO","_ref109","IQ","_ref110","IR","_ref111","IS","_ref112","IT","_ref113","JE","_ref114","JM","_ref115","JO","_ref116","JP","_ref117","KE","_ref118","KG","_ref119","KH","_ref120","KI","_ref121","clipRule","KM","_ref122","KN","_ref123","KP","_ref124","KR","_ref125","KW","_ref126","KY","_ref127","KZ","_ref128","LA","_ref129","LB","_ref130","LC","_ref131","LI","_ref132","LK","_ref133","LR","_ref134","LS","_ref135","LT","_ref136","LU","_ref137","LV","_ref138","LY","_ref139","MA","_ref140","MC","_ref141","MD","_ref142","ME","_ref143","MF","_ref144","MG","_ref145","MH","_ref146","MK","_ref147","ML","_ref148","MM","_ref149","MN","_ref150","MO","_ref151","MP","_ref152","MQ","_ref153","MR","_ref154","MS","_ref155","MT","_ref156","MU","_ref157","MV","_ref158","MW","_ref159","MX","_ref160","MY","_ref161","MZ","_ref162","NA","_ref163","NC","_ref164","NE","_ref165","NF","_ref166","NG","_ref167","NI","_ref168","NL","_ref169","NO","_ref170","NP","_ref171","NR","_ref172","NU","_ref173","NZ","_ref174","OM","_ref175","PA","_ref176","PE","_ref177","PF","_ref178","PG","_ref179","PH","_ref180","PK","_ref181","PL","_ref182","PM","_ref183","PN","_ref184","PR","_ref185","PS","_ref186","PT","_ref187","PW","_ref188","PY","_ref189","QA","_ref190","RE","_ref191","RO","_ref192","RS","_ref193","RU","_ref194","RW","_ref195","SA","_ref196","SB","_ref197","SC","_ref198","SD","_ref199","SE","_ref200","SG","_ref201","SH","_ref202","SI","_ref203","SJ","_ref204","SK","_ref205","SL","_ref206","SM","_ref207","SN","_ref208","SO","_ref209","SR","_ref210","SS","_ref211","ST","_ref212","SV","_ref213","SX","_ref214","SY","_ref215","SZ","_ref216","TA","_ref217","TC","_ref218","TD","_ref219","TF","_ref220","TG","_ref221","TH","_ref222","TJ","_ref223","TK","_ref224","TL","_ref225","TM","_ref226","TN","_ref227","TO","_ref228","TR","_ref229","TT","_ref230","TV","_ref231","TW","_ref232","TZ","_ref233","UA","_ref234","UG","_ref235","UM","_ref236","US","_ref237","UY","_ref238","UZ","_ref239","VA","_ref240","VC","_ref241","VE","_ref242","VG","_ref243","VI","_ref244","VN","_ref245","VU","_ref246","WF","_ref247","WS","_ref248","XK","_ref249","YE","_ref250","YT","_ref251","ZA","_ref252","ZM","_ref253","ZW","_ref254","handleOnChange","parsedNumber","RPNInput","borderLeft","onSelect","CheckIcon","SCROLL_AREA_NAME","createScrollAreaContext","createScrollAreaScope","ScrollAreaProvider","useScrollAreaContext","ScrollArea","__scopeScrollArea","scrollHideDelay","scrollAreaProps","scrollArea","setScrollArea","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","ScrollAreaViewport","SCROLLBAR_NAME","ScrollAreaScrollbar","scrollbarProps","onScrollbarXEnabledChange","onScrollbarYEnabledChange","isHorizontal","ScrollAreaScrollbarHover","ScrollAreaScrollbarScroll","ScrollAreaScrollbarAuto","ScrollAreaScrollbarVisible","visible","setVisible","hideTimer","handlePointerEnter","handlePointerLeave","debounceScrollEnd","useDebounceCallback","scrollDirection","prevScrollPos","handleResize","isOverflowX","isOverflowY","useResizeObserver","thumbRef","pointerOffsetRef","sizes","setSizes","thumbRatio","getThumbRatio","thumb","pointerPos","getScrollPosition","getScrollPositionFromPointer","ScrollAreaScrollbarX","getThumbOffsetFromScroll","ScrollAreaScrollbarY","onSizesChange","setComputedStyle","ScrollAreaScrollbarImpl","getThumbSize","maxScrollPos","isScrollingWithinScrollbarBounds","toInt","ScrollbarProvider","useScrollbarContext","hasThumb","onThumbChange","onThumbPointerUp","onThumbPointerDown","onThumbPositionChange","onDragScroll","onWheelScroll","scrollbar","setScrollbar","rectRef","prevWebkitUserSelectRef","handleWheelScroll","handleThumbPositionChange","handleDragScroll","handleWheel","ScrollAreaThumb","scrollbarContext","ScrollAreaThumbImpl","scrollAreaContext","removeUnlinkedScrollListenerRef","addUnlinkedScrollListener","thumbRect","CORNER_NAME","ScrollAreaCorner","hasBothScrollbarsVisible","ScrollAreaCornerImpl","cornerProps","setWidth","setHeight","hasSize","height2","width2","viewportSize","contentSize","scrollbarPadding","thumbSize","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","linearScale","maxThumbPos","scrollClampRange","scrollWithoutMomentum","prevPosition","isHorizontalScroll","isVerticalScroll","delay","handleCallback","debounceTimerRef","Corner","ScrollAreaPrimitive","ScrollBar","FIRST_KEYS","LAST_KEYS","FIRST_LAST_KEYS","SUB_OPEN_KEYS","ltr","SUB_CLOSE_KEYS","MENU_NAME","createMenuContext","createMenuScope","MenuProvider","useMenuContext","MenuRootProvider","useMenuRootContext","Menu","__scopeMenu","isUsingKeyboardRef","handleOpenChange","handlePointer","capture","once","PopperPrimitive","onContentChange","MenuAnchor","MenuPortal","MenuContentProvider","useMenuContentContext","MenuContent","rootContext","MenuRootContentModal","MenuRootContentNonModal","MenuContentImpl","disableOutsideScroll","currentItemId","setCurrentItemId","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","ScrollLockWrapper","scrollLockWrapperProps","activeElement","currentMatch","nextMatch","getNextMatch","newItem","isPointerMovingToSubmenu","isPointerInGraceArea","area","onItemEnter","onItemLeave","onTriggerLeave","onPointerGraceIntentChange","intent","getOpenState","isKeyDownInside","altKey","metaKey","isCharacterKey","reverse","onPointerMove","whenMouse","pointerXHasChanged","newDir","MenuGroup","div","MenuLabel","ITEM_SELECT","MenuItem","menuItem","itemSelectEvent","CustomEvent","defaultPrevented","MenuItemImpl","onPointerDown","onPointerUp","click","setTextContent","trim","ItemSlot","onPointerLeave","CHECKBOX_ITEM_NAME","MenuCheckboxItem","checkboxItemProps","ItemIndicatorProvider","getCheckedState","MenuRadioGroup","handleValueChange","RADIO_ITEM_NAME","MenuRadioItem","radioItemProps","useItemIndicatorContext","MenuItemIndicator","indicatorContext","span","MenuSeparator","MenuArrow","SUB_NAME","MenuSubProvider","useMenuSubContext","SUB_TRIGGER_NAME","MenuSubTrigger","subContext","clearOpenTimer","pointerGraceTimer","onTriggerChange","dataset","rightSide","bleed","contentNearEdge","contentFarEdge","SUB_CONTENT_NAME","MenuSubContent","subContentProps","isCloseKey","currentMatchIndex","wrappedValues","cursorPos","pointerType","Anchor2","CheckboxItem","RadioItem","ItemIndicator","Arrow2","SubTrigger","SubContent","DROPDOWN_MENU_NAME","createDropdownMenuContext","createDropdownMenuScope","useMenuScope","DropdownMenuProvider","useDropdownMenuContext","DropdownMenu","__scopeDropdownMenu","menuScope","MenuPrimitive.Root","DropdownMenuTrigger","MenuPrimitive.Anchor","DropdownMenuPortal","MenuPrimitive.Portal","DropdownMenuContent","MenuPrimitive.Content","DropdownMenuGroup","MenuPrimitive.Group","DropdownMenuLabel","MenuPrimitive.Label","DropdownMenuItem","MenuPrimitive.Item","DropdownMenuCheckboxItem","MenuPrimitive.CheckboxItem","DropdownMenuRadioGroup","radioGroupProps","MenuPrimitive.RadioGroup","DropdownMenuRadioItem","MenuPrimitive.RadioItem","DropdownMenuItemIndicator","MenuPrimitive.ItemIndicator","DropdownMenuSeparator","MenuPrimitive.Separator","DropdownMenuArrow","MenuPrimitive.Arrow","DropdownMenuSubTrigger","subTriggerProps","MenuPrimitive.SubTrigger","DropdownMenuSubContent","MenuPrimitive.SubContent","Group2","Label2","CheckboxItem2","RadioItem2","ItemIndicator2","Separator2","SubTrigger2","SubContent2","DropdownMenuPrimitive","toPropertyKey","objectWithoutPropertiesLoose","warn","_console","_len","alreadyWarned","warnOnce","_len2","_key2","loadedClb","i18n","initialized","loadNamespaces","ns","loadLanguages","lng","oldI18nextHasLoadedNamespace","fallbackLng","lastLng","loadNotPending","loadState","hasLoadedNamespace","isNewerI18next","i18nInstance","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","unescape","setDefaults","getDefaults","setI18n","getI18n","initReactI18next","I18nContext","ReportNamespaces","namespaces","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","ignore","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","notReadyT","optsOrDefaultValue","retNotReady","i18nOptions","useSuspense","keyPrefix","ready","getT","_useState","_useState2","setT","joinedNS","previousJoinedNS","isMounted","bindI18n","bindI18nStore","boundReset","isInitial","ret","resolve","PopStateEventType","createBrowserHistory","createBrowserLocation","globalHistory","pathname","hash","createLocation","createBrowserHref","createPath","getUrlBasedHistory","invariant","warning","cond","createKey","getHistoryState","parsePath","parsedPath","hashIndex","searchIndex","getLocation","createHref","validateLocation","v5Compat","getIndex","handlePop","history","historyState","url","createURL","href","ResultType","matchRoutes","routes","locationArg","basename","matchRoutesImpl","allowPartial","stripBasename","flattenRoutes","rankRouteBranches","decoded","decodePath","matchRouteBranch","parentsMeta","parentPath","flattenRoute","route","relativePath","meta","joinPaths","routesMeta","computeScore","_route$path","exploded","explodeOptionalSegments","segments","isOptional","restExploded","subpath","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","score","segment","matchedParams","matchedPathname","remainingPathname","matchPath","normalizePathname","compiledParams","compilePath","pathnameBase","captureGroups","memo","paramName","splatValue","caseSensitive","params","regexpSource","nextChar","resolvePath","fromPathname","toPathname","resolvePathname","normalizeSearch","normalizeHash","getInvalidPathError","dest","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","idx","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","isRouteErrorResponse","validMutationMethodsArr","validRequestMethodsArr","assign","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useHref","_temp","relative","useInRouterContext","UNSAFE_invariant","navigator","useResolvedPath","joinedPathname","useLocation","static","useNavigate","useNavigateStable","useNavigateUnstable","dataRouterContext","future","routePathnamesJson","JSON","stringify","UNSAFE_getResolveToMatches","activeRef","go","OutletContext","useOutlet","_temp2","useRoutes","useRoutesImpl","dataRouterState","isStatic","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","encodeLocation","navigationType","Pop","DefaultErrorComponent","useRouteError","status","statusText","fontStyle","defaultErrorElement","RenderErrorBoundary","revalidation","getDerivedStateFromError","getDerivedStateFromProps","componentDidCatch","errorInfo","console","routeContext","component","RenderedRoute","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","_dataRouterState","_future","v7_partialHydration","errorIndex","findIndex","renderFallback","fallbackIndex","HydrateFallback","hydrateFallbackElement","loaderData","needsToRunLoader","loader","lazy","reduceRight","shouldRenderHydrateFallback","warningOnce","getChildren","DataRouterHook","DataRouterStateHook","useDataRouterContext","hookName","ctx","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","_state$errors","UseRouteError","routeId","router","UseNavigateStable","navigate","fromRouteId","alreadyWarned$1","logV6DeprecationWarnings","renderFuture","routerFuture","v7_startTransition","v7_fetcherPersist","v7_normalizeFormMethod","v7_skipActionErrorRevalidation","Navigate","jsonPath","Outlet","Route","Router","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","createRoutesFromChildren","treePath","hasErrorBoundary","shouldRevalidate","handle","isModifiedEvent","shiftKey","shouldProcessLinkClick","createSearchParams","init","URLSearchParams","getSearchParamsForLocation","locationSearch","defaultSearchParams","searchParams","getAll","append","REACT_ROUTER_VERSION","__reactRouterVersion","ViewTransitionContext","isTransitioning","START_TRANSITION","startTransitionImpl","BrowserRouter","historyRef","setStateImpl","newState","listen","UNSAFE_logV6DeprecationWarnings","isBrowser","ABSOLUTE_URL_REGEX","Link","reloadDocument","preventScrollReset","viewTransition","UNSAFE_NavigationContext","absoluteHref","isExternal","currentUrl","URL","targetUrl","protocol","origin","internalOnClick","useLinkClickHandler","handleClick","NavLink","ariaCurrentProp","classNameProp","styleProp","routerState","UNSAFE_DataRouterStateContext","useViewTransitionState","nextLocationPathname","navigation","endSlashPosition","endsWith","isActive","charAt","isPending","renderProps","ariaCurrent","UNSAFE_DataRouterContext","replaceProp","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","setSearchParams","nextInit","navigateOptions","newSearchParams","opts","vtContext","currentPath","currentLocation","nextPath","nextLocation","NodeType","isNativeShadowDom","shadowRoot","fixBrowserCompatibilityIssuesInCSS","cssText","escapeImportStatement","statement","stringifyStylesheet","stringifyRule","importStringified","isCSSImportRule","isCSSStyleRule","fixSafariColons","cssStringified","regex","Mirror","childNode","oldNode","createMirror","maskInputValue","maskInputOptions","tagName","maskInputFn","actualType","str","ORIGINAL_ATTRIBUTE_NAME","is2DCanvasBlank","canvas","chunkSize","getImageData","originalGetImageData","pixel","getInputType","extractFileExtension","baseURL","_id","tagNameRegex","IGNORED_NODE","getValidTagName","processedTagName","extractOrigin","canvasService","canvasCtx","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","absoluteToStylesheet","quote1","path1","quote2","path2","path3","filePath","maybeQuote","parts","part","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","getAbsoluteSrcsetString","doc","attributeValue","pos","collectCharacters","regEx","chars","absoluteToDoc","descriptorsStr","inParens","isSVGElement","getHref","transformAttribute","ignoreAttribute","_isBlockedElement","blockClass","blockSelector","eIndex","classMatchesRegex","checkAncestors","needMaskingText","maskTextClass","maskTextSelector","onceIframeLoaded","iframeEl","iframeLoadTimeout","fired","readyState","blankUrl","onceStylesheetLoaded","link","styleSheetLoadTimeout","styleSheetLoaded","serializeNode","mirror","needsMask","inlineStylesheet","maskTextFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","rootId","getRootId","serializeElementNode","serializeTextNode","docId","parentTagName","isStyle","isScript","needBlock","canvasDataURL","blankCanvas","blankCanvasDataURL","image","recordInlineImage","mediaAttributes","isCustomElement","lowerIfExists","maybeAttr","slimDOMExcluded","sn","slimDOMOptions","serializeNodeWithId","skipChild","onSerialize","onIframeLoad","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","serializedNode","recordChild","bypassOptions","childN","serializedChildNode","iframeDoc","serializedIframeNode","serializedLinkNode","snapshot","maskAllInputs","slimDOM","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","receiver","throttle","now","remaining","hookSetter","isRevoked","original","patch","replacement","wrapped","nowTimestamp","getWindowScroll","getWindowHeight","getWindowWidth","closestElementOfNode","isBlocked","isSerialized","isIgnored","isAncestorRemoved","legacy_isTouchEvent","isSerializedIframe","isSerializedStylesheet","hasShadowRoot","StyleSheetMirror","newId","getShadowHost","shadowHost","getRootShadowHost","rootShadowHost","shadowHostInDom","inDom","EventType$1","EventType2","IncrementalSource$1","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","isNodeInLinkedList","DoubleLinkedList","moveKey","parentId","MutationBuffer","adds","addedIds","addList","getNextId","nextId","pushAdd","currentN","iframe","childSn","isParentRemoved","isAncestorInSet","tailNode","_node","unhandledNode","attribute","diffAsStr","unchangedAsStr","textarea","attributeName","old","pname","newPriority","nodeId","deepDelete","targetId","addsSet","removes","_isParentRemoved","_isAncestorInSet","errorHandler","registerErrorHandler","unregisterErrorHandler","callbackWrapper","mutationBuffers","getEventTarget","initMutationObserver","rootEl","mutationBuffer","mutationObserverCtor","angularZoneSymbol","initMoveObserver","mousemoveCb","sampling","callbackThreshold","positions","timeBaseline","wrappedCb","totalOffset","updatePosition","evt","handlers","initMouseInteractionObserver","mouseInteractionCb","disableMap","currentPointerType","getHandler","eventKey","thisEventKey","initScrollObserver","scrollCb","scrollLeftTop","initViewportResizeObserver","viewportResizeCb","lastH","lastW","updateDimension","INPUT_TAGS","lastInputValueMap","initInputObserver","inputCb","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isChecked","cbWithDedup","lastInputValue","currentWindow","propertyDescriptor","hookProperties","getNestedCSSRulePositions","recurse","childRule","hasNestedCSSRule","getIdAndStyleId","styleMirror","styleId","initStyleSheetObserver","styleSheetRuleCb","stylesheetManager","insertRule","thisArg","argumentsList","deleteRule","replaceSync","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initAdoptedStyleSheetObserver","hostId","patchTarget","originalPropertyDescriptor","sheets","initStyleDeclarationObserver","styleDeclarationCb","ignoreCSSAttributes","setProperty","priority","removeProperty","initMediaInteractionObserver","mediaInteractionCb","currentTime","volume","muted","playbackRate","initFontObserver","fontCb","fontMap","originalFontFace","family","descriptors","fontFace","restoreHandler","initSelectionObserver","selectionCb","collapsed","updateSelection","ranges","range","startContainer","startOffset","endContainer","endOffset","initCustomElementObserver","customElementCb","mergeHooks","hooks","mutationCb","canvasMutationCb","initObservers","mousemoveHandler","mouseInteractionHandler","scrollHandler","viewportResizeHandler","inputHandler","mediaInteractionHandler","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","selectionObserver","customElementObserver","pluginHandlers","plugin","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","remoteIdToIdMap","ids","IframeManager","crossOriginMessageEvent","transformedEvent","iframeMirror","ShadowDomManager","iframeElement","manager","__awaiter","adopt","reject","fulfilled","step","rejected","lookup","encode","arraybuffer","bytes","base64","canvasVarMap","variableListFor","ctor","contextMap","saveWebGLVar","isInstanceOfWebGLObject","serializeArg","serializeArgs","initCanvas2DMutationObserver","props2D","recordArgs","hookHandler","getNormalizedContextName","contextType","initCanvasContextObserver","setPreserveDrawingBufferToTrue","ctxName","contextAttributes","patchGLPrototype","initCanvasWebGLMutationObserver","funcToSource","sourcemapArg","sourcemap","lines","blankPrefixLength","blob","createInlineWorkerFactory","WorkerFactory","lastBlobMap","transparentBlobMap","getTransparentBlobFor","offscreen","arrayBuffer","worker","bitmap","transparentBase64","CanvasManager","fps","canvasContextReset","snapshotInProgressMap","timeBetweenSnapshots","lastSnapshotTime","rafId","getCanvas","matchedCanvas","takeCanvasSnapshots","timestamp","canvas2DReset","canvasWebGL1and2Reset","setLatestRAFTimestamp","valuesWithType","StylesheetManager","linkEl","adoptedStyleSheetData","ProcessedNodeManager","thisBuffer","buffers","wrapEvent","wrappedEmit","takeFullSnapshot","canvasManager","recording","record","emit","checkoutEveryNms","checkoutEveryNth","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordDOM","recordCrossOriginIframes","recordAfter","collectFonts","plugins","inEmittingFrame","passEmitsToParent","lastFullSnapshotEvent","incrementalSnapshotCount","eventProcessor","isCheckout","buf","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","wrappedAdoptedStyleSheetEmit","iframeManager","processedNodeManager","shadowDomManager","observe","EventType","IncrementalSource","Config","loc","setImmediate","builtInProp","schedulingQueue","ToString","schedule","isThenable","_then","oType","notify","notifyIsolated","msg","defWrapper","MakeDefWrapper","iteratePromises","rejecter","MakeDef","NpoPromise","executor","def","failure","PromisePrototype","msgs","PromisePolyfill","MAX_RECORDING_MS","MAX_VALUE_FOR_MIN_RECORDING_MS","ArrayProto","FuncProto","ObjProto","windowConsole","document$1","windowOpera","screen","userAgent","nativeBind","nativeForEach","nativeIndexOf","nativeMap","nativeIsArray","breaker","console$1","log_func_with_prefix","console_with_prefix","safewrap","safewrapClass","klass","proto","bound","iterable","results","needle","subclass","superclass","pad","mixed_val","quote","escapable","holder","indent","mind","partial","at","escapee","hex","uffff","white","word","b64","o1","o2","o3","h1","h2","h3","h4","bits","enc","tmp_arr","utftext","stringl","c1","ticks","xor","byte_array","tmp","BLOCKED_UA_STRS","formdata","arg_separator","use_val","use_key","regexS","nameEQ","cookie","seconds","is_cross_subdomain","is_secure","is_cross_site","domain_override","cdomain","expires","secure","domain","extract_domain","days","new_cookie_val","_localStorageSupported","localStorageSupported","storage","forceCheck","supported","cheap_guid","force_check","register_event","oldSchool","useCapture","ontype","old_handler","makeHandler","new_handler","old_handlers","fixEvent","old_result","new_result","TOKEN_MATCH_REGEX","getAllChildren","bad_whitespace","hasClass","elem","getElementsBySelector","tokens","token","foundCount","currentContextIndex","currentContext","token_match","attrName","attrOperator","attrValue","checkFunction","query","CAMPAIGN_KEYWORDS","CLICK_IDS","default_value","kw","kwkey","idkey","referrer","keyword","user_agent","vendor","opera","browser","versionRegexs","extra_props","maxlen","guid","SIMPLE_DOMAIN_MATCH_REGEX","DOMAIN_MATCH_REGEX","hostname","domain_regex","tld","isOnline","onLine","JSONStringify","JSONParse","GDPR_DEFAULT_PERSISTENCE_PREFIX","optIn","_optInOut","optOut","hasOptedIn","_getStorageValue","hasOptedOut","_hasDoNotTrackFlagOn","optedOut","addOptOutCheckMixpanelLib","_addOptOutCheck","addOptOutCheckMixpanelPeople","addOptOutCheckMixpanelGroup","clearOptInOut","_getStorage","_getStorageKey","win$1","nav","hasDntOn","dntValue","optValue","getConfigValue","ignoreDnt","persistenceType","persistencePrefix","logger$5","SharedLock","lockedCB","pid","startTime","pollIntervalMS","timeoutMS","keyX","keyY","keyZ","waitFor","predicate","getSetY","valY","criticalSection","removeLock","LocalStorageWrapper","storageOverride","logger$4","RequestQueue","storageKey","flushInterval","queueEntry","enqueueItem","storedQueue","succeeded","batchSize","batch","idsInBatch","filterOutIDsAndInvalid","idSet","filteredItems","removeFromStorage","updatePayloads","existingItems","itemsToUpdate","newItems","newPayload","storageEntry","queue","serialized","MAX_RETRY_INTERVAL_MS","logger$3","RequestBatcher","flushMS","currentBatchSize","attemptSecondaryFlush","dataForRequest","transformedItems","addPayload","itemId","removeItemsFromQueue","batchSendCallback","res","retryMS","halvedBatchSize","requestOptions","logger$2","CompressionStream","RECORDER_BATCHER_LIB_CONFIG","ACTIVE_SOURCES","isUserEvent","ev","SessionRecording","batcherKey","configVar","shouldStopBatcher","resetIdleTimeout","currentReplayId","reqParams","reqBody","onSuccess","response","responseBody","numEvents","replayId","batchStartTime","replayLengthMs","eventsJson","deviceId","userId","jsonStream","gzipStream","compressedBlob","logger$1","MixpanelRecorder","mixpanelInstance","onIdleTimeout","onMaxLengthReached","EV_CHANGE","EV_CLICK","EV_HASHCHANGE","EV_MP_LOCATION_CHANGE","EV_POPSTATE","EV_SCROLLEND","EV_SUBMIT","CLICK_EVENT_PROPS","OPT_IN_CLASSES","OPT_OUT_CLASSES","SENSITIVE_DATA_CLASSES","TRACKED_ATTRS","logger","getClasses","getClassName","cls","getPreviousElementSibling","isElementNode","getPropertiesFromElement","blockAttrsSet","extraAttrs","allowElementCallback","allowSelectors","elId","shouldTrackElementDetails","attrVal","shouldTrackValue","nthChild","nthOfType","currentElem","getPropsForDOMEvent","blockAttrs","blockElementCallback","blockSelectors","captureTextContent","captureExtraAttrs","isTextNode","shouldTrackDomEvent","isElementAllowed","isElementBlocked","targetElementList","curEl","isTag","elementsJson","explicitNoTrack","shouldTrackDetails","docElement","elementText","getSafeText","guessRealClickTarget","targetProps","elText","composedPath","sel","minDOMApisSupported","testEl","elClasses","sensitiveNameRegex","ccRegex","ssnRegex","AUTOCAPTURE_CONFIG_KEY","LEGACY_PAGEVIEW_CONFIG_KEY","PAGEVIEW_OPTION_FULL_URL","PAGEVIEW_OPTION_URL_WITH_PATH_AND_QUERY_STRING","PAGEVIEW_OPTION_URL_WITH_PATH","CONFIG_ALLOW_ELEMENT_CALLBACK","CONFIG_ALLOW_SELECTORS","CONFIG_ALLOW_URL_REGEXES","CONFIG_BLOCK_ATTRS","CONFIG_BLOCK_ELEMENT_CALLBACK","CONFIG_BLOCK_SELECTORS","CONFIG_BLOCK_URL_REGEXES","CONFIG_CAPTURE_EXTRA_ATTRS","CONFIG_CAPTURE_TEXT_CONTENT","CONFIG_SCROLL_CAPTURE_ALL","CONFIG_SCROLL_CHECKPOINTS","CONFIG_TRACK_CLICK","CONFIG_TRACK_INPUT","CONFIG_TRACK_PAGEVIEW","CONFIG_TRACK_SCROLL","CONFIG_TRACK_SUBMIT","CONFIG_DEFAULTS","DEFAULT_PROPS","MP_EV_CLICK","MP_EV_INPUT","MP_EV_SCROLL","MP_EV_SUBMIT","Autocapture","mp","autocaptureConfig","allowUrlRegexes","allowed","allowRegex","blockUrlRegexes","mpEventName","previousTrackedUrl","tracked","nativePushState","unused","nativeReplaceState","shouldTrack","didPathChange","trackPageviewOption","scrollCheckpoints","scrollPercentage","checkpoint","DomTracker","mixpanel_instance","event_name","user_callback","that","timeout_occured","LinkTracker","FormTracker","SET_ACTION","SET_ONCE_ACTION","UNSET_ACTION","ADD_ACTION","APPEND_ACTION","UNION_ACTION","REMOVE_ACTION","DELETE_ACTION","apiActions","$set","$unset","$set_once","list_name","$union","$append","$remove","MixpanelGroup","group_key","group_id","date_encoded_data","conf","MixpanelPeople","by","$add","amount","device_id","user_id","had_persisted_distinct_id","conf_var","action_method","queue_to_params_fn","queued_data","action_params","_set_callback","_add_callback","_append_callback","_set_once_callback","_union_callback","_unset_callback","_remove_callback","$append_queue","$append_item","append_callback","$remove_queue","$remove_item","remove_callback","SET_QUEUE_KEY","SET_ONCE_QUEUE_KEY","UNSET_QUEUE_KEY","ADD_QUEUE_KEY","APPEND_QUEUE_KEY","REMOVE_QUEUE_KEY","UNION_QUEUE_KEY","PEOPLE_DISTINCT_ID_KEY","ALIAS_ID_KEY","EVENT_TIMERS_KEY","RESERVED_PROPERTIES","MixpanelPersistence","storage_type","old_cookie","old_localstorage","cookie_domain","cross_site","cross_subdomain","q_key","q_data","set_q","set_once_q","unset_q","add_q","union_q","remove_q","append_q","enqueued_obj","append_obj","queued_action","default_val","timers","init_type","load_extra_bundle","_onload","mixpanel_master","INIT_MODULE","INIT_SNIPPET","IDENTITY_FUNC","NOOP_FUNC","PRIMARY_INSTANCE_NAME","PAYLOAD_TYPE_BASE64","PAYLOAD_TYPE_JSON","DEVICE_ID_PREFIX","USE_XHR","ENQUEUE_REQUESTS","sendBeacon","DEFAULT_API_ROUTES","DEFAULT_CONFIG","DOM_LOADED","MixpanelLib","create_mplib","utm_params","initial_utm_params","has_utm","utm_value","utm_key","variable_features","api_host","batcher_config","flush_on_unload","uuid","handleLoadedRecorder","replay_id","replay_url","query_params","_utm_value","DomClass","dt","callback_function","jsc","randomized_cb","callback_string","body_data","use_post","use_sendBeacon","verbose_mode","lib","img","req","headers","headerValue","headerName","start_time","response_headers","script","fn_name","alias_calls","other_calls","tracking_calls","execute","calls","caller","queue_prefix","api_routes","batcher_for","batcher_configs","batcher","events","encoded_data","truncated_data","endpoint","should_send_immediately","send_request_options","request_enqueued_or_initiated","send_request_immediately","transport","start_timestamp","duration_in_ms","marketing_properties","property_blacklist","blacklisted_prop","group_ids","old_values","old_value","groups","tracking_props","map_key","default_page_properties","event_properties","REGISTER_DEFAULTS","options_for_register","days_or_options","new_distinct_id","previous_distinct_id","alias","name_tag","new_batch_size","prop_name","hook_name","property_name","is_localStorage_requested","instances","extend_mp","override_mp_init_func","add_dom_loaded_handler","dom_loaded_handler","do_scroll_check","toplevel","init_as_module","bundle_loader","loadNoop","_src","onload","mixpanel","global","factory","this","hookCallback","setHookCallback","hasOwnProp","isObjectEmpty","isDate","arrLen","extend","createUTC","locale","strict","createLocalOrUTC","defaultParsingFlags","getParsingFlags","fun","parsedParts","isNowValid","createInvalid","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","Moment","isMoment","deprecate","firstTime","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","calendar","mom","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTime","withoutSuffix","isFuture","pastFuture","diff","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","getPrioritizedUnits","unitsObj","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","regexes","addRegexToken","strictRegex","isStrict","localeData","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","absFloor","argumentForCoercion","coercedNumber","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","isLeapYear","year","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","getSetYear","makeGetSet","getIsLeapYear","unit","keepTime","set$1","isUTC","month","stringGet","stringSet","prioritized","prioritizedLen","mod","daysInMonth","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","localeMonthsShort","handleStrictParse","monthName","llc","localeMonthsParse","setMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","shortP","longP","createDate","ms","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","weekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse$1","weekdayName","localeWeekdaysParse","getSetDayOfWeek","day","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","hours","minutes","isLower","baseConfig","localeFamilies","globalLocale","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","require","getSetGlobalLocale","getLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","currentDateArray","nowValue","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","weekYear","temp","weekdayOverflow","curWeek","createLocal","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","months","weeks","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offsetFromString","chunkOffset","chunk","cloneWithOffset","model","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","createAdder","period","dur","isAdding","updateOffset","subtract","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","sod","clone","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","anchor2","adjust","toISOString","keepOffset","utc","inspect","zone","datetime","suffix","inputString","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","unix","toDate","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","abbr","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","erasName","erasAbbr","erasNarrow","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","preParsePostFormat","proto$1","get$1","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","proto$2","moment","enGb","plural","num","forms","relativeTimeWithPlural","monthsParse","ru","minute","suffixes","tr","registerSW","immediate","onNeedRefresh","onOfflineReady","onRegistered","onRegisteredSW","onRegisterError","registerPromise","updateServiceWorker","_reloadPage","__vitePreload","Workbox","useRegisterSW","needRefresh","setNeedRefresh","offlineReady","setOfflineReady","detectAndStoreCountry","storedCountry","localStorage","getItem","storedTimestamp","ONE_DAY","fetch","json","setItem","getUserCountry","ScrollToTop","scrollTo","Footer","stickyBottom","language","egarantiLogo","SvgBellicon","React.createElement","assertThisInitialized","_iterableToArray","_toArray","iterableToArray","ownKeys$6","_objectSpread$6","consoleLogger","Logger","concreteLogger","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","cloned","_cloned","defer","rej","promise","makeString","getLastOfPath","cleanKey","canNotTraverseDeeper","setPath","_getLastOfPath","pushPath","_getLastOfPath2","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","_entityMap","isIE10","looksLikeObjectPath","nsSeparator","keySeparator","possibleChars","deepFind","joinedPath","ownKeys$5","_objectSpread$5","_createSuper$3","_isNativeReflectConstruct$3","ResourceStore","_EventEmitter","ignoreJSONStructure","resources","postProcessor","processors","translator","processor","ownKeys$4","_objectSpread$4","_createSuper$2","_isNativeReflectConstruct$2","checkedLoadedFor","Translator","services","resolved","wouldCheckForNsInKey","seemsNaturalLanguage","lastKey","returnDetails","_this$extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","resExactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","handleAsObject","resTypeIsArray","newKeyToUse","deepKey","usedDefault","usedKey","needsPluralHandling","hasDefaultValue","defaultValueSuffix","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","lngs","fallbackLngs","specificDefaultValue","defaultForMissing","skipOnVariables","nestBef","nestAft","postProcess","postProcessorNames","_this4","exactUsedKey","usedLng","usedNS","extracted","needsZeroSuffixLookup","needsContextHandling","codes","finalKeys","pluralSuffix","zeroSuffix","contextKey","possibleKey","capitalize","LanguageUtil","specialCases","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","sets","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","createRules","PluralResolver","languageUtils","pluralCategory1","pluralCategory2","pluralCategory","returnSuffix","ownKeys$3","_objectSpread$3","deepFindWithDefaults","Interpolator","iOpts","regexpStr","regexpUnescapeStr","nestingRegexpStr","replaces","regexSafe","handleFormat","missingInterpolationHandler","todos","todo","matchedVar","safeValue","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","ownKeys$2","_objectSpread$2","parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","_opt$split","_opt$split2","createCachedFormatter","Formatter","mem","_parseFormatStr","valOptions","ownKeys$1","_objectSpread$1","_createSuper$1","_isNativeReflectConstruct$1","removePending","Connector","backend","store","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","loaded","loadedKeys","fcName","tried","_this5","fallbackValue","isUpdate","clb","transformOptions","bindMemberFunctions","mems","I18n","defOpts","createClassOnDemand","ClassOrObject","lu","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","load","finish","usedCallback","lngInLngs","setLngProps","setLng","fixedT","resultKey","_this$translator","_this$translator2","_this6","preResult","_this7","preloaded","newLngs","rtlLngs","_this8","membersToCopy","each","fieldContentRegExp","serializeCookie","maxAge","sameSite","cookieOptions","cookie$1","querystring","hasLocalStorageSupport","localStorageAvailable","testKey","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","navigator$1","htmlTag","subdomain","lookupFromSubdomainIndex","canCookies","Browser","detector","detectionOrder","detected","detectorName","caches","cacheName","later","callNow","regexp","interpolate","isMissingOption","fetchApi","XmlHttpRequestApi","ActiveXObjectApi","requestWithFetch","resourceNotExisting","requestWithXmlHttpRequest","request","getStorage","storageExpiration","setProjectNotExisting","isProjectNotExisting","projectId","getCustomRequestInfo","handleCustomRequest","info","I18NextLocizeBackend","allOptions","defOpt","passedOpt","backendConnector","currentLanguage","isMissing","_clbs","referenceLng","clbs","hasRegion","_isMissing","errorMessage","isNetworkError","term","parseErr","_this9","missings","missingUrl","updatesUrl","hasMissing","hasUpdates","payloadMissing","payloadUpdate","doneOne","_info","_this10","lock","pageSize","missing","namespaceSaved","amountOfPages","pagesDone","_this11","INVISIBLE_CHARACTERS","INVISIBLE_REGEX","TEMPLATE_MINIMUM_LENGTH","invisibleStartMarker","toBytes","fromBytes","padToWholeBytes","binary","needsToAdd","encodeMessage","byte","encodedInvisibleStartMarker","decodeMessage","textBytes","decodeFromText","_text$match","invisibleMessages","removeInvisibles","encodeValue","decodeValue","parsed","wrap","invisibleMeta","encodedValue","invisibleMark","unwrap","decodedVal","containsHiddenMeta","lastByte","lastChar","containsHiddenStartMarker","postProcessorName","SubliminalPostProcessor","keyIn","_opt$keySeparator","_translator$options","_namespaces$","_translator$options2","_translator$extractFr","extractedKey","validAttributes","getIframeUrl","_prc$env","prc","env","legacyEventMapping","getMappedLegacyEvent","pendingMsgs","sendMessage","api","_document$getElementB","implementation","clickHandler","_e$data","sender","usedEventName","setValueOnNode","txtWithHiddenMeta","clones","dummy","replaceable","_arrayWithoutHoles","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","nonIterableSpread","updated","metas","metaItem","_item$node","clean","resetHighlight","save","uninstrumentedStore","isInViewport","windowHeight","vertInView","horInView","mouseDistanceFromElement","mouseEvent","$n","mX","mY","off","ny1","ny2","nx1","nx2","maxX1","minX2","maxY1","minY2","intersectX","intersectY","distX","distY","hypot","isWindow","box","docElem","getClickedElement","topStartsAt","topBreaksAt","nOffset","_nOffset","getElementText","getElementI18nKey","getElementNamespace","ele","jsonData","getQsParameterByName","debouncedUpdateDistance","distance","highlight","boxDistance","highlightUninstrumented","currentFC","startMouseTracking","stopMouseTracking","iconEdit","i18nextIcon","locizeIcon","minimizeIcon","editIconUrl","i18nextIconUrl","minimizeIconUrl","locizeIconUrl","EditIcon","RibbonLogo","circleSize","logoSize","ribbon","Ribbon","popupEle","onMaximize","Minimize","onMinimize","popupId","Popup","popup","header","overlay","containerStyle","_diff","previousMatches","matchingItems","selectedHighlight","RibbonButton","attrTitle","btn","icon","RibbonBox","logo","btnbox","eleToOutline","overriddenStyles","_RibbonBox","actions","arrowEle","refEle","staticSide","_x","_y","ignoreSelected","subliminal","nextID","currentSourceLng","ignoreMergedEleUniqueIds","setImplementation","impl","walk","extractMeta","_i18n","_i18n2","containsOnlySpaces","handleNode","merge","txt","hasHiddenMeta","hasHiddenStartMarker","_meta","parseTree","mutationTriggeringElements","ignoreMutation","createObserver","internalChange","lastToggleTimeout","toggleInternal","targetEles","debouncedHandler","triggerMutation","notOurs","includedAlready","observerConfig","initDragElement","pos3","pos4","popups","elmnt","currentZIndex","getHeader","dragMouseDown","closeDragElement","elementDrag","headerItems","initResizeElement","startX","startY","startWidth","startHeight","initDrag","both","doDrag","stopDrag","scriptEle","continueToStart","eles","createClickHandler","getFallbackNS","rectEl","_rectEl$getBoundingCl","pT","pB","pR","pL","sizing","startLegacy","oldHref","bodyList","isInIframe","configurePostProcessor","i18next","PostProcessor","getImplementation","fallback","backendName","pickFrom","locizeEditorPlugin","showInContext","locizePlugin","startStandalone","detectionOptions","locizeOptions","Backend","LanguageDetector","isModalOpen","requestQueue","addRequestInterceptor","axiosInstance","processQueue","queuedRequests","isModalOpenSetter","createClassUtils","_config$conflictingCl","prefixedClassGroupEntries","createSplitModifiers","isArbitraryVariant","splitModifiers","_splitModifiers","createConfig","firstCreateConfig","restCreateConfig","isArbitraryUrl","isUrl","isIntegerOnly","getLengthWithEmpty","getNumber","parseError","defaultMessage","getUserIP","ip","UserAgreementModal","onAccept","onReject","isChecked1","setIsChecked1","isChecked2","setIsChecked2","handleAccept","membershipAgreement","commercialCommunicationAgreement","handleUserAgreement","showUserAgreementModal","originalConfig","modalRoot","createModalElement","handleReject","cleanupModal","post","jwtToken","reload","catch","unmount","removeChild","appendChild","addResponseInterceptor","kindOf","thing","kindOfTest","isBuffer","isArrayBuffer","isArrayBufferView","isFile","isBlob","isFileList","isStream","isFormData","isURLSearchParams","isStandardBrowserEnv","assignValue","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","searchString","isTypedArray","TypedArray","utils","buildURL","paramsSerializer","serializedParams","hashmarkIndex","InterceptorManager","InterceptorManager_1","normalizeHeaderName","normalizedName","AxiosError","customProps","axiosError","AxiosError_1","transitional","toFormData","formData","convertValue","build","parentKey","fullKey","toFormData_1","settle","validateStatus","cookies","isAbsoluteURL","combineURLs","relativeURL","buildFullPath","requestedURL","ignoreDuplicateOf","parseHeaders","line","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","requestURL","CanceledError","CanceledError_1","parseProtocol","require$$2","require$$3","require$$4","require$$5","require$$6","transitionalDefaults","require$$7","require$$8","require$$9","require$$10","xhr","requestData","requestHeaders","responseType","onCanceled","username","password","fullPath","onloadend","responseHeaders","responseData","timeoutErrorMessage","xsrfValue","cancel","_null","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","adapter","stringifySafely","parser","encoder","isObjectPayload","contentType","_FormData","silentJSONParsing","forcedJSONParsing","strictJSONParsing","defaults_1","transformData","isCancel","throwIfCancellationRequested","dispatchRequest","reason","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","VERSION","validators","deprecatedWarnings","formatMessage","desc","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios_1","CancelToken","resolvePromise","onfulfilled","_resolve","CancelToken_1","spread","isAxiosError","createInstance","defaultConfig","axios","promises","require$$11","require$$12","axiosModule","import","Accept","SvgInfoemptyicon","Loading","fullScreen","useOnClickOutside","SvgXicon","NotificationItem","notification","handleReadOneNotification","getAllNotifications","getUnreadNotificationsCount","navigateTo","handleClickNotification","resourceId","handleDeleteNotification","stopPropagation","XIcon","createdAt","NotificationModal","setIsNotificationModalOpen","unreadNotificationsCount","notifications","setNotifications","loading","setLoading","pager","setPager","totalElements","put","handleReadAllNotifications","finally","NotificationIcon","PageHeader","isNotificationModalOpen","setUnreadNotificationsCount","EgarantiLogo","nativeEvent","stopImmediatePropagation","SvgAccounticon","SvgHomeicon","SvgLayoutGrid","SvgVerifiedicon","BottomNav","sourceAppName","NavbarButton","navigateToPath","isActivePath","HomeIcon","LayoutGridIcon","CheckVerifiedIcon","AccountIcon","SvgLogoutmodalicon","LogoutDialog","handleLogout","removeItem","LogoutIcon","SvgEgarantilogo","SvgLogouticon","SvgSubMenuIcon","useMediaQuery","setMatches","media","matchMedia","SideNav","isDesktop","onOpenLogout","setOnOpenLogout","openSubMenu","setOpenSubMenu","menuList","subMenu","activeClassNames","subMenuActiveClassNames","handleSubMenuToggle","getNavLinkClassNames","subItem","ArrowIcon","subIndex","MotionConfigContext","MotionContext","useVisualElementContext","PresenceContext","LazyContext","useVisualElement","visualState","createVisualElement","lazyContext","presenceContext","reducedMotionConfig","visualElementRef","visualElement","isRefObject","useMotionRef","externalRef","isVariantLabel","isAnimationControls","variantProps","isControllingVariants","isVariantNode","getCurrentTreeVariants","initial","animate","useCreateMotionContext","variantLabelsAsDependency","createDefinition","propNames","featureDefinitions","loadFeatures","features","useConstant","globalProjectionState","useProjectionId","LayoutGroupContext","VisualElementHandler","SwitchLayoutGroupContext","motionComponentSymbol","createMotionComponent","preloadedFeatures","projectionNodeConstructor","useRender","useVisualState","MotionComponent","configAndProps","layoutId","useLayoutId","projectionId","lazyStrictMode","initialLayoutGroupConfig","ForwardRefComponent","layoutGroupId","createMotionProxy","custom","customMotionComponentConfig","componentCache","_target","lowercaseSVGElements","isSVGComponent","scaleCorrectors","addScaleCorrector","correctors","transformPropOrder","transformProps","isForcedMotionValue","layout","isMotionValue","translateAlias","sortTransformProps","buildTransform","transformKeys","enableHardwareAcceleration","allowTransformNone","transformIsDefault","transformTemplate","transformString","isCSSVariable","getValueAsType","alpha","sanitize","floatRegex","colorRegex","singleColorRegex","createUnitType","degrees","percent","px","vw","progressPercentage","int","numberValueTypes","buildHTMLStyles","latestValues","vars","hasTransform","hasTransformOrigin","transformIsNone","valueType","valueAsType","originX","originY","originZ","createHtmlRenderState","copyRawValuesOnly","useInitialMotionValues","useHTMLProps","htmlProps","animationProps","tapProps","panProps","inViewProps","validMotionProps","isValidMotionProp","shouldForward","loadExternalIsValidProp","isValidProp","filterProps","isDom","forwardMotionProps","filteredProps","calcOrigin","calcSVGTransformOrigin","dimensions","pxOriginX","pxOriginY","dashKeys","camelKeys","buildSVGPath","useDashCase","pathLength","pathSpacing","buildSVGAttrs","attrX","attrY","pathOffset","latest","isSVGTag","createSvgRenderState","useSVGProps","_isStatic","visualProps","rawStyles","createUseRender","elementProps","camelToDash","renderHTML","projection","camelCaseAttributes","renderSVG","renderState","_styleProp","scrapeMotionValuesFromProps","newValues","scrapeMotionValuesFromProps$1","targetKey","resolveVariantFromProps","definition","currentVelocity","isKeyframesTarget","isCustomValue","resolveFinalValueInKeyframes","resolveMotionValue","unwrappedValue","makeState","createRenderState","onMount","makeLatestValues","makeUseVisualState","make","scrapeMotionValues","motionValues","isControllingVariants$1","isVariantNode$1","isInitialAnimationBlocked","variantToSet","transitionEnd","transition","valueTarget","svgMotionConfig","htmlMotionConfig","createDomMotionConfig","AnimationType","addDomEvent","useDomEvent","useFocusGesture","whileFocus","animationState","isMouseEvent","isTouchEvent","filterPrimaryPointer","defaultPagePoint","pointFromTouch","pointType","pointFromMouse","extractEventInfo","wrapHandler","shouldFilterPrimaryPointer","supportsPointerEvents","supportsTouchEvents","supportsMouseEvents","mouseEventNames","touchEventNames","getPointerEventName","addPointerEvent","usePointerEvent","createLock","openLock","globalHorizontalLock","globalVerticalLock","getGlobalLock","drag","openHorizontal","openVertical","isDragActive","openGestureLock","createHoverEvent","useHoverGesture","onHoverStart","onHoverEnd","whileHover","isNodeOrChild","useUnmountEffect","combineFunctions","pipe","transformers","useTapGesture","onTap","onTapStart","onTapCancel","whileTap","hasPressListeners","isPressing","cancelPointerEndListeners","eventOptions","removePointerEndListener","checkPointerEnd","onPointerCancel","defaultEnvironment","warned","condition","observerCallbacks","fireObserverCallback","fireAllObserverCallbacks","initIntersectionObserver","lookupRoot","rootObservers","observeIntersection","rootInteresectionObserver","useViewport","whileInView","onViewportEnter","onViewportLeave","shouldObserve","useMissingIntersectionObserver","useIntersectionObserver","thresholdNames","rootMargin","intersectionCallback","isIntersecting","makeRenderlessComponent","hook","gestureAnimations","onExitComplete","shallowCompare","prevLength","isNumericalString","isZeroValueString","frameData","defaultTimestep","getCurrentTime","onNextFrame","createRenderStep","runNextFrame","toRun","toRunNextFrame","numToRun","isProcessing","flushNextFrame","toKeepAlive","keepAlive","addToCurrentFrame","maxElapsed","useDefaultElapsed","stepsOrder","steps","sync","process","startLoop","cancelSync","flushSync","processStep","stepId","processFrame","addUniqueItem","SubscriptionManager","numSubscriptions","velocityPerSecond","frameDuration","isFloat","MotionValue","eventManagers","passiveEffect","animation","motionValue","isColorString","testProp","splitColor","aName","bName","cName","clampRgbUnit","rgbUnit","rgba","alpha$1","parseHex","hsla","hue","saturation","lightness","colorToken","numberToken","analyseComplexValue","numColors","numNumbers","numbers","createTransformer","tokenised","numValues","convertNumbersToZero","getAnimatableNone","complex","maxDefaults","applyDefaultFilter","functionRegex","functions","defaultValueTypes","getDefaultValueType","defaultValueType","testValueType","auto","dimensionValueTypes","findDimensionValueType","valueTypes","findValueType","getCurrent","getVelocity","resolveVariant","setMotionValue","setTarget","checkTargetForNewValues","newValueKeys","numNewValues","targetValue","getOriginFromTransition","getOrigin","transitionOrigin","isWillChangeMotionValue","appearStoreId","handoffOptimizedAppearAnimation","MotionAppearAnimations","animationId","optimizedAppearDataId","optimizedAppearDataAttribute","secondsToMilliseconds","instantAnimationState","mirrorEasing","easing","reverseEasing","easeIn","easeOut","easeInOut","progress","hueToRgb","hslaToRgba","mixLinearColor","fromExpo","colorTypes","getColorType","asRGBA","mixColor","fromRGBA","toRGBA","blended","getMixer","mixComplex","mixArray","blendValue","fromThis","mixObject","originStats","targetStats","toFromDifference","mixNumber","detectMixerFactory","createMixers","ease","customMixer","mixers","mixerFactory","numMixers","mixer","easingFunction","isClamp","inputLength","interpolator","progressInRange","calcBezier","a1","a2","subdivisionPrecision","subdivisionMaxIterations","binarySubdivide","lowerBound","upperBound","mX1","mX2","currentX","currentT","cubicBezier","mY1","mY2","getTForX","aX","circIn","circOut","circInOut","backOut","backIn","backInOut","anticipate","easingLookup","easingDefinitionToFunction","isEasingArray","defaultEasing","defaultOffset","convertOffsetToTimes","keyframes","keyframeValues","easingFunctions","absoluteTimes","createInterpolator","safeMin","minDuration","maxDuration","minDamping","maxDamping","findSpring","bounce","mass","envelope","derivative","dampingRatio","undampedFreq","exponentialDecay","calcAngularFreq","initialGuess","approximateRoot","stiffness","rootIterations","durationKeys","physicsKeys","isSpringType","getSpringOptions","springOptions","derived","velocitySampleDuration","spring","restSpeed","restDelta","damping","isResolvedFromDuration","resolveSpring","zero","initialVelocity","createSpring","initialDelta","undampedAngularFreq","angularFreq","dampedAngularFreq","freqForT","prevT","isBelowVelocityThreshold","isBelowDisplacementThreshold","_t","decay","power","timeConstant","modifyTarget","amplitude","ideal","loopElapsed","elapsed","reverseElapsed","isForwardPlayback","hasRepeatDelayElapsed","framesync","passTimestamp","driver","repeatMax","repeatType","repeatDelay","autoplay","onPlay","onStop","onComplete","onRepeat","onUpdate","driverControls","repeatCount","computedDuration","isComplete","interpolateFromNumber","animator","complete","play","isWaapiSupportedEasing","supportedWaapiEasing","cubicBezierAsString","mapEasingToNativeEasing","animateStyle","valueName","sampleDelta","createAcceleratedAnimation","sampleAnimation","pregeneratedKeyframes","checkElapsed","createInstantAnimation","inertia","bounceStiffness","bounceDamping","currentAnimation","isOutOfBounds","findNearestBoundary","startAnimation","startSpring","heading","checkBoundary","underDampedSpring","criticallyDampedSpring","linearTween","keyframesTransition","defaultTransitions","getDefaultTransition","valueKey","isAnimatable","isTransitionDefined","when","_delay","delayChildren","staggerChildren","staggerDirection","isZero","getZeroUnit","potentialUnitType","getValueTransition","getKeyframes","isTargetAnimatable","featureTests","supports","acceleratedValues","createMotionValueAnimation","valueTransition","originKeyframe","targetKeyframe","isOriginAnimatable","animateVisualElement","animations","animateVariant","resolvedDefinition","animateTarget","getAnimation","getChildAnimations","forwardDelay","animateChildren","transitionOverride","willChange","animationTypeState","shouldBlockAnimation","appearId","maxStaggerDuration","generateStaggerDuration","sortByTreeOrder","protectedKeys","needsAnimating","shouldBlock","variantPriorityOrder","reversePriorityOrder","numAnimationTypes","animateList","createAnimationState","createState","isInitialRender","buildResolvedTypeValues","setAnimateFunction","makeAnimator","animateChanges","changedActiveType","removedKeys","encounteredKeys","removedVariantIndex","typeState","propIsVariant","activeDelta","isInherited","variantDidChange","checkVariantsDidChange","shouldAnimateType","definitionList","resolvedValues","prevResolvedValues","allKeys","markToAnimate","fallbackAnimation","fallbackTarget","shouldAnimate","setActive","createTypeState","safeToRemove","distance2D","xDelta","yDelta","PanSession","transformPagePoint","getPanInfo","isPanStarted","isDistancePastThreshold","onStart","transformPoint","onEnd","onSessionEnd","panInfo","initialInfo","onSessionStart","subtractPoint","lastDevicePoint","startDevicePoint","timeDelta","timestampedPoint","lastPoint","calcLength","isNear","maxDistance","calcAxisDelta","calcBoxDelta","calcRelativeAxis","calcRelativeBox","calcRelativeAxisPosition","calcRelativePosition","applyConstraints","elastic","calcRelativeAxisConstraints","calcRelativeConstraints","layoutBox","calcViewportAxisConstraints","layoutAxis","constraintsAxis","calcViewportConstraints","constraintsBox","sourceLength","rebaseAxisConstraints","constraints","relativeConstraints","defaultElastic","resolveDragElastic","dragElastic","resolveAxisElastic","minLabel","maxLabel","resolvePointElastic","createAxisDelta","createDelta","createAxis","createBox","eachAxis","convertBoundingBoxToBox","convertBoxToBoundingBox","transformBoxPoints","topLeft","bottomRight","isIdentityScale","hasScale","scaleX","scaleY","has2DTranslate","is2DTranslate","scalePoint","originPoint","distanceFromOrigin","scaled","applyPointDelta","boxScale","applyAxisDelta","applyBoxDelta","applyTreeDeltas","treeScale","isSharedTransition","treeLength","transformBox","snapToDefault","translateAxis","transformAxis","transforms","scaleKey","originKey","axisOrigin","xKeys","yKeys","measureViewportBox","measurePageBox","rootProjectionNode","viewportBox","elementDragControls","VisualElementDragControls","originEvent","snapToCursor","dragPropagation","onDragStart","measuredAxis","dragDirectionLock","onDirectionLock","getCurrentDirection","onDragEnd","_point","axisValue","dragConstraints","prevConstraints","onMeasureDragConstraints","constraintsElement","measuredConstraints","userConstraints","dragMomentum","dragTransition","dragSnapToOrigin","onDragTransitionEnd","momentumAnimations","dragKey","externalMotionValue","boxProgress","stopPointerListener","dragListener","measureDragConstraints","stopMeasureLayoutListener","stopResizeListener","stopLayoutUpdateListener","hasLayoutChanged","currentDirection","lockThreshold","useDrag","groupDragControls","dragControls","usePanGesture","onPan","onPanStart","onPanEnd","onPanSessionStart","hasPanEvents","panSession","cssVariableRegex","parseCSSVariable","getVariableValue","depth","resolveCSSVariables","positionalKeys","isPositionalKey","hasPositionalKey","setAndResetVelocity","isNumOrPxType","BoundingBoxDimension","getPosFromMatrix","matrix","getTranslateFromMatrix","_bbox","matrix3d","nonTranslationalTransformKeys","removeNonTranslationalTransform","removedTransforms","positionalValues","paddingLeft","paddingRight","paddingTop","paddingBottom","convertChangedValueTypes","changedKeys","originBbox","elementComputedStyle","targetBbox","checkAndConvertChangedValueTypes","targetPositionalKeys","removedTransformValues","hasAttemptedToRemoveTransformValues","changedValueTypeKeys","fromType","toType","numKeyframes","fromIndex","convertedTarget","unitConversion","parseDomVariant","prefersReducedMotion","hasReducedMotionListener","initPrefersReducedMotion","motionMediaQuery","setReducedMotionPreferences","updateMotionValuesFromProps","existingValue","latestValue","featureNames","numFeatures","propEventHandlers","VisualElement","initialMotionValues","valueIsTransform","removeOnChange","removeOnRenderRequest","renderedProps","ProjectionNodeConstructor","isEnabled","layoutScroll","canMutate","startAtParent","numVariantProps","closestVariantNode","valueFromInitial","DOMVisualElement","transformValues","HTMLVisualElement","defaultType","SVGVisualElement","createDomVisualElement","pixelsToPercent","pixels","correctBorderRadius","varToken","correctBoxShadow","projectionDelta","containsCSSVariables","cssVariables","shadow","xScale","yScale","averageScale","cssVariable","MeasureLayoutWithContext","componentDidMount","layoutGroup","switchLayoutGroup","defaultScaleCorrectors","didUpdate","setOptions","hasEverUpdated","getSnapshotBeforeUpdate","layoutDependency","willUpdate","promote","relegate","postRender","getStack","members","componentDidUpdate","isLead","componentWillUnmount","promoteContext","scheduleCheckAfterUnmount","deregister","MeasureLayout","applyTo","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","boxShadow","layoutFeatures","borders","numBorders","asNumber","mixValues","follow","lead","shouldCrossfadeOpacity","isOnlyMember","easeCrossfadeIn","easeCrossfadeOut","borderLabel","followRadius","getRadius","leadRadius","radiusName","compress","copyAxisInto","originAxis","copyBoxInto","originBox","removePointDelta","removeAxisDelta","sourceAxis","removeAxisTransforms","removeBoxTransforms","sourceBox","isAxisDeltaZero","isDeltaZero","boxEquals","NodeStack","prevLead","indexOfNode","member","preserveFollowOpacity","crossfade","buildProjectionTransform","latestTransform","xTranslate","yTranslate","rotate","rotateX","rotateY","elementScaleX","elementScaleY","compareByDepth","FlatTree","transformAxes","animationTarget","createProjectionNode","attachResizeListener","defaultParent","measureScroll","checkIsScrollRoot","resetTransform","elementId","propagateDirtyNodes","resolveTargetDelta","calcProjection","subscriptionManager","isLayoutDirty","cancelDelay","resizeUnblockUpdate","finishAnimation","hasRelativeTargetChanged","newLayout","layoutTransition","defaultLayoutTransition","onLayoutAnimationStart","onLayoutAnimationComplete","targetChanged","hasOnlyRelativeTargetChanged","animationOptions","resetRotation","shouldNotifyListeners","clearMeasurements","mountNodeEarly","resetTransformStyle","updateLayout","notifyLayoutUpdate","clearSnapshot","removeLeadSnapshots","prevLayout","phase","needsMeasurement","isResetRequested","hasProjection","transformTemplateValue","transformTemplateHasChanged","removeTransform","pageBox","roundBox","boxWithoutScroll","rootScroll","transformOnly","withTransforms","boxWithoutTransform","nodeBox","relativeParent","isProjectionDirty","isTransformDirty","isShared","canSkip","prevTreeScaleX","prevTreeScaleY","prevProjectionTransform","notifyAll","snapshotLatestValues","mixedValues","targetDelta","relativeLayout","isSharedLayoutAnimation","hasOpacityCrossfade","mixAxisDelta","mixBox","targetWithTransforms","shouldAnimatePositionOnly","xLength","yLength","needsReset","hasRotate","resetValues","emptyStyles","valuesToRender","correct","corrected","measuredLayout","animationType","axisSnapshot","layoutDelta","visualDelta","parentSnapshot","parentLayout","relativeSnapshot","mixAxis","searchNode","roundAxis","DocumentProjectionNode","HTMLProjectionNode","documentNode","featureBundle","motion","Layout","headerTitle","WebkitOverflowScrolling","exit","SvgAddressicon","SvgArchiveicon","SvgGlobe","SvgProfileicon","AccountMenuCard","AccountMenuGrid","Account","ProfileIcon","AddressIcon","GlobeIcon","ArchiveIcon","StrapiService","filterString","populate","sort","queryParams","strapi","useFetchContent","useSlideDrag","sliderRef","isDown","handleMouseDown","pageX","offsetLeft","handleMouseLeave","handleMouseUp","handleMouseMove","Brands","goLeft","goRight","brands","SliderButton","onMouseDown","onMouseLeave","onMouseUp","onMouseMove","scrollBehavior","brand","isRecord","canUseDOM","areOptionsEqual","optionsA","optionsB","optionsAKeys","optionsBKeys","breakpointsA","breakpointsB","valueA","valueB","sortAndMapPluginToOptions","arePluginsEqual","pluginsA","pluginsB","optionA","optionB","mathSign","deltaAbs","factorAbs","roundToTwoDecimals","arrayKeys","objectKeys","arrayLast","arrayLastIndex","arrayIsLastIndex","arrayFromNumber","startAt","objectsMergeDeep","objectA","objectB","mergedObjects","currentObject","areObjects","Alignment","viewSize","predefined","measure","EventStore","removeListener","legacyMediaQueryList","clear","Animations","documentVisibleHandler","fixedTimeStep","lastTimeStamp","accumulatedTime","destroy","stop","timeStamp","timeElapsed","Axis","contentDirection","isRightToLeft","cross","startEdge","getStartEdge","endEdge","getEndEdge","measureSize","nodeRect","Limit","reachedMin","reachedMax","reachedAny","constrain","removeOffset","Counter","loopEnd","withinLimit","DragHandler","rootNode","dragTracker","scrollBody","scrollTarget","percentOfView","dragFree","dragThreshold","skipSnaps","baseFriction","watchDrag","focusNodes","nonPassiveEvent","initEvents","dragEvents","goToNextThreshold","snapForceBoost","freeForceBoost","baseSpeed","isMoving","startScroll","startCross","pointerIsDown","preventClick","isMouse","emblaApi","downIfAllowed","down","up","addDragEvents","move","isFocusNode","nodeName","forceBoost","allowedForce","baseForce","isMouseEvt","lastScroll","lastCross","diffScroll","diffCross","rawForce","forceFactor","speed","friction","pointerDown","DragTracker","startEvent","lastEvent","readTime","readPoint","evtAxis","coord","pointerMove","expired","pointerUp","diffDrag","diffTime","NodeRects","offsetTop","PercentOfView","ResizeHandler","slides","watchResize","nodeRects","observeNodes","slideSizes","destroyed","readSize","defaultCallback","isContainer","slideIndex","lastSize","newSize","ScrollBody","offsetLocation","previousLocation","baseDuration","scrollVelocity","scrollDuration","scrollFriction","rawLocation","rawLocationPrevious","seek","displacement","isInstant","scrollDistance","settled","useBaseDuration","useDuration","useBaseFriction","useFriction","ScrollBounds","pullBackThreshold","edgeOffsetTolerance","frictionLimit","shouldConstrain","edge","diffToEdge","diffToTarget","toggleActive","ScrollContain","snapsAligned","containScroll","pixelTolerance","scrollBounds","snapsBounded","measureBounded","scrollContainLimit","findScrollContainLimit","snapsContained","measureContained","usePixelTolerance","snap","startSnap","endSnap","snapAligned","isLast","scrollBound","ScrollLimit","scrollSnaps","ScrollLooper","vectors","shouldLoop","loopDistance","ScrollProgress","ScrollSnaps","containerRect","slideRects","slidesToScroll","groupSlides","alignments","measureSizes","snaps","measureUnaligned","measureAligned","SlideRegistry","containSnaps","slideIndexes","slideRegistry","createSlideRegistry","groupedSlideIndexes","doNotContain","ScrollTarget","targetVector","minDistance","distances","findTargetSnap","ascDiffsToSnaps","shortcut","d1","d2","matchingTargets","byIndex","diffToSnap","byDistance","targetSnapDistance","reachedBound","snapDistance","ScrollTo","indexCurrent","indexPrevious","distanceDiff","indexDiff","targetIndex","SlideFocus","eventStore","watchFocus","focusListenerOptions","lastTabPressTime","registerTabPress","slide","Vector1D","normalizeInput","Translate","previousTarget","newTarget","SlideLooper","slideSizesWithGaps","ascItems","descItems","loopPoints","startPoints","endPoints","removeSlideSizes","indexes","slidesInGap","findSlideBounds","findLoopPoints","isEndEdge","slideBounds","altered","boundEdge","loopPoint","canLoop","otherIndexes","slideLocation","shiftLocation","SlidesHandler","watchSlides","SlidesInView","intersectionEntryMap","inViewCache","notInViewCache","intersectionObserver","createInViewList","inView","SlideSizes","readEdgeGap","withEdgeGap","startGap","measureStartGap","endGap","measureEndGap","measureWithGaps","slideRect","SlidesToScroll","groupByNumber","byNumber","groupSize","bySize","rectB","rectA","edgeA","edgeB","gapA","gapB","currentSize","previousSize","Engine","scrollAxis","inViewThreshold","dragHandler","scrollLooper","slideLooper","shouldSettle","withinBounds","hasSettled","interpolatedLocation","engine","startLocation","scrollProgress","slidesInView","slideFocus","EventHandler","getListeners","on","OptionsHandler","mergeOptions","optionsAtMedia","matchedMediaOptions","mediaOption","optionsMediaQueries","optionsList","mediaQueries","PluginsHandler","optionsHandler","activePlugins","EmblaCarousel","userOptions","userPlugins","pluginsHandler","mediaHandlers","reInit","reActivate","optionsBase","pluginList","pluginApis","storeElements","userContainer","userSlides","customSlides","createEngine","optionsWithoutLoop","activate","withOptions","withPlugins","selectedScrollSnap","deActivate","jump","scrollNext","scrollPrev","canScrollNext","canScrollPrev","scrollSnapList","previousScrollSnap","slidesNotInView","internalEngine","containerNode","slideNodes","useEmblaCarousel","storedOptions","storedPlugins","setEmblaApi","newEmblaApi","ArrowLeft","ArrowRight","Calendar","CheckSquare","FileQuestion","FileText","Hash","ListOrdered","Paperclip","Puzzle","Send","ToggleLeft","CarouselContext","useCarousel","Carousel","setApi","carouselRef","setCanScrollPrev","setCanScrollNext","onKeyDownCapture","CarouselContent","CarouselItem","CarouselPrevious","CarouselNext","normalizeDelay","getAutoplayRootNode","emblaRootNode","Autoplay","timerStartTime","autoplayActive","mouseIsOver","playOnDocumentVisible","emblaApiInstance","isDraggable","visibilityChange","mouseEnter","mouseLeave","stopAutoplay","startAutoplay","setTimer","clearTimer","documentIsHidden","jumpOverride","isPlaying","kill","timeUntilNext","currentDelay","timePastSinceStart","CarouselBanner","isMobile","setIsMobile","innerWidth","carouselContent","buttonText","external","ExtraWarrantyBanner","bannerData","SvgInsurance","SvgRightArrow","OurServices","userCountry","isYapikredi","InsuranceIcon","Card","Overview","SvgAddplusicon","SvgFiltericon","createStoreImpl","previousState","createStore","identity","useStore","createImpl","useBoundStore","filters","product","verifiedRes","unverifiedRes","FilterPill","ProductListHeader","fetchProducts","setFilters","setOpenFilterSheet","setOpenAddProductSheet","useProductStore","filterPills","mainCategory","category","subCategory","handleClearFilters","pill","FilterIcon","AddIcon","EmptyData","InfoEmptyIcon","ProductCard","verified","setIsCollapsed","isCollapsed","verifiedCardButtons","unverifiedCardButtons","timeColorVariants","toastInform","remainingWarrantyDay","categoryName","remainingWarrantyText","brandName","ProductSkeleton","DummyFileImage","DeleteDialog","triggerValue","DocumentItem","getUnverifiedProduct","selectedFile","setSelectedFile","onFileChange","file","FormData","handleUploadDocument","errorText","onDeleteFile","fileName","DeleteFileModalHook","handleToggle","handleDeleteDocument","DummyFileIcon","accept","SvgBeyazesyaicon","SvgDigericon","SvgElektrikliicon","SvgFotoicon","SvgKlimaicon","SvgLaptopicon","SvgOyunicon","SvgTelefonicon","SvgTvicon","SvgYaziciicon","categories","ProductIcon","productType","LaptopIcon","YazıcılarProjeksiyonIcon","TelefonTelefonAksesuarlarıIcon","TVGörüntüSistemleriIcon","BeyazEÅŸyaIcon","KlimaIcon","ElektrikliEvAletleriIcon","FotoKameraIcon","OyunKonsollarıIcon","DigerIcon","InputBox","toggleFocus","focusState","PriceInputPrice","onChangeUnit","valueUnit","formatNumberWithCommas","enteredValue","numericValue","CurrencySelect","inputMode","getDefaultExportFromCjs","inputmask$2","inputmask$1","hasRequiredInputmask","requireInputmask","inputmaskExports","inputmask","flow","funcs","isServer","getMaskOptions","mask","masks","withMask","maskInput","useHookFormMask","registerFn","restRegister","newRef","baseClone","circulars","errorToString","regExpToString","symbolToString","SYMBOL_REGEXP","printNumber","printSimpleValue","quoteStrings","printValue","mixed","originalValue","isCast","boolean","objectProto","baseHas","_baseHas","isArray_1","freeGlobal","_freeGlobal","freeSelf","_root","_Symbol","nativeObjectToString","symToStringTag","getRawTag","isOwn","unmasked","_getRawTag","objectToString","_objectToString","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","reIsDeepProp","reIsPlainProp","_isKey","isObject_1","asyncTag","funcTag","genTag","proxyTag","isFunction_1","coreJsData","_coreJsData","maskSrcKey","uid","isMasked","_isMasked","funcProto","funcToString","toSource","_toSource","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","_baseIsNative","getValue","_getValue","getNative","_getNative","nativeCreate","_nativeCreate","hashClear","_hashClear","hashDelete","_hashDelete","HASH_UNDEFINED","hashGet","_hashGet","hashHas","_hashHas","hashSet","_hashSet","_Hash","listCacheClear","_listCacheClear","eq","eq_1","assocIndexOf","_assocIndexOf","arrayProto","splice","listCacheDelete","_listCacheDelete","listCacheGet","_listCacheGet","listCacheHas","_listCacheHas","listCacheSet","_listCacheSet","ListCache","_ListCache","Map","_Map","mapCacheClear","_mapCacheClear","isKeyable","_isKeyable","getMapData","_getMapData","mapCacheDelete","_mapCacheDelete","mapCacheGet","_mapCacheGet","mapCacheHas","_mapCacheHas","mapCacheSet","_mapCacheSet","MapCache","_MapCache","FUNC_ERROR_TEXT","memoize","memoized","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","_memoizeCapped","rePropName","reEscapeChar","subString","_stringToPath","arrayMap","iteratee","_arrayMap","INFINITY","symbolProto","baseToString","_baseToString","toString_1","castPath","_castPath","argsTag","baseIsArguments","_baseIsArguments","isArguments","isArguments_1","MAX_SAFE_INTEGER","reIsUint","isIndex","_isIndex","isLength_1","toKey","_toKey","hasPath","hasFunc","_hasPath","has_1","isSchema","Condition","is","otherwise","check","strReg","ValidationError","errorOrErrors","runTests","endEarly","tests","nestedErrors","baseAssignValue","_baseAssignValue","createBaseFor","fromRight","keysFunc","_createBaseFor","baseFor","_baseFor","baseTimes","_baseTimes","stubFalse","stubFalse_1","freeExports","freeModule","moduleExports","Buffer","nativeIsBuffer","arrayTag","boolTag","dateTag","errorTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","_baseIsTypedArray","baseUnary","_baseUnary","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray_1","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","_arrayLikeKeys","isPrototype","Ctor","_isPrototype","overArg","_overArg","nativeKeys","_nativeKeys","baseKeys","_baseKeys","isArrayLike","isArrayLike_1","keys_1","baseForOwn","_baseForOwn","stackClear","_stackClear","stackDelete","_stackDelete","stackGet","_stackGet","stackHas","_stackHas","LARGE_ARRAY_SIZE","stackSet","pairs","_stackSet","Stack","_Stack","setCacheAdd","_setCacheAdd","setCacheHas","_setCacheHas","SetCache","_SetCache","arraySome","_arraySome","cacheHas","_cacheHas","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","bitmask","customizer","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","_equalArrays","Uint8Array","_Uint8Array","mapToArray","_mapToArray","setToArray","_setToArray","symbolValueOf","equalByTag","convert","stacked","_equalByTag","arrayPush","_arrayPush","baseGetAllKeys","symbolsFunc","_baseGetAllKeys","arrayFilter","resIndex","_arrayFilter","stubArray","stubArray_1","nativeGetSymbols","getSymbols","_getSymbols","getAllKeys","_getAllKeys","equalObjects","objProps","objLength","othProps","objStacked","skipCtor","objCtor","othCtor","_equalObjects","DataView","_DataView","_Promise","_Set","WeakMap","_WeakMap","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","_getTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","_baseIsEqualDeep","baseIsEqual","_baseIsEqual","baseIsMatch","matchData","noCustomizer","srcValue","_baseIsMatch","isStrictComparable","_isStrictComparable","getMatchData","_getMatchData","matchesStrictComparable","_matchesStrictComparable","baseMatches","_baseMatches","_baseGet","get_1","baseHasIn","_baseHasIn","hasIn","hasIn_1","baseMatchesProperty","_baseMatchesProperty","identity_1","baseProperty","_baseProperty","basePropertyDeep","_basePropertyDeep","property_1","baseIteratee","_baseIteratee","mapValues","mapValues_1","Cache","maxSize","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","MAX_CACHE_SIZE","pathCache","setCache","getCache","propertyExpr","normalizePath","safe","isQuoted","iter","isBracket","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","prefixes","Reference","createValidation","Ref","createError","overrides","nextParams","validOrError","getIn","lastPart","lastPartDebug","_part","ReferenceSet","removeItems","BaseSchema","spec","cloneDeep","combined","mergedSpec","conditions","resolvedSchema","formattedValue","formattedResult","initialTests","finalTests","maybeCb","isNullable","isExclusive","dep","enums","valids","invalids","strip","Mixed","isAbsent","BooleanSchema","rEmail","rUrl","rUUID","isTrimmed","objStringTag","StringSchema","strValue","excludeEmptyString","NumberSchema","less","more","_method","avail","isoReg","parseIsoDate","numericKeys","minutesOffset","struct","DateSchema","isoParse","cast","arrayReduce","accumulator","initAccum","_arrayReduce","basePropertyOf","_basePropertyOf","deburredLetters","deburrLetter","_deburrLetter","reLatin","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsCombo","reComboMark","deburr","deburr_1","reAsciiWord","asciiWords","_asciiWords","reHasUnicodeWord","hasUnicodeWord","_hasUnicodeWord","rsAstralRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","reUnicodeWord","unicodeWords","_unicodeWords","words","guard","words_1","reApos","createCompounder","_createCompounder","snakeCase","snakeCase_1","baseSlice","_baseSlice","castSlice","_castSlice","reHasUnicode","hasUnicode","_hasUnicode","asciiToArray","_asciiToArray","rsAstral","rsSymbol","reUnicode","unicodeToArray","_unicodeToArray","stringToArray","_stringToArray","createCaseFirst","methodName","strSymbols","chr","trailing","_createCaseFirst","upperFirst","upperFirst_1","capitalize_1","camelCase","camelCase_1","mapKeys","mapKeys_1","toposortModule","edges","toposort","uniqueNodes","cursor","sorted","visited","outgoingEdges","makeOutgoingEdges","nodesHash","makeNodesHash","visit","predecessors","nodeRep","outgoing","sortFields","excludedEdges","excludes","addNode","depPath","_err$path","sortByKeyOrder","unknown","known","defaultSort","ObjectSchema","_options$stripUnknown","intermediateValue","innerOptions","isChanged","exists","fieldSpec","recursive","nextFields","schemaOrRef","dft","additions","picked","fromGetter","newObj","noAllow","unknownKeys","allow","UnVerifiedProductDetailSheet","selectedProduct","sheetState","setSheetState","setProduct","validationSchema","yup","priceUnit","productPrice","nullable","typeError","warrantyYear","warrantyStartDate","yupResolver","unverifiedProductCategoryId","handleDeleteProduct","categoryId","log","bodyObj","registerWithMask","clipPath","warrantyEndDate","billingUrl","warrantyUrl","serviceUrl","UnverifiedProductsList","unverifiedProducts","selectedUnverifiedProduct","setSelectedUnverifiedProduct","openUnverifiedDetailSheet","setOpenUnverifiedDetailSheet","handleDetailModal","ActionButtons","productStore","handleArchive","individualCustomerProductId","SendIcon","DocumentSection","verifiedDocuments","unverifiedDocuments","documentUrl","ProductDetails","extendedWarranty","extendedWarrantyYear","policyDocumentUrl","ServiceButtons","buttons","VideoSection","videoData","videoURL","class","videoTitle","WarrantyDetails","DetailRow","merchantName","serialNumber","getProducts","getExtendedWarraantyForProduct","productId","VerifiedProductDetailSheet","setUnverifiedDocuments","setVerifiedDocuments","fetchProductDetails","fetchVerifiedDocuments","extendedWarrantyRes","warrantyFileUrl","serviceFileUrl","billingFileUrl","documents","updatedAt","VerifiedProductsList","verifiedProducts","selectedVerifiedProduct","setSelectedVerifiedProduct","openVerifiedDetailSheet","setOpenVerifiedDetailSheet","FilterSheet","openFilterSheet","stateSelectedFilters","setStateSelectedFilters","mainCategories","setMainCategories","setCategories","subCategories","setSubCategories","subCategoryBrands","setSubCategoryBrands","getMainCategories","handleChangeName","handleSelectMainCategory","mainCategoryId","handleSelectCategory","handleSelectSubCategory","subCategoryId","handleSelectBrand","mainCategoryOptions","categoryOptions","subCategoryOptions","subCategoryBrandOptions","applyFilters","filtersToApply","subCategoryBrand","PlaceHolderIcon","SelectableCard","logoUrl","FORM_STEPS","DEFAULT_FORM_VALUES","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","__objRest","exclude","a0","o0","s0","W1","a3","$1","throw","requestAnimationFrame","cancelAnimationFrame","f2","_lastHandleId","_lastImmediate","clearImmediate","z1","_strategy","U1","s3","m2","_2","d3","d0","currentScript","substr","lastIndexOf","credentials","E1","print","i1","printErr","thisProgram","P1","wasmBinary","I1","S1","N1","r1","u1","E2","P2","I2","HEAP8","Int8Array","HEAP16","Int16Array","HEAPU8","HEAPU16","Uint16Array","HEAP32","Int32Array","HEAPU32","Uint32Array","HEAPF32","Float32Array","HEAPF64","Float64Array","S2","A2","T2","_3","preRun","unshift","l1","A1","onAbort","WebAssembly","RuntimeError","F2","g3","D2","instantiate","y3","instantiateStreaming","R2","G1","J1","noExitRuntime","k2","TextDecoder","decode","subarray","fromCharCode","w3","O2","charCodeAt","T1","q1","v1","fromWireType","e1","F1","f1","B2","C3","K1","Y1","W2","$2","z2","m1","X1","_1","g1","L3","FinalizationRegistry","D1","w1","U2","Z1","M3","E3","Q1","P3","I3","k1","S3","b1","toWireType","j2","A3","T3","H2","N2","Q2","R1","e2","F3","t2","V2","n2","i2","r2","G2","readValueFromPointer","x3","D3","R3","k3","optional","J2","O3","B3","W3","$3","z3","U3","s2","j3","H3","N3","C1","q22","K2","onExit","u2","Y2","l2","USER","LOGNAME","PATH","PWD","HOME","LANG","G3","J3","crypto","getRandomValues","X2","InternalError","Z2","O1","BindingError","isAliasOf","isDeleted","deleteLater","getInheritedInstanceCount","getLiveInheritedInstances","flushPendingDeletes","setDelayFunction","UnboundTypeError","count_emval_handles","q3","write","L1","c2","r3","M1","ArrayBuffer","Uint8ClampedArray","e3","performance","getFullYear","getTimezoneOffset","padStart","ceil","byteLength","grow","Q3","Z3","X3","e0","i0","K3","Y3","n0","t0","r0","ga","monitorRunDependencies","instantiateWasm","locateFile","dynCall_iijj","dynCall_vijj","dynCall_jiii","dynCall_jii","t3","dynCall_vijjj","dynCall_jiji","dynCall_viijii","dynCall_iiiiij","dynCall_iiiiijj","dynCall_iiiiiijj","B1","n3","calledRun","onRuntimeInitialized","postRun","setStatus","preInit","u3","t1","_tryLoad","_loadWithBackup","_ModulePromise","_wasmURL","setWasmUrl","s1","_eventListeners","removeAllEventListeners","_initializeObserver","_observer","_observedCanvases","unfreeze","freeze","IntersectionObserver","unobserve","disconnect","resize","ResizeObserver","u0","g2","l3","n1","devicePixelRatio","j1","w2","Mode","Reverse","Bounce","ReverseBounce","Forward","b2","Fit","Contain","Cover","Fill","FitHeight","FitWidth","None","C2","VectorFloat","push_back","L2","M2","_canvas","_context","getContext","_eventManager","_frameManager","_renderConfig","renderConfig","freezeOnOffscreen","_wasmModule","_dotLottieCore","DotLottiePlayer","loopAnimation","useFrameInterpolation","marker","fit","createDefaultLayout","_loadFromData","_loadFromSrc","setBackgroundColor","_pointerUpMethod","_onPointerUp","_pointerDownMethod","_onPointerDown","_pointerMoveMethod","_onPointerMove","_pointerEnterMethod","_onPointerEnter","_pointerExitMethod","_onPointerLeave","_dispatchError","_fetchData","loadAnimationData","loadDotLottieData","currentFrame","_render","_animationFrameId","_draw","HTMLCanvasElement","autoResize","activeAnimationId","activeThemeId","manifest","manifestString","isFrozen","_isFrozen","_backgroundColor","isReady","isLoaded","isPaused","isStopped","loopCount","totalFrames","segmentDuration","setConfig","ImageData","createImageData","putImageData","requestFrame","setFrame","pause","setSpeed","setLoop","setUseFrameInterpolation","_cleanupStateMachineListeners","setSegment","setMode","setRenderConfig","loadAnimation","setMarker","markers","loadTheme","loadThemeData","setLayout","loadStateMachine","startStateMachine","_setupStateMachineListeners","stopStateMachine","_getPointerPosition","postPointerUpEvent","postPointerDownEvent","postPointerMoveEvent","postPointerEnterEvent","postPointerExitEvent","getStateMachineListeners","stateMachineFrameworkSetup","loadStateMachineData","animationSize","setStateMachineBooleanContext","setStateMachineNumericContext","setStateMachineStringContext","getLayerBoundingBox","getLayerBounds","c3","M22","Worker","createObjectURL","revokeObjectURL","H1","getWorker","_workers","assignAnimationToWorker","_animationWorkerMap","unassignAnimationFromWorker","postMessage","terminateWorker","terminate","v3","OffscreenCanvas","f3","random","q2","workerId","_worker","_workerManager","_wasmUrl","_sendMessage","_create","_handleWorkerEvent","instanceId","_updateDotLottieInstanceState","_dotLottieInstanceState","transferControlToOffscreen","_created","frame","themeId","themeData","stateMachineId","stateMachineData","DotLottieComponent","setCanvasRef","setContainerRef","lineHeight","useDotLottie","dotLottie","setDotLottie","dotLottieRef","configRef","canvasRef","hoverHandler","playOnHover","dotLottieInstance","startFrame","endFrame","useStableCallback","callbackContainer","DotLottieReact","dotLottieRefCallback","DotLottieComponent2","stableDotLottieRefCallback","Animation","createPortal","BrandStep","showMore","setShowMore","selectedBrand","selectedCustomBrand","onSelectBrand","onToggleShowMore","CategoryStep","selectedCategory","useDebounce","debouncedValue","setDebouncedValue","SelectProductName","setSearch","lastFetchedQuery","setLastFetchedQuery","formattedProducts","handleSearch","onChangeSearch","buttonLabel","selectedValue","shouldFilter","DetailsStep","AutoCompleteInput","ProductForm","setStep","CATEGORY","unverifiedBrands","setUnverifiedBrands","unverifiedCategories","setUnverifiedCategories","productName","purchaseDate","unverifiedCategoryId","customBrand","billFile","productSchema","watchCategory","watchBrand","watchCustomBrand","handleStepValidation","BRAND","DETAILS","unverifiedProductBrandId","warrantYear","renderSelectedInfo","cat","br","renderCategoryStep","renderBrandStep","brandId","renderDetailsStep","renderDoneStep","stepContent","DONE","isStepDisabled","handleSheetOpenChange","fetchUnverifiedBrands","fetchUnverifiedCategories","Products","openAddProductSheet","unVerifiedProducts","UnVerifiedProductsList","AddNewProductSheet","useUser","user","setUser","email","phone","address","identify","distinctId","get_distinct_id","aliasError","basicProps","$email","$name","firstName","lastName","$phone","gender","birth_date","birthDate","email_verified","emailVerified","phone_verified","phoneVerified","created_at","updated_at","membership_agreement","egaranti_user_id","cleanBasicProps","fromEntries","cleanCustomProps","people","PrivateRoute","Skeleton","rows","columns","rowIndex","colIndex","SvgEditicon","SvgTrashicon","getAddress","getAllAddress","deleteAddress","postAddress","emptyStringToNull","putAddress","addressId","SvgTrashmodalicon","DeleteAddressDialog","handleDeleteAddress","TrashModalIcon","BreadcrumbContext","Breadcrumb","Children","cloneElement","BreadcrumbItem","SvgInfo","InfoTooltip","InfoIcon","Address","addressList","setAddressList","selectedAddress","setSelectedAddress","openDeleteAddressDialog","setOpenDeleteAddressDialog","handleEditAddress","addressLine","TrashIcon","addressSchema","yup.object","yup.string","addressEditSchema","AddressDetail","setTitle","EditAddress","handleSave","NewAddress","ArchivedProducts","archivedProducts","setArchivedProducts","fetchArchivedProducts","handleUnarchive","millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","constructFromSymbol","constructFrom","argStr","addDays","_date","getDefaultOptions","startOfWeek","weekStartsOn","startOfISOWeek","getISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTimezoneOffsetInMilliseconds","utcDate","normalizeDates","dates","normalize","startOfDay","differenceInCalendarDays","laterDate","earlierDate","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","startOfISOWeekYear","fourthOfJanuary","startOfYear","date_","formatDistanceLocale","formatDistance","tokenValue","buildFormatLongFn","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","buildLocalizeFn","valuesArray","defaultWidth","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","rem100","localize","quarter","buildMatchFn","matchPattern","matchResult","matchedString","parsePatterns","findKey","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","enUS","getDayOfYear","getISOWeek","getWeekYear","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","fractionalSeconds","dayPeriodEnum","signedWeekYear","twoDigitYear","isoWeekYear","isoWeek","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","delimiter","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","_message","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","defaultLocale","_h","_g","originalDate","firstCharacter","longFormatter","cleanEscapedString","formatterOptions","getInternalDefaultOptions","getISODay","transpose","isConstructor","TIMEZONE_UNIT_PRIORITY","Setter","__publicField","_utcDate","ValueSetter","validateValue","subPriority","DateTimezoneSetter","Parser","dateString","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","YearParser","valueCallback","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","setWeek","LocalWeekParser","setISOWeek","ISOWeekParser","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","DayOfYearParser","setDay","currentDay","dayIndex","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","setISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","dateStr","referenceDate","subFnOptions","setters","usedTokens","incompatibleTokens","incompatibleToken","usedToken","uniquePrioritySetters","setterArray","EditSheet","getProfile","parseDateString","parsedDate","Profile","openEditSheet","setOpenEditSheet","openConfirmEmailDialog","setOpenConfirmEmailDialog","openConfirmPhoneDialog","setOpenConfirmPhoneDialog","setFormData","passwordConfirmation","SvgEnglish","SvgRussia","SvgTurkey","LanguageSwitcher","hoverMenusState","setHoverMenusState","changeLanguage","TurkishFlag","EnglishFlag","RussianFlag","LanguagePage","LanguageSwitcherForPage","accountRoutes","AddressPage","AddresDetail","AddAddress","_interopDefault","ex","_inheritsLoose","withSideEffect","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","getDisplayName","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","reactFastCompare","propIsEnumerable","shouldUseNative","test1","test2","order2","test3","objectAssign","ATTRIBUTE_NAMES","BODY","HTML","TITLE","TAG_NAMES","BASE","HEAD","LINK","META","NOSCRIPT","SCRIPT","STYLE","TAG_PROPERTIES","CHARSET","CSS_TEXT","HREF","HTTPEQUIV","INNER_HTML","ITEM_PROP","PROPERTY","REL","SRC","TARGET","REACT_TAG_MAP","accesskey","charset","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","DEFAULT_TITLE","DEFER","ENCODE_SPECIAL_CHARACTERS","ON_CHANGE_CLIENT_STATE","TITLE_TEMPLATE","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","attributeKey","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","tagUnion","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","rafPolyfill","clock","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","handleClientStateChange","commitTagChanges","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","getElementsByTagName","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","tags","headElement","querySelector","tagNodes","indexToDelete","innerHTML","styleSheet","createTextNode","existingTag","isEqualNode","generateElementAttributesAsString","generateTitleAsString","attributeString","flattenedTitle","generateTagsAsString","attributeHtml","tagContent","isSelfClosing","convertElementAttributestoReactProps","initProps","convertReactPropstoHtmlAttributes","initAttributes","generateTitleAsReactComponent","_initProps","generateTagsAsReactComponent","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","getMethodsForTag","toComponent","_ref$title","noscript","Helmet","_class","_React$Component","HelmetWrapper","shouldComponentUpdate","nextProps","isEqual","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","defaultTitle","titleTemplate","peek","rewind","mappedState","NullComponent","HelmetSideEffects","HelmetExport","renderStatic","SvgArcelik","SvgAygaz","SvgBraun","SvgCasio","SvgFakir","SvgLamy","BrandsSection","AygazLogo","FakirLogo","BraunLogo","CasioLogo","LamyLogo","ArcelikLogo","FeaturesSection","triggerLoginModal","feature","SvgEgarantilogowhite","LoginForm","loginMethod","LoginMethodSwitcher","setLoginMethod","LoginCard","bannerTexture","bannerImg1","LoginHeroDesktop","background","EgarantiLogoWhite","LoginHeroMobile","LoginModal","Bt","At","kt","gt","Et","vt","St","Pt","ht","U.useRef","U.useEffect","Ot","wt","Gt","xt","Tt","S.useState","S.useMemo","S.useCallback","S.useEffect","jt","n.createContext","Lt","n.forwardRef","Nt","lt","ut","ft","nt","n.useState","n.useCallback","n.useMemo","n.useRef","n.useImperativeHandle","n.useEffect","mt","Dt","Ht","et","Wt","pt","Rt","yt","ot","rt","st","ct","It","Mt","n.createElement","tt","Ct","n.Fragment","OtpVerifyDialog","onVerify","setCode","remainingTime","setRemainingTime","isResendDisabled","setIsResendDisabled","interval","setInterval","clearInterval","OTPInput","containerClassName","slots","slot","ServicesSection","Login","openOtpVerify","onOpenOtpVerify","otpData","setOtpData","loginFormSchemaPhone","loginFormSchemaEmail","handleLoginPhoneMethod","handleLoginEmailMethod","otpCode","LoginJwt","redirect","getParamsAsObject","paramsObj","customizations","AuthHeader","LoginPageBannerImage","LoginPageBannerImageRu","DialCodes","Register","setOpenOtpVerify","registerFormSchema","countryValue","regionValue","handleOtpVerification","getIP","ForgotPasswordMail","isSend","setIsSend","emailValidationSchema","ForgotPasswordVerify","updatePasswordSchema","confirmPassword","VerifyMail","showSuccess","setShowSuccess","VerifyClient","setFormState","repeatpassword","formErrors","setFormErrors","terms","terms2","inner","VerifyPhone","VerifyPhoneDirect","VerifyTrendyol","codeSent","handleSendCode","Step1","Step2","clientIp","setClientIp","handleResendCode","authRoutes","VerifyOnboardMail","getClaims","createClaim","getServiceTemplates","formTitle","merchantId","getUserProducts","ClaimDetailSheet","claimId","claim","setClaim","renderClaimInfo","demandData","spareParts","useClaimsStore","templates","formType","products","Claims","claims","fetchClaims","selectedClaimId","setSelectedClaimId","isDetailSheetOpen","setIsDetailSheetOpen","handleCreateClaim","handleViewClaim","buttonAction","FileQuestionIcon","BaseFieldRenderer","touched","renderLabel","renderError","CheckboxFieldRenderer","DateFieldRenderer","EmployeeFieldRenderer","employees","employee","FileFieldRenderer","NumberFieldRenderer","RadioFieldRenderer","optionValue","optionLabel","SelectFieldRenderer","SparePartFieldRenderer","partName","TextAreaRenderer","TextFieldRenderer","FieldRegistry","fieldRegistry","baseFieldConfig","CalendarIcon","PuzzleIcon","DynamicForm","isEditing","customRenderers","validationRules","submitButtonProps","setErrors","setTouched","fieldErrors","errs","customError","newErrors","hasErrors","visibleFields","showIf","renderFormField","isFieldTouched","registeredField","ClaimCreate","formRef","userProducts","productFilters","fetchUserProducts","handlePageChange","setSelectedProduct","setSelectedFormType","selectedTemplate","submitClaim","resetForm","goToStep","initFromUrlParams","handleBack","newParams","handleProductSelect","handleFormTypeSelect","stepNumber","claimsRoutesWithLayout","FilePreview","fileUrl","back","plugImage","NotFound","publicRoutes","HomePageBanner","MyServices","Carrousel","externalProductName","offerPrice","warrantyExpireDate","unverifiedProductName","externalPolicyNo","rel","ExtendedWarrantyModal","ThiefIcon","SvgPhone","Opportunities","isSent","setIsSent","buttonTitle","svg","PhoneIcon","InsuranceOption","comingSoon","PhoneInsurances","insuranceOptions","Icon1","Icon2","Icon3","Infinity","Services","PaperIcon","GetExtendedWarranty","Image","Stepper","GreenCheck","BlackDot","fillOpacity","PhonePhoto","GetExtendedWarrantyStep1","setProducts","pagination","setPagination","fetchProductsForPhoneInsurance","tabIndex","RecordGif","ImeiInfoDialog","GetExtendedWarrantyStep2","packages","setPackages","selectedPackage","setSelectedPackage","newProductName","setNewProductName","imei","setImei","setTc","getOffers","unverifiedProductId","offers","behavior","handleImeiChange","newProductNameText","PackageCard","isValidSync","offerName","extendedWarrantyDate","AddAddressDialog","cities","setCities","districts","setDistricts","cityId","districtId","postCode","getAllCities","getDistricts","onSelectCity","CreditCardForm","actionText","isCvcRequired","SvgMasterCard","SvgTroy","SvgVisa","PaymentService","paymentId","paymentApi","MASTER_CARD","MasterCardIcon","VISA","VisaIcon","TROY","TroyIcon","cardHolderName","cardNumber","expireDate","cvc","storedCardSchema","selectedStoredCard","GetExtendedWarrantyStep3","onOpenAddressDialog","setOpenAddressDialog","setAddress","storedCards","setStoredCards","payWithStoredCard","setPayWithStoredCard","storeCardAfterSuccessPayment","cardAlias","currency","isThreeDS","card","cardUserKey","cardToken","expireYear","expireMonth","price","quantity","additionalParameters","externalProductId","identityNumber","paymentService","postCheckout","htmlContent","atob","getStoredCards","onChangePayWithStoredCard","AddressSelectSection","SelectStoredCardSection","Summary","lastFourDigits","cardAssociation","StatusPage","payment","setPayment","getPayment","paymentResultStatus","paidPrice","serviceRoutesWithLayout","serviceRoutesWithoutLayout","AppRoutes","App","track_pageview","persistence","intervalMS","swUrl","installing","resp","getElementById","StrictMode"],"sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js","../../node_modules/tslib/tslib.es6.mjs","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/@radix-ui/react-context/dist/index.mjs","../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../node_modules/@radix-ui/react-slot/dist/index.mjs","../../node_modules/@radix-ui/react-collection/dist/index.mjs","../../node_modules/@radix-ui/primitive/dist/index.mjs","../../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../node_modules/@radix-ui/react-presence/dist/index.mjs","../../node_modules/@radix-ui/react-id/dist/index.mjs","../../node_modules/@radix-ui/react-collapsible/dist/index.mjs","../../node_modules/@radix-ui/react-direction/dist/index.mjs","../../node_modules/@radix-ui/react-accordion/dist/index.mjs","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/defaultAttributes.js","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/shared/src/utils.js","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/createLucideIcon.js","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/icons/check.js","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/icons/chevron-down.js","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/icons/chevron-right.js","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/icons/circle.js","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/icons/eye-off.js","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/icons/eye.js","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/icons/search.js","../../node_modules/@egaranti/components/node_modules/lucide-react/dist/esm/icons/x.js","../../node_modules/@egaranti/components/node_modules/clsx/dist/clsx.mjs","../../node_modules/@egaranti/components/node_modules/tailwind-merge/dist/bundle-mjs.mjs","../../node_modules/@egaranti/components/dist/esm/utils/index.js","../../node_modules/@egaranti/components/dist/esm/Accordion.js","../../node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","../../node_modules/class-variance-authority/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/Button.js","../../node_modules/@egaranti/components/node_modules/react-day-picker/dist/index.esm.js","../../node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../node_modules/@radix-ui/react-use-size/dist/index.mjs","../../node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/CheckBox.js","../../node_modules/cmdk/dist/chunk-XJATAMEX.mjs","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/cmdk/node_modules/@radix-ui/primitive/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-compose-refs/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-context/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-use-layout-effect/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-id/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-use-callback-ref/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-use-escape-keydown/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-focus-scope/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-portal/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-presence/dist/index.module.js","../../node_modules/cmdk/node_modules/@radix-ui/react-focus-guards/dist/index.module.js","../../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../../node_modules/use-callback-ref/dist/es2015/assignRef.js","../../node_modules/use-callback-ref/dist/es2015/useRef.js","../../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../../node_modules/use-sidecar/dist/es2015/medium.js","../../node_modules/use-sidecar/dist/es2015/exports.js","../../node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/medium.js","../../node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/UI.js","../../node_modules/get-nonce/dist/es2015/index.js","../../node_modules/react-style-singleton/dist/es2015/singleton.js","../../node_modules/react-style-singleton/dist/es2015/hook.js","../../node_modules/react-style-singleton/dist/es2015/component.js","../../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../../node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../../node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../../node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../../node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/sidecar.js","../../node_modules/cmdk/node_modules/react-remove-scroll/dist/es2015/Combination.js","../../node_modules/aria-hidden/dist/es2015/index.js","../../node_modules/cmdk/node_modules/@radix-ui/react-dialog/dist/index.module.js","../../node_modules/cmdk/dist/index.mjs","../../node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../node_modules/@radix-ui/react-focus-scope/dist/index.mjs","../../node_modules/@radix-ui/react-portal/dist/index.mjs","../../node_modules/@radix-ui/react-focus-guards/dist/index.mjs","../../node_modules/react-remove-scroll/dist/es2015/medium.js","../../node_modules/react-remove-scroll/dist/es2015/UI.js","../../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../../node_modules/react-remove-scroll/dist/es2015/Combination.js","../../node_modules/@radix-ui/react-dialog/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/Dialog.js","../../node_modules/@egaranti/components/dist/esm/Command.js","../../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/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../../node_modules/@radix-ui/react-arrow/dist/index.mjs","../../node_modules/@radix-ui/react-popper/dist/index.mjs","../../node_modules/@radix-ui/react-popover/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/Popover.js","../../node_modules/@radix-ui/react-alert-dialog/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/DialogAlert.js","../../node_modules/react-hook-form/dist/index.esm.mjs","../../node_modules/@radix-ui/react-label/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/Label.js","../../node_modules/@egaranti/components/dist/esm/Form.js","../../node_modules/@egaranti/components/dist/esm/Input.js","../../node_modules/@egaranti/components/dist/esm/PasswordInput.js","../../node_modules/@egaranti/components/dist/esm/Tag.js","../../node_modules/@egaranti/components/dist/esm/Pagination.js","../../node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/RadioGroup.js","../../node_modules/@radix-ui/number/dist/index.mjs","../../node_modules/@radix-ui/react-visually-hidden/dist/index.mjs","../../node_modules/@radix-ui/react-select/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/Select.js","../../node_modules/@egaranti/components/dist/esm/Sheet.js","../../node_modules/@radix-ui/react-switch/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/Switch.js","../../node_modules/@egaranti/components/dist/esm/Table.js","../../node_modules/@egaranti/components/dist/esm/Textarea.js","../../node_modules/@radix-ui/react-tooltip/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/Tooltip.js","../../node_modules/@radix-ui/react-toast/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/toast.js","../../node_modules/@egaranti/components/dist/esm/use-toast.js","../../node_modules/@egaranti/components/dist/esm/toaster.js","../../node_modules/vaul/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/Drawer.js","../../node_modules/libphonenumber-js/metadata.min.json.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/classnames/index.js","../../node_modules/input-format/modules/edit.js","../../node_modules/input-format/modules/parse.js","../../node_modules/input-format/modules/helpers.js","../../node_modules/input-format/modules/closeBraces.js","../../node_modules/input-format/modules/templateFormatter.js","../../node_modules/input-format/modules/format.js","../../node_modules/input-format/modules/dom.js","../../node_modules/input-format/modules/inputControl.js","../../node_modules/input-format/modules/react/useInput.js","../../node_modules/input-format/modules/react/Input.js","../../node_modules/libphonenumber-js/es6/ParseError.js","../../node_modules/libphonenumber-js/es6/constants.js","../../node_modules/libphonenumber-js/es6/tools/semver-compare.js","../../node_modules/libphonenumber-js/es6/helpers/isObject.js","../../node_modules/libphonenumber-js/es6/metadata.js","../../node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","../../node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","../../node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","../../node_modules/libphonenumber-js/es6/helpers/parseDigits.js","../../node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","../../node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","../../node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","../../node_modules/libphonenumber-js/es6/isPossible.js","../../node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","../../node_modules/libphonenumber-js/es6/helpers/getNumberType.js","../../node_modules/libphonenumber-js/es6/isValid.js","../../node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","../../node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","../../node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","../../node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","../../node_modules/libphonenumber-js/es6/helpers/RFC3966.js","../../node_modules/libphonenumber-js/es6/format.js","../../node_modules/libphonenumber-js/es6/PhoneNumber.js","../../node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","../../node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","../../node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","../../node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","../../node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","../../node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","../../node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","../../node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","../../node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","../../node_modules/libphonenumber-js/es6/parse.js","../../node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","../../node_modules/libphonenumber-js/es6/normalizeArguments.js","../../node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","../../node_modules/libphonenumber-js/es6/parsePhoneNumber.js","../../node_modules/libphonenumber-js/es6/AsYouTypeState.js","../../node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js","../../node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js","../../node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternParser.js","../../node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternMatcher.js","../../node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js","../../node_modules/libphonenumber-js/es6/AsYouTypeParser.js","../../node_modules/libphonenumber-js/es6/AsYouType.js","../../node_modules/libphonenumber-js/es6/getCountries.js","../../node_modules/libphonenumber-js/es6/formatIncompletePhoneNumber.js","../../node_modules/react-phone-number-input/modules/helpers/inputValuePrefix.js","../../node_modules/react-phone-number-input/modules/helpers/parsePhoneNumberCharacter.js","../../node_modules/react-phone-number-input/modules/useInputKeyDownHandler.js","../../node_modules/react-phone-number-input/modules/InputSmart.js","../../node_modules/react-phone-number-input/modules/InputBasic.js","../../node_modules/country-flag-icons/modules/unicode.js","../../node_modules/react-phone-number-input/modules/CountrySelect.js","../../node_modules/react-phone-number-input/modules/Flag.js","../../node_modules/react-phone-number-input/modules/InternationalIcon.js","../../node_modules/react-phone-number-input/modules/helpers/isE164Number.js","../../node_modules/react-phone-number-input/modules/helpers/countries.js","../../node_modules/react-phone-number-input/modules/CountryIcon.js","../../node_modules/react-phone-number-input/modules/useExternalRef.js","../../node_modules/react-phone-number-input/modules/PropTypes.js","../../node_modules/react-phone-number-input/modules/helpers/getInternationalPhoneNumberPrefix.js","../../node_modules/react-phone-number-input/modules/helpers/phoneInputHelpers.js","../../node_modules/react-phone-number-input/modules/helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js","../../node_modules/react-phone-number-input/modules/PhoneInputWithCountry.js","../../node_modules/react-phone-number-input/locale/en.json.js","../../node_modules/react-phone-number-input/modules/PhoneInputWithCountryDefault.js","../../node_modules/react-phone-number-input/min/index.js","../../node_modules/country-flag-icons/modules/react/3x2/index.js","../../node_modules/@egaranti/components/dist/esm/PhoneInput.js","../../node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/ScrollArea.js","../../node_modules/@radix-ui/react-menu/dist/index.mjs","../../node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","../../node_modules/@egaranti/components/dist/esm/DropdownMenu.js","../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../node_modules/react-i18next/dist/es/utils.js","../../node_modules/react-i18next/dist/es/unescape.js","../../node_modules/react-i18next/dist/es/defaults.js","../../node_modules/react-i18next/dist/es/i18nInstance.js","../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../node_modules/react-i18next/dist/es/initReactI18next.js","../../node_modules/react-i18next/dist/es/context.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../node_modules/react-i18next/dist/es/useTranslation.js","../../node_modules/@remix-run/router/dist/router.js","../../node_modules/react-router/dist/index.js","../../node_modules/react-router-dom/dist/index.js","../../node_modules/mixpanel-browser/dist/mixpanel.module.js","../../node_modules/moment/moment.js","../../node_modules/moment/locale/en-gb.js","../../node_modules/moment/locale/ru.js","../../node_modules/moment/locale/tr.js","../../../../../../../@vite-plugin-pwa/virtual:pwa-register/react","../../src/lib/api/countryDetector.tsx","../../src/lib/utils/components/ScrollToTop.tsx","../../src/components/common/Footer/index.jsx","../../src/assets/images/egarantilogo.png","../../src/assets/svgs/bellicon.svg","../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/inherits.js","../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/toArray.js","../../node_modules/i18next/dist/esm/i18next.js","../../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../../node_modules/i18next-locize-backend/esm/utils.js","../../node_modules/i18next-locize-backend/esm/request.js","../../node_modules/i18next-locize-backend/esm/index.js","../../node_modules/i18next-subliminal/dist/esm/encoder.js","../../node_modules/i18next-subliminal/dist/esm/postProcessor.js","../../node_modules/locize/dist/esm/vars.js","../../node_modules/locize/dist/esm/ui/stylesheet.js","../../node_modules/locize/dist/esm/api/postMessage.js","../../node_modules/locize/dist/esm/api/handleEditKey.js","../../node_modules/locize/dist/esm/api/handleCommitKey.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../node_modules/locize/dist/esm/api/handleCommitKeys.js","../../node_modules/locize/dist/esm/api/handleConfirmInitialized.js","../../node_modules/locize/dist/esm/uninstrumentedStore.js","../../node_modules/locize/dist/esm/ui/utils.js","../../node_modules/locize/dist/esm/utils.js","../../node_modules/locize/dist/esm/ui/mouseDistance.js","../../node_modules/locize/dist/esm/ui/elements/icons.js","../../node_modules/locize/dist/esm/ui/elements/popup.js","../../node_modules/locize/dist/esm/api/handleRequestPopupChanges.js","../../node_modules/locize/dist/esm/api/handleRequestResourceBundle.js","../../node_modules/locize/dist/esm/api/handleSelectedKeys.js","../../node_modules/locize/dist/esm/api/handleIsLocizeEnabled.js","../../node_modules/locize/dist/esm/api/handleTurnOn.js","../../node_modules/locize/dist/esm/api/handleTurnOff.js","../../node_modules/locize/dist/esm/ui/elements/ribbonBox.js","../../node_modules/locize/dist/esm/ui/highlightNode.js","../../node_modules/locize/dist/esm/store.js","../../node_modules/locize/dist/esm/shims/uniqueID.js","../../node_modules/locize/dist/esm/parser.js","../../node_modules/locize/dist/esm/observer.js","../../node_modules/locize/dist/esm/ui/popup.js","../../node_modules/locize/dist/esm/process.js","../../node_modules/locize/dist/esm/clickHandler.js","../../node_modules/locize/dist/esm/processLegacy.js","../../node_modules/locize/dist/esm/locizePlugin.js","../../node_modules/locize/dist/esm/startStandalone.js","../../src/i18n/index.js","../../src/lib/api/requestInterceptor.js","../../node_modules/clsx/dist/clsx.m.js","../../node_modules/tailwind-merge/dist/lib/tw-join.mjs","../../node_modules/tailwind-merge/dist/lib/class-utils.mjs","../../node_modules/tailwind-merge/dist/lib/lru-cache.mjs","../../node_modules/tailwind-merge/dist/lib/modifier-utils.mjs","../../node_modules/tailwind-merge/dist/lib/config-utils.mjs","../../node_modules/tailwind-merge/dist/lib/merge-classlist.mjs","../../node_modules/tailwind-merge/dist/lib/create-tailwind-merge.mjs","../../node_modules/tailwind-merge/dist/lib/from-theme.mjs","../../node_modules/tailwind-merge/dist/lib/validators.mjs","../../node_modules/tailwind-merge/dist/lib/default-config.mjs","../../node_modules/tailwind-merge/dist/lib/tw-merge.mjs","../../src/lib/utils/index.tsx","../../src/lib/utils/components/UserAgreementModal.jsx","../../src/lib/api/userAgreementHandler.jsx","../../src/lib/api/responseInterceptor.js","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/utils.js","../../node_modules/axios/lib/helpers/buildURL.js","../../node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/axios/lib/helpers/normalizeHeaderName.js","../../node_modules/axios/lib/core/AxiosError.js","../../node_modules/axios/lib/defaults/transitional.js","../../node_modules/axios/lib/helpers/toFormData.js","../../node_modules/axios/lib/core/settle.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/helpers/null.js","../../node_modules/axios/lib/defaults/index.js","../../node_modules/axios/lib/core/transformData.js","../../node_modules/axios/lib/cancel/isCancel.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/core/mergeConfig.js","../../node_modules/axios/lib/env/data.js","../../node_modules/axios/lib/helpers/validator.js","../../node_modules/axios/lib/core/Axios.js","../../node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/axios/lib/helpers/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/axios/lib/axios.js","../../node_modules/axios/index.js","../../src/lib/api/axios.jsx","../../src/assets/svgs/infoemptyicon.svg","../../src/components/common/Loading/index.jsx","../../src/lib/utils/hooks/useOnClickOutside.jsx","../../src/assets/svgs/xicon.svg","../../node_modules/moment/dist/moment.js","../../src/components/Notifications/NotificationItem.jsx","../../src/components/Notifications/NotificationModal.jsx","../../src/components/common/PageHeader/index.jsx","../../src/assets/svgs/accounticon.svg","../../src/assets/svgs/homeicon.svg","../../src/assets/svgs/layout-grid.svg","../../src/assets/svgs/verifiedicon.svg","../../src/components/common/BottomNav/index.jsx","../../src/assets/svgs/logoutmodalicon.svg","../../src/components/Auth/LogoutDialog.jsx","../../src/assets/svgs/egarantilogo.svg","../../src/assets/svgs/logouticon.svg","../../src/assets/svgs/sub-menu-icon.svg","../../src/lib/utils/hooks/useMediaQuery.jsx","../../src/components/common/SideNav/index.jsx","../../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../../node_modules/framer-motion/dist/es/projection/node/state.mjs","../../node_modules/framer-motion/dist/es/projection/node/id.mjs","../../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../../node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","../../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../../node_modules/framer-motion/dist/es/motion/index.mjs","../../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../../node_modules/framer-motion/dist/es/utils/clamp.mjs","../../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../../node_modules/framer-motion/dist/es/value/types/utils.mjs","../../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../../node_modules/framer-motion/dist/es/render/utils/types.mjs","../../node_modules/framer-motion/dist/es/events/use-dom-event.mjs","../../node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","../../node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","../../node_modules/framer-motion/dist/es/events/event-info.mjs","../../node_modules/framer-motion/dist/es/events/utils.mjs","../../node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","../../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../../node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","../../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../../node_modules/framer-motion/dist/es/utils/pipe.mjs","../../node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","../../node_modules/framer-motion/dist/es/utils/process.mjs","../../node_modules/framer-motion/dist/es/utils/warn-once.mjs","../../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../../node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","../../node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","../../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../../node_modules/framer-motion/dist/es/frameloop/data.mjs","../../node_modules/framer-motion/dist/es/frameloop/on-next-frame.mjs","../../node_modules/framer-motion/dist/es/frameloop/create-render-step.mjs","../../node_modules/framer-motion/dist/es/frameloop/index.mjs","../../node_modules/framer-motion/dist/es/utils/array.mjs","../../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../../node_modules/framer-motion/dist/es/value/index.mjs","../../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../../node_modules/framer-motion/dist/es/animation/optimized-appear/store-id.mjs","../../node_modules/framer-motion/dist/es/animation/optimized-appear/handoff.mjs","../../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../../node_modules/hey-listen/dist/hey-listen.es.js","../../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../../node_modules/framer-motion/dist/es/easing/ease.mjs","../../node_modules/framer-motion/dist/es/utils/mix.mjs","../../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../../node_modules/framer-motion/dist/es/utils/mix-color.mjs","../../node_modules/framer-motion/dist/es/utils/mix-complex.mjs","../../node_modules/framer-motion/dist/es/utils/progress.mjs","../../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../../node_modules/framer-motion/dist/es/utils/noop.mjs","../../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../../node_modules/framer-motion/dist/es/easing/circ.mjs","../../node_modules/framer-motion/dist/es/easing/back.mjs","../../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../../node_modules/framer-motion/dist/es/animation/utils/easing.mjs","../../node_modules/framer-motion/dist/es/animation/legacy-popmotion/keyframes.mjs","../../node_modules/framer-motion/dist/es/animation/legacy-popmotion/find-spring.mjs","../../node_modules/framer-motion/dist/es/animation/legacy-popmotion/spring.mjs","../../node_modules/framer-motion/dist/es/animation/legacy-popmotion/decay.mjs","../../node_modules/framer-motion/dist/es/animation/legacy-popmotion/index.mjs","../../node_modules/framer-motion/dist/es/animation/waapi/easing.mjs","../../node_modules/framer-motion/dist/es/animation/waapi/index.mjs","../../node_modules/framer-motion/dist/es/animation/waapi/create-accelerated-animation.mjs","../../node_modules/framer-motion/dist/es/utils/delay.mjs","../../node_modules/framer-motion/dist/es/animation/create-instant-animation.mjs","../../node_modules/framer-motion/dist/es/animation/legacy-popmotion/inertia.mjs","../../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../../node_modules/framer-motion/dist/es/animation/utils/keyframes.mjs","../../node_modules/framer-motion/dist/es/animation/waapi/supports.mjs","../../node_modules/framer-motion/dist/es/animation/index.mjs","../../node_modules/framer-motion/dist/es/render/utils/animation.mjs","../../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../../node_modules/framer-motion/dist/es/utils/distance.mjs","../../node_modules/framer-motion/dist/es/gestures/PanSession.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../../node_modules/framer-motion/dist/es/gestures/drag/use-drag.mjs","../../node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs","../../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../../node_modules/framer-motion/dist/es/motion/features/layout/index.mjs","../../node_modules/framer-motion/dist/es/animation/animate.mjs","../../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../../src/components/Layout/index.jsx","../../src/assets/svgs/accountpage/addressicon.svg","../../src/assets/svgs/accountpage/archiveicon.svg","../../src/assets/svgs/accountpage/globe.svg","../../src/assets/svgs/accountpage/profileicon.svg","../../src/components/Account/AccountMenuCard.jsx","../../src/components/Account/AccountMenuGrid.jsx","../../src/pages/Account/index.jsx","../../src/lib/api/strapi.js","../../src/lib/utils/hooks/useFetchContent.js","../../src/lib/utils/hooks/useSlideDrag.tsx","../../src/components/Overview/Brands.jsx","../../node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js","../../node_modules/embla-carousel/esm/embla-carousel.esm.js","../../node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js","../../node_modules/lucide-react/dist/esm/defaultAttributes.js","../../node_modules/lucide-react/dist/esm/createLucideIcon.js","../../node_modules/lucide-react/dist/esm/icons/arrow-left.js","../../node_modules/lucide-react/dist/esm/icons/arrow-right.js","../../node_modules/lucide-react/dist/esm/icons/calendar.js","../../node_modules/lucide-react/dist/esm/icons/check-square.js","../../node_modules/lucide-react/dist/esm/icons/check.js","../../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../../node_modules/lucide-react/dist/esm/icons/file-question.js","../../node_modules/lucide-react/dist/esm/icons/file-text.js","../../node_modules/lucide-react/dist/esm/icons/hash.js","../../node_modules/lucide-react/dist/esm/icons/list-ordered.js","../../node_modules/lucide-react/dist/esm/icons/paperclip.js","../../node_modules/lucide-react/dist/esm/icons/puzzle.js","../../node_modules/lucide-react/dist/esm/icons/send.js","../../node_modules/lucide-react/dist/esm/icons/tag.js","../../node_modules/lucide-react/dist/esm/icons/toggle-left.js","../../node_modules/lucide-react/dist/esm/icons/type.js","../../src/components/common/shared/Carousel.tsx","../../node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js","../../src/components/Overview/CarouselBanner.jsx","../../src/components/Overview/ExtraWarrantyBanner.jsx","../../src/assets/svgs/insurance.svg","../../src/assets/svgs/right-arrow.svg","../../src/components/Overview/OurServices.jsx","../../src/pages/Overview/index.jsx","../../src/assets/svgs/addplusicon.svg","../../src/assets/svgs/filtericon.svg","../../node_modules/zustand/esm/vanilla.mjs","../../node_modules/zustand/esm/react.mjs","../../src/store/useProductStore.js","../../src/components/common/FilterPill.jsx","../../src/components/Products/ProductListHeader.jsx","../../src/components/common/EmptyData/index.jsx","../../src/components/Products/ProductCard.jsx","../../src/components/Products/ProductSkeleton.jsx","../../node_modules/@hookform/resolvers/dist/resolvers.mjs","../../node_modules/@hookform/resolvers/yup/dist/yup.mjs","../../src/assets/images/dummyfile.png","../../src/components/Products/UnVerifiedProductDetailSheet/deleteDialog.jsx","../../src/components/Products/DocumentItem.jsx","../../src/assets/svgs/categories/beyazesyaicon.svg","../../src/assets/svgs/categories/digericon.svg","../../src/assets/svgs/categories/elektrikliicon.svg","../../src/assets/svgs/categories/fotoicon.svg","../../src/assets/svgs/categories/klimaicon.svg","../../src/assets/svgs/categories/laptopicon.svg","../../src/assets/svgs/categories/oyunicon.svg","../../src/assets/svgs/categories/telefonicon.svg","../../src/assets/svgs/categories/tvicon.svg","../../src/assets/svgs/categories/yaziciicon.svg","../../src/lib/utils/data/categories.ts","../../src/components/Products/ProductIcon.jsx","../../src/components/common/PriceInputBox/InputBox.jsx","../../src/components/common/PriceInputBox/index.jsx","../../node_modules/use-mask-input/dist/index.js","../../node_modules/nanoclone/src/index.js","../../node_modules/yup/es/util/printValue.js","../../node_modules/yup/es/locale.js","../../node_modules/lodash/_baseHas.js","../../node_modules/lodash/isArray.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/isFunction.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_getNative.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_baseIsArguments.js","../../node_modules/lodash/isArguments.js","../../node_modules/lodash/_isIndex.js","../../node_modules/lodash/isLength.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_hasPath.js","../../node_modules/lodash/has.js","../../node_modules/yup/es/util/isSchema.js","../../node_modules/yup/es/Condition.js","../../node_modules/yup/es/util/toArray.js","../../node_modules/yup/es/ValidationError.js","../../node_modules/yup/es/util/runTests.js","../../node_modules/lodash/_defineProperty.js","../../node_modules/lodash/_baseAssignValue.js","../../node_modules/lodash/_createBaseFor.js","../../node_modules/lodash/_baseFor.js","../../node_modules/lodash/_baseTimes.js","../../node_modules/lodash/stubFalse.js","../../node_modules/lodash/isBuffer.js","../../node_modules/lodash/_baseIsTypedArray.js","../../node_modules/lodash/_baseUnary.js","../../node_modules/lodash/_nodeUtil.js","../../node_modules/lodash/isTypedArray.js","../../node_modules/lodash/_arrayLikeKeys.js","../../node_modules/lodash/_isPrototype.js","../../node_modules/lodash/_overArg.js","../../node_modules/lodash/_nativeKeys.js","../../node_modules/lodash/_baseKeys.js","../../node_modules/lodash/isArrayLike.js","../../node_modules/lodash/keys.js","../../node_modules/lodash/_baseForOwn.js","../../node_modules/lodash/_stackClear.js","../../node_modules/lodash/_stackDelete.js","../../node_modules/lodash/_stackGet.js","../../node_modules/lodash/_stackHas.js","../../node_modules/lodash/_stackSet.js","../../node_modules/lodash/_Stack.js","../../node_modules/lodash/_setCacheAdd.js","../../node_modules/lodash/_setCacheHas.js","../../node_modules/lodash/_SetCache.js","../../node_modules/lodash/_arraySome.js","../../node_modules/lodash/_cacheHas.js","../../node_modules/lodash/_equalArrays.js","../../node_modules/lodash/_Uint8Array.js","../../node_modules/lodash/_mapToArray.js","../../node_modules/lodash/_setToArray.js","../../node_modules/lodash/_equalByTag.js","../../node_modules/lodash/_arrayPush.js","../../node_modules/lodash/_baseGetAllKeys.js","../../node_modules/lodash/_arrayFilter.js","../../node_modules/lodash/stubArray.js","../../node_modules/lodash/_getSymbols.js","../../node_modules/lodash/_getAllKeys.js","../../node_modules/lodash/_equalObjects.js","../../node_modules/lodash/_DataView.js","../../node_modules/lodash/_Promise.js","../../node_modules/lodash/_Set.js","../../node_modules/lodash/_WeakMap.js","../../node_modules/lodash/_getTag.js","../../node_modules/lodash/_baseIsEqualDeep.js","../../node_modules/lodash/_baseIsEqual.js","../../node_modules/lodash/_baseIsMatch.js","../../node_modules/lodash/_isStrictComparable.js","../../node_modules/lodash/_getMatchData.js","../../node_modules/lodash/_matchesStrictComparable.js","../../node_modules/lodash/_baseMatches.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/get.js","../../node_modules/lodash/_baseHasIn.js","../../node_modules/lodash/hasIn.js","../../node_modules/lodash/_baseMatchesProperty.js","../../node_modules/lodash/identity.js","../../node_modules/lodash/_baseProperty.js","../../node_modules/lodash/_basePropertyDeep.js","../../node_modules/lodash/property.js","../../node_modules/lodash/_baseIteratee.js","../../node_modules/lodash/mapValues.js","../../node_modules/property-expr/index.js","../../node_modules/yup/es/Reference.js","../../node_modules/yup/es/util/createValidation.js","../../node_modules/yup/es/util/reach.js","../../node_modules/yup/es/util/ReferenceSet.js","../../node_modules/yup/es/schema.js","../../node_modules/yup/es/mixed.js","../../node_modules/yup/es/util/isAbsent.js","../../node_modules/yup/es/boolean.js","../../node_modules/yup/es/string.js","../../node_modules/yup/es/number.js","../../node_modules/yup/es/util/isodate.js","../../node_modules/yup/es/date.js","../../node_modules/lodash/_arrayReduce.js","../../node_modules/lodash/_basePropertyOf.js","../../node_modules/lodash/_deburrLetter.js","../../node_modules/lodash/deburr.js","../../node_modules/lodash/_asciiWords.js","../../node_modules/lodash/_hasUnicodeWord.js","../../node_modules/lodash/_unicodeWords.js","../../node_modules/lodash/words.js","../../node_modules/lodash/_createCompounder.js","../../node_modules/lodash/snakeCase.js","../../node_modules/lodash/_baseSlice.js","../../node_modules/lodash/_castSlice.js","../../node_modules/lodash/_hasUnicode.js","../../node_modules/lodash/_asciiToArray.js","../../node_modules/lodash/_unicodeToArray.js","../../node_modules/lodash/_stringToArray.js","../../node_modules/lodash/_createCaseFirst.js","../../node_modules/lodash/upperFirst.js","../../node_modules/lodash/capitalize.js","../../node_modules/lodash/camelCase.js","../../node_modules/lodash/mapKeys.js","../../node_modules/toposort/index.js","../../node_modules/yup/es/util/sortFields.js","../../node_modules/yup/es/util/sortByKeyOrder.js","../../node_modules/yup/es/object.js","../../src/components/Products/UnVerifiedProductDetailSheet/index.jsx","../../src/components/Products/UnVerifiedProductsList.jsx","../../src/assets/svgs/archiveicon.svg","../../src/components/Products/VerifiedProductDetailSheet/ActionButtons.jsx","../../src/components/Products/VerifiedProductDetailSheet/DocumentSection.jsx","../../src/components/Products/VerifiedProductDetailSheet/ProductDetails.jsx","../../src/components/Products/VerifiedProductDetailSheet/ServiceButtons.jsx","../../src/components/Products/VerifiedProductDetailSheet/VideoSection.jsx","../../src/components/Products/VerifiedProductDetailSheet/WarrantyDetails.jsx","../../src/lib/api/product.js","../../src/components/Products/VerifiedProductDetailSheet/index.jsx","../../src/components/Products/VerifiedProductsList.jsx","../../src/components/Products/FilterSheet/index.jsx","../../src/assets/images/placeholder-icon.png","../../src/components/newaddproduct/SelectableCard.jsx","../../src/components/newaddproduct/constants.js","../../node_modules/@lottiefiles/dotlottie-react/dist/index.js","../../src/assets/lottie/animation-loading.lottie","../../src/components/newaddproduct/loading.jsx","../../src/components/newaddproduct/steps/BrandStep.jsx","../../src/components/newaddproduct/steps/CategoryStep.jsx","../../src/lib/utils/hooks/useDebounce.jsx","../../src/components/newaddproduct/SelectProductName.jsx","../../src/components/newaddproduct/steps/DetailsStep.jsx","../../src/components/newaddproduct/ProductForm.jsx","../../src/pages/Products/index.jsx","../../src/lib/utils/hooks/use-user.jsx","../../src/routes/PrivateRoute.jsx","../../src/assets/svgs/editicon.svg","../../src/assets/svgs/trashicon.svg","../../src/lib/api/address.js","../../src/assets/svgs/trashmodalicon.svg","../../src/components/Account/DeleteAddressDialog.jsx","../../src/components/common/shared/breadcrumbs.jsx","../../src/assets/svgs/info.svg","../../src/components/common/shared/infoTooltip.jsx","../../src/pages/Account/Address/index.jsx","../../src/lib/utils/validation/schemas.ts","../../src/pages/Account/Address/AddressDetail.jsx","../../src/pages/Account/Address/EditAddress.jsx","../../src/pages/Account/Address/NewAddress.jsx","../../src/pages/Account/ArchivedProducts.jsx","../../node_modules/date-fns/constants.js","../../node_modules/date-fns/constructFrom.js","../../node_modules/date-fns/toDate.js","../../node_modules/date-fns/addDays.js","../../node_modules/date-fns/_lib/defaultOptions.js","../../node_modules/date-fns/startOfWeek.js","../../node_modules/date-fns/startOfISOWeek.js","../../node_modules/date-fns/getISOWeekYear.js","../../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../../node_modules/date-fns/_lib/normalizeDates.js","../../node_modules/date-fns/startOfDay.js","../../node_modules/date-fns/differenceInCalendarDays.js","../../node_modules/date-fns/startOfISOWeekYear.js","../../node_modules/date-fns/isDate.js","../../node_modules/date-fns/isValid.js","../../node_modules/date-fns/startOfYear.js","../../node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../../node_modules/date-fns/locale/en-US/_lib/formatLong.js","../../node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../../node_modules/date-fns/locale/en-US/_lib/localize.js","../../node_modules/date-fns/locale/_lib/buildMatchFn.js","../../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../../node_modules/date-fns/locale/en-US/_lib/match.js","../../node_modules/date-fns/locale/en-US.js","../../node_modules/date-fns/getDayOfYear.js","../../node_modules/date-fns/getISOWeek.js","../../node_modules/date-fns/getWeekYear.js","../../node_modules/date-fns/startOfWeekYear.js","../../node_modules/date-fns/getWeek.js","../../node_modules/date-fns/_lib/addLeadingZeros.js","../../node_modules/date-fns/_lib/format/lightFormatters.js","../../node_modules/date-fns/_lib/format/formatters.js","../../node_modules/date-fns/_lib/format/longFormatters.js","../../node_modules/date-fns/_lib/protectedTokens.js","../../node_modules/date-fns/format.js","../../node_modules/date-fns/getDefaultOptions.js","../../node_modules/date-fns/getISODay.js","../../node_modules/date-fns/transpose.js","../../node_modules/date-fns/parse/_lib/Setter.js","../../node_modules/date-fns/parse/_lib/Parser.js","../../node_modules/date-fns/parse/_lib/parsers/EraParser.js","../../node_modules/date-fns/parse/_lib/constants.js","../../node_modules/date-fns/parse/_lib/utils.js","../../node_modules/date-fns/parse/_lib/parsers/YearParser.js","../../node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../../node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../../node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../../node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../../node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../../node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../../node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../../node_modules/date-fns/setWeek.js","../../node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../../node_modules/date-fns/setISOWeek.js","../../node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../../node_modules/date-fns/parse/_lib/parsers/DateParser.js","../../node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../../node_modules/date-fns/setDay.js","../../node_modules/date-fns/parse/_lib/parsers/DayParser.js","../../node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../../node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../../node_modules/date-fns/setISODay.js","../../node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../../node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../../node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../../node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../../node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../../node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../../node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../../node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../../node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../../node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../../node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../../node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../../node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../../node_modules/date-fns/parse/_lib/parsers.js","../../node_modules/date-fns/parse.js","../../src/components/Account/EditSheet.jsx","../../src/pages/Account/Profile.jsx","../../src/assets/svgs/english.svg","../../src/assets/svgs/russia.svg","../../src/assets/svgs/turkey.svg","../../src/components/common/LanguageSwitcher/LanguageSwitcherForPage.jsx","../../src/pages/Account/Language.jsx","../../src/routes/accountRoutes.jsx","../../node_modules/react-side-effect/lib/index.js","../../node_modules/react-fast-compare/index.js","../../node_modules/object-assign/index.js","../../node_modules/react-helmet/es/Helmet.js","../../src/assets/svgs/login/arcelik.svg","../../src/assets/svgs/login/aygaz.svg","../../src/assets/svgs/login/braun.svg","../../src/assets/svgs/login/casio.svg","../../src/assets/svgs/login/fakir.svg","../../src/assets/svgs/login/lamy.svg","../../src/components/Auth/Login/BrandsSection.jsx","../../src/components/Auth/Login/FeaturesSection.jsx","../../src/assets/svgs/egarantilogowhite.svg","../../src/components/Auth/Login/LoginForm.jsx","../../src/components/Auth/Login/LoginMethodSwitcher.jsx","../../src/components/Auth/Login/LoginCard.jsx","../../src/components/common/LanguageSwitcher/index.jsx","../../src/assets/images/bannertexture.png","../../src/assets/images/loginbanner.png","../../src/components/Auth/Login/LoginHeroDesktop.jsx","../../src/components/Auth/Login/LoginHeroMobile.jsx","../../src/components/Auth/Login/LoginModal.jsx","../../src/components/common/shared/slot.jsx","../../node_modules/input-otp/dist/index.mjs","../../src/components/Auth/Login/OtpVerifyDialog.jsx","../../src/components/Auth/Login/ServicesSection.jsx","../../src/pages/Auth/Login/index.jsx","../../src/pages/Auth/LoginJwt.jsx","../../src/components/Auth/AuthHeader.jsx","../../src/assets/images/loginpagebanner.png","../../src/assets/images/loginpagebannerru.png","../../src/lib/api/auth.js","../../src/lib/utils/data/dialCodes.ts","../../src/pages/Auth/Register/index.jsx","../../src/pages/Auth/ForgotPassword/mail.jsx","../../src/pages/Auth/ForgotPassword/verify.jsx","../../src/pages/VerifyAccount/VerifyMail.jsx","../../src/pages/VerifyAccount/VerifyOnboardMail.jsx","../../src/pages/VerifyAccount/VerifyPhone.jsx","../../src/pages/VerifyAccount/VerifyPhoneDirect.jsx","../../src/pages/VerifyAccount/VerifyTrendyol.jsx","../../src/routes/authRoutes.jsx","../../src/lib/api/claims.js","../../src/pages/Claims/ClaimDetailSheet.jsx","../../src/store/useClaimsStore.js","../../src/pages/Claims/index.jsx","../../src/components/Claims/dynamicForm/BaseFieldRenderer.jsx","../../src/components/Claims/dynamicForm/CheckboxFieldRenderer.jsx","../../src/components/Claims/dynamicForm/DateFieldRenderer.jsx","../../src/components/Claims/dynamicForm/EmployeeFieldRenderer.jsx","../../src/components/Claims/dynamicForm/FileFieldRenderer.jsx","../../src/components/Claims/dynamicForm/NumberFieldRenderer.jsx","../../src/components/Claims/dynamicForm/RadioFieldRenderer.jsx","../../src/components/Claims/dynamicForm/SelectFieldRenderer.jsx","../../src/components/Claims/dynamicForm/SparePartFieldRenderer.jsx","../../src/components/Claims/dynamicForm/TextAreaRenderer.jsx","../../src/components/Claims/dynamicForm/TextFieldRenderer.jsx","../../src/components/Claims/dynamicForm/registry.js","../../src/components/Claims/dynamicForm/index.jsx","../../src/pages/Claims/Create.jsx","../../src/routes/claimsRoutes.jsx","../../src/pages/FilePreview/index.jsx","../../src/assets/images/plug.png","../../src/pages/NotFound.jsx","../../src/routes/publicRoutes.jsx","../../src/components/Services/HomePageBanner.jsx","../../src/components/Services/MyServices.jsx","../../src/components/Services/ExtendedWarrantyModal.jsx","../../src/assets/images/overview/thieft.png","../../src/assets/svgs/phone.svg","../../src/components/Services/Opportunities.jsx","../../src/components/Services/PhoneInsurances.jsx","../../src/pages/Services/index.jsx","../../src/assets/images/overview/insurance.png","../../src/pages/Services/GetExtendedWarranty/index.jsx","../../src/components/Services/GetExtendedWarranty/Stepper.jsx","../../src/assets/images/overview/phone-photo.png","../../src/pages/Services/GetExtendedWarranty/Step1.jsx","../../src/assets/images/recimei.gif","../../src/components/Services/GetExtendedWarranty/ImeiInfoDialog.jsx","../../src/pages/Services/GetExtendedWarranty/Step2.jsx","../../src/components/Payment/addAddressDialog.jsx","../../src/components/Payment/creditCardForm.jsx","../../src/assets/svgs/masterCard.svg","../../src/assets/svgs/troy.svg","../../src/assets/svgs/visa.svg","../../src/lib/api/payment.js","../../src/pages/Services/GetExtendedWarranty/Step3.jsx","../../src/pages/Services/GetExtendedWarranty/statusPage.jsx","../../src/routes/serviceRoutes.jsx","../../src/routes/index.jsx","../../src/App.jsx","../../src/main.jsx"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\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","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/collection/src/collection.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(Slot, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(Slot, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\nexport {\n createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/collapsible/src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n CollapsibleProvider,\n {\n scope: __scopeCollapsible,\n disabled,\n contentId: useId(),\n open,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(open),\n \"data-disabled\": disabled ? \"\" : void 0,\n ...collapsibleProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n disabled: context.disabled,\n ...triggerProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef(void 0);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n };\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n }, [context.open, present]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n id: context.contentId,\n hidden: !isOpen,\n ...contentProps,\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n ...props.style\n },\n children: isOpen && children\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n Content,\n Root,\n Trigger,\n createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/accordion/src/accordion.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nimport { createCollapsibleScope } from \"@radix-ui/react-collapsible\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ACCORDION_NAME = \"Accordion\";\nvar ACCORDION_KEYS = [\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\"];\nvar [Collection, useCollection, createCollectionScope] = createCollection(ACCORDION_NAME);\nvar [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n createCollectionScope,\n createCollapsibleScope\n]);\nvar useCollapsibleScope = createCollapsibleScope();\nvar Accordion = React.forwardRef(\n (props, forwardedRef) => {\n const { type, ...accordionProps } = props;\n const singleProps = accordionProps;\n const multipleProps = accordionProps;\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeAccordion, children: type === \"multiple\" ? /* @__PURE__ */ jsx(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });\n }\n);\nAccordion.displayName = ACCORDION_NAME;\nvar [AccordionValueProvider, useAccordionValueContext] = createAccordionContext(ACCORDION_NAME);\nvar [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n ACCORDION_NAME,\n { collapsible: false }\n);\nvar AccordionImplSingle = React.forwardRef(\n (props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n collapsible = false,\n ...accordionSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value: value ? [value] : [],\n onItemOpen: setValue,\n onItemClose: React.useCallback(() => collapsible && setValue(\"\"), [collapsible, setValue]),\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef }) })\n }\n );\n }\n);\nvar AccordionImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...accordionMultipleProps\n } = props;\n const [value = [], setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const handleItemOpen = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleItemClose = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value,\n onItemOpen: handleItemOpen,\n onItemClose: handleItemClose,\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })\n }\n );\n});\nvar [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);\nvar AccordionImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, disabled, dir, orientation = \"vertical\", ...accordionProps } = props;\n const accordionRef = React.useRef(null);\n const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n const getItems = useCollection(__scopeAccordion);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n if (!ACCORDION_KEYS.includes(event.key)) return;\n const target = event.target;\n const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n const triggerCount = triggerCollection.length;\n if (triggerIndex === -1) return;\n event.preventDefault();\n let nextIndex = triggerIndex;\n const homeIndex = 0;\n const endIndex = triggerCount - 1;\n const moveNext = () => {\n nextIndex = triggerIndex + 1;\n if (nextIndex > endIndex) {\n nextIndex = homeIndex;\n }\n };\n const movePrev = () => {\n nextIndex = triggerIndex - 1;\n if (nextIndex < homeIndex) {\n nextIndex = endIndex;\n }\n };\n switch (event.key) {\n case \"Home\":\n nextIndex = homeIndex;\n break;\n case \"End\":\n nextIndex = endIndex;\n break;\n case \"ArrowRight\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n moveNext();\n } else {\n movePrev();\n }\n }\n break;\n case \"ArrowDown\":\n if (orientation === \"vertical\") {\n moveNext();\n }\n break;\n case \"ArrowLeft\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n movePrev();\n } else {\n moveNext();\n }\n }\n break;\n case \"ArrowUp\":\n if (orientation === \"vertical\") {\n movePrev();\n }\n break;\n }\n const clampedIndex = nextIndex % triggerCount;\n triggerCollection[clampedIndex].ref.current?.focus();\n });\n return /* @__PURE__ */ jsx(\n AccordionImplProvider,\n {\n scope: __scopeAccordion,\n disabled,\n direction: dir,\n orientation,\n children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...accordionProps,\n \"data-orientation\": orientation,\n ref: composedRefs,\n onKeyDown: disabled ? void 0 : handleKeyDown\n }\n ) })\n }\n );\n }\n);\nvar ITEM_NAME = \"AccordionItem\";\nvar [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME);\nvar AccordionItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, value, ...accordionItemProps } = props;\n const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n const triggerId = useId();\n const open = value && valueContext.value.includes(value) || false;\n const disabled = accordionContext.disabled || props.disabled;\n return /* @__PURE__ */ jsx(\n AccordionItemProvider,\n {\n scope: __scopeAccordion,\n open,\n disabled,\n triggerId,\n children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Root,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(open),\n ...collapsibleScope,\n ...accordionItemProps,\n ref: forwardedRef,\n disabled,\n open,\n onOpenChange: (open2) => {\n if (open2) {\n valueContext.onItemOpen(value);\n } else {\n valueContext.onItemClose(value);\n }\n }\n }\n )\n }\n );\n }\n);\nAccordionItem.displayName = ITEM_NAME;\nvar HEADER_NAME = \"AccordionHeader\";\nvar AccordionHeader = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...headerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n return /* @__PURE__ */ jsx(\n Primitive.h3,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(itemContext.open),\n \"data-disabled\": itemContext.disabled ? \"\" : void 0,\n ...headerProps,\n ref: forwardedRef\n }\n );\n }\n);\nAccordionHeader.displayName = HEADER_NAME;\nvar TRIGGER_NAME = \"AccordionTrigger\";\nvar AccordionTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...triggerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Trigger,\n {\n \"aria-disabled\": itemContext.open && !collapsibleContext.collapsible || void 0,\n \"data-orientation\": accordionContext.orientation,\n id: itemContext.triggerId,\n ...collapsibleScope,\n ...triggerProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nAccordionTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"AccordionContent\";\nvar AccordionContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...contentProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Content,\n {\n role: \"region\",\n \"aria-labelledby\": itemContext.triggerId,\n \"data-orientation\": accordionContext.orientation,\n ...collapsibleScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n [\"--radix-accordion-content-height\"]: \"var(--radix-collapsible-content-height)\",\n [\"--radix-accordion-content-width\"]: \"var(--radix-collapsible-content-width)\",\n ...props.style\n }\n }\n );\n }\n);\nAccordionContent.displayName = CONTENT_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Accordion;\nvar Item = AccordionItem;\nvar Header = AccordionHeader;\nvar Trigger2 = AccordionTrigger;\nvar Content2 = AccordionContent;\nexport {\n Accordion,\n AccordionContent,\n AccordionHeader,\n AccordionItem,\n AccordionTrigger,\n Content2 as Content,\n Header,\n Item,\n Root2 as Root,\n Trigger2 as Trigger,\n createAccordionScope\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nexport { toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { toKebabCase } from './shared/src/utils.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: [\"lucide\", `lucide-${toKebabCase(iconName)}`, className].join(\" \"),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Check = createLucideIcon(\"Check\", [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]);\n\nexport { Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronDown = createLucideIcon(\"ChevronDown\", [\n [\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]\n]);\n\nexport { ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronRight = createLucideIcon(\"ChevronRight\", [\n [\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]\n]);\n\nexport { ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronsUpDown = createLucideIcon(\"ChevronsUpDown\", [\n [\"path\", { d: \"m7 15 5 5 5-5\", key: \"1hf1tw\" }],\n [\"path\", { d: \"m7 9 5-5 5 5\", key: \"sgt6xg\" }]\n]);\n\nexport { ChevronsUpDown as default };\n//# sourceMappingURL=chevrons-up-down.js.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Circle = createLucideIcon(\"Circle\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]\n]);\n\nexport { Circle as default };\n//# sourceMappingURL=circle.js.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst EyeOff = createLucideIcon(\"EyeOff\", [\n [\"path\", { d: \"M9.88 9.88a3 3 0 1 0 4.24 4.24\", key: \"1jxqfv\" }],\n [\n \"path\",\n {\n d: \"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68\",\n key: \"9wicm4\"\n }\n ],\n [\n \"path\",\n { d: \"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61\", key: \"1jreej\" }\n ],\n [\"line\", { x1: \"2\", x2: \"22\", y1: \"2\", y2: \"22\", key: \"a6p6uj\" }]\n]);\n\nexport { EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Eye = createLucideIcon(\"Eye\", [\n [\"path\", { d: \"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\", key: \"rwhkz3\" }],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n]);\n\nexport { Eye as default };\n//# sourceMappingURL=eye.js.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Search = createLucideIcon(\"Search\", [\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"path\", { d: \"m21 21-4.3-4.3\", key: \"1qie3q\" }]\n]);\n\nexport { Search as default };\n//# sourceMappingURL=search.js.map\n","/**\n * @license lucide-react v0.360.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst X = createLucideIcon(\"X\", [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n]);\n\nexport { X as default };\n//# sourceMappingURL=x.js.map\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;","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nexport function cn() {\n var inputs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n inputs[_i] = arguments[_i];\n }\n return twMerge(clsx(inputs));\n}\n//# sourceMappingURL=index.js.map","import { __assign, __rest } from \"tslib\";\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport * as React from 'react';\nimport { ChevronDown } from 'lucide-react';\nimport { cn } from './utils';\nvar Accordion = AccordionPrimitive.Root;\nvar AccordionItem = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(AccordionPrimitive.Item, __assign({ ref: ref, className: cn('border-b', className) }, props)));\n});\nAccordionItem.displayName = 'AccordionItem';\nvar AccordionTrigger = React.forwardRef(function (_a, ref) {\n var className = _a.className, children = _a.children, props = __rest(_a, [\"className\", \"children\"]);\n return (React.createElement(AccordionPrimitive.Header, { className: 'flex' },\n React.createElement(AccordionPrimitive.Trigger, __assign({ ref: ref, className: cn('flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180', className) }, props),\n children,\n React.createElement(ChevronDown, { className: 'h-8 w-8 shrink-0 transition-transform duration-200' }))));\n});\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\nvar AccordionContent = React.forwardRef(function (_a, ref) {\n var className = _a.className, children = _a.children, props = __rest(_a, [\"className\", \"children\"]);\n return (React.createElement(AccordionPrimitive.Content, __assign({ ref: ref, className: 'overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down' }, props),\n React.createElement(\"div\", { className: cn('pb-4 pt-0', className) }, children)));\n});\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n//# sourceMappingURL=Accordion.js.map","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;","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva } from 'class-variance-authority';\nimport { cn } from './utils';\nvar buttonVariants = cva('inline-flex items-center justify-center gap-2 rounded-[8px] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background border border-transparent shadow-sm', {\n variants: {\n variant: {\n default: 'bg-[#0049E6] text-white hover:bg-[#263FA8]',\n secondaryGray: 'bg-white border-[#CDD5E0] hover:bg-[#F9FAFC] text-[#364153]',\n secondaryColor: 'bg-[#F1F6FE] text-[#2A4ED0] text-[#2A4ED0] hover:bg-[#E5F0FF] hover:text-[#2A4ED0]',\n tertiaryGray: 'bg-white text-[#364153] shadow-none hover:bg-[#F2F5F9] hover:text-[#364153]',\n outline: 'bg-transparent text-[#CDD5E0] border-[#CDD5E0] hover:bg-[#F1F6FE] hover:text-[#2A4ED0]'\n },\n size: {\n sm: 'h-9 px-3',\n default: 'h-10 py-2 px-4',\n lg: 'h-11 px-8',\n full: 'w-full h-11 px-8'\n }\n },\n defaultVariants: {\n variant: 'default',\n size: 'default'\n }\n});\nvar Button = React.forwardRef(function (_a, ref) {\n var className = _a.className, variant = _a.variant, size = _a.size, _b = _a.asChild, asChild = _b === void 0 ? false : _b, children = _a.children, props = __rest(_a, [\"className\", \"variant\", \"size\", \"asChild\", \"children\"]);\n var Comp = asChild ? Slot : 'button';\n return (React.createElement(Comp, __assign({ className: cn(buttonVariants({ variant: variant, size: size, className: className })), ref: ref }, props), children));\n});\nButton.displayName = 'Button';\nexport { Button, buttonVariants };\n//# sourceMappingURL=Button.js.map","import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { createContext, useContext, useState, forwardRef, useEffect, useRef, useLayoutEffect } from 'react';\nimport { format, startOfMonth, endOfMonth, startOfDay, isSameYear, setMonth, setYear, startOfYear, differenceInCalendarMonths, addMonths, isSameMonth, isBefore, startOfISOWeek, startOfWeek, addDays, isSameDay, isAfter, subDays, differenceInCalendarDays, isDate, max, min, addWeeks, addYears, endOfISOWeek, endOfWeek, getUnixTime, getISOWeek, getWeek, getWeeksInMonth, parse } from 'date-fns';\nimport { enUS } from 'date-fns/locale';\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, SuppressedError, Symbol */\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};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\n/** Returns true when the props are of type {@link DayPickerMultipleProps}. */\nfunction isDayPickerMultiple(props) {\n return props.mode === 'multiple';\n}\n\n/** Returns true when the props are of type {@link DayPickerRangeProps}. */\nfunction isDayPickerRange(props) {\n return props.mode === 'range';\n}\n\n/** Returns true when the props are of type {@link DayPickerSingleProps}. */\nfunction isDayPickerSingle(props) {\n return props.mode === 'single';\n}\n\n/**\n * The name of the default CSS classes.\n */\nvar defaultClassNames = {\n root: 'rdp',\n multiple_months: 'rdp-multiple_months',\n with_weeknumber: 'rdp-with_weeknumber',\n vhidden: 'rdp-vhidden',\n button_reset: 'rdp-button_reset',\n button: 'rdp-button',\n caption: 'rdp-caption',\n caption_start: 'rdp-caption_start',\n caption_end: 'rdp-caption_end',\n caption_between: 'rdp-caption_between',\n caption_label: 'rdp-caption_label',\n caption_dropdowns: 'rdp-caption_dropdowns',\n dropdown: 'rdp-dropdown',\n dropdown_month: 'rdp-dropdown_month',\n dropdown_year: 'rdp-dropdown_year',\n dropdown_icon: 'rdp-dropdown_icon',\n months: 'rdp-months',\n month: 'rdp-month',\n table: 'rdp-table',\n tbody: 'rdp-tbody',\n tfoot: 'rdp-tfoot',\n head: 'rdp-head',\n head_row: 'rdp-head_row',\n head_cell: 'rdp-head_cell',\n nav: 'rdp-nav',\n nav_button: 'rdp-nav_button',\n nav_button_previous: 'rdp-nav_button_previous',\n nav_button_next: 'rdp-nav_button_next',\n nav_icon: 'rdp-nav_icon',\n row: 'rdp-row',\n weeknumber: 'rdp-weeknumber',\n cell: 'rdp-cell',\n day: 'rdp-day',\n day_today: 'rdp-day_today',\n day_outside: 'rdp-day_outside',\n day_selected: 'rdp-day_selected',\n day_disabled: 'rdp-day_disabled',\n day_hidden: 'rdp-day_hidden',\n day_range_start: 'rdp-day_range_start',\n day_range_end: 'rdp-day_range_end',\n day_range_middle: 'rdp-day_range_middle'\n};\n\n/**\n * The default formatter for the caption.\n */\nfunction formatCaption(month, options) {\n return format(month, 'LLLL y', options);\n}\n\n/**\n * The default formatter for the Day button.\n */\nfunction formatDay(day, options) {\n return format(day, 'd', options);\n}\n\n/**\n * The default formatter for the Month caption.\n */\nfunction formatMonthCaption(month, options) {\n return format(month, 'LLLL', options);\n}\n\n/**\n * The default formatter for the week number.\n */\nfunction formatWeekNumber(weekNumber) {\n return \"\".concat(weekNumber);\n}\n\n/**\n * The default formatter for the name of the weekday.\n */\nfunction formatWeekdayName(weekday, options) {\n return format(weekday, 'cccccc', options);\n}\n\n/**\n * The default formatter for the Year caption.\n */\nfunction formatYearCaption(year, options) {\n return format(year, 'yyyy', options);\n}\n\nvar formatters = /*#__PURE__*/Object.freeze({\n __proto__: null,\n formatCaption: formatCaption,\n formatDay: formatDay,\n formatMonthCaption: formatMonthCaption,\n formatWeekNumber: formatWeekNumber,\n formatWeekdayName: formatWeekdayName,\n formatYearCaption: formatYearCaption\n});\n\n/**\n * The default ARIA label for the day button.\n */\nvar labelDay = function (day, activeModifiers, options) {\n return format(day, 'do MMMM (EEEE)', options);\n};\n\n/**\n * The default ARIA label for the WeekNumber element.\n */\nvar labelMonthDropdown = function () {\n return 'Month: ';\n};\n\n/**\n * The default ARIA label for next month button in navigation\n */\nvar labelNext = function () {\n return 'Go to next month';\n};\n\n/**\n * The default ARIA label for previous month button in navigation\n */\nvar labelPrevious = function () {\n return 'Go to previous month';\n};\n\n/**\n * The default ARIA label for the Weekday element.\n */\nvar labelWeekday = function (day, options) {\n return format(day, 'cccc', options);\n};\n\n/**\n * The default ARIA label for the WeekNumber element.\n */\nvar labelWeekNumber = function (n) {\n return \"Week n. \".concat(n);\n};\n\n/**\n * The default ARIA label for the WeekNumber element.\n */\nvar labelYearDropdown = function () {\n return 'Year: ';\n};\n\nvar labels = /*#__PURE__*/Object.freeze({\n __proto__: null,\n labelDay: labelDay,\n labelMonthDropdown: labelMonthDropdown,\n labelNext: labelNext,\n labelPrevious: labelPrevious,\n labelWeekNumber: labelWeekNumber,\n labelWeekday: labelWeekday,\n labelYearDropdown: labelYearDropdown\n});\n\n/**\n * Returns the default values to use in the DayPickerContext, in case they are\n * not passed down with the DayPicker initial props.\n */\nfunction getDefaultContextValues() {\n var captionLayout = 'buttons';\n var classNames = defaultClassNames;\n var locale = enUS;\n var modifiersClassNames = {};\n var modifiers = {};\n var numberOfMonths = 1;\n var styles = {};\n var today = new Date();\n return {\n captionLayout: captionLayout,\n classNames: classNames,\n formatters: formatters,\n labels: labels,\n locale: locale,\n modifiersClassNames: modifiersClassNames,\n modifiers: modifiers,\n numberOfMonths: numberOfMonths,\n styles: styles,\n today: today,\n mode: 'default'\n };\n}\n\n/** Return the `fromDate` and `toDate` prop values values parsing the DayPicker props. */\nfunction parseFromToProps(props) {\n var fromYear = props.fromYear, toYear = props.toYear, fromMonth = props.fromMonth, toMonth = props.toMonth;\n var fromDate = props.fromDate, toDate = props.toDate;\n if (fromMonth) {\n fromDate = startOfMonth(fromMonth);\n }\n else if (fromYear) {\n fromDate = new Date(fromYear, 0, 1);\n }\n if (toMonth) {\n toDate = endOfMonth(toMonth);\n }\n else if (toYear) {\n toDate = new Date(toYear, 11, 31);\n }\n return {\n fromDate: fromDate ? startOfDay(fromDate) : undefined,\n toDate: toDate ? startOfDay(toDate) : undefined\n };\n}\n\n/**\n * The DayPicker context shares the props passed to DayPicker within internal\n * and custom components. It is used to set the default values and perform\n * one-time calculations required to render the days.\n *\n * Access to this context from the {@link useDayPicker} hook.\n */\nvar DayPickerContext = createContext(undefined);\n/**\n * The provider for the {@link DayPickerContext}, assigning the defaults from the\n * initial DayPicker props.\n */\nfunction DayPickerProvider(props) {\n var _a;\n var initialProps = props.initialProps;\n var defaultContextValues = getDefaultContextValues();\n var _b = parseFromToProps(initialProps), fromDate = _b.fromDate, toDate = _b.toDate;\n var captionLayout = (_a = initialProps.captionLayout) !== null && _a !== void 0 ? _a : defaultContextValues.captionLayout;\n if (captionLayout !== 'buttons' && (!fromDate || !toDate)) {\n // When no from/to dates are set, the caption is always buttons\n captionLayout = 'buttons';\n }\n var onSelect;\n if (isDayPickerSingle(initialProps) ||\n isDayPickerMultiple(initialProps) ||\n isDayPickerRange(initialProps)) {\n onSelect = initialProps.onSelect;\n }\n var value = __assign(__assign(__assign({}, defaultContextValues), initialProps), { captionLayout: captionLayout, classNames: __assign(__assign({}, defaultContextValues.classNames), initialProps.classNames), components: __assign({}, initialProps.components), formatters: __assign(__assign({}, defaultContextValues.formatters), initialProps.formatters), fromDate: fromDate, labels: __assign(__assign({}, defaultContextValues.labels), initialProps.labels), mode: initialProps.mode || defaultContextValues.mode, modifiers: __assign(__assign({}, defaultContextValues.modifiers), initialProps.modifiers), modifiersClassNames: __assign(__assign({}, defaultContextValues.modifiersClassNames), initialProps.modifiersClassNames), onSelect: onSelect, styles: __assign(__assign({}, defaultContextValues.styles), initialProps.styles), toDate: toDate });\n return (jsx(DayPickerContext.Provider, { value: value, children: props.children }));\n}\n/**\n * Hook to access the {@link DayPickerContextValue}.\n *\n * Use the DayPicker context to access to the props passed to DayPicker inside\n * internal or custom components.\n */\nfunction useDayPicker() {\n var context = useContext(DayPickerContext);\n if (!context) {\n throw new Error(\"useDayPicker must be used within a DayPickerProvider.\");\n }\n return context;\n}\n\n/** Render the caption for the displayed month. This component is used when `captionLayout=\"buttons\"`. */\nfunction CaptionLabel(props) {\n var _a = useDayPicker(), locale = _a.locale, classNames = _a.classNames, styles = _a.styles, formatCaption = _a.formatters.formatCaption;\n return (jsx(\"div\", { className: classNames.caption_label, style: styles.caption_label, \"aria-live\": \"polite\", role: \"presentation\", id: props.id, children: formatCaption(props.displayMonth, { locale: locale }) }));\n}\n\n/**\n * Render the icon in the styled drop-down.\n */\nfunction IconDropdown(props) {\n return (jsx(\"svg\", __assign({ width: \"8px\", height: \"8px\", viewBox: \"0 0 120 120\", \"data-testid\": \"iconDropdown\" }, props, { children: jsx(\"path\", { d: \"M4.22182541,48.2218254 C8.44222828,44.0014225 15.2388494,43.9273804 19.5496459,47.9996989 L19.7781746,48.2218254 L60,88.443 L100.221825,48.2218254 C104.442228,44.0014225 111.238849,43.9273804 115.549646,47.9996989 L115.778175,48.2218254 C119.998577,52.4422283 120.07262,59.2388494 116.000301,63.5496459 L115.778175,63.7781746 L67.7781746,111.778175 C63.5577717,115.998577 56.7611506,116.07262 52.4503541,112.000301 L52.2218254,111.778175 L4.22182541,63.7781746 C-0.0739418023,59.4824074 -0.0739418023,52.5175926 4.22182541,48.2218254 Z\", fill: \"currentColor\", fillRule: \"nonzero\" }) })));\n}\n\n/**\n * Render a styled select component – displaying a caption and a custom\n * drop-down icon.\n */\nfunction Dropdown(props) {\n var _a, _b;\n var onChange = props.onChange, value = props.value, children = props.children, caption = props.caption, className = props.className, style = props.style;\n var dayPicker = useDayPicker();\n var IconDropdownComponent = (_b = (_a = dayPicker.components) === null || _a === void 0 ? void 0 : _a.IconDropdown) !== null && _b !== void 0 ? _b : IconDropdown;\n return (jsxs(\"div\", { className: className, style: style, children: [jsx(\"span\", { className: dayPicker.classNames.vhidden, children: props['aria-label'] }), jsx(\"select\", { name: props.name, \"aria-label\": props['aria-label'], className: dayPicker.classNames.dropdown, style: dayPicker.styles.dropdown, value: value, onChange: onChange, children: children }), jsxs(\"div\", { className: dayPicker.classNames.caption_label, style: dayPicker.styles.caption_label, \"aria-hidden\": \"true\", children: [caption, jsx(IconDropdownComponent, { className: dayPicker.classNames.dropdown_icon, style: dayPicker.styles.dropdown_icon })] })] }));\n}\n\n/** Render the dropdown to navigate between months. */\nfunction MonthsDropdown(props) {\n var _a;\n var _b = useDayPicker(), fromDate = _b.fromDate, toDate = _b.toDate, styles = _b.styles, locale = _b.locale, formatMonthCaption = _b.formatters.formatMonthCaption, classNames = _b.classNames, components = _b.components, labelMonthDropdown = _b.labels.labelMonthDropdown;\n // Dropdown should appear only when both from/toDate is set\n if (!fromDate)\n return jsx(Fragment, {});\n if (!toDate)\n return jsx(Fragment, {});\n var dropdownMonths = [];\n if (isSameYear(fromDate, toDate)) {\n // only display the months included in the range\n var date = startOfMonth(fromDate);\n for (var month = fromDate.getMonth(); month <= toDate.getMonth(); month++) {\n dropdownMonths.push(setMonth(date, month));\n }\n }\n else {\n // display all the 12 months\n var date = startOfMonth(new Date()); // Any date should be OK, as we just need the year\n for (var month = 0; month <= 11; month++) {\n dropdownMonths.push(setMonth(date, month));\n }\n }\n var handleChange = function (e) {\n var selectedMonth = Number(e.target.value);\n var newMonth = setMonth(startOfMonth(props.displayMonth), selectedMonth);\n props.onChange(newMonth);\n };\n var DropdownComponent = (_a = components === null || components === void 0 ? void 0 : components.Dropdown) !== null && _a !== void 0 ? _a : Dropdown;\n return (jsx(DropdownComponent, { name: \"months\", \"aria-label\": labelMonthDropdown(), className: classNames.dropdown_month, style: styles.dropdown_month, onChange: handleChange, value: props.displayMonth.getMonth(), caption: formatMonthCaption(props.displayMonth, { locale: locale }), children: dropdownMonths.map(function (m) { return (jsx(\"option\", { value: m.getMonth(), children: formatMonthCaption(m, { locale: locale }) }, m.getMonth())); }) }));\n}\n\n/**\n * Render a dropdown to change the year. Take in account the `nav.fromDate` and\n * `toDate` from context.\n */\nfunction YearsDropdown(props) {\n var _a;\n var displayMonth = props.displayMonth;\n var _b = useDayPicker(), fromDate = _b.fromDate, toDate = _b.toDate, locale = _b.locale, styles = _b.styles, classNames = _b.classNames, components = _b.components, formatYearCaption = _b.formatters.formatYearCaption, labelYearDropdown = _b.labels.labelYearDropdown;\n var years = [];\n // Dropdown should appear only when both from/toDate is set\n if (!fromDate)\n return jsx(Fragment, {});\n if (!toDate)\n return jsx(Fragment, {});\n var fromYear = fromDate.getFullYear();\n var toYear = toDate.getFullYear();\n for (var year = fromYear; year <= toYear; year++) {\n years.push(setYear(startOfYear(new Date()), year));\n }\n var handleChange = function (e) {\n var newMonth = setYear(startOfMonth(displayMonth), Number(e.target.value));\n props.onChange(newMonth);\n };\n var DropdownComponent = (_a = components === null || components === void 0 ? void 0 : components.Dropdown) !== null && _a !== void 0 ? _a : Dropdown;\n return (jsx(DropdownComponent, { name: \"years\", \"aria-label\": labelYearDropdown(), className: classNames.dropdown_year, style: styles.dropdown_year, onChange: handleChange, value: displayMonth.getFullYear(), caption: formatYearCaption(displayMonth, { locale: locale }), children: years.map(function (year) { return (jsx(\"option\", { value: year.getFullYear(), children: formatYearCaption(year, { locale: locale }) }, year.getFullYear())); }) }));\n}\n\n/**\n * Helper hook for using controlled/uncontrolled values from a component props.\n *\n * When the value is not controlled, pass `undefined` as `controlledValue` and\n * use the returned setter to update it.\n *\n * When the value is controlled, pass the controlled value as second\n * argument, which will be always returned as `value`.\n */\nfunction useControlledValue(defaultValue, controlledValue) {\n var _a = useState(defaultValue), uncontrolledValue = _a[0], setValue = _a[1];\n var value = controlledValue === undefined ? uncontrolledValue : controlledValue;\n return [value, setValue];\n}\n\n/** Return the initial month according to the given options. */\nfunction getInitialMonth(context) {\n var month = context.month, defaultMonth = context.defaultMonth, today = context.today;\n var initialMonth = month || defaultMonth || today || new Date();\n var toDate = context.toDate, fromDate = context.fromDate, _a = context.numberOfMonths, numberOfMonths = _a === void 0 ? 1 : _a;\n // Fix the initialMonth if is after the to-date\n if (toDate && differenceInCalendarMonths(toDate, initialMonth) < 0) {\n var offset = -1 * (numberOfMonths - 1);\n initialMonth = addMonths(toDate, offset);\n }\n // Fix the initialMonth if is before the from-date\n if (fromDate && differenceInCalendarMonths(initialMonth, fromDate) < 0) {\n initialMonth = fromDate;\n }\n return startOfMonth(initialMonth);\n}\n\n/** Controls the navigation state. */\nfunction useNavigationState() {\n var context = useDayPicker();\n var initialMonth = getInitialMonth(context);\n var _a = useControlledValue(initialMonth, context.month), month = _a[0], setMonth = _a[1];\n var goToMonth = function (date) {\n var _a;\n if (context.disableNavigation)\n return;\n var month = startOfMonth(date);\n setMonth(month);\n (_a = context.onMonthChange) === null || _a === void 0 ? void 0 : _a.call(context, month);\n };\n return [month, goToMonth];\n}\n\n/**\n * Return the months to display in the component according to the number of\n * months and the from/to date.\n */\nfunction getDisplayMonths(month, _a) {\n var reverseMonths = _a.reverseMonths, numberOfMonths = _a.numberOfMonths;\n var start = startOfMonth(month);\n var end = startOfMonth(addMonths(start, numberOfMonths));\n var monthsDiff = differenceInCalendarMonths(end, start);\n var months = [];\n for (var i = 0; i < monthsDiff; i++) {\n var nextMonth = addMonths(start, i);\n months.push(nextMonth);\n }\n if (reverseMonths)\n months = months.reverse();\n return months;\n}\n\n/**\n * Returns the next month the user can navigate to according to the given\n * options.\n *\n * Please note that the next month is not always the next calendar month:\n *\n * - if after the `toDate` range, is undefined;\n * - if the navigation is paged, is the number of months displayed ahead.\n *\n */\nfunction getNextMonth(startingMonth, options) {\n if (options.disableNavigation) {\n return undefined;\n }\n var toDate = options.toDate, pagedNavigation = options.pagedNavigation, _a = options.numberOfMonths, numberOfMonths = _a === void 0 ? 1 : _a;\n var offset = pagedNavigation ? numberOfMonths : 1;\n var month = startOfMonth(startingMonth);\n if (!toDate) {\n return addMonths(month, offset);\n }\n var monthsDiff = differenceInCalendarMonths(toDate, startingMonth);\n if (monthsDiff < numberOfMonths) {\n return undefined;\n }\n // Jump forward as the number of months when paged navigation\n return addMonths(month, offset);\n}\n\n/**\n * Returns the next previous the user can navigate to, according to the given\n * options.\n *\n * Please note that the previous month is not always the previous calendar\n * month:\n *\n * - if before the `fromDate` date, is `undefined`;\n * - if the navigation is paged, is the number of months displayed before.\n *\n */\nfunction getPreviousMonth(startingMonth, options) {\n if (options.disableNavigation) {\n return undefined;\n }\n var fromDate = options.fromDate, pagedNavigation = options.pagedNavigation, _a = options.numberOfMonths, numberOfMonths = _a === void 0 ? 1 : _a;\n var offset = pagedNavigation ? numberOfMonths : 1;\n var month = startOfMonth(startingMonth);\n if (!fromDate) {\n return addMonths(month, -offset);\n }\n var monthsDiff = differenceInCalendarMonths(month, fromDate);\n if (monthsDiff <= 0) {\n return undefined;\n }\n // Jump back as the number of months when paged navigation\n return addMonths(month, -offset);\n}\n\n/**\n * The Navigation context shares details and methods to navigate the months in DayPicker.\n * Access this context from the {@link useNavigation} hook.\n */\nvar NavigationContext = createContext(undefined);\n/** Provides the values for the {@link NavigationContext}. */\nfunction NavigationProvider(props) {\n var dayPicker = useDayPicker();\n var _a = useNavigationState(), currentMonth = _a[0], goToMonth = _a[1];\n var displayMonths = getDisplayMonths(currentMonth, dayPicker);\n var nextMonth = getNextMonth(currentMonth, dayPicker);\n var previousMonth = getPreviousMonth(currentMonth, dayPicker);\n var isDateDisplayed = function (date) {\n return displayMonths.some(function (displayMonth) {\n return isSameMonth(date, displayMonth);\n });\n };\n var goToDate = function (date, refDate) {\n if (isDateDisplayed(date)) {\n return;\n }\n if (refDate && isBefore(date, refDate)) {\n goToMonth(addMonths(date, 1 + dayPicker.numberOfMonths * -1));\n }\n else {\n goToMonth(date);\n }\n };\n var value = {\n currentMonth: currentMonth,\n displayMonths: displayMonths,\n goToMonth: goToMonth,\n goToDate: goToDate,\n previousMonth: previousMonth,\n nextMonth: nextMonth,\n isDateDisplayed: isDateDisplayed\n };\n return (jsx(NavigationContext.Provider, { value: value, children: props.children }));\n}\n/**\n * Hook to access the {@link NavigationContextValue}. Use this hook to navigate\n * between months or years in DayPicker.\n *\n * This hook is meant to be used inside internal or custom components.\n */\nfunction useNavigation() {\n var context = useContext(NavigationContext);\n if (!context) {\n throw new Error('useNavigation must be used within a NavigationProvider');\n }\n return context;\n}\n\n/**\n * Render a caption with the dropdowns to navigate between months and years.\n */\nfunction CaptionDropdowns(props) {\n var _a;\n var _b = useDayPicker(), classNames = _b.classNames, styles = _b.styles, components = _b.components;\n var goToMonth = useNavigation().goToMonth;\n var handleMonthChange = function (newMonth) {\n goToMonth(addMonths(newMonth, props.displayIndex ? -props.displayIndex : 0));\n };\n var CaptionLabelComponent = (_a = components === null || components === void 0 ? void 0 : components.CaptionLabel) !== null && _a !== void 0 ? _a : CaptionLabel;\n var captionLabel = (jsx(CaptionLabelComponent, { id: props.id, displayMonth: props.displayMonth }));\n return (jsxs(\"div\", { className: classNames.caption_dropdowns, style: styles.caption_dropdowns, children: [jsx(\"div\", { className: classNames.vhidden, children: captionLabel }), jsx(MonthsDropdown, { onChange: handleMonthChange, displayMonth: props.displayMonth }), jsx(YearsDropdown, { onChange: handleMonthChange, displayMonth: props.displayMonth })] }));\n}\n\n/**\n * Render the \"previous month\" button in the navigation.\n */\nfunction IconLeft(props) {\n return (jsx(\"svg\", __assign({ width: \"16px\", height: \"16px\", viewBox: \"0 0 120 120\" }, props, { children: jsx(\"path\", { d: \"M69.490332,3.34314575 C72.6145263,0.218951416 77.6798462,0.218951416 80.8040405,3.34314575 C83.8617626,6.40086786 83.9268205,11.3179931 80.9992143,14.4548388 L80.8040405,14.6568542 L35.461,60 L80.8040405,105.343146 C83.8617626,108.400868 83.9268205,113.317993 80.9992143,116.454839 L80.8040405,116.656854 C77.7463184,119.714576 72.8291931,119.779634 69.6923475,116.852028 L69.490332,116.656854 L18.490332,65.6568542 C15.4326099,62.5991321 15.367552,57.6820069 18.2951583,54.5451612 L18.490332,54.3431458 L69.490332,3.34314575 Z\", fill: \"currentColor\", fillRule: \"nonzero\" }) })));\n}\n\n/**\n * Render the \"next month\" button in the navigation.\n */\nfunction IconRight(props) {\n return (jsx(\"svg\", __assign({ width: \"16px\", height: \"16px\", viewBox: \"0 0 120 120\" }, props, { children: jsx(\"path\", { d: \"M49.8040405,3.34314575 C46.6798462,0.218951416 41.6145263,0.218951416 38.490332,3.34314575 C35.4326099,6.40086786 35.367552,11.3179931 38.2951583,14.4548388 L38.490332,14.6568542 L83.8333725,60 L38.490332,105.343146 C35.4326099,108.400868 35.367552,113.317993 38.2951583,116.454839 L38.490332,116.656854 C41.5480541,119.714576 46.4651794,119.779634 49.602025,116.852028 L49.8040405,116.656854 L100.804041,65.6568542 C103.861763,62.5991321 103.926821,57.6820069 100.999214,54.5451612 L100.804041,54.3431458 L49.8040405,3.34314575 Z\", fill: \"currentColor\" }) })));\n}\n\n/** Render a button HTML element applying the reset class name. */\nvar Button = forwardRef(function (props, ref) {\n var _a = useDayPicker(), classNames = _a.classNames, styles = _a.styles;\n var classNamesArr = [classNames.button_reset, classNames.button];\n if (props.className) {\n classNamesArr.push(props.className);\n }\n var className = classNamesArr.join(' ');\n var style = __assign(__assign({}, styles.button_reset), styles.button);\n if (props.style) {\n Object.assign(style, props.style);\n }\n return (jsx(\"button\", __assign({}, props, { ref: ref, type: \"button\", className: className, style: style })));\n});\n\n/** A component rendering the navigation buttons or the drop-downs. */\nfunction Navigation(props) {\n var _a, _b;\n var _c = useDayPicker(), dir = _c.dir, locale = _c.locale, classNames = _c.classNames, styles = _c.styles, _d = _c.labels, labelPrevious = _d.labelPrevious, labelNext = _d.labelNext, components = _c.components;\n if (!props.nextMonth && !props.previousMonth) {\n return jsx(Fragment, {});\n }\n var previousLabel = labelPrevious(props.previousMonth, { locale: locale });\n var previousClassName = [\n classNames.nav_button,\n classNames.nav_button_previous\n ].join(' ');\n var nextLabel = labelNext(props.nextMonth, { locale: locale });\n var nextClassName = [\n classNames.nav_button,\n classNames.nav_button_next\n ].join(' ');\n var IconRightComponent = (_a = components === null || components === void 0 ? void 0 : components.IconRight) !== null && _a !== void 0 ? _a : IconRight;\n var IconLeftComponent = (_b = components === null || components === void 0 ? void 0 : components.IconLeft) !== null && _b !== void 0 ? _b : IconLeft;\n return (jsxs(\"div\", { className: classNames.nav, style: styles.nav, children: [!props.hidePrevious && (jsx(Button, { name: \"previous-month\", \"aria-label\": previousLabel, className: previousClassName, style: styles.nav_button_previous, disabled: !props.previousMonth, onClick: props.onPreviousClick, children: dir === 'rtl' ? (jsx(IconRightComponent, { className: classNames.nav_icon, style: styles.nav_icon })) : (jsx(IconLeftComponent, { className: classNames.nav_icon, style: styles.nav_icon })) })), !props.hideNext && (jsx(Button, { name: \"next-month\", \"aria-label\": nextLabel, className: nextClassName, style: styles.nav_button_next, disabled: !props.nextMonth, onClick: props.onNextClick, children: dir === 'rtl' ? (jsx(IconLeftComponent, { className: classNames.nav_icon, style: styles.nav_icon })) : (jsx(IconRightComponent, { className: classNames.nav_icon, style: styles.nav_icon })) }))] }));\n}\n\n/**\n * Render a caption with a button-based navigation.\n */\nfunction CaptionNavigation(props) {\n var numberOfMonths = useDayPicker().numberOfMonths;\n var _a = useNavigation(), previousMonth = _a.previousMonth, nextMonth = _a.nextMonth, goToMonth = _a.goToMonth, displayMonths = _a.displayMonths;\n var displayIndex = displayMonths.findIndex(function (month) {\n return isSameMonth(props.displayMonth, month);\n });\n var isFirst = displayIndex === 0;\n var isLast = displayIndex === displayMonths.length - 1;\n var hideNext = numberOfMonths > 1 && (isFirst || !isLast);\n var hidePrevious = numberOfMonths > 1 && (isLast || !isFirst);\n var handlePreviousClick = function () {\n if (!previousMonth)\n return;\n goToMonth(previousMonth);\n };\n var handleNextClick = function () {\n if (!nextMonth)\n return;\n goToMonth(nextMonth);\n };\n return (jsx(Navigation, { displayMonth: props.displayMonth, hideNext: hideNext, hidePrevious: hidePrevious, nextMonth: nextMonth, previousMonth: previousMonth, onPreviousClick: handlePreviousClick, onNextClick: handleNextClick }));\n}\n\n/**\n * Render the caption of a month. The caption has a different layout when\n * setting the {@link DayPickerBase.captionLayout} prop.\n */\nfunction Caption(props) {\n var _a;\n var _b = useDayPicker(), classNames = _b.classNames, disableNavigation = _b.disableNavigation, styles = _b.styles, captionLayout = _b.captionLayout, components = _b.components;\n var CaptionLabelComponent = (_a = components === null || components === void 0 ? void 0 : components.CaptionLabel) !== null && _a !== void 0 ? _a : CaptionLabel;\n var caption;\n if (disableNavigation) {\n caption = (jsx(CaptionLabelComponent, { id: props.id, displayMonth: props.displayMonth }));\n }\n else if (captionLayout === 'dropdown') {\n caption = (jsx(CaptionDropdowns, { displayMonth: props.displayMonth, id: props.id }));\n }\n else if (captionLayout === 'dropdown-buttons') {\n caption = (jsxs(Fragment, { children: [jsx(CaptionDropdowns, { displayMonth: props.displayMonth, displayIndex: props.displayIndex, id: props.id }), jsx(CaptionNavigation, { displayMonth: props.displayMonth, displayIndex: props.displayIndex, id: props.id })] }));\n }\n else {\n caption = (jsxs(Fragment, { children: [jsx(CaptionLabelComponent, { id: props.id, displayMonth: props.displayMonth, displayIndex: props.displayIndex }), jsx(CaptionNavigation, { displayMonth: props.displayMonth, id: props.id })] }));\n }\n return (jsx(\"div\", { className: classNames.caption, style: styles.caption, children: caption }));\n}\n\n/** Render the Footer component (empty as default).*/\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction Footer(props) {\n var _a = useDayPicker(), footer = _a.footer, styles = _a.styles, tfoot = _a.classNames.tfoot;\n if (!footer)\n return jsx(Fragment, {});\n return (jsx(\"tfoot\", { className: tfoot, style: styles.tfoot, children: jsx(\"tr\", { children: jsx(\"td\", { colSpan: 8, children: footer }) }) }));\n}\n\n/**\n * Generate a series of 7 days, starting from the week, to use for formatting\n * the weekday names (Monday, Tuesday, etc.).\n */\nfunction getWeekdays(locale, \n/** The index of the first day of the week (0 - Sunday). */\nweekStartsOn, \n/** Use ISOWeek instead of locale/ */\nISOWeek) {\n var start = ISOWeek\n ? startOfISOWeek(new Date())\n : startOfWeek(new Date(), { locale: locale, weekStartsOn: weekStartsOn });\n var days = [];\n for (var i = 0; i < 7; i++) {\n var day = addDays(start, i);\n days.push(day);\n }\n return days;\n}\n\n/**\n * Render the HeadRow component - i.e. the table head row with the weekday names.\n */\nfunction HeadRow() {\n var _a = useDayPicker(), classNames = _a.classNames, styles = _a.styles, showWeekNumber = _a.showWeekNumber, locale = _a.locale, weekStartsOn = _a.weekStartsOn, ISOWeek = _a.ISOWeek, formatWeekdayName = _a.formatters.formatWeekdayName, labelWeekday = _a.labels.labelWeekday;\n var weekdays = getWeekdays(locale, weekStartsOn, ISOWeek);\n return (jsxs(\"tr\", { style: styles.head_row, className: classNames.head_row, children: [showWeekNumber && (jsx(\"td\", { style: styles.head_cell, className: classNames.head_cell })), weekdays.map(function (weekday, i) { return (jsx(\"th\", { scope: \"col\", className: classNames.head_cell, style: styles.head_cell, \"aria-label\": labelWeekday(weekday, { locale: locale }), children: formatWeekdayName(weekday, { locale: locale }) }, i)); })] }));\n}\n\n/** Render the table head. */\nfunction Head() {\n var _a;\n var _b = useDayPicker(), classNames = _b.classNames, styles = _b.styles, components = _b.components;\n var HeadRowComponent = (_a = components === null || components === void 0 ? void 0 : components.HeadRow) !== null && _a !== void 0 ? _a : HeadRow;\n return (jsx(\"thead\", { style: styles.head, className: classNames.head, children: jsx(HeadRowComponent, {}) }));\n}\n\n/** Render the content of the day cell. */\nfunction DayContent(props) {\n var _a = useDayPicker(), locale = _a.locale, formatDay = _a.formatters.formatDay;\n return jsx(Fragment, { children: formatDay(props.date, { locale: locale }) });\n}\n\n/**\n * The SelectMultiple context shares details about the selected days when in\n * multiple selection mode.\n *\n * Access this context from the {@link useSelectMultiple} hook.\n */\nvar SelectMultipleContext = createContext(undefined);\n/** Provides the values for the {@link SelectMultipleContext}. */\nfunction SelectMultipleProvider(props) {\n if (!isDayPickerMultiple(props.initialProps)) {\n var emptyContextValue = {\n selected: undefined,\n modifiers: {\n disabled: []\n }\n };\n return (jsx(SelectMultipleContext.Provider, { value: emptyContextValue, children: props.children }));\n }\n return (jsx(SelectMultipleProviderInternal, { initialProps: props.initialProps, children: props.children }));\n}\nfunction SelectMultipleProviderInternal(_a) {\n var initialProps = _a.initialProps, children = _a.children;\n var selected = initialProps.selected, min = initialProps.min, max = initialProps.max;\n var onDayClick = function (day, activeModifiers, e) {\n var _a, _b;\n (_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day, activeModifiers, e);\n var isMinSelected = Boolean(activeModifiers.selected && min && (selected === null || selected === void 0 ? void 0 : selected.length) === min);\n if (isMinSelected) {\n return;\n }\n var isMaxSelected = Boolean(!activeModifiers.selected && max && (selected === null || selected === void 0 ? void 0 : selected.length) === max);\n if (isMaxSelected) {\n return;\n }\n var selectedDays = selected ? __spreadArray([], selected, true) : [];\n if (activeModifiers.selected) {\n var index = selectedDays.findIndex(function (selectedDay) {\n return isSameDay(day, selectedDay);\n });\n selectedDays.splice(index, 1);\n }\n else {\n selectedDays.push(day);\n }\n (_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps, selectedDays, day, activeModifiers, e);\n };\n var modifiers = {\n disabled: []\n };\n if (selected) {\n modifiers.disabled.push(function (day) {\n var isMaxSelected = max && selected.length > max - 1;\n var isSelected = selected.some(function (selectedDay) {\n return isSameDay(selectedDay, day);\n });\n return Boolean(isMaxSelected && !isSelected);\n });\n }\n var contextValue = {\n selected: selected,\n onDayClick: onDayClick,\n modifiers: modifiers\n };\n return (jsx(SelectMultipleContext.Provider, { value: contextValue, children: children }));\n}\n/**\n * Hook to access the {@link SelectMultipleContextValue}.\n *\n * This hook is meant to be used inside internal or custom components.\n */\nfunction useSelectMultiple() {\n var context = useContext(SelectMultipleContext);\n if (!context) {\n throw new Error('useSelectMultiple must be used within a SelectMultipleProvider');\n }\n return context;\n}\n\n/**\n * Add a day to an existing range.\n *\n * The returned range takes in account the `undefined` values and if the added\n * day is already present in the range.\n */\nfunction addToRange(day, range) {\n var _a = range || {}, from = _a.from, to = _a.to;\n if (from && to) {\n if (isSameDay(to, day) && isSameDay(from, day)) {\n return undefined;\n }\n if (isSameDay(to, day)) {\n return { from: to, to: undefined };\n }\n if (isSameDay(from, day)) {\n return undefined;\n }\n if (isAfter(from, day)) {\n return { from: day, to: to };\n }\n return { from: from, to: day };\n }\n if (to) {\n if (isAfter(day, to)) {\n return { from: to, to: day };\n }\n return { from: day, to: to };\n }\n if (from) {\n if (isBefore(day, from)) {\n return { from: day, to: from };\n }\n return { from: from, to: day };\n }\n return { from: day, to: undefined };\n}\n\n/**\n * The SelectRange context shares details about the selected days when in\n * range selection mode.\n *\n * Access this context from the {@link useSelectRange} hook.\n */\nvar SelectRangeContext = createContext(undefined);\n/** Provides the values for the {@link SelectRangeProvider}. */\nfunction SelectRangeProvider(props) {\n if (!isDayPickerRange(props.initialProps)) {\n var emptyContextValue = {\n selected: undefined,\n modifiers: {\n range_start: [],\n range_end: [],\n range_middle: [],\n disabled: []\n }\n };\n return (jsx(SelectRangeContext.Provider, { value: emptyContextValue, children: props.children }));\n }\n return (jsx(SelectRangeProviderInternal, { initialProps: props.initialProps, children: props.children }));\n}\nfunction SelectRangeProviderInternal(_a) {\n var initialProps = _a.initialProps, children = _a.children;\n var selected = initialProps.selected;\n var _b = selected || {}, selectedFrom = _b.from, selectedTo = _b.to;\n var min = initialProps.min;\n var max = initialProps.max;\n var onDayClick = function (day, activeModifiers, e) {\n var _a, _b;\n (_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day, activeModifiers, e);\n var newRange = addToRange(day, selected);\n (_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps, newRange, day, activeModifiers, e);\n };\n var modifiers = {\n range_start: [],\n range_end: [],\n range_middle: [],\n disabled: []\n };\n if (selectedFrom) {\n modifiers.range_start = [selectedFrom];\n if (!selectedTo) {\n modifiers.range_end = [selectedFrom];\n }\n else {\n modifiers.range_end = [selectedTo];\n if (!isSameDay(selectedFrom, selectedTo)) {\n modifiers.range_middle = [\n {\n after: selectedFrom,\n before: selectedTo\n }\n ];\n }\n }\n }\n else if (selectedTo) {\n modifiers.range_start = [selectedTo];\n modifiers.range_end = [selectedTo];\n }\n if (min) {\n if (selectedFrom && !selectedTo) {\n modifiers.disabled.push({\n after: subDays(selectedFrom, min - 1),\n before: addDays(selectedFrom, min - 1)\n });\n }\n if (selectedFrom && selectedTo) {\n modifiers.disabled.push({\n after: selectedFrom,\n before: addDays(selectedFrom, min - 1)\n });\n }\n if (!selectedFrom && selectedTo) {\n modifiers.disabled.push({\n after: subDays(selectedTo, min - 1),\n before: addDays(selectedTo, min - 1)\n });\n }\n }\n if (max) {\n if (selectedFrom && !selectedTo) {\n modifiers.disabled.push({\n before: addDays(selectedFrom, -max + 1)\n });\n modifiers.disabled.push({\n after: addDays(selectedFrom, max - 1)\n });\n }\n if (selectedFrom && selectedTo) {\n var selectedCount = differenceInCalendarDays(selectedTo, selectedFrom) + 1;\n var offset = max - selectedCount;\n modifiers.disabled.push({\n before: subDays(selectedFrom, offset)\n });\n modifiers.disabled.push({\n after: addDays(selectedTo, offset)\n });\n }\n if (!selectedFrom && selectedTo) {\n modifiers.disabled.push({\n before: addDays(selectedTo, -max + 1)\n });\n modifiers.disabled.push({\n after: addDays(selectedTo, max - 1)\n });\n }\n }\n return (jsx(SelectRangeContext.Provider, { value: { selected: selected, onDayClick: onDayClick, modifiers: modifiers }, children: children }));\n}\n/**\n * Hook to access the {@link SelectRangeContextValue}.\n *\n * This hook is meant to be used inside internal or custom components.\n */\nfunction useSelectRange() {\n var context = useContext(SelectRangeContext);\n if (!context) {\n throw new Error('useSelectRange must be used within a SelectRangeProvider');\n }\n return context;\n}\n\n/** Normalize to array a matcher input. */\nfunction matcherToArray(matcher) {\n if (Array.isArray(matcher)) {\n return __spreadArray([], matcher, true);\n }\n else if (matcher !== undefined) {\n return [matcher];\n }\n else {\n return [];\n }\n}\n\n/** Create CustomModifiers from dayModifiers */\nfunction getCustomModifiers(dayModifiers) {\n var customModifiers = {};\n Object.entries(dayModifiers).forEach(function (_a) {\n var modifier = _a[0], matcher = _a[1];\n customModifiers[modifier] = matcherToArray(matcher);\n });\n return customModifiers;\n}\n\n/** The name of the modifiers that are used internally by DayPicker. */\nvar InternalModifier;\n(function (InternalModifier) {\n InternalModifier[\"Outside\"] = \"outside\";\n /** Name of the modifier applied to the disabled days, using the `disabled` prop. */\n InternalModifier[\"Disabled\"] = \"disabled\";\n /** Name of the modifier applied to the selected days using the `selected` prop). */\n InternalModifier[\"Selected\"] = \"selected\";\n /** Name of the modifier applied to the hidden days using the `hidden` prop). */\n InternalModifier[\"Hidden\"] = \"hidden\";\n /** Name of the modifier applied to the day specified using the `today` prop). */\n InternalModifier[\"Today\"] = \"today\";\n /** The modifier applied to the day starting a selected range, when in range selection mode. */\n InternalModifier[\"RangeStart\"] = \"range_start\";\n /** The modifier applied to the day ending a selected range, when in range selection mode. */\n InternalModifier[\"RangeEnd\"] = \"range_end\";\n /** The modifier applied to the days between the start and the end of a selected range, when in range selection mode. */\n InternalModifier[\"RangeMiddle\"] = \"range_middle\";\n})(InternalModifier || (InternalModifier = {}));\n\nvar Selected = InternalModifier.Selected, Disabled = InternalModifier.Disabled, Hidden = InternalModifier.Hidden, Today = InternalModifier.Today, RangeEnd = InternalModifier.RangeEnd, RangeMiddle = InternalModifier.RangeMiddle, RangeStart = InternalModifier.RangeStart, Outside = InternalModifier.Outside;\n/** Return the {@link InternalModifiers} from the DayPicker and select contexts. */\nfunction getInternalModifiers(dayPicker, selectMultiple, selectRange) {\n var _a;\n var internalModifiers = (_a = {},\n _a[Selected] = matcherToArray(dayPicker.selected),\n _a[Disabled] = matcherToArray(dayPicker.disabled),\n _a[Hidden] = matcherToArray(dayPicker.hidden),\n _a[Today] = [dayPicker.today],\n _a[RangeEnd] = [],\n _a[RangeMiddle] = [],\n _a[RangeStart] = [],\n _a[Outside] = [],\n _a);\n if (dayPicker.fromDate) {\n internalModifiers[Disabled].push({ before: dayPicker.fromDate });\n }\n if (dayPicker.toDate) {\n internalModifiers[Disabled].push({ after: dayPicker.toDate });\n }\n if (isDayPickerMultiple(dayPicker)) {\n internalModifiers[Disabled] = internalModifiers[Disabled].concat(selectMultiple.modifiers[Disabled]);\n }\n else if (isDayPickerRange(dayPicker)) {\n internalModifiers[Disabled] = internalModifiers[Disabled].concat(selectRange.modifiers[Disabled]);\n internalModifiers[RangeStart] = selectRange.modifiers[RangeStart];\n internalModifiers[RangeMiddle] = selectRange.modifiers[RangeMiddle];\n internalModifiers[RangeEnd] = selectRange.modifiers[RangeEnd];\n }\n return internalModifiers;\n}\n\n/** The Modifiers context store the modifiers used in DayPicker. To access the value of this context, use {@link useModifiers}. */\nvar ModifiersContext = createContext(undefined);\n/** Provide the value for the {@link ModifiersContext}. */\nfunction ModifiersProvider(props) {\n var dayPicker = useDayPicker();\n var selectMultiple = useSelectMultiple();\n var selectRange = useSelectRange();\n var internalModifiers = getInternalModifiers(dayPicker, selectMultiple, selectRange);\n var customModifiers = getCustomModifiers(dayPicker.modifiers);\n var modifiers = __assign(__assign({}, internalModifiers), customModifiers);\n return (jsx(ModifiersContext.Provider, { value: modifiers, children: props.children }));\n}\n/**\n * Return the modifiers used by DayPicker.\n *\n * This hook is meant to be used inside internal or custom components.\n * Requires to be wrapped into {@link ModifiersProvider}.\n *\n */\nfunction useModifiers() {\n var context = useContext(ModifiersContext);\n if (!context) {\n throw new Error('useModifiers must be used within a ModifiersProvider');\n }\n return context;\n}\n\n/** Returns true if `matcher` is of type {@link DateInterval}. */\nfunction isDateInterval(matcher) {\n return Boolean(matcher &&\n typeof matcher === 'object' &&\n 'before' in matcher &&\n 'after' in matcher);\n}\n/** Returns true if `value` is a {@link DateRange} type. */\nfunction isDateRange(value) {\n return Boolean(value && typeof value === 'object' && 'from' in value);\n}\n/** Returns true if `value` is of type {@link DateAfter}. */\nfunction isDateAfterType(value) {\n return Boolean(value && typeof value === 'object' && 'after' in value);\n}\n/** Returns true if `value` is of type {@link DateBefore}. */\nfunction isDateBeforeType(value) {\n return Boolean(value && typeof value === 'object' && 'before' in value);\n}\n/** Returns true if `value` is a {@link DayOfWeek} type. */\nfunction isDayOfWeekType(value) {\n return Boolean(value && typeof value === 'object' && 'dayOfWeek' in value);\n}\n\n/** Return `true` whether `date` is inside `range`. */\nfunction isDateInRange(date, range) {\n var _a;\n var from = range.from, to = range.to;\n if (from && to) {\n var isRangeInverted = differenceInCalendarDays(to, from) < 0;\n if (isRangeInverted) {\n _a = [to, from], from = _a[0], to = _a[1];\n }\n var isInRange = differenceInCalendarDays(date, from) >= 0 &&\n differenceInCalendarDays(to, date) >= 0;\n return isInRange;\n }\n if (to) {\n return isSameDay(to, date);\n }\n if (from) {\n return isSameDay(from, date);\n }\n return false;\n}\n\n/** Returns true if `value` is a Date type. */\nfunction isDateType(value) {\n return isDate(value);\n}\n/** Returns true if `value` is an array of valid dates. */\nfunction isArrayOfDates(value) {\n return Array.isArray(value) && value.every(isDate);\n}\n/**\n * Returns whether a day matches against at least one of the given Matchers.\n *\n * ```\n * const day = new Date(2022, 5, 19);\n * const matcher1: DateRange = {\n * from: new Date(2021, 12, 21),\n * to: new Date(2021, 12, 30)\n * }\n * const matcher2: DateRange = {\n * from: new Date(2022, 5, 1),\n * to: new Date(2022, 5, 23)\n * }\n *\n * const isMatch(day, [matcher1, matcher2]); // true, since day is in the matcher1 range.\n * ```\n * */\nfunction isMatch(day, matchers) {\n return matchers.some(function (matcher) {\n if (typeof matcher === 'boolean') {\n return matcher;\n }\n if (isDateType(matcher)) {\n return isSameDay(day, matcher);\n }\n if (isArrayOfDates(matcher)) {\n return matcher.includes(day);\n }\n if (isDateRange(matcher)) {\n return isDateInRange(day, matcher);\n }\n if (isDayOfWeekType(matcher)) {\n return matcher.dayOfWeek.includes(day.getDay());\n }\n if (isDateInterval(matcher)) {\n var diffBefore = differenceInCalendarDays(matcher.before, day);\n var diffAfter = differenceInCalendarDays(matcher.after, day);\n var isDayBefore = diffBefore > 0;\n var isDayAfter = diffAfter < 0;\n var isClosedInterval = isAfter(matcher.before, matcher.after);\n if (isClosedInterval) {\n return isDayAfter && isDayBefore;\n }\n else {\n return isDayBefore || isDayAfter;\n }\n }\n if (isDateAfterType(matcher)) {\n return differenceInCalendarDays(day, matcher.after) > 0;\n }\n if (isDateBeforeType(matcher)) {\n return differenceInCalendarDays(matcher.before, day) > 0;\n }\n if (typeof matcher === 'function') {\n return matcher(day);\n }\n return false;\n });\n}\n\n/** Return the active modifiers for the given day. */\nfunction getActiveModifiers(day, \n/** The modifiers to match for the given date. */\nmodifiers, \n/** The month where the day is displayed, to add the \"outside\" modifiers. */\ndisplayMonth) {\n var matchedModifiers = Object.keys(modifiers).reduce(function (result, key) {\n var modifier = modifiers[key];\n if (isMatch(day, modifier)) {\n result.push(key);\n }\n return result;\n }, []);\n var activeModifiers = {};\n matchedModifiers.forEach(function (modifier) { return (activeModifiers[modifier] = true); });\n if (displayMonth && !isSameMonth(day, displayMonth)) {\n activeModifiers.outside = true;\n }\n return activeModifiers;\n}\n\n/**\n * Returns the day that should be the target of the focus when DayPicker is\n * rendered the first time.\n *\n * TODO: this function doesn't consider if the day is outside the month. We\n * implemented this check in `useDayRender` but it should probably go here. See\n * https://github.com/gpbl/react-day-picker/pull/1576\n */\nfunction getInitialFocusTarget(displayMonths, modifiers) {\n var firstDayInMonth = startOfMonth(displayMonths[0]);\n var lastDayInMonth = endOfMonth(displayMonths[displayMonths.length - 1]);\n // TODO: cleanup code\n var firstFocusableDay;\n var today;\n var date = firstDayInMonth;\n while (date <= lastDayInMonth) {\n var activeModifiers = getActiveModifiers(date, modifiers);\n var isFocusable = !activeModifiers.disabled && !activeModifiers.hidden;\n if (!isFocusable) {\n date = addDays(date, 1);\n continue;\n }\n if (activeModifiers.selected) {\n return date;\n }\n if (activeModifiers.today && !today) {\n today = date;\n }\n if (!firstFocusableDay) {\n firstFocusableDay = date;\n }\n date = addDays(date, 1);\n }\n if (today) {\n return today;\n }\n else {\n return firstFocusableDay;\n }\n}\n\nvar MAX_RETRY = 365;\n/** Return the next date to be focused. */\nfunction getNextFocus(focusedDay, options) {\n var moveBy = options.moveBy, direction = options.direction, context = options.context, modifiers = options.modifiers, _a = options.retry, retry = _a === void 0 ? { count: 0, lastFocused: focusedDay } : _a;\n var weekStartsOn = context.weekStartsOn, fromDate = context.fromDate, toDate = context.toDate, locale = context.locale;\n var moveFns = {\n day: addDays,\n week: addWeeks,\n month: addMonths,\n year: addYears,\n startOfWeek: function (date) {\n return context.ISOWeek\n ? startOfISOWeek(date)\n : startOfWeek(date, { locale: locale, weekStartsOn: weekStartsOn });\n },\n endOfWeek: function (date) {\n return context.ISOWeek\n ? endOfISOWeek(date)\n : endOfWeek(date, { locale: locale, weekStartsOn: weekStartsOn });\n }\n };\n var newFocusedDay = moveFns[moveBy](focusedDay, direction === 'after' ? 1 : -1);\n if (direction === 'before' && fromDate) {\n newFocusedDay = max([fromDate, newFocusedDay]);\n }\n else if (direction === 'after' && toDate) {\n newFocusedDay = min([toDate, newFocusedDay]);\n }\n var isFocusable = true;\n if (modifiers) {\n var activeModifiers = getActiveModifiers(newFocusedDay, modifiers);\n isFocusable = !activeModifiers.disabled && !activeModifiers.hidden;\n }\n if (isFocusable) {\n return newFocusedDay;\n }\n else {\n if (retry.count > MAX_RETRY) {\n return retry.lastFocused;\n }\n return getNextFocus(newFocusedDay, {\n moveBy: moveBy,\n direction: direction,\n context: context,\n modifiers: modifiers,\n retry: __assign(__assign({}, retry), { count: retry.count + 1 })\n });\n }\n}\n\n/**\n * The Focus context shares details about the focused day for the keyboard\n *\n * Access this context from the {@link useFocusContext} hook.\n */\nvar FocusContext = createContext(undefined);\n/** The provider for the {@link FocusContext}. */\nfunction FocusProvider(props) {\n var navigation = useNavigation();\n var modifiers = useModifiers();\n var _a = useState(), focusedDay = _a[0], setFocusedDay = _a[1];\n var _b = useState(), lastFocused = _b[0], setLastFocused = _b[1];\n var initialFocusTarget = getInitialFocusTarget(navigation.displayMonths, modifiers);\n // TODO: cleanup and test obscure code below\n var focusTarget = (focusedDay !== null && focusedDay !== void 0 ? focusedDay : (lastFocused && navigation.isDateDisplayed(lastFocused)))\n ? lastFocused\n : initialFocusTarget;\n var blur = function () {\n setLastFocused(focusedDay);\n setFocusedDay(undefined);\n };\n var focus = function (date) {\n setFocusedDay(date);\n };\n var context = useDayPicker();\n var moveFocus = function (moveBy, direction) {\n if (!focusedDay)\n return;\n var nextFocused = getNextFocus(focusedDay, {\n moveBy: moveBy,\n direction: direction,\n context: context,\n modifiers: modifiers\n });\n if (isSameDay(focusedDay, nextFocused))\n return undefined;\n navigation.goToDate(nextFocused, focusedDay);\n focus(nextFocused);\n };\n var value = {\n focusedDay: focusedDay,\n focusTarget: focusTarget,\n blur: blur,\n focus: focus,\n focusDayAfter: function () { return moveFocus('day', 'after'); },\n focusDayBefore: function () { return moveFocus('day', 'before'); },\n focusWeekAfter: function () { return moveFocus('week', 'after'); },\n focusWeekBefore: function () { return moveFocus('week', 'before'); },\n focusMonthBefore: function () { return moveFocus('month', 'before'); },\n focusMonthAfter: function () { return moveFocus('month', 'after'); },\n focusYearBefore: function () { return moveFocus('year', 'before'); },\n focusYearAfter: function () { return moveFocus('year', 'after'); },\n focusStartOfWeek: function () { return moveFocus('startOfWeek', 'before'); },\n focusEndOfWeek: function () { return moveFocus('endOfWeek', 'after'); }\n };\n return (jsx(FocusContext.Provider, { value: value, children: props.children }));\n}\n/**\n * Hook to access the {@link FocusContextValue}. Use this hook to handle the\n * focus state of the elements.\n *\n * This hook is meant to be used inside internal or custom components.\n */\nfunction useFocusContext() {\n var context = useContext(FocusContext);\n if (!context) {\n throw new Error('useFocusContext must be used within a FocusProvider');\n }\n return context;\n}\n\n/**\n * Return the active modifiers for the specified day.\n *\n * This hook is meant to be used inside internal or custom components.\n *\n * @param day\n * @param displayMonth\n */\nfunction useActiveModifiers(day, \n/**\n * The month where the date is displayed. If not the same as `date`, the day\n * is an \"outside day\".\n */\ndisplayMonth) {\n var modifiers = useModifiers();\n var activeModifiers = getActiveModifiers(day, modifiers, displayMonth);\n return activeModifiers;\n}\n\n/**\n * The SelectSingle context shares details about the selected days when in\n * single selection mode.\n *\n * Access this context from the {@link useSelectSingle} hook.\n */\nvar SelectSingleContext = createContext(undefined);\n/** Provides the values for the {@link SelectSingleProvider}. */\nfunction SelectSingleProvider(props) {\n if (!isDayPickerSingle(props.initialProps)) {\n var emptyContextValue = {\n selected: undefined\n };\n return (jsx(SelectSingleContext.Provider, { value: emptyContextValue, children: props.children }));\n }\n return (jsx(SelectSingleProviderInternal, { initialProps: props.initialProps, children: props.children }));\n}\nfunction SelectSingleProviderInternal(_a) {\n var initialProps = _a.initialProps, children = _a.children;\n var onDayClick = function (day, activeModifiers, e) {\n var _a, _b, _c;\n (_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day, activeModifiers, e);\n if (activeModifiers.selected && !initialProps.required) {\n (_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps, undefined, day, activeModifiers, e);\n return;\n }\n (_c = initialProps.onSelect) === null || _c === void 0 ? void 0 : _c.call(initialProps, day, day, activeModifiers, e);\n };\n var contextValue = {\n selected: initialProps.selected,\n onDayClick: onDayClick\n };\n return (jsx(SelectSingleContext.Provider, { value: contextValue, children: children }));\n}\n/**\n * Hook to access the {@link SelectSingleContextValue}.\n *\n * This hook is meant to be used inside internal or custom components.\n */\nfunction useSelectSingle() {\n var context = useContext(SelectSingleContext);\n if (!context) {\n throw new Error('useSelectSingle must be used within a SelectSingleProvider');\n }\n return context;\n}\n\n/**\n * This hook returns details about the content to render in the day cell.\n *\n *\n * When a day cell is rendered in the table, DayPicker can either:\n *\n * - render nothing: when the day is outside the month or has matched the\n * \"hidden\" modifier.\n * - render a button when `onDayClick` or a selection mode is set.\n * - render a non-interactive element: when no selection mode is set, the day\n * cell shouldn’t respond to any interaction. DayPicker should render a `div`\n * or a `span`.\n *\n * ### Usage\n *\n * Use this hook to customize the behavior of the {@link Day} component. Create a\n * new `Day` component using this hook and pass it to the `components` prop.\n * The source of {@link Day} can be a good starting point.\n *\n */\nfunction useDayEventHandlers(date, activeModifiers) {\n var dayPicker = useDayPicker();\n var single = useSelectSingle();\n var multiple = useSelectMultiple();\n var range = useSelectRange();\n var _a = useFocusContext(), focusDayAfter = _a.focusDayAfter, focusDayBefore = _a.focusDayBefore, focusWeekAfter = _a.focusWeekAfter, focusWeekBefore = _a.focusWeekBefore, blur = _a.blur, focus = _a.focus, focusMonthBefore = _a.focusMonthBefore, focusMonthAfter = _a.focusMonthAfter, focusYearBefore = _a.focusYearBefore, focusYearAfter = _a.focusYearAfter, focusStartOfWeek = _a.focusStartOfWeek, focusEndOfWeek = _a.focusEndOfWeek;\n var onClick = function (e) {\n var _a, _b, _c, _d;\n if (isDayPickerSingle(dayPicker)) {\n (_a = single.onDayClick) === null || _a === void 0 ? void 0 : _a.call(single, date, activeModifiers, e);\n }\n else if (isDayPickerMultiple(dayPicker)) {\n (_b = multiple.onDayClick) === null || _b === void 0 ? void 0 : _b.call(multiple, date, activeModifiers, e);\n }\n else if (isDayPickerRange(dayPicker)) {\n (_c = range.onDayClick) === null || _c === void 0 ? void 0 : _c.call(range, date, activeModifiers, e);\n }\n else {\n (_d = dayPicker.onDayClick) === null || _d === void 0 ? void 0 : _d.call(dayPicker, date, activeModifiers, e);\n }\n };\n var onFocus = function (e) {\n var _a;\n focus(date);\n (_a = dayPicker.onDayFocus) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var onBlur = function (e) {\n var _a;\n blur();\n (_a = dayPicker.onDayBlur) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var onMouseEnter = function (e) {\n var _a;\n (_a = dayPicker.onDayMouseEnter) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var onMouseLeave = function (e) {\n var _a;\n (_a = dayPicker.onDayMouseLeave) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var onPointerEnter = function (e) {\n var _a;\n (_a = dayPicker.onDayPointerEnter) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var onPointerLeave = function (e) {\n var _a;\n (_a = dayPicker.onDayPointerLeave) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var onTouchCancel = function (e) {\n var _a;\n (_a = dayPicker.onDayTouchCancel) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var onTouchEnd = function (e) {\n var _a;\n (_a = dayPicker.onDayTouchEnd) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var onTouchMove = function (e) {\n var _a;\n (_a = dayPicker.onDayTouchMove) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var onTouchStart = function (e) {\n var _a;\n (_a = dayPicker.onDayTouchStart) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var onKeyUp = function (e) {\n var _a;\n (_a = dayPicker.onDayKeyUp) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var onKeyDown = function (e) {\n var _a;\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n dayPicker.dir === 'rtl' ? focusDayAfter() : focusDayBefore();\n break;\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n dayPicker.dir === 'rtl' ? focusDayBefore() : focusDayAfter();\n break;\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n focusWeekAfter();\n break;\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n focusWeekBefore();\n break;\n case 'PageUp':\n e.preventDefault();\n e.stopPropagation();\n e.shiftKey ? focusYearBefore() : focusMonthBefore();\n break;\n case 'PageDown':\n e.preventDefault();\n e.stopPropagation();\n e.shiftKey ? focusYearAfter() : focusMonthAfter();\n break;\n case 'Home':\n e.preventDefault();\n e.stopPropagation();\n focusStartOfWeek();\n break;\n case 'End':\n e.preventDefault();\n e.stopPropagation();\n focusEndOfWeek();\n break;\n }\n (_a = dayPicker.onDayKeyDown) === null || _a === void 0 ? void 0 : _a.call(dayPicker, date, activeModifiers, e);\n };\n var eventHandlers = {\n onClick: onClick,\n onFocus: onFocus,\n onBlur: onBlur,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onPointerEnter: onPointerEnter,\n onPointerLeave: onPointerLeave,\n onTouchCancel: onTouchCancel,\n onTouchEnd: onTouchEnd,\n onTouchMove: onTouchMove,\n onTouchStart: onTouchStart\n };\n return eventHandlers;\n}\n\n/**\n * Return the current selected days when DayPicker is in selection mode. Days\n * selected by the custom selection mode are not returned.\n *\n * This hook is meant to be used inside internal or custom components.\n *\n */\nfunction useSelectedDays() {\n var dayPicker = useDayPicker();\n var single = useSelectSingle();\n var multiple = useSelectMultiple();\n var range = useSelectRange();\n var selectedDays = isDayPickerSingle(dayPicker)\n ? single.selected\n : isDayPickerMultiple(dayPicker)\n ? multiple.selected\n : isDayPickerRange(dayPicker)\n ? range.selected\n : undefined;\n return selectedDays;\n}\n\nfunction isInternalModifier(modifier) {\n return Object.values(InternalModifier).includes(modifier);\n}\n/**\n * Return the class names for the Day element, according to the given active\n * modifiers.\n *\n * Custom class names are set via `modifiersClassNames` or `classNames`,\n * where the first have the precedence.\n */\nfunction getDayClassNames(dayPicker, activeModifiers) {\n var classNames = [dayPicker.classNames.day];\n Object.keys(activeModifiers).forEach(function (modifier) {\n var customClassName = dayPicker.modifiersClassNames[modifier];\n if (customClassName) {\n classNames.push(customClassName);\n }\n else if (isInternalModifier(modifier)) {\n var internalClassName = dayPicker.classNames[\"day_\".concat(modifier)];\n if (internalClassName) {\n classNames.push(internalClassName);\n }\n }\n });\n return classNames;\n}\n\n/** Return the style for the Day element, according to the given active modifiers. */\nfunction getDayStyle(dayPicker, activeModifiers) {\n var style = __assign({}, dayPicker.styles.day);\n Object.keys(activeModifiers).forEach(function (modifier) {\n var _a;\n style = __assign(__assign({}, style), (_a = dayPicker.modifiersStyles) === null || _a === void 0 ? void 0 : _a[modifier]);\n });\n return style;\n}\n\n/**\n * Return props and data used to render the {@link Day} component.\n *\n * Use this hook when creating a component to replace the built-in `Day`\n * component.\n */\nfunction useDayRender(\n/** The date to render. */\nday, \n/** The month where the date is displayed (if not the same as `date`, it means it is an \"outside\" day). */\ndisplayMonth, \n/** A ref to the button element that will be target of focus when rendered (if required). */\nbuttonRef) {\n var _a;\n var _b, _c;\n var dayPicker = useDayPicker();\n var focusContext = useFocusContext();\n var activeModifiers = useActiveModifiers(day, displayMonth);\n var eventHandlers = useDayEventHandlers(day, activeModifiers);\n var selectedDays = useSelectedDays();\n var isButton = Boolean(dayPicker.onDayClick || dayPicker.mode !== 'default');\n // Focus the button if the day is focused according to the focus context\n useEffect(function () {\n var _a;\n if (activeModifiers.outside)\n return;\n if (!focusContext.focusedDay)\n return;\n if (!isButton)\n return;\n if (isSameDay(focusContext.focusedDay, day)) {\n (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }, [\n focusContext.focusedDay,\n day,\n buttonRef,\n isButton,\n activeModifiers.outside\n ]);\n var className = getDayClassNames(dayPicker, activeModifiers).join(' ');\n var style = getDayStyle(dayPicker, activeModifiers);\n var isHidden = Boolean((activeModifiers.outside && !dayPicker.showOutsideDays) ||\n activeModifiers.hidden);\n var DayContentComponent = (_c = (_b = dayPicker.components) === null || _b === void 0 ? void 0 : _b.DayContent) !== null && _c !== void 0 ? _c : DayContent;\n var children = (jsx(DayContentComponent, { date: day, displayMonth: displayMonth, activeModifiers: activeModifiers }));\n var divProps = {\n style: style,\n className: className,\n children: children,\n role: 'gridcell'\n };\n var isFocusTarget = focusContext.focusTarget &&\n isSameDay(focusContext.focusTarget, day) &&\n !activeModifiers.outside;\n var isFocused = focusContext.focusedDay && isSameDay(focusContext.focusedDay, day);\n var buttonProps = __assign(__assign(__assign({}, divProps), (_a = { disabled: activeModifiers.disabled, role: 'gridcell' }, _a['aria-selected'] = activeModifiers.selected, _a.tabIndex = isFocused || isFocusTarget ? 0 : -1, _a)), eventHandlers);\n var dayRender = {\n isButton: isButton,\n isHidden: isHidden,\n activeModifiers: activeModifiers,\n selectedDays: selectedDays,\n buttonProps: buttonProps,\n divProps: divProps\n };\n return dayRender;\n}\n\n/**\n * The content of a day cell – as a button or span element according to its\n * modifiers.\n */\nfunction Day(props) {\n var buttonRef = useRef(null);\n var dayRender = useDayRender(props.date, props.displayMonth, buttonRef);\n if (dayRender.isHidden) {\n return jsx(\"div\", { role: \"gridcell\" });\n }\n if (!dayRender.isButton) {\n return jsx(\"div\", __assign({}, dayRender.divProps));\n }\n return jsx(Button, __assign({ name: \"day\", ref: buttonRef }, dayRender.buttonProps));\n}\n\n/**\n * Render the week number element. If `onWeekNumberClick` is passed to DayPicker, it\n * renders a button, otherwise a span element.\n */\nfunction WeekNumber(props) {\n var weekNumber = props.number, dates = props.dates;\n var _a = useDayPicker(), onWeekNumberClick = _a.onWeekNumberClick, styles = _a.styles, classNames = _a.classNames, locale = _a.locale, labelWeekNumber = _a.labels.labelWeekNumber, formatWeekNumber = _a.formatters.formatWeekNumber;\n var content = formatWeekNumber(Number(weekNumber), { locale: locale });\n if (!onWeekNumberClick) {\n return (jsx(\"span\", { className: classNames.weeknumber, style: styles.weeknumber, children: content }));\n }\n var label = labelWeekNumber(Number(weekNumber), { locale: locale });\n var handleClick = function (e) {\n onWeekNumberClick(weekNumber, dates, e);\n };\n return (jsx(Button, { name: \"week-number\", \"aria-label\": label, className: classNames.weeknumber, style: styles.weeknumber, onClick: handleClick, children: content }));\n}\n\n/** Render a row in the calendar, with the days and the week number. */\nfunction Row(props) {\n var _a, _b;\n var _c = useDayPicker(), styles = _c.styles, classNames = _c.classNames, showWeekNumber = _c.showWeekNumber, components = _c.components;\n var DayComponent = (_a = components === null || components === void 0 ? void 0 : components.Day) !== null && _a !== void 0 ? _a : Day;\n var WeeknumberComponent = (_b = components === null || components === void 0 ? void 0 : components.WeekNumber) !== null && _b !== void 0 ? _b : WeekNumber;\n var weekNumberCell;\n if (showWeekNumber) {\n weekNumberCell = (jsx(\"td\", { className: classNames.cell, style: styles.cell, children: jsx(WeeknumberComponent, { number: props.weekNumber, dates: props.dates }) }));\n }\n return (jsxs(\"tr\", { className: classNames.row, style: styles.row, children: [weekNumberCell, props.dates.map(function (date) { return (jsx(\"td\", { className: classNames.cell, style: styles.cell, role: \"presentation\", children: jsx(DayComponent, { displayMonth: props.displayMonth, date: date }) }, getUnixTime(date))); })] }));\n}\n\n/** Return the weeks between two dates. */\nfunction daysToMonthWeeks(fromDate, toDate, options) {\n var toWeek = (options === null || options === void 0 ? void 0 : options.ISOWeek)\n ? endOfISOWeek(toDate)\n : endOfWeek(toDate, options);\n var fromWeek = (options === null || options === void 0 ? void 0 : options.ISOWeek)\n ? startOfISOWeek(fromDate)\n : startOfWeek(fromDate, options);\n var nOfDays = differenceInCalendarDays(toWeek, fromWeek);\n var days = [];\n for (var i = 0; i <= nOfDays; i++) {\n days.push(addDays(fromWeek, i));\n }\n var weeksInMonth = days.reduce(function (result, date) {\n var weekNumber = (options === null || options === void 0 ? void 0 : options.ISOWeek)\n ? getISOWeek(date)\n : getWeek(date, options);\n var existingWeek = result.find(function (value) { return value.weekNumber === weekNumber; });\n if (existingWeek) {\n existingWeek.dates.push(date);\n return result;\n }\n result.push({\n weekNumber: weekNumber,\n dates: [date]\n });\n return result;\n }, []);\n return weeksInMonth;\n}\n\n/**\n * Return the weeks belonging to the given month, adding the \"outside days\" to\n * the first and last week.\n */\nfunction getMonthWeeks(month, options) {\n var weeksInMonth = daysToMonthWeeks(startOfMonth(month), endOfMonth(month), options);\n if (options === null || options === void 0 ? void 0 : options.useFixedWeeks) {\n // Add extra weeks to the month, up to 6 weeks\n var nrOfMonthWeeks = getWeeksInMonth(month, options);\n if (nrOfMonthWeeks < 6) {\n var lastWeek = weeksInMonth[weeksInMonth.length - 1];\n var lastDate = lastWeek.dates[lastWeek.dates.length - 1];\n var toDate = addWeeks(lastDate, 6 - nrOfMonthWeeks);\n var extraWeeks = daysToMonthWeeks(addWeeks(lastDate, 1), toDate, options);\n weeksInMonth.push.apply(weeksInMonth, extraWeeks);\n }\n }\n return weeksInMonth;\n}\n\n/** Render the table with the calendar. */\nfunction Table(props) {\n var _a, _b, _c;\n var _d = useDayPicker(), locale = _d.locale, classNames = _d.classNames, styles = _d.styles, hideHead = _d.hideHead, fixedWeeks = _d.fixedWeeks, components = _d.components, weekStartsOn = _d.weekStartsOn, firstWeekContainsDate = _d.firstWeekContainsDate, ISOWeek = _d.ISOWeek;\n var weeks = getMonthWeeks(props.displayMonth, {\n useFixedWeeks: Boolean(fixedWeeks),\n ISOWeek: ISOWeek,\n locale: locale,\n weekStartsOn: weekStartsOn,\n firstWeekContainsDate: firstWeekContainsDate\n });\n var HeadComponent = (_a = components === null || components === void 0 ? void 0 : components.Head) !== null && _a !== void 0 ? _a : Head;\n var RowComponent = (_b = components === null || components === void 0 ? void 0 : components.Row) !== null && _b !== void 0 ? _b : Row;\n var FooterComponent = (_c = components === null || components === void 0 ? void 0 : components.Footer) !== null && _c !== void 0 ? _c : Footer;\n return (jsxs(\"table\", { id: props.id, className: classNames.table, style: styles.table, role: \"grid\", \"aria-labelledby\": props['aria-labelledby'], children: [!hideHead && jsx(HeadComponent, {}), jsx(\"tbody\", { className: classNames.tbody, style: styles.tbody, children: weeks.map(function (week) { return (jsx(RowComponent, { displayMonth: props.displayMonth, dates: week.dates, weekNumber: week.weekNumber }, week.weekNumber)); }) }), jsx(FooterComponent, { displayMonth: props.displayMonth })] }));\n}\n\n/*\nThe MIT License (MIT)\n\nCopyright (c) 2018-present, React Training LLC\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n/* eslint-disable prefer-const */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n/*\n * Welcome to @reach/auto-id!\n * Let's see if we can make sense of why this hook exists and its\n * implementation.\n *\n * Some background:\n * 1. Accessibility APIs rely heavily on element IDs\n * 2. Requiring developers to put IDs on every element in Reach UI is both\n * cumbersome and error-prone\n * 3. With a component model, we can generate IDs for them!\n *\n * Solution 1: Generate random IDs.\n *\n * This works great as long as you don't server render your app. When React (in\n * the client) tries to reuse the markup from the server, the IDs won't match\n * and React will then recreate the entire DOM tree.\n *\n * Solution 2: Increment an integer\n *\n * This sounds great. Since we're rendering the exact same tree on the server\n * and client, we can increment a counter and get a deterministic result between\n * client and server. Also, JS integers can go up to nine-quadrillion. I'm\n * pretty sure the tab will be closed before an app never needs\n * 10 quadrillion IDs!\n *\n * Problem solved, right?\n *\n * Ah, but there's a catch! React's concurrent rendering makes this approach\n * non-deterministic. While the client and server will end up with the same\n * elements in the end, depending on suspense boundaries (and possibly some user\n * input during the initial render) the incrementing integers won't always match\n * up.\n *\n * Solution 3: Don't use IDs at all on the server; patch after first render.\n *\n * What we've done here is solution 2 with some tricks. With this approach, the\n * ID returned is an empty string on the first render. This way the server and\n * client have the same markup no matter how wild the concurrent rendering may\n * have gotten.\n *\n * After the render, we patch up the components with an incremented ID. This\n * causes a double render on any components with `useId`. Shouldn't be a problem\n * since the components using this hook should be small, and we're only updating\n * the ID attribute on the DOM, nothing big is happening.\n *\n * It doesn't have to be an incremented number, though--we could do generate\n * random strings instead, but incrementing a number is probably the cheapest\n * thing we can do.\n *\n * Additionally, we only do this patchup on the very first client render ever.\n * Any calls to `useId` that happen dynamically in the client will be\n * populated immediately with a value. So, we only get the double render after\n * server hydration and never again, SO BACK OFF ALRIGHT?\n */\nfunction canUseDOM() {\n return !!(typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\n}\n/**\n * React currently throws a warning when using useLayoutEffect on the server. To\n * get around it, we can conditionally useEffect on the server (no-op) and\n * useLayoutEffect in the browser. We occasionally need useLayoutEffect to\n * ensure we don't get a render flash for certain operations, but we may also\n * need affected components to render on the server. One example is when setting\n * a component's descendants to retrieve their index values.\n *\n * Important to note that using this hook as an escape hatch will break the\n * eslint dependency warnings unless you rename the import to `useLayoutEffect`.\n * Use sparingly only when the effect won't effect the rendered HTML to avoid\n * any server/client mismatch.\n *\n * If a useLayoutEffect is needed and the result would create a mismatch, it's\n * likely that the component in question shouldn't be rendered on the server at\n * all, so a better approach would be to lazily render those in a parent\n * component after client-side hydration.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n *\n * @param effect\n * @param deps\n */\nvar useIsomorphicLayoutEffect = canUseDOM() ? useLayoutEffect : useEffect;\nvar serverHandoffComplete = false;\nvar id = 0;\nfunction genId() {\n return \"react-day-picker-\".concat(++id);\n}\nfunction useId(providedId) {\n // TODO: Remove error flag when updating internal deps to React 18. None of\n // our tricks will play well with concurrent rendering anyway.\n var _a;\n // If this instance isn't part of the initial render, we don't have to do the\n // double render/patch-up dance. We can just generate the ID and return it.\n var initialId = providedId !== null && providedId !== void 0 ? providedId : (serverHandoffComplete ? genId() : null);\n var _b = useState(initialId), id = _b[0], setId = _b[1];\n useIsomorphicLayoutEffect(function () {\n if (id === null) {\n // Patch the ID after render. We do this in `useLayoutEffect` to avoid any\n // rendering flicker, though it'll make the first render slower (unlikely\n // to matter, but you're welcome to measure your app and let us know if\n // it's a problem).\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useEffect(function () {\n if (serverHandoffComplete === false) {\n // Flag all future uses of `useId` to skip the update dance. This is in\n // `useEffect` because it goes after `useLayoutEffect`, ensuring we don't\n // accidentally bail out of the patch-up dance prematurely.\n serverHandoffComplete = true;\n }\n }, []);\n return (_a = providedId !== null && providedId !== void 0 ? providedId : id) !== null && _a !== void 0 ? _a : undefined;\n}\n\n/** Render a month. */\nfunction Month(props) {\n var _a;\n var _b;\n var dayPicker = useDayPicker();\n var dir = dayPicker.dir, classNames = dayPicker.classNames, styles = dayPicker.styles, components = dayPicker.components;\n var displayMonths = useNavigation().displayMonths;\n var captionId = useId(dayPicker.id ? \"\".concat(dayPicker.id, \"-\").concat(props.displayIndex) : undefined);\n var tableId = dayPicker.id\n ? \"\".concat(dayPicker.id, \"-grid-\").concat(props.displayIndex)\n : undefined;\n var className = [classNames.month];\n var style = styles.month;\n var isStart = props.displayIndex === 0;\n var isEnd = props.displayIndex === displayMonths.length - 1;\n var isCenter = !isStart && !isEnd;\n if (dir === 'rtl') {\n _a = [isStart, isEnd], isEnd = _a[0], isStart = _a[1];\n }\n if (isStart) {\n className.push(classNames.caption_start);\n style = __assign(__assign({}, style), styles.caption_start);\n }\n if (isEnd) {\n className.push(classNames.caption_end);\n style = __assign(__assign({}, style), styles.caption_end);\n }\n if (isCenter) {\n className.push(classNames.caption_between);\n style = __assign(__assign({}, style), styles.caption_between);\n }\n var CaptionComponent = (_b = components === null || components === void 0 ? void 0 : components.Caption) !== null && _b !== void 0 ? _b : Caption;\n return (jsxs(\"div\", { className: className.join(' '), style: style, children: [jsx(CaptionComponent, { id: captionId, displayMonth: props.displayMonth, displayIndex: props.displayIndex }), jsx(Table, { id: tableId, \"aria-labelledby\": captionId, displayMonth: props.displayMonth })] }, props.displayIndex));\n}\n\n/**\n * Render the wrapper for the month grids.\n */\nfunction Months(props) {\n var _a = useDayPicker(), classNames = _a.classNames, styles = _a.styles;\n return (jsx(\"div\", { className: classNames.months, style: styles.months, children: props.children }));\n}\n\n/** Render the container with the months according to the number of months to display. */\nfunction Root(_a) {\n var _b, _c;\n var initialProps = _a.initialProps;\n var dayPicker = useDayPicker();\n var focusContext = useFocusContext();\n var navigation = useNavigation();\n var _d = useState(false), hasInitialFocus = _d[0], setHasInitialFocus = _d[1];\n // Focus the focus target when initialFocus is passed in\n useEffect(function () {\n if (!dayPicker.initialFocus)\n return;\n if (!focusContext.focusTarget)\n return;\n if (hasInitialFocus)\n return;\n focusContext.focus(focusContext.focusTarget);\n setHasInitialFocus(true);\n }, [\n dayPicker.initialFocus,\n hasInitialFocus,\n focusContext.focus,\n focusContext.focusTarget,\n focusContext\n ]);\n // Apply classnames according to props\n var classNames = [dayPicker.classNames.root, dayPicker.className];\n if (dayPicker.numberOfMonths > 1) {\n classNames.push(dayPicker.classNames.multiple_months);\n }\n if (dayPicker.showWeekNumber) {\n classNames.push(dayPicker.classNames.with_weeknumber);\n }\n var style = __assign(__assign({}, dayPicker.styles.root), dayPicker.style);\n var dataAttributes = Object.keys(initialProps)\n .filter(function (key) { return key.startsWith('data-'); })\n .reduce(function (attrs, key) {\n var _a;\n return __assign(__assign({}, attrs), (_a = {}, _a[key] = initialProps[key], _a));\n }, {});\n var MonthsComponent = (_c = (_b = initialProps.components) === null || _b === void 0 ? void 0 : _b.Months) !== null && _c !== void 0 ? _c : Months;\n return (jsx(\"div\", __assign({ className: classNames.join(' '), style: style, dir: dayPicker.dir, id: dayPicker.id, nonce: initialProps.nonce, title: initialProps.title, lang: initialProps.lang }, dataAttributes, { children: jsx(MonthsComponent, { children: navigation.displayMonths.map(function (month, i) { return (jsx(Month, { displayIndex: i, displayMonth: month }, i)); }) }) })));\n}\n\n/** Provide the value for all the context providers. */\nfunction RootProvider(props) {\n var children = props.children, initialProps = __rest(props, [\"children\"]);\n return (jsx(DayPickerProvider, { initialProps: initialProps, children: jsx(NavigationProvider, { children: jsx(SelectSingleProvider, { initialProps: initialProps, children: jsx(SelectMultipleProvider, { initialProps: initialProps, children: jsx(SelectRangeProvider, { initialProps: initialProps, children: jsx(ModifiersProvider, { children: jsx(FocusProvider, { children: children }) }) }) }) }) }) }));\n}\n\n/**\n * DayPicker render a date picker component to let users pick dates from a\n * calendar. See http://react-day-picker.js.org for updated documentation and\n * examples.\n *\n * ### Customization\n *\n * DayPicker offers different customization props. For example,\n *\n * - show multiple months using `numberOfMonths`\n * - display a dropdown to navigate the months via `captionLayout`\n * - display the week numbers with `showWeekNumbers`\n * - disable or hide days with `disabled` or `hidden`\n *\n * ### Controlling the months\n *\n * Change the initially displayed month using the `defaultMonth` prop. The\n * displayed months are controlled by DayPicker and stored in its internal\n * state. To control the months yourself, use `month` instead of `defaultMonth`\n * and use the `onMonthChange` event to set it.\n *\n * To limit the months the user can navigate to, use\n * `fromDate`/`fromMonth`/`fromYear` or `toDate`/`toMonth`/`toYear`.\n *\n * ### Selection modes\n *\n * DayPicker supports different selection mode that can be toggled using the\n * `mode` prop:\n *\n * - `mode=\"single\"`: only one day can be selected. Use `required` to make the\n * selection required. Use the `onSelect` event handler to get the selected\n * days.\n * - `mode=\"multiple\"`: users can select one or more days. Limit the amount of\n * days that can be selected with the `min` or the `max` props.\n * - `mode=\"range\"`: users can select a range of days. Limit the amount of days\n * in the range with the `min` or the `max` props.\n * - `mode=\"default\"` (default): the built-in selections are disabled. Implement\n * your own selection mode with `onDayClick`.\n *\n * The selection modes should cover the most common use cases. In case you\n * need a more refined way of selecting days, use `mode=\"default\"`. Use the\n * `selected` props and add the day event handlers to add/remove days from the\n * selection.\n *\n * ### Modifiers\n *\n * A _modifier_ represents different styles or states for the days displayed in\n * the calendar (like \"selected\" or \"disabled\"). Define custom modifiers using\n * the `modifiers` prop.\n *\n * ### Formatters and custom component\n *\n * You can customize how the content is displayed in the date picker by using\n * either the formatters or replacing the internal components.\n *\n * For the most common cases you want to use the `formatters` prop to change how\n * the content is formatted in the calendar. Use the `components` prop to\n * replace the internal components, like the navigation icons.\n *\n * ### Styling\n *\n * DayPicker comes with a default, basic style in `react-day-picker/style` – use\n * it as template for your own style.\n *\n * If you are using CSS modules, pass the imported styles object the\n * `classNames` props.\n *\n * You can also style the elements via inline styles using the `styles` prop.\n *\n * ### Form fields\n *\n * If you need to bind the date picker to a form field, you can use the\n * `useInput` hooks for a basic behavior. See the `useInput` source as an\n * example to bind the date picker with form fields.\n *\n * ### Localization\n *\n * To localize DayPicker, import the locale from `date-fns` package and use the\n * `locale` prop.\n *\n * For example, to use Spanish locale:\n *\n * ```\n * import { es } from 'date-fns/locale';\n * <DayPicker locale={es} />\n * ```\n */\nfunction DayPicker(props) {\n return (jsx(RootProvider, __assign({}, props, { children: jsx(Root, { initialProps: props }) })));\n}\n\n/** @private */\nfunction isValidDate(day) {\n return !isNaN(day.getTime());\n}\n\n/** Return props and setters for binding an input field to DayPicker. */\nfunction useInput(options) {\n if (options === void 0) { options = {}; }\n var _a = options.locale, locale = _a === void 0 ? enUS : _a, required = options.required, _b = options.format, format$1 = _b === void 0 ? 'PP' : _b, defaultSelected = options.defaultSelected, _c = options.today, today = _c === void 0 ? new Date() : _c;\n var _d = parseFromToProps(options), fromDate = _d.fromDate, toDate = _d.toDate;\n // Shortcut to the DateFns functions\n var parseValue = function (value) { return parse(value, format$1, today, { locale: locale }); };\n // Initialize states\n var _e = useState(defaultSelected !== null && defaultSelected !== void 0 ? defaultSelected : today), month = _e[0], setMonth = _e[1];\n var _f = useState(defaultSelected), selectedDay = _f[0], setSelectedDay = _f[1];\n var defaultInputValue = defaultSelected\n ? format(defaultSelected, format$1, { locale: locale })\n : '';\n var _g = useState(defaultInputValue), inputValue = _g[0], setInputValue = _g[1];\n var reset = function () {\n setSelectedDay(defaultSelected);\n setMonth(defaultSelected !== null && defaultSelected !== void 0 ? defaultSelected : today);\n setInputValue(defaultInputValue !== null && defaultInputValue !== void 0 ? defaultInputValue : '');\n };\n var setSelected = function (date) {\n setSelectedDay(date);\n setMonth(date !== null && date !== void 0 ? date : today);\n setInputValue(date ? format(date, format$1, { locale: locale }) : '');\n };\n var handleDayClick = function (day, _a) {\n var selected = _a.selected;\n if (!required && selected) {\n setSelectedDay(undefined);\n setInputValue('');\n return;\n }\n setSelectedDay(day);\n setInputValue(day ? format(day, format$1, { locale: locale }) : '');\n };\n var handleMonthChange = function (month) {\n setMonth(month);\n };\n // When changing the input field, save its value in state and check if the\n // string is a valid date. If it is a valid day, set it as selected and update\n // the calendar’s month.\n var handleChange = function (e) {\n setInputValue(e.target.value);\n var day = parseValue(e.target.value);\n var isBefore = fromDate && differenceInCalendarDays(fromDate, day) > 0;\n var isAfter = toDate && differenceInCalendarDays(day, toDate) > 0;\n if (!isValidDate(day) || isBefore || isAfter) {\n setSelectedDay(undefined);\n return;\n }\n setSelectedDay(day);\n setMonth(day);\n };\n // Special case for _required_ fields: on blur, if the value of the input is not\n // a valid date, reset the calendar and the input value.\n var handleBlur = function (e) {\n var day = parseValue(e.target.value);\n if (!isValidDate(day)) {\n reset();\n }\n };\n // When focusing, make sure DayPicker visualizes the month of the date in the\n // input field.\n var handleFocus = function (e) {\n if (!e.target.value) {\n reset();\n return;\n }\n var day = parseValue(e.target.value);\n if (isValidDate(day)) {\n setMonth(day);\n }\n };\n var dayPickerProps = {\n month: month,\n onDayClick: handleDayClick,\n onMonthChange: handleMonthChange,\n selected: selectedDay,\n locale: locale,\n fromDate: fromDate,\n toDate: toDate,\n today: today\n };\n var inputProps = {\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus,\n value: inputValue,\n placeholder: format(new Date(), format$1, { locale: locale })\n };\n return { dayPickerProps: dayPickerProps, inputProps: inputProps, reset: reset, setSelected: setSelected };\n}\n\n/** Returns true when the props are of type {@link DayPickerDefaultProps}. */\nfunction isDayPickerDefault(props) {\n return props.mode === undefined || props.mode === 'default';\n}\n\nexport { Button, Caption, CaptionDropdowns, CaptionLabel, CaptionNavigation, Day, DayContent, DayPicker, DayPickerContext, DayPickerProvider, Dropdown, FocusContext, FocusProvider, Footer, Head, HeadRow, IconDropdown, IconLeft, IconRight, InternalModifier, Months, NavigationContext, NavigationProvider, RootProvider, Row, SelectMultipleContext, SelectMultipleProvider, SelectMultipleProviderInternal, SelectRangeContext, SelectRangeProvider, SelectRangeProviderInternal, SelectSingleContext, SelectSingleProvider, SelectSingleProviderInternal, WeekNumber, addToRange, isDateAfterType, isDateBeforeType, isDateInterval, isDateRange, isDayOfWeekType, isDayPickerDefault, isDayPickerMultiple, isDayPickerRange, isDayPickerSingle, isMatch, useActiveModifiers, useDayPicker, useDayRender, useFocusContext, useInput, useNavigation, useSelectMultiple, useSelectRange, useSelectSingle };\n//# sourceMappingURL=index.esm.js.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { cn } from './utils';\nvar Checkbox = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(CheckboxPrimitive.Root, __assign({ ref: ref, className: cn('peer h-5 w-5 shrink-0 rounded-md border border-[#E3E7EF] bg-[#F2F5F9] focus-visible:border-[#3662E3] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#C4DAFB] focus-visible:ring-offset-2 disabled:opacity-50 data-[state=checked]:border-[#3662E3] data-[state=checked]:bg-[#3662E3]', className) }, props),\n React.createElement(CheckboxPrimitive.Indicator, { className: cn('flex items-center justify-center text-current') },\n React.createElement(\"svg\", { xmlns: 'http://www.w3.org/2000/svg', width: '14', height: '14', fill: 'none', viewBox: '0 0 14 14' },\n React.createElement(\"path\", { stroke: '#fff', strokeLinejoin: 'round', strokeWidth: '2', d: 'M11.667 3.5L5.25 9.917 2.333 7' })))));\n});\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\nexport { Checkbox };\n//# sourceMappingURL=CheckBox.js.map","var U=1,Y=.9,a=.8,H=.17,p=.1,u=.999,J=.9999;var k=.99,m=/[\\\\\\/_+.#\"@\\[\\(\\{&]/,B=/[\\\\\\/_+.#\"@\\[\\(\\{&]/g,K=/[\\s-]/,X=/[\\s-]/g;function G(c,f,P,C,h,A,O){if(A===f.length)return h===c.length?U:k;var T=`${h},${A}`;if(O[T]!==void 0)return O[T];for(var L=C.charAt(A),E=P.indexOf(L,h),S=0,_,N,R,M;E>=0;)_=G(c,f,P,C,E+1,A+1,O),_>S&&(E===h?_*=U:m.test(c.charAt(E-1))?(_*=a,R=c.slice(h,E-1).match(B),R&&h>0&&(_*=Math.pow(u,R.length))):K.test(c.charAt(E-1))?(_*=Y,M=c.slice(h,E-1).match(X),M&&h>0&&(_*=Math.pow(u,M.length))):(_*=H,h>0&&(_*=Math.pow(u,E-h))),c.charAt(E)!==f.charAt(A)&&(_*=J)),(_<p&&P.charAt(E-1)===C.charAt(A+1)||C.charAt(A+1)===C.charAt(A)&&P.charAt(E-1)!==C.charAt(A))&&(N=G(c,f,P,C,E+1,A+2,O),N*p>_&&(_=N*p)),_>S&&(S=_),E=P.indexOf(L,E+1);return O[T]=S,S}function D(c){return c.toLowerCase().replace(X,\" \")}function W(c,f){return G(c,f,D(c),D(f),0,0,{})}export{W as a};\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function $e42e1063c40fb3ef$export$b9ecd428b558ff10(originalEventHandler, ourEventHandler, { checkForDefaultPrevented: checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler === null || originalEventHandler === void 0 || originalEventHandler(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) return ourEventHandler === null || ourEventHandler === void 0 ? void 0 : ourEventHandler(event);\n };\n}\n\n\n\n\nexport {$e42e1063c40fb3ef$export$b9ecd428b558ff10 as composeEventHandlers};\n//# sourceMappingURL=index.module.js.map\n","import {useCallback as $3vqmr$useCallback} from \"react\";\n\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$var$setRef(ref, value) {\n if (typeof ref === 'function') ref(value);\n else if (ref !== null && ref !== undefined) ref.current = value;\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$43e446d32b3d21af(...refs) {\n return (node)=>refs.forEach((ref)=>$6ed0406888f73fc4$var$setRef(ref, node)\n )\n ;\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$c7b2cbe3552a0d05(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return $3vqmr$useCallback($6ed0406888f73fc4$export$43e446d32b3d21af(...refs), refs);\n}\n\n\n\n\nexport {$6ed0406888f73fc4$export$43e446d32b3d21af as composeRefs, $6ed0406888f73fc4$export$c7b2cbe3552a0d05 as useComposedRefs};\n//# sourceMappingURL=index.module.js.map\n","import {createContext as $3bkAK$createContext, useMemo as $3bkAK$useMemo, createElement as $3bkAK$createElement, useContext as $3bkAK$useContext} from \"react\";\n\n\nfunction $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const Context = /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n function Provider(props) {\n const { children: children , ...context } = props; // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = $3bkAK$useMemo(()=>context\n , Object.values(context));\n return /*#__PURE__*/ $3bkAK$createElement(Context.Provider, {\n value: value\n }, children);\n }\n function useContext(consumerName) {\n const context = $3bkAK$useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext; // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + 'Provider';\n return [\n Provider,\n useContext\n ];\n}\n/* -------------------------------------------------------------------------------------------------\n * createContextScope\n * -----------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$export$50c7b4e9d9f19c1(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n /* -----------------------------------------------------------------------------------------------\n * createContext\n * ---------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const BaseContext = /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [\n ...defaultContexts,\n defaultContext\n ];\n function Provider(props) {\n const { scope: scope , children: children , ...context } = props;\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index]) || BaseContext; // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = $3bkAK$useMemo(()=>context\n , Object.values(context));\n return /*#__PURE__*/ $3bkAK$createElement(Context.Provider, {\n value: value\n }, children);\n }\n function useContext(consumerName, scope) {\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index]) || BaseContext;\n const context = $3bkAK$useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext; // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + 'Provider';\n return [\n Provider,\n useContext\n ];\n }\n /* -----------------------------------------------------------------------------------------------\n * createScope\n * ---------------------------------------------------------------------------------------------*/ const createScope = ()=>{\n const scopeContexts = defaultContexts.map((defaultContext)=>{\n return /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = (scope === null || scope === void 0 ? void 0 : scope[scopeName]) || scopeContexts;\n return $3bkAK$useMemo(()=>({\n [`__scope${scopeName}`]: {\n ...scope,\n [scopeName]: contexts\n }\n })\n , [\n scope,\n contexts\n ]);\n };\n };\n createScope.scopeName = scopeName;\n return [\n $c512c27ab02ef895$export$fd42f52fd3ae1109,\n $c512c27ab02ef895$var$composeContextScopes(createScope, ...createContextScopeDeps)\n ];\n}\n/* -------------------------------------------------------------------------------------------------\n * composeContextScopes\n * -----------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$var$composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope1 = ()=>{\n const scopeHooks = scopes.map((createScope)=>({\n useScope: createScope(),\n scopeName: createScope.scopeName\n })\n );\n return function useComposedScopes(overrideScopes) {\n const nextScopes1 = scopeHooks.reduce((nextScopes, { useScope: useScope , scopeName: scopeName })=>{\n // We are calling a hook inside a callback which React warns against to avoid inconsistent\n // renders, however, scoping doesn't have render side effects so we ignore the rule.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return {\n ...nextScopes,\n ...currentScope\n };\n }, {});\n return $3bkAK$useMemo(()=>({\n [`__scope${baseScope.scopeName}`]: nextScopes1\n })\n , [\n nextScopes1\n ]);\n };\n };\n createScope1.scopeName = baseScope.scopeName;\n return createScope1;\n}\n\n\n\n\nexport {$c512c27ab02ef895$export$fd42f52fd3ae1109 as createContext, $c512c27ab02ef895$export$50c7b4e9d9f19c1 as createContextScope};\n//# sourceMappingURL=index.module.js.map\n","import {useLayoutEffect as $dxlwH$useLayoutEffect} from \"react\";\n\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */ const $9f79659886946c16$export$e5c5a5f917a5871c = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) ? $dxlwH$useLayoutEffect : ()=>{};\n\n\n\n\nexport {$9f79659886946c16$export$e5c5a5f917a5871c as useLayoutEffect};\n//# sourceMappingURL=index.module.js.map\n","import * as $2AODx$react from \"react\";\nimport {useLayoutEffect as $2AODx$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\n\n\n\nconst $1746a345f3d73bb7$var$useReactId = $2AODx$react['useId'.toString()] || (()=>undefined\n);\nlet $1746a345f3d73bb7$var$count = 0;\nfunction $1746a345f3d73bb7$export$f680877a34711e37(deterministicId) {\n const [id, setId] = $2AODx$react.useState($1746a345f3d73bb7$var$useReactId()); // React versions older than 18 will have client-side ids only.\n $2AODx$useLayoutEffect(()=>{\n if (!deterministicId) setId((reactId)=>reactId !== null && reactId !== void 0 ? reactId : String($1746a345f3d73bb7$var$count++)\n );\n }, [\n deterministicId\n ]);\n return deterministicId || (id ? `radix-${id}` : '');\n}\n\n\n\n\nexport {$1746a345f3d73bb7$export$f680877a34711e37 as useId};\n//# sourceMappingURL=index.module.js.map\n","import {useRef as $lwiWj$useRef, useEffect as $lwiWj$useEffect, useMemo as $lwiWj$useMemo} from \"react\";\n\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */ function $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(callback) {\n const callbackRef = $lwiWj$useRef(callback);\n $lwiWj$useEffect(()=>{\n callbackRef.current = callback;\n }); // https://github.com/facebook/react/issues/19240\n return $lwiWj$useMemo(()=>(...args)=>{\n var _callbackRef$current;\n return (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef, ...args);\n }\n , []);\n}\n\n\n\n\nexport {$b1b2314f5f9a1d84$export$25bec8c6f54ee79a as useCallbackRef};\n//# sourceMappingURL=index.module.js.map\n","import {useCallback as $bnPw9$useCallback, useState as $bnPw9$useState, useRef as $bnPw9$useRef, useEffect as $bnPw9$useEffect} from \"react\";\nimport {useCallbackRef as $bnPw9$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\n\n\n\nfunction $71cd76cc60e0454e$export$6f32135080cb4c3({ prop: prop , defaultProp: defaultProp , onChange: onChange = ()=>{} }) {\n const [uncontrolledProp, setUncontrolledProp] = $71cd76cc60e0454e$var$useUncontrolledState({\n defaultProp: defaultProp,\n onChange: onChange\n });\n const isControlled = prop !== undefined;\n const value1 = isControlled ? prop : uncontrolledProp;\n const handleChange = $bnPw9$useCallbackRef(onChange);\n const setValue = $bnPw9$useCallback((nextValue)=>{\n if (isControlled) {\n const setter = nextValue;\n const value = typeof nextValue === 'function' ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value);\n } else setUncontrolledProp(nextValue);\n }, [\n isControlled,\n prop,\n setUncontrolledProp,\n handleChange\n ]);\n return [\n value1,\n setValue\n ];\n}\nfunction $71cd76cc60e0454e$var$useUncontrolledState({ defaultProp: defaultProp , onChange: onChange }) {\n const uncontrolledState = $bnPw9$useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = $bnPw9$useRef(value);\n const handleChange = $bnPw9$useCallbackRef(onChange);\n $bnPw9$useEffect(()=>{\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [\n value,\n prevValueRef,\n handleChange\n ]);\n return uncontrolledState;\n}\n\n\n\n\nexport {$71cd76cc60e0454e$export$6f32135080cb4c3 as useControllableState};\n//# sourceMappingURL=index.module.js.map\n","import $9IrjX$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $9IrjX$forwardRef, Children as $9IrjX$Children, isValidElement as $9IrjX$isValidElement, createElement as $9IrjX$createElement, cloneElement as $9IrjX$cloneElement, Fragment as $9IrjX$Fragment} from \"react\";\nimport {composeRefs as $9IrjX$composeRefs} from \"@radix-ui/react-compose-refs\";\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$8c6ed5c666ac1360 = /*#__PURE__*/ $9IrjX$forwardRef((props, forwardedRef)=>{\n const { children: children , ...slotProps } = props;\n const childrenArray = $9IrjX$Children.toArray(children);\n const slottable = childrenArray.find($5e63c961fc1ce211$var$isSlottable);\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child)=>{\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if ($9IrjX$Children.count(newElement) > 1) return $9IrjX$Children.only(null);\n return /*#__PURE__*/ $9IrjX$isValidElement(newElement) ? newElement.props.children : null;\n } else return child;\n });\n return /*#__PURE__*/ $9IrjX$createElement($5e63c961fc1ce211$var$SlotClone, $9IrjX$babelruntimehelpersesmextends({}, slotProps, {\n ref: forwardedRef\n }), /*#__PURE__*/ $9IrjX$isValidElement(newElement) ? /*#__PURE__*/ $9IrjX$cloneElement(newElement, undefined, newChildren) : null);\n }\n return /*#__PURE__*/ $9IrjX$createElement($5e63c961fc1ce211$var$SlotClone, $9IrjX$babelruntimehelpersesmextends({}, slotProps, {\n ref: forwardedRef\n }), children);\n});\n$5e63c961fc1ce211$export$8c6ed5c666ac1360.displayName = 'Slot';\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$var$SlotClone = /*#__PURE__*/ $9IrjX$forwardRef((props, forwardedRef)=>{\n const { children: children , ...slotProps } = props;\n if (/*#__PURE__*/ $9IrjX$isValidElement(children)) return /*#__PURE__*/ $9IrjX$cloneElement(children, {\n ...$5e63c961fc1ce211$var$mergeProps(slotProps, children.props),\n ref: $9IrjX$composeRefs(forwardedRef, children.ref)\n });\n return $9IrjX$Children.count(children) > 1 ? $9IrjX$Children.only(null) : null;\n});\n$5e63c961fc1ce211$var$SlotClone.displayName = 'SlotClone';\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 = ({ children: children })=>{\n return /*#__PURE__*/ $9IrjX$createElement($9IrjX$Fragment, null, children);\n};\n/* ---------------------------------------------------------------------------------------------- */ function $5e63c961fc1ce211$var$isSlottable(child) {\n return /*#__PURE__*/ $9IrjX$isValidElement(child) && child.type === $5e63c961fc1ce211$export$d9f1ccf0bdb05d45;\n}\nfunction $5e63c961fc1ce211$var$mergeProps(slotProps, childProps) {\n // all child props should override\n const overrideProps = {\n ...childProps\n };\n for(const propName in childProps){\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName); // if it's a handler, modify the override by composing the base handler\n if (isHandler) overrideProps[propName] = (...args)=>{\n childPropValue === null || childPropValue === void 0 || childPropValue(...args);\n slotPropValue === null || slotPropValue === void 0 || slotPropValue(...args);\n };\n else if (propName === 'style') overrideProps[propName] = {\n ...slotPropValue,\n ...childPropValue\n };\n else if (propName === 'className') overrideProps[propName] = [\n slotPropValue,\n childPropValue\n ].filter(Boolean).join(' ');\n }\n return {\n ...slotProps,\n ...overrideProps\n };\n}\nconst $5e63c961fc1ce211$export$be92b6f5f03c0fe9 = $5e63c961fc1ce211$export$8c6ed5c666ac1360;\n\n\n\n\nexport {$5e63c961fc1ce211$export$8c6ed5c666ac1360 as Slot, $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 as Slottable, $5e63c961fc1ce211$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import $4q5Fq$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $4q5Fq$forwardRef, useEffect as $4q5Fq$useEffect, createElement as $4q5Fq$createElement} from \"react\";\nimport {flushSync as $4q5Fq$flushSync} from \"react-dom\";\nimport {Slot as $4q5Fq$Slot} from \"@radix-ui/react-slot\";\n\n\n\n\n\nconst $8927f6f2acc4f386$var$NODES = [\n 'a',\n 'button',\n 'div',\n 'h2',\n 'h3',\n 'img',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'span',\n 'svg',\n 'ul'\n]; // Temporary while we await merge of this fix:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55396\n// prettier-ignore\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$250ffa63cdc0d034 = $8927f6f2acc4f386$var$NODES.reduce((primitive, node)=>{\n const Node = /*#__PURE__*/ $4q5Fq$forwardRef((props, forwardedRef)=>{\n const { asChild: asChild , ...primitiveProps } = props;\n const Comp = asChild ? $4q5Fq$Slot : node;\n $4q5Fq$useEffect(()=>{\n window[Symbol.for('radix-ui')] = true;\n }, []);\n return /*#__PURE__*/ $4q5Fq$createElement(Comp, $4q5Fq$babelruntimehelpersesmextends({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return {\n ...primitive,\n [node]: Node\n };\n}, {});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not nessesary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event ðŸ‘\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */ function $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event) {\n if (target) $4q5Fq$flushSync(()=>target.dispatchEvent(event)\n );\n}\n/* -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$be92b6f5f03c0fe9 = $8927f6f2acc4f386$export$250ffa63cdc0d034;\n\n\n\n\nexport {$8927f6f2acc4f386$export$250ffa63cdc0d034 as Primitive, $8927f6f2acc4f386$export$be92b6f5f03c0fe9 as Root, $8927f6f2acc4f386$export$6d1a0317bde7de7f as dispatchDiscreteCustomEvent};\n//# sourceMappingURL=index.module.js.map\n","import {useEffect as $hPSQ5$useEffect} from \"react\";\nimport {useCallbackRef as $hPSQ5$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\n\n\n\n/**\n * Listens for when the escape key is down\n */ function $addc16e1bbe58fd0$export$3a72a57244d6e765(onEscapeKeyDownProp) {\n const onEscapeKeyDown = $hPSQ5$useCallbackRef(onEscapeKeyDownProp);\n $hPSQ5$useEffect(()=>{\n const handleKeyDown = (event)=>{\n if (event.key === 'Escape') onEscapeKeyDown(event);\n };\n document.addEventListener('keydown', handleKeyDown);\n return ()=>document.removeEventListener('keydown', handleKeyDown)\n ;\n }, [\n onEscapeKeyDown\n ]);\n}\n\n\n\n\nexport {$addc16e1bbe58fd0$export$3a72a57244d6e765 as useEscapeKeydown};\n//# sourceMappingURL=index.module.js.map\n","import $kqwpH$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {createContext as $kqwpH$createContext, forwardRef as $kqwpH$forwardRef, useContext as $kqwpH$useContext, useState as $kqwpH$useState, useEffect as $kqwpH$useEffect, createElement as $kqwpH$createElement, useRef as $kqwpH$useRef} from \"react\";\nimport {composeEventHandlers as $kqwpH$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {Primitive as $kqwpH$Primitive, dispatchDiscreteCustomEvent as $kqwpH$dispatchDiscreteCustomEvent} from \"@radix-ui/react-primitive\";\nimport {useComposedRefs as $kqwpH$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {useCallbackRef as $kqwpH$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\nimport {useEscapeKeydown as $kqwpH$useEscapeKeydown} from \"@radix-ui/react-use-escape-keydown\";\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayer\n * -----------------------------------------------------------------------------------------------*/ const $5cb92bef7577960e$var$DISMISSABLE_LAYER_NAME = 'DismissableLayer';\nconst $5cb92bef7577960e$var$CONTEXT_UPDATE = 'dismissableLayer.update';\nconst $5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';\nconst $5cb92bef7577960e$var$FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';\nlet $5cb92bef7577960e$var$originalBodyPointerEvents;\nconst $5cb92bef7577960e$var$DismissableLayerContext = /*#__PURE__*/ $kqwpH$createContext({\n layers: new Set(),\n layersWithOutsidePointerEventsDisabled: new Set(),\n branches: new Set()\n});\nconst $5cb92bef7577960e$export$177fb62ff3ec1f22 = /*#__PURE__*/ $kqwpH$forwardRef((props, forwardedRef)=>{\n const { disableOutsidePointerEvents: disableOutsidePointerEvents = false , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , onDismiss: onDismiss , ...layerProps } = props;\n const context = $kqwpH$useContext($5cb92bef7577960e$var$DismissableLayerContext);\n const [node1, setNode] = $kqwpH$useState(null);\n const [, force] = $kqwpH$useState({});\n const composedRefs = $kqwpH$useComposedRefs(forwardedRef, (node)=>setNode(node)\n );\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1); // prettier-ignore\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); // prettier-ignore\n const index = node1 ? layers.indexOf(node1) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = $5cb92bef7577960e$var$usePointerDownOutside((event)=>{\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some((branch)=>branch.contains(target)\n );\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 || onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();\n });\n const focusOutside = $5cb92bef7577960e$var$useFocusOutside((event)=>{\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some((branch)=>branch.contains(target)\n );\n if (isFocusInBranch) return;\n onFocusOutside === null || onFocusOutside === void 0 || onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();\n });\n $kqwpH$useEscapeKeydown((event)=>{\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 || onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n });\n $kqwpH$useEffect(()=>{\n if (!node1) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n $5cb92bef7577960e$var$originalBodyPointerEvents = document.body.style.pointerEvents;\n document.body.style.pointerEvents = 'none';\n }\n context.layersWithOutsidePointerEventsDisabled.add(node1);\n }\n context.layers.add(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n return ()=>{\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) document.body.style.pointerEvents = $5cb92bef7577960e$var$originalBodyPointerEvents;\n };\n }, [\n node1,\n disableOutsidePointerEvents,\n context\n ]);\n /**\n * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect\n * because a change to `disableOutsidePointerEvents` would remove this layer from the stack\n * and add it to the end again so the layering order wouldn't be _creation order_.\n * We only want them to be removed from context stacks when unmounted.\n */ $kqwpH$useEffect(()=>{\n return ()=>{\n if (!node1) return;\n context.layers.delete(node1);\n context.layersWithOutsidePointerEventsDisabled.delete(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n };\n }, [\n node1,\n context\n ]);\n $kqwpH$useEffect(()=>{\n const handleUpdate = ()=>force({})\n ;\n document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate);\n return ()=>document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate)\n ;\n }, []);\n return /*#__PURE__*/ $kqwpH$createElement($kqwpH$Primitive.div, $kqwpH$babelruntimehelpersesmextends({}, layerProps, {\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? 'auto' : 'none' : undefined,\n ...props.style\n },\n onFocusCapture: $kqwpH$composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: $kqwpH$composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: $kqwpH$composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n }));\n});\n/*#__PURE__*/ Object.assign($5cb92bef7577960e$export$177fb62ff3ec1f22, {\n displayName: $5cb92bef7577960e$var$DISMISSABLE_LAYER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayerBranch\n * -----------------------------------------------------------------------------------------------*/ const $5cb92bef7577960e$var$BRANCH_NAME = 'DismissableLayerBranch';\nconst $5cb92bef7577960e$export$4d5eb2109db14228 = /*#__PURE__*/ $kqwpH$forwardRef((props, forwardedRef)=>{\n const context = $kqwpH$useContext($5cb92bef7577960e$var$DismissableLayerContext);\n const ref = $kqwpH$useRef(null);\n const composedRefs = $kqwpH$useComposedRefs(forwardedRef, ref);\n $kqwpH$useEffect(()=>{\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return ()=>{\n context.branches.delete(node);\n };\n }\n }, [\n context.branches\n ]);\n return /*#__PURE__*/ $kqwpH$createElement($kqwpH$Primitive.div, $kqwpH$babelruntimehelpersesmextends({}, props, {\n ref: composedRefs\n }));\n});\n/*#__PURE__*/ Object.assign($5cb92bef7577960e$export$4d5eb2109db14228, {\n displayName: $5cb92bef7577960e$var$BRANCH_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ /**\n * Listens for `pointerdown` outside a react subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behaviour present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */ function $5cb92bef7577960e$var$usePointerDownOutside(onPointerDownOutside) {\n const handlePointerDownOutside = $kqwpH$useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = $kqwpH$useRef(false);\n const handleClickRef = $kqwpH$useRef(()=>{});\n $kqwpH$useEffect(()=>{\n const handlePointerDown = (event)=>{\n if (event.target && !isPointerInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n function handleAndDispatchPointerDownOutsideEvent() {\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n }\n /**\n * On touch devices, we need to wait for a click event because browsers implement\n * a ~350ms delay between the time the user stops touching the display and when the\n * browser executres events. We need to ensure we don't reactivate pointer-events within\n * this timeframe otherwise the browser may execute events that should have been prevented.\n *\n * Additionally, this also lets us deal automatically with cancellations when a click event\n * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener, because we cannot be\n * certain that it was raised, and therefore cleaned-up.\n */ if (event.pointerType === 'touch') {\n document.removeEventListener('click', handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n document.addEventListener('click', handleClickRef.current, {\n once: true\n });\n } else handleAndDispatchPointerDownOutsideEvent();\n }\n isPointerInsideReactTreeRef.current = false;\n };\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not React specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */ const timerId = window.setTimeout(()=>{\n document.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n return ()=>{\n window.clearTimeout(timerId);\n document.removeEventListener('pointerdown', handlePointerDown);\n document.removeEventListener('click', handleClickRef.current);\n };\n }, [\n handlePointerDownOutside\n ]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true\n };\n}\n/**\n * Listens for when focus happens outside a react subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */ function $5cb92bef7577960e$var$useFocusOutside(onFocusOutside) {\n const handleFocusOutside = $kqwpH$useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = $kqwpH$useRef(false);\n $kqwpH$useEffect(()=>{\n const handleFocus = (event)=>{\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n document.addEventListener('focusin', handleFocus);\n return ()=>document.removeEventListener('focusin', handleFocus)\n ;\n }, [\n handleFocusOutside\n ]);\n return {\n onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true\n ,\n onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false\n };\n}\nfunction $5cb92bef7577960e$var$dispatchUpdate() {\n const event = new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction $5cb92bef7577960e$var$handleAndDispatchCustomEvent(name, handler, detail, { discrete: discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail: detail\n });\n if (handler) target.addEventListener(name, handler, {\n once: true\n });\n if (discrete) $kqwpH$dispatchDiscreteCustomEvent(target, event);\n else target.dispatchEvent(event);\n}\nconst $5cb92bef7577960e$export$be92b6f5f03c0fe9 = $5cb92bef7577960e$export$177fb62ff3ec1f22;\nconst $5cb92bef7577960e$export$aecb2ddcb55c95be = $5cb92bef7577960e$export$4d5eb2109db14228;\n\n\n\n\nexport {$5cb92bef7577960e$export$177fb62ff3ec1f22 as DismissableLayer, $5cb92bef7577960e$export$4d5eb2109db14228 as DismissableLayerBranch, $5cb92bef7577960e$export$be92b6f5f03c0fe9 as Root, $5cb92bef7577960e$export$aecb2ddcb55c95be as Branch};\n//# sourceMappingURL=index.module.js.map\n","import $45QHv$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $45QHv$forwardRef, useState as $45QHv$useState, useRef as $45QHv$useRef, useEffect as $45QHv$useEffect, useCallback as $45QHv$useCallback, createElement as $45QHv$createElement} from \"react\";\nimport {useComposedRefs as $45QHv$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {Primitive as $45QHv$Primitive} from \"@radix-ui/react-primitive\";\nimport {useCallbackRef as $45QHv$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\n\n\n\n\n\n\nconst $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';\nconst $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';\nconst $d3863c46a17e8a28$var$EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\n/* -------------------------------------------------------------------------------------------------\n * FocusScope\n * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$FOCUS_SCOPE_NAME = 'FocusScope';\nconst $d3863c46a17e8a28$export$20e40289641fbbb6 = /*#__PURE__*/ $45QHv$forwardRef((props, forwardedRef)=>{\n const { loop: loop = false , trapped: trapped = false , onMountAutoFocus: onMountAutoFocusProp , onUnmountAutoFocus: onUnmountAutoFocusProp , ...scopeProps } = props;\n const [container1, setContainer] = $45QHv$useState(null);\n const onMountAutoFocus = $45QHv$useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = $45QHv$useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = $45QHv$useRef(null);\n const composedRefs = $45QHv$useComposedRefs(forwardedRef, (node)=>setContainer(node)\n );\n const focusScope = $45QHv$useRef({\n paused: false,\n pause () {\n this.paused = true;\n },\n resume () {\n this.paused = false;\n }\n }).current; // Takes care of trapping focus if focus is moved outside programmatically for example\n $45QHv$useEffect(()=>{\n if (trapped) {\n function handleFocusIn(event) {\n if (focusScope.paused || !container1) return;\n const target = event.target;\n if (container1.contains(target)) lastFocusedElementRef.current = target;\n else $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n function handleFocusOut(event) {\n if (focusScope.paused || !container1) return;\n if (!container1.contains(event.relatedTarget)) $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n return ()=>{\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n };\n }\n }, [\n trapped,\n container1,\n focusScope.paused\n ]);\n $45QHv$useEffect(()=>{\n if (container1) {\n $d3863c46a17e8a28$var$focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container1.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container1.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n $d3863c46a17e8a28$var$focusFirst($d3863c46a17e8a28$var$removeLinks($d3863c46a17e8a28$var$getTabbableCandidates(container1)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement) $d3863c46a17e8a28$var$focus(container1);\n }\n }\n return ()=>{\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus); // We hit a react bug (fixed in v17) with focusing in unmount.\n // We need to delay the focus a little to get around it for now.\n // See: https://github.com/facebook/react/issues/17894\n setTimeout(()=>{\n const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container1.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) $d3863c46a17e8a28$var$focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n // we need to remove the listener after we `dispatchEvent`\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n $d3863c46a17e8a28$var$focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [\n container1,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]); // Takes care of looping focus (when tabbing whilst at the edges)\n const handleKeyDown = $45QHv$useCallback((event)=>{\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container = event.currentTarget;\n const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges(container);\n const hasTabbableElementsInside = first && last; // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) $d3863c46a17e8a28$var$focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) $d3863c46a17e8a28$var$focus(last, {\n select: true\n });\n }\n }\n }\n }, [\n loop,\n trapped,\n focusScope.paused\n ]);\n return /*#__PURE__*/ $45QHv$createElement($45QHv$Primitive.div, $45QHv$babelruntimehelpersesmextends({\n tabIndex: -1\n }, scopeProps, {\n ref: composedRefs,\n onKeyDown: handleKeyDown\n }));\n});\n/*#__PURE__*/ Object.assign($d3863c46a17e8a28$export$20e40289641fbbb6, {\n displayName: $d3863c46a17e8a28$var$FOCUS_SCOPE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */ function $d3863c46a17e8a28$var$focusFirst(candidates, { select: select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates){\n $d3863c46a17e8a28$var$focus(candidate, {\n select: select\n });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\n/**\n * Returns the first and last tabbable elements inside a container.\n */ function $d3863c46a17e8a28$var$getTabbableEdges(container) {\n const candidates = $d3863c46a17e8a28$var$getTabbableCandidates(container);\n const first = $d3863c46a17e8a28$var$findVisible(candidates, container);\n const last = $d3863c46a17e8a28$var$findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */ function $d3863c46a17e8a28$var$getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node)=>{\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while(walker.nextNode())nodes.push(walker.currentNode); // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */ function $d3863c46a17e8a28$var$findVisible(elements, container) {\n for (const element of elements){\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!$d3863c46a17e8a28$var$isHidden(element, {\n upTo: container\n })) return element;\n }\n}\nfunction $d3863c46a17e8a28$var$isHidden(node, { upTo: upTo }) {\n if (getComputedStyle(node).visibility === 'hidden') return true;\n while(node){\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === 'none') return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction $d3863c46a17e8a28$var$isSelectableInput(element) {\n return element instanceof HTMLInputElement && 'select' in element;\n}\nfunction $d3863c46a17e8a28$var$focus(element, { select: select = false } = {}) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement; // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({\n preventScroll: true\n }); // only select if its not the same element, it supports selection and we need to select\n if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput(element) && select) element.select();\n }\n}\n/* -------------------------------------------------------------------------------------------------\n * FocusScope stack\n * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$focusScopesStack = $d3863c46a17e8a28$var$createFocusScopesStack();\nfunction $d3863c46a17e8a28$var$createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */ let stack = [];\n return {\n add (focusScope) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove (focusScope) {\n var _stack$;\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n (_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();\n }\n };\n}\nfunction $d3863c46a17e8a28$var$arrayRemove(array, item) {\n const updatedArray = [\n ...array\n ];\n const index = updatedArray.indexOf(item);\n if (index !== -1) updatedArray.splice(index, 1);\n return updatedArray;\n}\nfunction $d3863c46a17e8a28$var$removeLinks(items) {\n return items.filter((item)=>item.tagName !== 'A'\n );\n}\nconst $d3863c46a17e8a28$export$be92b6f5f03c0fe9 = $d3863c46a17e8a28$export$20e40289641fbbb6;\n\n\n\n\nexport {$d3863c46a17e8a28$export$20e40289641fbbb6 as FocusScope, $d3863c46a17e8a28$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import $7SXl2$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $7SXl2$forwardRef, createElement as $7SXl2$createElement} from \"react\";\nimport $7SXl2$reactdom from \"react-dom\";\nimport {Primitive as $7SXl2$Primitive} from \"@radix-ui/react-primitive\";\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/ const $f1701beae083dbae$var$PORTAL_NAME = 'Portal';\nconst $f1701beae083dbae$export$602eac185826482c = /*#__PURE__*/ $7SXl2$forwardRef((props, forwardedRef)=>{\n var _globalThis$document;\n const { container: container = globalThis === null || globalThis === void 0 ? void 0 : (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.body , ...portalProps } = props;\n return container ? /*#__PURE__*/ $7SXl2$reactdom.createPortal(/*#__PURE__*/ $7SXl2$createElement($7SXl2$Primitive.div, $7SXl2$babelruntimehelpersesmextends({}, portalProps, {\n ref: forwardedRef\n })), container) : null;\n});\n/*#__PURE__*/ Object.assign($f1701beae083dbae$export$602eac185826482c, {\n displayName: $f1701beae083dbae$var$PORTAL_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $f1701beae083dbae$export$be92b6f5f03c0fe9 = $f1701beae083dbae$export$602eac185826482c;\n\n\n\n\nexport {$f1701beae083dbae$export$602eac185826482c as Portal, $f1701beae083dbae$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import {Children as $iqq3r$Children, cloneElement as $iqq3r$cloneElement, useState as $iqq3r$useState, useRef as $iqq3r$useRef, useEffect as $iqq3r$useEffect, useCallback as $iqq3r$useCallback, useReducer as $iqq3r$useReducer} from \"react\";\nimport {flushSync as $iqq3r$flushSync} from \"react-dom\";\nimport {useComposedRefs as $iqq3r$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {useLayoutEffect as $iqq3r$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\n\n\n\n\n\n\nfunction $fe963b355347cc68$export$3e6543de14f8614f(initialState, machine) {\n return $iqq3r$useReducer((state, event)=>{\n const nextState = machine[state][event];\n return nextState !== null && nextState !== void 0 ? nextState : state;\n }, initialState);\n}\n\n\nconst $921a889cee6df7e8$export$99c2b779aa4e8b8b = (props)=>{\n const { present: present , children: children } = props;\n const presence = $921a889cee6df7e8$var$usePresence(present);\n const child = typeof children === 'function' ? children({\n present: presence.isPresent\n }) : $iqq3r$Children.only(children);\n const ref = $iqq3r$useComposedRefs(presence.ref, child.ref);\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? /*#__PURE__*/ $iqq3r$cloneElement(child, {\n ref: ref\n }) : null;\n};\n$921a889cee6df7e8$export$99c2b779aa4e8b8b.displayName = 'Presence';\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/ function $921a889cee6df7e8$var$usePresence(present) {\n const [node1, setNode] = $iqq3r$useState();\n const stylesRef = $iqq3r$useRef({});\n const prevPresentRef = $iqq3r$useRef(present);\n const prevAnimationNameRef = $iqq3r$useRef('none');\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = $fe963b355347cc68$export$3e6543de14f8614f(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended'\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted'\n },\n unmounted: {\n MOUNT: 'mounted'\n }\n });\n $iqq3r$useEffect(()=>{\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === 'mounted' ? currentAnimationName : 'none';\n }, [\n state\n ]);\n $iqq3r$useLayoutEffect(()=>{\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(styles);\n if (present) send('MOUNT');\n else if (currentAnimationName === 'none' || (styles === null || styles === void 0 ? void 0 : styles.display) === 'none') // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */ const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) send('ANIMATION_OUT');\n else send('UNMOUNT');\n }\n prevPresentRef.current = present;\n }\n }, [\n present,\n send\n ]);\n $iqq3r$useLayoutEffect(()=>{\n if (node1) {\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */ const handleAnimationEnd = (event)=>{\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node1 && isCurrentAnimation) // With React 18 concurrency this update is applied\n // a frame after the animation ends, creating a flash of visible content.\n // By manually flushing we ensure they sync within a frame, removing the flash.\n $iqq3r$flushSync(()=>send('ANIMATION_END')\n );\n };\n const handleAnimationStart = (event)=>{\n if (event.target === node1) // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n };\n node1.addEventListener('animationstart', handleAnimationStart);\n node1.addEventListener('animationcancel', handleAnimationEnd);\n node1.addEventListener('animationend', handleAnimationEnd);\n return ()=>{\n node1.removeEventListener('animationstart', handleAnimationStart);\n node1.removeEventListener('animationcancel', handleAnimationEnd);\n node1.removeEventListener('animationend', handleAnimationEnd);\n };\n } else // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }, [\n node1,\n send\n ]);\n return {\n isPresent: [\n 'mounted',\n 'unmountSuspended'\n ].includes(state),\n ref: $iqq3r$useCallback((node)=>{\n if (node) stylesRef.current = getComputedStyle(node);\n setNode(node);\n }, [])\n };\n}\n/* -----------------------------------------------------------------------------------------------*/ function $921a889cee6df7e8$var$getAnimationName(styles) {\n return (styles === null || styles === void 0 ? void 0 : styles.animationName) || 'none';\n}\n\n\n\n\nexport {$921a889cee6df7e8$export$99c2b779aa4e8b8b as Presence};\n//# sourceMappingURL=index.module.js.map\n","import {useEffect as $1wErz$useEffect} from \"react\";\n\n\n/** Number of components which have requested interest to have focus guards */ let $3db38b7d1fb3fe6a$var$count = 0;\nfunction $3db38b7d1fb3fe6a$export$ac5b58043b79449b(props) {\n $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();\n return props.children;\n}\n/**\n * Injects a pair of focus guards at the edges of the whole DOM tree\n * to ensure `focusin` & `focusout` events can be caught consistently.\n */ function $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c() {\n $1wErz$useEffect(()=>{\n var _edgeGuards$, _edgeGuards$2;\n const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');\n document.body.insertAdjacentElement('afterbegin', (_edgeGuards$ = edgeGuards[0]) !== null && _edgeGuards$ !== void 0 ? _edgeGuards$ : $3db38b7d1fb3fe6a$var$createFocusGuard());\n document.body.insertAdjacentElement('beforeend', (_edgeGuards$2 = edgeGuards[1]) !== null && _edgeGuards$2 !== void 0 ? _edgeGuards$2 : $3db38b7d1fb3fe6a$var$createFocusGuard());\n $3db38b7d1fb3fe6a$var$count++;\n return ()=>{\n if ($3db38b7d1fb3fe6a$var$count === 1) document.querySelectorAll('[data-radix-focus-guard]').forEach((node)=>node.remove()\n );\n $3db38b7d1fb3fe6a$var$count--;\n };\n }, []);\n}\nfunction $3db38b7d1fb3fe6a$var$createFocusGuard() {\n const element = document.createElement('span');\n element.setAttribute('data-radix-focus-guard', '');\n element.tabIndex = 0;\n element.style.cssText = 'outline: none; opacity: 0; position: fixed; pointer-events: none';\n return element;\n}\nconst $3db38b7d1fb3fe6a$export$be92b6f5f03c0fe9 = $3db38b7d1fb3fe6a$export$ac5b58043b79449b;\n\n\n\n\nexport {$3db38b7d1fb3fe6a$export$ac5b58043b79449b as FocusGuards, $3db38b7d1fb3fe6a$export$be92b6f5f03c0fe9 as Root, $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c as useFocusGuards};\n//# sourceMappingURL=index.module.js.map\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var elementCouldBeVScrolled = function (node) {\n var styles = window.getComputedStyle(node);\n return (styles.overflowY !== 'hidden' && // not-not-scrollable\n !(styles.overflowY === styles.overflowX && styles.overflowY === 'visible') // scrollable\n );\n};\nvar elementCouldBeHScrolled = function (node) {\n var styles = window.getComputedStyle(node);\n return (styles.overflowX !== 'hidden' && // not-not-scrollable\n !(styles.overflowY === styles.overflowX && styles.overflowX === 'visible') // scrollable\n );\n};\nexport var locationCouldBeScrolled = function (axis, node) {\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), s = _a[1], d = _a[2];\n if (s > d) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== document.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n target = target.parentNode;\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n if (isDeltaPositive && ((noOverscroll && availableScroll === 0) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && availableScrollTop === 0) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(function () { return styleSingleton(); })[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if ('touches' in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && e.target === event.target && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n event.preventDefault();\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n event.preventDefault();\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: \"margin\" }) : null));\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","import $67UHm$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {useRef as $67UHm$useRef, createElement as $67UHm$createElement, useCallback as $67UHm$useCallback, forwardRef as $67UHm$forwardRef, Children as $67UHm$Children, useEffect as $67UHm$useEffect, Fragment as $67UHm$Fragment} from \"react\";\nimport {composeEventHandlers as $67UHm$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {useComposedRefs as $67UHm$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {createContextScope as $67UHm$createContextScope, createContext as $67UHm$createContext} from \"@radix-ui/react-context\";\nimport {useId as $67UHm$useId} from \"@radix-ui/react-id\";\nimport {useControllableState as $67UHm$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {DismissableLayer as $67UHm$DismissableLayer} from \"@radix-ui/react-dismissable-layer\";\nimport {FocusScope as $67UHm$FocusScope} from \"@radix-ui/react-focus-scope\";\nimport {Portal as $67UHm$Portal} from \"@radix-ui/react-portal\";\nimport {Presence as $67UHm$Presence} from \"@radix-ui/react-presence\";\nimport {Primitive as $67UHm$Primitive} from \"@radix-ui/react-primitive\";\nimport {useFocusGuards as $67UHm$useFocusGuards} from \"@radix-ui/react-focus-guards\";\nimport {RemoveScroll as $67UHm$RemoveScroll} from \"react-remove-scroll\";\nimport {hideOthers as $67UHm$hideOthers} from \"aria-hidden\";\nimport {Slot as $67UHm$Slot} from \"@radix-ui/react-slot\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DIALOG_NAME = 'Dialog';\nconst [$5d3850c4d0b4e6c7$var$createDialogContext, $5d3850c4d0b4e6c7$export$cc702773b8ea3e41] = $67UHm$createContextScope($5d3850c4d0b4e6c7$var$DIALOG_NAME);\nconst [$5d3850c4d0b4e6c7$var$DialogProvider, $5d3850c4d0b4e6c7$var$useDialogContext] = $5d3850c4d0b4e6c7$var$createDialogContext($5d3850c4d0b4e6c7$var$DIALOG_NAME);\nconst $5d3850c4d0b4e6c7$export$3ddf2d174ce01153 = (props)=>{\n const { __scopeDialog: __scopeDialog , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , modal: modal = true } = props;\n const triggerRef = $67UHm$useRef(null);\n const contentRef = $67UHm$useRef(null);\n const [open = false, setOpen] = $67UHm$useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogProvider, {\n scope: __scopeDialog,\n triggerRef: triggerRef,\n contentRef: contentRef,\n contentId: $67UHm$useId(),\n titleId: $67UHm$useId(),\n descriptionId: $67UHm$useId(),\n open: open,\n onOpenChange: setOpen,\n onOpenToggle: $67UHm$useCallback(()=>setOpen((prevOpen)=>!prevOpen\n )\n , [\n setOpen\n ]),\n modal: modal\n }, children);\n};\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$3ddf2d174ce01153, {\n displayName: $5d3850c4d0b4e6c7$var$DIALOG_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$TRIGGER_NAME = 'DialogTrigger';\nconst $5d3850c4d0b4e6c7$export$2e1e1122cf0cba88 = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...triggerProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = $67UHm$useComposedRefs(forwardedRef, context.triggerRef);\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Primitive.button, $67UHm$babelruntimehelpersesmextends({\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": $5d3850c4d0b4e6c7$var$getState(context.open)\n }, triggerProps, {\n ref: composedTriggerRef,\n onClick: $67UHm$composeEventHandlers(props.onClick, context.onOpenToggle)\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$2e1e1122cf0cba88, {\n displayName: $5d3850c4d0b4e6c7$var$TRIGGER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$PORTAL_NAME = 'DialogPortal';\nconst [$5d3850c4d0b4e6c7$var$PortalProvider, $5d3850c4d0b4e6c7$var$usePortalContext] = $5d3850c4d0b4e6c7$var$createDialogContext($5d3850c4d0b4e6c7$var$PORTAL_NAME, {\n forceMount: undefined\n});\nconst $5d3850c4d0b4e6c7$export$dad7c95542bacce0 = (props)=>{\n const { __scopeDialog: __scopeDialog , forceMount: forceMount , children: children , container: container } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$PORTAL_NAME, __scopeDialog);\n return /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$PortalProvider, {\n scope: __scopeDialog,\n forceMount: forceMount\n }, $67UHm$Children.map(children, (child)=>/*#__PURE__*/ $67UHm$createElement($67UHm$Presence, {\n present: forceMount || context.open\n }, /*#__PURE__*/ $67UHm$createElement($67UHm$Portal, {\n asChild: true,\n container: container\n }, child))\n ));\n};\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$dad7c95542bacce0, {\n displayName: $5d3850c4d0b4e6c7$var$PORTAL_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$OVERLAY_NAME = 'DialogOverlay';\nconst $5d3850c4d0b4e6c7$export$bd1d06c79be19e17 = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const portalContext = $5d3850c4d0b4e6c7$var$usePortalContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, props.__scopeDialog);\n const { forceMount: forceMount = portalContext.forceMount , ...overlayProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /*#__PURE__*/ $67UHm$createElement($67UHm$Presence, {\n present: forceMount || context.open\n }, /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogOverlayImpl, $67UHm$babelruntimehelpersesmextends({}, overlayProps, {\n ref: forwardedRef\n }))) : null;\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$bd1d06c79be19e17, {\n displayName: $5d3850c4d0b4e6c7$var$OVERLAY_NAME\n});\nconst $5d3850c4d0b4e6c7$var$DialogOverlayImpl = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...overlayProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, __scopeDialog);\n return(/*#__PURE__*/ // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n $67UHm$createElement($67UHm$RemoveScroll, {\n as: $67UHm$Slot,\n allowPinchZoom: true,\n shards: [\n context.contentRef\n ]\n }, /*#__PURE__*/ $67UHm$createElement($67UHm$Primitive.div, $67UHm$babelruntimehelpersesmextends({\n \"data-state\": $5d3850c4d0b4e6c7$var$getState(context.open)\n }, overlayProps, {\n ref: forwardedRef // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n ,\n style: {\n pointerEvents: 'auto',\n ...overlayProps.style\n }\n }))));\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$CONTENT_NAME = 'DialogContent';\nconst $5d3850c4d0b4e6c7$export$b6d9565de1e068cf = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const portalContext = $5d3850c4d0b4e6c7$var$usePortalContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n const { forceMount: forceMount = portalContext.forceMount , ...contentProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Presence, {\n present: forceMount || context.open\n }, context.modal ? /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogContentModal, $67UHm$babelruntimehelpersesmextends({}, contentProps, {\n ref: forwardedRef\n })) : /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogContentNonModal, $67UHm$babelruntimehelpersesmextends({}, contentProps, {\n ref: forwardedRef\n })));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$b6d9565de1e068cf, {\n displayName: $5d3850c4d0b4e6c7$var$CONTENT_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentModal = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n const contentRef = $67UHm$useRef(null);\n const composedRefs = $67UHm$useComposedRefs(forwardedRef, context.contentRef, contentRef); // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n $67UHm$useEffect(()=>{\n const content = contentRef.current;\n if (content) return $67UHm$hideOthers(content);\n }, []);\n return /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogContentImpl, $67UHm$babelruntimehelpersesmextends({}, props, {\n ref: composedRefs // we make sure focus isn't trapped once `DialogContent` has been closed\n ,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: $67UHm$composeEventHandlers(props.onCloseAutoFocus, (event)=>{\n var _context$triggerRef$c;\n event.preventDefault();\n (_context$triggerRef$c = context.triggerRef.current) === null || _context$triggerRef$c === void 0 || _context$triggerRef$c.focus();\n }),\n onPointerDownOutside: $67UHm$composeEventHandlers(props.onPointerDownOutside, (event)=>{\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick; // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n }) // When focus is trapped, a `focusout` event may still happen.\n ,\n onFocusOutside: $67UHm$composeEventHandlers(props.onFocusOutside, (event)=>event.preventDefault()\n )\n }));\n});\n/* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentNonModal = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = $67UHm$useRef(false);\n return /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogContentImpl, $67UHm$babelruntimehelpersesmextends({}, props, {\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event)=>{\n var _props$onCloseAutoFoc;\n (_props$onCloseAutoFoc = props.onCloseAutoFocus) === null || _props$onCloseAutoFoc === void 0 || _props$onCloseAutoFoc.call(props, event);\n if (!event.defaultPrevented) {\n var _context$triggerRef$c2;\n if (!hasInteractedOutsideRef.current) (_context$triggerRef$c2 = context.triggerRef.current) === null || _context$triggerRef$c2 === void 0 || _context$triggerRef$c2.focus(); // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n },\n onInteractOutside: (event)=>{\n var _props$onInteractOuts, _context$triggerRef$c3;\n (_props$onInteractOuts = props.onInteractOutside) === null || _props$onInteractOuts === void 0 || _props$onInteractOuts.call(props, event);\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true; // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target;\n const targetIsTrigger = (_context$triggerRef$c3 = context.triggerRef.current) === null || _context$triggerRef$c3 === void 0 ? void 0 : _context$triggerRef$c3.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }\n }));\n});\n/* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentImpl = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , trapFocus: trapFocus , onOpenAutoFocus: onOpenAutoFocus , onCloseAutoFocus: onCloseAutoFocus , ...contentProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, __scopeDialog);\n const contentRef = $67UHm$useRef(null);\n const composedRefs = $67UHm$useComposedRefs(forwardedRef, contentRef); // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (beacuse of the `Portal`)\n $67UHm$useFocusGuards();\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Fragment, null, /*#__PURE__*/ $67UHm$createElement($67UHm$FocusScope, {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus\n }, /*#__PURE__*/ $67UHm$createElement($67UHm$DismissableLayer, $67UHm$babelruntimehelpersesmextends({\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": $5d3850c4d0b4e6c7$var$getState(context.open)\n }, contentProps, {\n ref: composedRefs,\n onDismiss: ()=>context.onOpenChange(false)\n }))), false);\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$TITLE_NAME = 'DialogTitle';\nconst $5d3850c4d0b4e6c7$export$16f7638e4a34b909 = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...titleProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$TITLE_NAME, __scopeDialog);\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Primitive.h2, $67UHm$babelruntimehelpersesmextends({\n id: context.titleId\n }, titleProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$16f7638e4a34b909, {\n displayName: $5d3850c4d0b4e6c7$var$TITLE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DESCRIPTION_NAME = 'DialogDescription';\nconst $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5 = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...descriptionProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$DESCRIPTION_NAME, __scopeDialog);\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Primitive.p, $67UHm$babelruntimehelpersesmextends({\n id: context.descriptionId\n }, descriptionProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$94e94c2ec2c954d5, {\n displayName: $5d3850c4d0b4e6c7$var$DESCRIPTION_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$CLOSE_NAME = 'DialogClose';\nconst $5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...closeProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CLOSE_NAME, __scopeDialog);\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Primitive.button, $67UHm$babelruntimehelpersesmextends({\n type: \"button\"\n }, closeProps, {\n ref: forwardedRef,\n onClick: $67UHm$composeEventHandlers(props.onClick, ()=>context.onOpenChange(false)\n )\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac, {\n displayName: $5d3850c4d0b4e6c7$var$CLOSE_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ function $5d3850c4d0b4e6c7$var$getState(open) {\n return open ? 'open' : 'closed';\n}\nconst $5d3850c4d0b4e6c7$var$TITLE_WARNING_NAME = 'DialogTitleWarning';\nconst [$5d3850c4d0b4e6c7$export$69b62a49393917d6, $5d3850c4d0b4e6c7$var$useWarningContext] = $67UHm$createContext($5d3850c4d0b4e6c7$var$TITLE_WARNING_NAME, {\n contentName: $5d3850c4d0b4e6c7$var$CONTENT_NAME,\n titleName: $5d3850c4d0b4e6c7$var$TITLE_NAME,\n docsSlug: 'dialog'\n});\nconst $5d3850c4d0b4e6c7$var$TitleWarning = ({ titleId: titleId })=>{\n const titleWarningContext = $5d3850c4d0b4e6c7$var$useWarningContext($5d3850c4d0b4e6c7$var$TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n $67UHm$useEffect(()=>{\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) throw new Error(MESSAGE);\n }\n }, [\n MESSAGE,\n titleId\n ]);\n return null;\n};\nconst $5d3850c4d0b4e6c7$var$DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\nconst $5d3850c4d0b4e6c7$var$DescriptionWarning = ({ contentRef: contentRef , descriptionId: descriptionId })=>{\n const descriptionWarningContext = $5d3850c4d0b4e6c7$var$useWarningContext($5d3850c4d0b4e6c7$var$DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n $67UHm$useEffect(()=>{\n var _contentRef$current;\n const describedById = (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.getAttribute('aria-describedby'); // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [\n MESSAGE,\n contentRef,\n descriptionId\n ]);\n return null;\n};\nconst $5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9 = $5d3850c4d0b4e6c7$export$3ddf2d174ce01153;\nconst $5d3850c4d0b4e6c7$export$41fb9f06171c75f4 = $5d3850c4d0b4e6c7$export$2e1e1122cf0cba88;\nconst $5d3850c4d0b4e6c7$export$602eac185826482c = $5d3850c4d0b4e6c7$export$dad7c95542bacce0;\nconst $5d3850c4d0b4e6c7$export$c6fdb837b070b4ff = $5d3850c4d0b4e6c7$export$bd1d06c79be19e17;\nconst $5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2 = $5d3850c4d0b4e6c7$export$b6d9565de1e068cf;\nconst $5d3850c4d0b4e6c7$export$f99233281efd08a0 = $5d3850c4d0b4e6c7$export$16f7638e4a34b909;\nconst $5d3850c4d0b4e6c7$export$393edc798c47379d = $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5;\nconst $5d3850c4d0b4e6c7$export$f39c2d165cd861fe = $5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac;\n\n\n\n\nexport {$5d3850c4d0b4e6c7$export$cc702773b8ea3e41 as createDialogScope, $5d3850c4d0b4e6c7$export$3ddf2d174ce01153 as Dialog, $5d3850c4d0b4e6c7$export$2e1e1122cf0cba88 as DialogTrigger, $5d3850c4d0b4e6c7$export$dad7c95542bacce0 as DialogPortal, $5d3850c4d0b4e6c7$export$bd1d06c79be19e17 as DialogOverlay, $5d3850c4d0b4e6c7$export$b6d9565de1e068cf as DialogContent, $5d3850c4d0b4e6c7$export$16f7638e4a34b909 as DialogTitle, $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5 as DialogDescription, $5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac as DialogClose, $5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9 as Root, $5d3850c4d0b4e6c7$export$41fb9f06171c75f4 as Trigger, $5d3850c4d0b4e6c7$export$602eac185826482c as Portal, $5d3850c4d0b4e6c7$export$c6fdb837b070b4ff as Overlay, $5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2 as Content, $5d3850c4d0b4e6c7$export$f99233281efd08a0 as Title, $5d3850c4d0b4e6c7$export$393edc798c47379d as Description, $5d3850c4d0b4e6c7$export$f39c2d165cd861fe as Close, $5d3850c4d0b4e6c7$export$69b62a49393917d6 as WarningProvider};\n//# sourceMappingURL=index.module.js.map\n","import{a as oe}from\"./chunk-XJATAMEX.mjs\";import*as y from\"@radix-ui/react-dialog\";import*as t from\"react\";var fe='[cmdk-list-sizer=\"\"]',O='[cmdk-group=\"\"]',U='[cmdk-group-items=\"\"]',me='[cmdk-group-heading=\"\"]',W='[cmdk-item=\"\"]',ae=`${W}:not([aria-disabled=\"true\"])`,B=\"cmdk-item-select\",S=\"data-value\",pe=(r,c)=>oe(r,c),se=t.createContext(void 0),A=()=>t.useContext(se),ie=t.createContext(void 0),J=()=>t.useContext(ie),ce=t.createContext(void 0),le=t.forwardRef((r,c)=>{let n=t.useRef(null),o=w(()=>{var e,s,a;return{search:\"\",value:(a=(s=r.value)!=null?s:(e=r.defaultValue)==null?void 0:e.toLowerCase())!=null?a:\"\",filtered:{count:0,items:new Map,groups:new Set}}}),l=w(()=>new Set),d=w(()=>new Map),f=w(()=>new Map),g=w(()=>new Set),u=ue(r),{label:b,children:p,value:R,onValueChange:T,filter:I,shouldFilter:C,vimBindings:F=!0,...P}=r,Q=t.useId(),K=t.useId(),V=t.useId(),E=Le();D(()=>{if(R!==void 0){let e=R.trim().toLowerCase();o.current.value=e,E(6,Y),m.emit()}},[R]);let m=t.useMemo(()=>({subscribe:e=>(g.current.add(e),()=>g.current.delete(e)),snapshot:()=>o.current,setState:(e,s,a)=>{var i,v,h;if(!Object.is(o.current[e],s)){if(o.current[e]=s,e===\"search\")$(),N(),E(1,j);else if(e===\"value\")if(((i=u.current)==null?void 0:i.value)!==void 0){let x=s!=null?s:\"\";(h=(v=u.current).onValueChange)==null||h.call(v,x);return}else a||E(5,Y);m.emit()}},emit:()=>{g.current.forEach(e=>e())}}),[]),M=t.useMemo(()=>({value:(e,s)=>{s!==f.current.get(e)&&(f.current.set(e,s),o.current.filtered.items.set(e,X(s)),E(2,()=>{N(),m.emit()}))},item:(e,s)=>(l.current.add(e),s&&(d.current.has(s)?d.current.get(s).add(e):d.current.set(s,new Set([e]))),E(3,()=>{$(),N(),o.current.value||j(),m.emit()}),()=>{f.current.delete(e),l.current.delete(e),o.current.filtered.items.delete(e);let a=k();E(4,()=>{$(),(a==null?void 0:a.getAttribute(\"id\"))===e&&j(),m.emit()})}),group:e=>(d.current.has(e)||d.current.set(e,new Set),()=>{f.current.delete(e),d.current.delete(e)}),filter:()=>u.current.shouldFilter,label:b||r[\"aria-label\"],commandRef:n,listId:Q,inputId:V,labelId:K}),[]);function X(e){var a,i;let s=(i=(a=u.current)==null?void 0:a.filter)!=null?i:pe;return e?s(e,o.current.search):0}function N(){if(!n.current||!o.current.search||u.current.shouldFilter===!1)return;let e=o.current.filtered.items,s=[];o.current.filtered.groups.forEach(i=>{let v=d.current.get(i),h=0;v.forEach(x=>{let G=e.get(x);h=Math.max(G,h)}),s.push([i,h])});let a=n.current.querySelector(fe);H().sort((i,v)=>{var G,re;let h=i.getAttribute(S),x=v.getAttribute(S);return((G=e.get(x))!=null?G:0)-((re=e.get(h))!=null?re:0)}).forEach(i=>{let v=i.closest(U);v?v.appendChild(i.parentElement===v?i:i.closest(`${U} > *`)):a.appendChild(i.parentElement===a?i:i.closest(`${U} > *`))}),s.sort((i,v)=>v[1]-i[1]).forEach(i=>{let v=n.current.querySelector(`${O}[${S}=\"${i[0]}\"]`);v==null||v.parentElement.appendChild(v)})}function j(){let e=H().find(a=>!a.ariaDisabled),s=e==null?void 0:e.getAttribute(S);m.setState(\"value\",s||void 0)}function $(){if(!o.current.search||u.current.shouldFilter===!1){o.current.filtered.count=l.current.size;return}o.current.filtered.groups=new Set;let e=0;for(let s of l.current){let a=f.current.get(s),i=X(a);o.current.filtered.items.set(s,i),i>0&&e++}for(let[s,a]of d.current)for(let i of a)if(o.current.filtered.items.get(i)>0){o.current.filtered.groups.add(s);break}o.current.filtered.count=e}function Y(){var s,a,i;let e=k();e&&(((s=e.parentElement)==null?void 0:s.firstChild)===e&&((i=(a=e.closest(O))==null?void 0:a.querySelector(me))==null||i.scrollIntoView({block:\"nearest\"})),e.scrollIntoView({block:\"nearest\"}))}function k(){var e;return(e=n.current)==null?void 0:e.querySelector(`${W}[aria-selected=\"true\"]`)}function H(){return Array.from(n.current.querySelectorAll(ae))}function q(e){let a=H()[e];a&&m.setState(\"value\",a.getAttribute(S))}function z(e){var h;let s=k(),a=H(),i=a.findIndex(x=>x===s),v=a[i+e];(h=u.current)!=null&&h.loop&&(v=i+e<0?a[a.length-1]:i+e===a.length?a[0]:a[i+e]),v&&m.setState(\"value\",v.getAttribute(S))}function Z(e){let s=k(),a=s==null?void 0:s.closest(O),i;for(;a&&!i;)a=e>0?ye(a,O):xe(a,O),i=a==null?void 0:a.querySelector(ae);i?m.setState(\"value\",i.getAttribute(S)):z(e)}let ee=()=>q(H().length-1),te=e=>{e.preventDefault(),e.metaKey?ee():e.altKey?Z(1):z(1)},ne=e=>{e.preventDefault(),e.metaKey?q(0):e.altKey?Z(-1):z(-1)};return t.createElement(\"div\",{ref:_([n,c]),...P,\"cmdk-root\":\"\",onKeyDown:e=>{var s;if((s=P.onKeyDown)==null||s.call(P,e),!e.defaultPrevented)switch(e.key){case\"n\":case\"j\":{F&&e.ctrlKey&&te(e);break}case\"ArrowDown\":{te(e);break}case\"p\":case\"k\":{F&&e.ctrlKey&&ne(e);break}case\"ArrowUp\":{ne(e);break}case\"Home\":{e.preventDefault(),q(0);break}case\"End\":{e.preventDefault(),ee();break}case\"Enter\":if(!e.nativeEvent.isComposing){e.preventDefault();let a=k();if(a){let i=new Event(B);a.dispatchEvent(i)}}}}},t.createElement(\"label\",{\"cmdk-label\":\"\",htmlFor:M.inputId,id:M.labelId,style:Te},b),t.createElement(ie.Provider,{value:m},t.createElement(se.Provider,{value:M},p)))}),ve=t.forwardRef((r,c)=>{var V,E;let n=t.useId(),o=t.useRef(null),l=t.useContext(ce),d=A(),f=ue(r),g=(E=(V=f.current)==null?void 0:V.forceMount)!=null?E:l==null?void 0:l.forceMount;D(()=>d.item(n,l==null?void 0:l.id),[]);let u=de(n,o,[r.value,r.children,o]),b=J(),p=L(m=>m.value&&m.value===u.current),R=L(m=>g||d.filter()===!1?!0:m.search?m.filtered.items.get(n)>0:!0);t.useEffect(()=>{let m=o.current;if(!(!m||r.disabled))return m.addEventListener(B,T),()=>m.removeEventListener(B,T)},[R,r.onSelect,r.disabled]);function T(){var m,M;I(),(M=(m=f.current).onSelect)==null||M.call(m,u.current)}function I(){b.setState(\"value\",u.current,!0)}if(!R)return null;let{disabled:C,value:F,onSelect:P,forceMount:Q,...K}=r;return t.createElement(\"div\",{ref:_([o,c]),...K,id:n,\"cmdk-item\":\"\",role:\"option\",\"aria-disabled\":C||void 0,\"aria-selected\":p||void 0,\"data-disabled\":C||void 0,\"data-selected\":p||void 0,onPointerMove:C?void 0:I,onClick:C?void 0:T},r.children)}),ge=t.forwardRef((r,c)=>{let{heading:n,children:o,forceMount:l,...d}=r,f=t.useId(),g=t.useRef(null),u=t.useRef(null),b=t.useId(),p=A(),R=L(C=>l||p.filter()===!1?!0:C.search?C.filtered.groups.has(f):!0);D(()=>p.group(f),[]),de(f,g,[r.value,r.heading,u]);let T=t.useMemo(()=>({id:f,forceMount:l}),[l]),I=t.createElement(ce.Provider,{value:T},o);return t.createElement(\"div\",{ref:_([g,c]),...d,\"cmdk-group\":\"\",role:\"presentation\",hidden:R?void 0:!0},n&&t.createElement(\"div\",{ref:u,\"cmdk-group-heading\":\"\",\"aria-hidden\":!0,id:b},n),t.createElement(\"div\",{\"cmdk-group-items\":\"\",role:\"group\",\"aria-labelledby\":n?b:void 0},I))}),Re=t.forwardRef((r,c)=>{let{alwaysRender:n,...o}=r,l=t.useRef(null),d=L(f=>!f.search);return!n&&!d?null:t.createElement(\"div\",{ref:_([l,c]),...o,\"cmdk-separator\":\"\",role:\"separator\"})}),be=t.forwardRef((r,c)=>{let{onValueChange:n,...o}=r,l=r.value!=null,d=J(),f=L(p=>p.search),g=L(p=>p.value),u=A(),b=t.useMemo(()=>{var R;let p=(R=u.commandRef.current)==null?void 0:R.querySelector(`${W}[${S}=\"${g}\"]`);return p==null?void 0:p.getAttribute(\"id\")},[g,u.commandRef]);return t.useEffect(()=>{r.value!=null&&d.setState(\"search\",r.value)},[r.value]),t.createElement(\"input\",{ref:c,...o,\"cmdk-input\":\"\",autoComplete:\"off\",autoCorrect:\"off\",spellCheck:!1,\"aria-autocomplete\":\"list\",role:\"combobox\",\"aria-expanded\":!0,\"aria-controls\":u.listId,\"aria-labelledby\":u.labelId,\"aria-activedescendant\":b,id:u.inputId,type:\"text\",value:l?r.value:f,onChange:p=>{l||d.setState(\"search\",p.target.value),n==null||n(p.target.value)}})}),he=t.forwardRef((r,c)=>{let{children:n,...o}=r,l=t.useRef(null),d=t.useRef(null),f=A();return t.useEffect(()=>{if(d.current&&l.current){let g=d.current,u=l.current,b,p=new ResizeObserver(()=>{b=requestAnimationFrame(()=>{let R=g.offsetHeight;u.style.setProperty(\"--cmdk-list-height\",R.toFixed(1)+\"px\")})});return p.observe(g),()=>{cancelAnimationFrame(b),p.unobserve(g)}}},[]),t.createElement(\"div\",{ref:_([l,c]),...o,\"cmdk-list\":\"\",role:\"listbox\",\"aria-label\":\"Suggestions\",id:f.listId,\"aria-labelledby\":f.inputId},t.createElement(\"div\",{ref:d,\"cmdk-list-sizer\":\"\"},n))}),Ee=t.forwardRef((r,c)=>{let{open:n,onOpenChange:o,overlayClassName:l,contentClassName:d,container:f,...g}=r;return t.createElement(y.Root,{open:n,onOpenChange:o},t.createElement(y.Portal,{container:f},t.createElement(y.Overlay,{\"cmdk-overlay\":\"\",className:l}),t.createElement(y.Content,{\"aria-label\":r.label,\"cmdk-dialog\":\"\",className:d},t.createElement(le,{ref:c,...g}))))}),Se=t.forwardRef((r,c)=>{let n=t.useRef(!0),o=L(l=>l.filtered.count===0);return t.useEffect(()=>{n.current=!1},[]),n.current||!o?null:t.createElement(\"div\",{ref:c,...r,\"cmdk-empty\":\"\",role:\"presentation\"})}),Ce=t.forwardRef((r,c)=>{let{progress:n,children:o,...l}=r;return t.createElement(\"div\",{ref:c,...l,\"cmdk-loading\":\"\",role:\"progressbar\",\"aria-valuenow\":n,\"aria-valuemin\":0,\"aria-valuemax\":100,\"aria-label\":\"Loading...\"},t.createElement(\"div\",{\"aria-hidden\":!0},o))}),we=Object.assign(le,{List:he,Item:ve,Input:be,Group:ge,Separator:Re,Dialog:Ee,Empty:Se,Loading:Ce});function ye(r,c){let n=r.nextElementSibling;for(;n;){if(n.matches(c))return n;n=n.nextElementSibling}}function xe(r,c){let n=r.previousElementSibling;for(;n;){if(n.matches(c))return n;n=n.previousElementSibling}}function ue(r){let c=t.useRef(r);return D(()=>{c.current=r}),c}var D=typeof window==\"undefined\"?t.useEffect:t.useLayoutEffect;function w(r){let c=t.useRef();return c.current===void 0&&(c.current=r()),c}function _(r){return c=>{r.forEach(n=>{typeof n==\"function\"?n(c):n!=null&&(n.current=c)})}}function L(r){let c=J(),n=()=>r(c.snapshot());return t.useSyncExternalStore(c.subscribe,n,n)}function de(r,c,n){let o=t.useRef(),l=A();return D(()=>{var f;let d=(()=>{var g;for(let u of n){if(typeof u==\"string\")return u.trim().toLowerCase();if(typeof u==\"object\"&&\"current\"in u)return u.current?(g=u.current.textContent)==null?void 0:g.trim().toLowerCase():o.current}})();l.value(r,d),(f=c.current)==null||f.setAttribute(S,d),o.current=d}),o}var Le=()=>{let[r,c]=t.useState(),n=w(()=>new Map);return D(()=>{n.current.forEach(o=>o()),n.current=new Map},[r]),(o,l)=>{n.current.set(o,l),c({})}},Te={position:\"absolute\",width:\"1px\",height:\"1px\",padding:\"0\",margin:\"-1px\",overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\"};export{we as Command,Ee as CommandDialog,Se as CommandEmpty,ge as CommandGroup,be as CommandInput,ve as CommandItem,he as CommandList,Ce as CommandLoading,le as CommandRoot,Re as CommandSeparator,L as useCommandState};\n","// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dismissable-layer/src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-scope/src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/portal/src/portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-guards/src/FocusGuards.tsx\nimport * as React from \"react\";\nvar count = 0;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n count++;\n return () => {\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nvar Root = FocusGuards;\nexport {\n FocusGuards,\n Root,\n useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n if (target instanceof ShadowRoot) {\n target = target.host;\n }\n else {\n target = target.parentNode;\n }\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","\"use client\";\n\n// packages/react/dialog/src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { X } from 'lucide-react';\nimport { cn } from './utils';\nvar Dialog = DialogPrimitive.Root;\nvar DialogTrigger = DialogPrimitive.Trigger;\nvar DialogPortal = DialogPrimitive.Portal;\nvar DialogClose = DialogPrimitive.Close;\nvar DialogOverlay = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(DialogPrimitive.Overlay, __assign({ ref: ref, className: cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80', className) }, props)));\n});\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\nvar DialogContent = React.forwardRef(function (_a, ref) {\n var className = _a.className, children = _a.children, props = __rest(_a, [\"className\", \"children\"]);\n return (React.createElement(DialogPortal, null,\n React.createElement(DialogOverlay, null),\n React.createElement(DialogPrimitive.Content, __assign({ ref: ref, className: cn('bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg', className) }, props),\n children,\n React.createElement(DialogPrimitive.Close, { className: 'ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none' },\n React.createElement(X, { className: 'h-4 w-4' }),\n React.createElement(\"span\", { className: 'sr-only' }, \"Close\")))));\n});\nDialogContent.displayName = DialogPrimitive.Content.displayName;\nvar DialogHeader = function (_a) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"div\", __assign({ className: cn('flex flex-col space-y-1.5 text-center sm:text-left', className) }, props)));\n};\nDialogHeader.displayName = 'DialogHeader';\nvar DialogFooter = function (_a) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"div\", __assign({ className: cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className) }, props)));\n};\nDialogFooter.displayName = 'DialogFooter';\nvar DialogTitle = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(DialogPrimitive.Title, __assign({ ref: ref, className: cn('text-lg font-semibold leading-none tracking-tight', className) }, props)));\n});\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\nvar DialogDescription = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(DialogPrimitive.Description, __assign({ ref: ref, className: cn('text-muted-foreground text-sm', className) }, props)));\n});\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\nexport { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription };\n//# sourceMappingURL=Dialog.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { Search } from 'lucide-react';\nimport { cn } from './utils';\nimport { Dialog, DialogContent } from './Dialog';\nvar Command = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(CommandPrimitive, __assign({ ref: ref, className: cn('flex h-full w-full flex-col overflow-hidden rounded-md bg-white text-gray-800 ', className) }, props)));\n});\nCommand.displayName = CommandPrimitive.displayName;\nvar CommandDialog = function (_a) {\n var children = _a.children, props = __rest(_a, [\"children\"]);\n return (React.createElement(Dialog, __assign({}, props),\n React.createElement(DialogContent, { className: 'overflow-hidden p-0 shadow-lg' },\n React.createElement(Command, { className: '[&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5' }, children))));\n};\nvar CommandInput = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"div\", { className: 'flex items-center px-3', \"cmdk-input-wrapper\": '' },\n React.createElement(Search, { className: 'mr-2 h-4 w-4 shrink-0 opacity-50' }),\n React.createElement(CommandPrimitive.Input, __assign({ ref: ref, className: cn('placeholder:text-muted-foreground flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none disabled:opacity-50', className) }, props))));\n});\nCommandInput.displayName = CommandPrimitive.Input.displayName;\nvar CommandList = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(CommandPrimitive.List, __assign({ ref: ref, className: cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className) }, props)));\n});\nCommandList.displayName = CommandPrimitive.List.displayName;\nvar CommandEmpty = React.forwardRef(function (props, ref) { return (React.createElement(CommandPrimitive.Empty, __assign({ ref: ref, className: 'py-6 text-center text-sm' }, props))); });\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\nvar CommandGroup = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(CommandPrimitive.Group, __assign({ ref: ref, className: cn('text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden rounded-lg bg-white p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium', className) }, props)));\n});\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\nvar CommandSeparator = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(CommandPrimitive.Separator, __assign({ ref: ref, className: cn('bg-border -mx-1 h-px', className) }, props)));\n});\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\nvar CommandItem = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(CommandPrimitive.Item, __assign({ ref: ref, className: cn('aria-selected:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm px-4 py-[14px] text-sm outline-none aria-selected:bg-gray-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className) }, props)));\n});\nCommandItem.displayName = CommandPrimitive.Item.displayName;\nvar CommandShortcut = function (_a) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"span\", __assign({ className: cn('text-muted-foreground ml-auto text-xs tracking-widest', className) }, props)));\n};\nCommandShortcut.displayName = 'CommandShortcut';\nexport { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator };\n//# sourceMappingURL=Command.js.map","/**\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};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\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 return ['top', 'bottom'].includes(getSide(placement)) ? '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.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\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 return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\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 switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\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 validMiddleware = middleware.filter(Boolean);\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 middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\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,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\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 * 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 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/**\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 min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, 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 < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : 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 overflow = await detectOverflow(state, detectOverflowOptions);\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 const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\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 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 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 // 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 // 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 } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await 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 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 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 && 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 const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: 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 const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: 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\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 = ['left', 'top'].includes(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 } = 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 detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\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 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: 0,\n crossAxis: 0,\n ...rawOffset\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 = ['top', 'left'].includes(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/**\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 var _state$middlewareData, _state$middlewareData2;\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 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 noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : 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) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\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 ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\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 (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(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.ownerDocument.body : 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 }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\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, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, 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(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 if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\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) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(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, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n 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 || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\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, true) : 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 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(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.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(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(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\nfunction getViewportRect(element, strategy) {\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 width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\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 = isHTMLElement(element) ? getScale(element) : createCoords(1);\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') {\n rect = getViewportRect(element, strategy);\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}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\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 currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(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(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = 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 firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.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 || !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 } else if (documentElement) {\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 offsets.x = getWindowScrollBarX(documentElement);\n }\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(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(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(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) {\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 if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // 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 if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\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 refresh(true);\n return cleanup;\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) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : 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) {\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 resizeObserver.observe(floating);\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 = {\n platform,\n ...options\n };\n const platformWithCache = {\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 { computePosition, arrow as arrow$2, offset as offset$1, shift as shift$1, limitShift as limitShift$1, flip as flip$1, size as size$1, autoPlacement as autoPlacement$1, hide as hide$1, inline as inline$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const openRef = useLatestRef(open);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n // The floating element's position may be recomputed while it's closed\n // but still mounted (such as when transitioning out). To ensure\n // `isPositioned` will be `false` initially on the next open, avoid\n // setting it to `true` when `open === false` (must be specified).\n isPositioned: openRef.current !== false\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\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 * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$2({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$2({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\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 = (options, deps) => ({\n ...offset$1(options),\n options: [options, deps]\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 = (options, deps) => ({\n ...shift$1(options),\n options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n ...limitShift$1(options),\n options: [options, deps]\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 = (options, deps) => ({\n ...flip$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...size$1(options),\n options: [options, deps]\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 = (options, deps) => ({\n ...autoPlacement$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...hide$1(options),\n options: [options, deps]\n});\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 = (options, deps) => ({\n ...inline$1(options),\n options: [options, deps]\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 * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n ...arrow$1(options),\n options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","// packages/react/arrow/src/arrow.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Arrow\";\nvar Arrow = React.forwardRef((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.svg,\n {\n ...arrowProps,\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\",\n children: props.asChild ? children : /* @__PURE__ */ jsx(\"polygon\", { points: \"0,0 30,0 15,10\" })\n }\n );\n});\nArrow.displayName = NAME;\nvar Root = Arrow;\nexport {\n Arrow,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/popper/src/popper.tsx\nimport * as React from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n shift,\n limitShift,\n hide,\n arrow as floatingUIarrow,\n flip,\n size\n} from \"@floating-ui/react-dom\";\nimport * as ArrowPrimitive from \"@radix-ui/react-arrow\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SIDE_OPTIONS = [\"top\", \"right\", \"bottom\", \"left\"];\nvar ALIGN_OPTIONS = [\"start\", \"center\", \"end\"];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = (props) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = React.useState(null);\n return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });\n};\nPopper.displayName = POPPER_NAME;\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n context.onAnchorChange(virtualRef?.current || ref.current);\n });\n return virtualRef ? null : /* @__PURE__ */ jsx(Primitive.div, { ...anchorProps, ref: composedRefs });\n }\n);\nPopperAnchor.displayName = ANCHOR_NAME;\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopper,\n side = \"bottom\",\n sideOffset = 0,\n align = \"center\",\n alignOffset = 0,\n arrowPadding = 0,\n avoidCollisions = true,\n collisionBoundary = [],\n collisionPadding: collisionPaddingProp = 0,\n sticky = \"partial\",\n hideWhenDetached = false,\n updatePositionStrategy = \"optimized\",\n onPlaced,\n ...contentProps\n } = props;\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [arrow, setArrow] = React.useState(null);\n const arrowSize = useSize(arrow);\n const arrowWidth = arrowSize?.width ?? 0;\n const arrowHeight = arrowSize?.height ?? 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: hasExplicitBoundaries\n };\n const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n animationFrame: updatePositionStrategy === \"always\"\n });\n return cleanup;\n },\n elements: {\n reference: context.anchor\n },\n middleware: [\n offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),\n avoidCollisions && shift({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? limitShift() : void 0,\n ...detectOverflowOptions\n }),\n avoidCollisions && flip({ ...detectOverflowOptions }),\n size({\n ...detectOverflowOptions,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty(\"--radix-popper-available-width\", `${availableWidth}px`);\n contentStyle.setProperty(\"--radix-popper-available-height\", `${availableHeight}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-width\", `${anchorWidth}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-height\", `${anchorHeight}px`);\n }\n }),\n arrow && floatingUIarrow({ element: arrow, padding: arrowPadding }),\n transformOrigin({ arrowWidth, arrowHeight }),\n hideWhenDetached && hide({ strategy: \"referenceHidden\", ...detectOverflowOptions })\n ]\n });\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const handlePlaced = useCallbackRef(onPlaced);\n useLayoutEffect(() => {\n if (isPositioned) {\n handlePlaced?.();\n }\n }, [isPositioned, handlePlaced]);\n const arrowX = middlewareData.arrow?.x;\n const arrowY = middlewareData.arrow?.y;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: refs.setFloating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n // keep off the page when measuring\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y\n ].join(\" \"),\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...middlewareData.hide?.referenceHidden && {\n visibility: \"hidden\",\n pointerEvents: \"none\"\n }\n },\n dir: props.dir,\n children: /* @__PURE__ */ jsx(\n PopperContentProvider,\n {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-side\": placedSide,\n \"data-align\": placedAlign,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? \"none\" : void 0\n }\n }\n )\n }\n )\n }\n );\n }\n);\nPopperContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {\n const { __scopePopper, ...arrowProps } = props;\n const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n return (\n // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n // doesn't report size as we'd expect on SVG elements.\n // it reports their bounding box which is effectively the largest path inside the SVG.\n /* @__PURE__ */ jsx(\n \"span\",\n {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: `rotate(180deg)`,\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n },\n children: /* @__PURE__ */ jsx(\n ArrowPrimitive.Root,\n {\n ...arrowProps,\n ref: forwardedRef,\n style: {\n ...arrowProps.style,\n // ensures the element can be measured correctly (mostly for if SVG)\n display: \"block\"\n }\n }\n )\n }\n )\n );\n});\nPopperArrow.displayName = ARROW_NAME;\nfunction isNotNull(value) {\n return value !== null;\n}\nvar transformOrigin = (options) => ({\n name: \"transformOrigin\",\n options,\n fn(data) {\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = { start: \"0%\", center: \"50%\", end: \"100%\" }[placedAlign];\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n let x = \"\";\n let y = \"\";\n if (placedSide === \"bottom\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n } else if (placedSide === \"top\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === \"right\") {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === \"left\") {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return { data: { x, y } };\n }\n});\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [side, align];\n}\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\nexport {\n ALIGN_OPTIONS,\n Anchor,\n Arrow,\n Content,\n Popper,\n PopperAnchor,\n PopperArrow,\n PopperContent,\n Root2 as Root,\n SIDE_OPTIONS,\n createPopperScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/popover/src/popover.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n PopoverProvider,\n {\n scope: __scopePopover,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n modal,\n children\n }\n ) });\n};\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });\n }\n);\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nPopoverContent.displayName = CONTENT_NAME;\nvar PopoverContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n ),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nvar PopoverContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar PopoverContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n useFocusGuards();\n return /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n )\n }\n );\n }\n);\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n Close,\n Content2 as Content,\n Popover,\n PopoverAnchor,\n PopoverArrow,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createPopoverScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { cn } from './utils';\nvar Popover = PopoverPrimitive.Root;\nvar PopoverTrigger = PopoverPrimitive.Trigger;\nvar PopoverContent = React.forwardRef(function (_a, ref) {\n var className = _a.className, _b = _a.align, align = _b === void 0 ? 'center' : _b, _c = _a.side, side = _c === void 0 ? 'bottom' : _c, _d = _a.sideOffset, sideOffset = _d === void 0 ? 4 : _d, props = __rest(_a, [\"className\", \"align\", \"side\", \"sideOffset\"]);\n return (React.createElement(PopoverPrimitive.Portal, null,\n React.createElement(PopoverPrimitive.Content, __assign({ ref: ref, align: align, side: side, sideOffset: sideOffset, className: cn('bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none', className) }, props))));\n});\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\nexport { Popover, PopoverTrigger, PopoverContent };\n//# sourceMappingURL=Popover.js.map","\"use client\";\n\n// packages/react/alert-dialog/src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Slottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar AlertDialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(\n DialogPrimitive.WarningProvider,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n ]\n }\n ) })\n }\n );\n }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute(\"aria-describedby\")\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\nimport { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';\nimport { cn } from './utils';\nimport { buttonVariants } from './Button';\nvar AlertDialog = AlertDialogPrimitive.Root;\nvar AlertDialogTrigger = AlertDialogPrimitive.Trigger;\nvar AlertDialogPortal = AlertDialogPrimitive.Portal;\nvar AlertDialogOverlay = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(AlertDialogPrimitive.Overlay, __assign({ className: cn('bg-background/80 fixed inset-0 z-50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className) }, props, { ref: ref })));\n});\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\nvar AlertDialogContent = React.forwardRef(function (_a, ref) {\n var className = _a.className, onOpenChange = _a.onOpenChange, props = __rest(_a, [\"className\", \"onOpenChange\"]);\n return (React.createElement(AlertDialogPortal, null,\n React.createElement(AlertDialogOverlay, null),\n React.createElement(AlertDialogPrimitive.Content, __assign({ ref: ref, className: cn('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-white p-6 pb-0 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className) }, props))));\n});\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\nvar AlertDialogHeader = function (_a) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"div\", __assign({ className: cn('flex flex-col space-y-2 text-center sm:text-left', className) }, props)));\n};\nAlertDialogHeader.displayName = 'AlertDialogHeader';\nvar AlertDialogFooter = function (_a) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"div\", __assign({ className: cn('mt-8 flex flex-col-reverse border-t border-t-gray-100 py-4 sm:flex-row sm:justify-end sm:space-x-2', className) }, props)));\n};\nAlertDialogFooter.displayName = 'AlertDialogFooter';\nvar AlertDialogTitle = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(AlertDialogPrimitive.Title, __assign({ ref: ref, className: cn('text-lg font-semibold', className) }, props)));\n});\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\nvar AlertDialogDescription = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(AlertDialogPrimitive.Description, __assign({ ref: ref, className: cn('text-muted-foreground text-sm', className) }, props)));\n});\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName;\nvar AlertDialogAction = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(AlertDialogPrimitive.Action, __assign({ ref: ref, className: cn(buttonVariants(), className) }, props)));\n});\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\nvar AlertDialogCancel = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(AlertDialogPrimitive.Cancel, __assign({ ref: ref, className: cn(buttonVariants({ variant: 'secondaryGray' }), 'mt-2 sm:mt-0', className) }, props)));\n});\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\nexport { AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel };\n//# sourceMappingURL=DialogAlert.js.map","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n const isFileListInstance = typeof FileList !== 'undefined' ? data instanceof FileList : false;\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || isFileListInstance)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (object, path, defaultValue) => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n return isUndefined(result) || result === object\n ? isUndefined(object[path])\n ? defaultValue\n : object[path]\n : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nvar set = (object, path, value) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\nconst HookFormContext = React.createContext(null);\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (React.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n const _props = React.useRef(props);\n _props.current = props;\n React.useEffect(() => {\n const subscription = !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n next: (value) => _mounted.current &&\n shouldSubscribeByName(_name.current, value.name, exact) &&\n shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n return React.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState) => {\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n }\n },\n });\n const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\n React.useEffect(() => control._removeUnmounted());\n return value;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true,\n });\n const formState = useFormState({\n control,\n name,\n exact: true,\n });\n const _registerProps = React.useRef(control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }));\n const fieldState = React.useMemo(() => Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }), [formState, name]);\n const field = React.useMemo(() => ({\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange: (event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }),\n onBlur: () => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }),\n ref: (elm) => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message) => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n }), [\n name,\n control._formValues,\n disabled,\n formState.disabled,\n value,\n control._fields,\n ]);\n React.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n !isArrayField && control.register(name);\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n React.useEffect(() => {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n });\n }, [disabled, name, control]);\n return React.useMemo(() => ({\n field,\n formState,\n fieldState,\n }), [field, formState, fieldState]);\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst flatten = (obj) => {\n const output = {};\n for (const key of Object.keys(obj)) {\n if (isObjectType(obj[key]) && obj[key] !== null) {\n const nested = flatten(obj[key]);\n for (const nestedKey of Object.keys(nested)) {\n output[`${key}.${nestedKey}`] = nested[nestedKey];\n }\n }\n else {\n output[key] = obj[key];\n }\n }\n return output;\n};\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n const flattenFormValues = flatten(control._formValues);\n for (const key in flattenFormValues) {\n formData.append(key, flattenFormValues[key]);\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(String(action), {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React.createElement(React.Fragment, null, render({\n submit,\n }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nvar generateId = () => {\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n }\n else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n }\n else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n }\n return;\n};\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, disabledFieldNames, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabledFieldNames.has(name)) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nvar appendAt = (data, value) => [\n ...data,\n ...convertToArrayPayload(value),\n];\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nvar prependAt = (data, value) => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, rules, } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = React.useRef(fields);\n const _name = React.useRef(name);\n const _actioned = React.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n rules &&\n control.register(name, rules);\n useSubscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array,\n });\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n !Array.isArray(get(control._fields, name)) &&\n set(control._fields, name, undefined);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted)) {\n if (control._options.resolver) {\n control._executeSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field &&\n field._f &&\n !(getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit)) {\n validateField(field, control._names.disabled, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.values.next({\n name,\n values: { ...control._formValues },\n });\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key) => {\n if (control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n });\n control._names.focus = '';\n control._updateValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n return () => {\n (control._options.shouldUnregister || shouldUnregister) &&\n control.unregister(name);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend, [updateValues, name, control]),\n append: React.useCallback(append, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert$1, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\nvar createSubject = () => {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\n else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\nvar hasPromiseValidation = (fieldReference) => !!fieldReference &&\n !!fieldReference.validate &&\n !!((isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find((validateFunction) => validateFunction.constructor.name === ASYNC_FUNCTION)));\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names = {\n mount: new Set(),\n disabled: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _updateValid = async (shouldUpdateValid) => {\n if (!_options.disabled && (_proxyFormState.isValid || shouldUpdateValid)) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (names, isValidating) => {\n if (!_options.disabled &&\n (_proxyFormState.isValidating || _proxyFormState.validatingFields)) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if (_proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const _setErrors = (errors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && _updateValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n if (!_options.disabled) {\n const disabledField = !!(get(_fields, name) &&\n get(_fields, name)._f &&\n get(_fields, name)._f.disabled);\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (_options.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(_options.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n };\n const _executeSchema = async (name) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n _updateIsValidating(name);\n return result;\n };\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _executeSchema(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction = field._f && hasPromiseValidation(field._f);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name], true);\n }\n const fieldError = await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name]);\n }\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => !_options.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!fieldValue.find((data) => data === checkboxRef.value)\n : fieldValue === checkboxRef.value))\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name: _state.mount ? name : undefined,\n values: { ..._formValues },\n });\n };\n const onChange = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid) {\n if (_options.mode === 'onBlur' && isBlurEvent) {\n _updateValid();\n }\n else if (!isBlurEvent) {\n _updateValid();\n }\n }\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n }\n else {\n _updateIsValidating([name], true);\n error = (await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const _focusInput = (ref, key) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames) => {\n const values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.values.next({\n values: { ..._formValues },\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _updateValid();\n };\n const _updateDisabledField = ({ disabled, name, field, fields, }) => {\n if ((isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)) {\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n updateTouchAndDirty(name, getFieldValue(field ? field._f : get(fields, name)._f), false, false, true);\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled) || isBoolean(_options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _updateDisabledField({\n field,\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : _options.disabled,\n name,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined\n ? { disabled: options.disabled || _options.disabled }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n const _disableForm = (disabled) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(_fields, (ref, name) => {\n const currentField = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n }, 0, false);\n }\n };\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n set(fieldValues, name, undefined);\n }\n }\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues, e);\n }\n catch (error) {\n onValidError = error;\n }\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n _fields = {};\n }\n _formValues = _options.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.values.next({\n values: { ...values },\n });\n }\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n disabled: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n _state.watch = !!_options.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n }\n }\n };\n const _updateFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React.useRef(undefined);\n const _values = React.useRef(undefined);\n const [formState, updateFormState] = React.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n const control = _formControl.current.control;\n control._options = props;\n useSubscribe({\n subject: control._subjects.state,\n next: (value) => {\n if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n updateFormState({ ...control._formState });\n }\n },\n });\n React.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n }\n else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.values.next({\n values: control._getWatch(),\n });\n }, [props.shouldUnregister, control]);\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","\"use client\";\n\n// packages/react/label/src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { cva } from 'class-variance-authority';\nimport { cn } from './utils';\nvar labelVariants = cva('text-sm font-medium text-[#364153] leading-none peer- peer-disabled:opacity-70');\nvar Label = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(LabelPrimitive.Root, __assign({ ref: ref, className: cn(labelVariants(), className) }, props)));\n});\nLabel.displayName = LabelPrimitive.Root.displayName;\nexport { Label };\n//# sourceMappingURL=Label.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { Controller, FormProvider, useFormContext } from 'react-hook-form';\nimport { cn } from './utils';\nimport { Label } from './Label';\nvar Form = FormProvider;\nvar FormFieldContext = React.createContext({});\nvar FormField = function (_a) {\n var props = __rest(_a, []);\n return (React.createElement(FormFieldContext.Provider, { value: { name: props.name } },\n React.createElement(Controller, __assign({}, props))));\n};\nvar useFormField = function () {\n var fieldContext = React.useContext(FormFieldContext);\n var itemContext = React.useContext(FormItemContext);\n var _a = useFormContext(), getFieldState = _a.getFieldState, formState = _a.formState;\n var fieldState = getFieldState(fieldContext.name, formState);\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n var id = itemContext.id;\n return __assign({ id: id, name: fieldContext.name, formItemId: \"\".concat(id, \"-form-item\"), formDescriptionId: \"\".concat(id, \"-form-item-description\"), formMessageId: \"\".concat(id, \"-form-item-message\") }, fieldState);\n};\nvar FormItemContext = React.createContext({});\nvar FormItem = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n var id = React.useId();\n return (React.createElement(FormItemContext.Provider, { value: { id: id } },\n React.createElement(\"div\", __assign({ ref: ref, className: cn('space-y-2', className) }, props))));\n});\nFormItem.displayName = 'FormItem';\nvar FormLabel = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n var _b = useFormField(), error = _b.error, formItemId = _b.formItemId;\n return (React.createElement(Label, __assign({ ref: ref, className: cn(error && 'text-red-600', className), htmlFor: formItemId }, props)));\n});\nFormLabel.displayName = 'FormLabel';\nvar FormControl = React.forwardRef(function (_a, ref) {\n var props = __rest(_a, []);\n var _b = useFormField(), error = _b.error, formItemId = _b.formItemId, formDescriptionId = _b.formDescriptionId, formMessageId = _b.formMessageId;\n return (React.createElement(Slot, __assign({ ref: ref, id: formItemId, \"aria-describedby\": !error\n ? \"\".concat(formDescriptionId)\n : \"\".concat(formDescriptionId, \" \").concat(formMessageId), \"aria-invalid\": !!error }, props)));\n});\nFormControl.displayName = 'FormControl';\nvar FormDescription = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n var formDescriptionId = useFormField().formDescriptionId;\n return (React.createElement(\"p\", __assign({ ref: ref, id: formDescriptionId, className: cn('text-sm text-gray-700', className) }, props)));\n});\nFormDescription.displayName = 'FormDescription';\nvar FormMessage = React.forwardRef(function (_a, ref) {\n var className = _a.className, children = _a.children, props = __rest(_a, [\"className\", \"children\"]);\n var _b = useFormField(), error = _b.error, formMessageId = _b.formMessageId;\n var body = error ? String(error === null || error === void 0 ? void 0 : error.message) : children;\n if (!body) {\n return null;\n }\n return (React.createElement(\"p\", __assign({ ref: ref, id: formMessageId, className: cn('text-xs font-medium text-red-600', className) }, props), body));\n});\nFormMessage.displayName = 'FormMessage';\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n//# sourceMappingURL=Form.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { cn } from './utils';\nvar Input = React.forwardRef(function (_a, ref) {\n var className = _a.className, type = _a.type, error = _a.error, props = __rest(_a, [\"className\", \"type\", \"error\"]);\n return (React.createElement(\"input\", __assign({ type: type, className: cn('flex w-full rounded-md border border-[#CDD5E0] bg-white p-3 text-[#111729] ring-offset-[#C4DAFB] file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-[#677389a8] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#C4DAFB] focus-visible:ring-offset-2 disabled:bg-[#F2F5F9]', error && 'border-[#D92D20] ring-[#D92D20] ring-offset-[#fcf4f4]', className), ref: ref }, props)));\n});\nInput.displayName = 'Input';\nexport { Input };\n//# sourceMappingURL=Input.js.map","import { __assign, __rest } from \"tslib\";\nimport { forwardRef, useState } from 'react';\nimport { EyeIcon, EyeOffIcon } from 'lucide-react';\nimport { Input } from './Input';\nimport { cn } from './utils';\nimport React from 'react';\nvar PasswordInput = forwardRef(function (_a, ref) {\n var className = _a.className, disabled = _a.disabled, value = _a.value, props = __rest(_a, [\"className\", \"disabled\", \"value\"]);\n var _b = useState(false), showPassword = _b[0], setShowPassword = _b[1];\n var isDisabled = disabled || value === '' || value === undefined;\n return (React.createElement(\"div\", { className: 'relative' },\n React.createElement(Input, __assign({ type: showPassword ? 'text' : 'password', \n // @ts-ignore\n className: cn('hide-password-toggle pr-10', className), ref: ref, disabled: disabled, value: value }, props)),\n React.createElement(\"button\", { type: 'button', className: 'absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent', onClick: function (e) {\n e.preventDefault();\n setShowPassword(function (prev) { return !prev; });\n }, disabled: isDisabled },\n showPassword ? (React.createElement(EyeIcon, { className: 'h-5 w-5 text-[#677389]', \"aria-hidden\": 'true' })) : (React.createElement(EyeOffIcon, { className: 'h-5 w-5 text-[#677389]', \"aria-hidden\": 'true' })),\n React.createElement(\"span\", { className: 'sr-only' }, showPassword ? 'Hide password' : 'Show password')),\n React.createElement(\"style\", null, \"\\n .hide-password-toggle::-ms-reveal,\\n .hide-password-toggle::-ms-clear {\\n visibility: hidden;\\n pointer-events: none;\\n display: none;\\n }\\n \")));\n});\nPasswordInput.displayName = 'PasswordInput';\nexport { PasswordInput };\n//# sourceMappingURL=PasswordInput.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { cva } from 'class-variance-authority';\nimport { cn } from './utils';\nexport var Tag = function (_a) {\n var children = _a.children, _b = _a.variant, variant = _b === void 0 ? 'blue' : _b, _c = _a.size, size = _c === void 0 ? 'md' : _c, className = _a.className, props = __rest(_a, [\"children\", \"variant\", \"size\", \"className\"]);\n var tagVariants = cva('inline-flex items-center justify-center gap-2 rounded-[100px] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background border border-transparent text-sm font-medium', {\n variants: {\n variant: {\n blue: 'bg-[#DEE8FD] text-[#263985]',\n gray: 'bg-[#E3E7EF] text-[#111729]',\n green: 'bg-[#D1FADF] text-[#054F31]',\n red: 'bg-[#FEE4E2] text-[#7A271A]',\n yellow: 'bg-[#FFFAE6] text-[#7C4D1B]'\n },\n size: {\n xs: 'px-1 py-px text-xs',\n sm: 'px-3 py-1.5 text-xs',\n md: 'px-[18px] py-3',\n lg: 'px-[21px] py-3'\n }\n }\n });\n return (React.createElement(\"span\", __assign({ className: cn(tagVariants({ variant: variant, size: size, className: className })), role: 'status', \"aria-live\": 'polite', \"aria-atomic\": 'true' }, props), children));\n};\nTag.displayName = 'Tag';\n//# sourceMappingURL=Tag.js.map","import * as React from 'react';\nimport { cn } from './utils';\nexport var Pagination = function (_a) {\n var currentPage = _a.currentPage, totalPages = _a.totalPages, onPageChange = _a.onPageChange;\n var generatePageNumbers = function () {\n var pages = [];\n // EÄŸer totalPages 5'ten büyükse, orta aralıklara bir kutu ve \"...\" ekleyin\n if (totalPages > 5) {\n if (currentPage <= 3) {\n // Ä°lk üç sayfa için\n for (var i = 1; i <= 4; i++) {\n pages.push(i);\n }\n pages.push('...');\n pages.push(totalPages);\n }\n else if (currentPage >= totalPages - 2) {\n // Son üç sayfa için\n pages.push(1);\n pages.push('...');\n for (var i = totalPages - 3; i <= totalPages; i++) {\n pages.push(i);\n }\n }\n else {\n // Ortada bir yerdeki sayfalar için\n pages.push(1);\n pages.push('...');\n pages.push(currentPage - 1);\n pages.push(currentPage);\n pages.push(currentPage + 1);\n pages.push('...');\n pages.push(totalPages);\n }\n }\n else {\n // totalPages 5 veya daha azsa, tüm sayfaları ekle\n for (var i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n }\n return pages;\n };\n var listItemClass = 'flex items-center justify-center w-10 h-10 text-sm text-[#677389] hover:text-gray-800 cursor-pointer border border-r-0 border-[#CDD5E0] disabled:hover:bg-white disabled:cursor-default';\n return (React.createElement(\"nav\", { className: 'mt-4 flex items-center justify-center', \"aria-label\": 'Pagination' },\n React.createElement(\"ul\", { className: 'flex list-none' },\n React.createElement(\"li\", null,\n React.createElement(\"button\", { \"aria-label\": 'Previous page', onClick: function () { return onPageChange(currentPage - 1); }, disabled: currentPage === 1, className: cn([\n listItemClass,\n currentPage === 1\n ? 'bg-white text-gray-500'\n : 'bg-white text-gray-500 hover:bg-gray-100',\n 'rounded-l-[10px] border-l disabled:opacity-50'\n ]) },\n React.createElement(LeftArrow, null))),\n generatePageNumbers().map(function (page, index) { return (React.createElement(\"li\", { key: index },\n React.createElement(\"button\", { onClick: function () { return onPageChange(page); }, className: cn([\n listItemClass,\n currentPage === page\n ? 'bg-[#E3E7EF] text-[#111729]'\n : 'bg-white text-gray-500 hover:bg-gray-100'\n ]), \"aria-current\": currentPage === page ? 'page' : null, disabled: page === '...' }, page))); }),\n React.createElement(\"li\", null,\n React.createElement(\"button\", { \"aria-label\": 'Next page', onClick: function () { return onPageChange(currentPage + 1); }, disabled: currentPage === totalPages, className: cn([\n listItemClass,\n currentPage === totalPages\n ? 'bg-white text-gray-500'\n : 'bg-white text-gray-500 hover:bg-gray-100',\n 'rounded-r-[10px] border-r disabled:opacity-50'\n ]) },\n React.createElement(RightArrow, null))))));\n};\nPagination.displayName = 'Pagination';\nvar LeftArrow = function () { return (React.createElement(\"svg\", { xmlns: 'http://www.w3.org/2000/svg', width: '15', height: '14', fill: 'none', viewBox: '0 0 15 14' },\n React.createElement(\"path\", { stroke: '#3662E3', strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: '1.67', d: 'M13.333 7H1.667m0 0L7.5 12.833M1.667 7L7.5 1.167' }))); };\nvar RightArrow = function () { return (React.createElement(\"svg\", { xmlns: 'http://www.w3.org/2000/svg', width: '21', height: '20', fill: 'none', viewBox: '0 0 21 20' },\n React.createElement(\"path\", { stroke: '#3662E3', strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: '1.67', d: 'M3.833 10h13.334m0 0l-5-5m5 5l-5 5' }))); };\n//# sourceMappingURL=Pagination.js.map","\"use client\";\n\n// packages/react/roving-focus/src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n })\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/radio-group/src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// packages/react/radio-group/src/radio.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = \"on\",\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n return /* @__PURE__ */ jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// packages/react/radio-group/src/radio-group.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: forwardedRef\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !isDisabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n Radio,\n {\n disabled: isDisabled,\n required: context.required,\n checked,\n ...radioScope,\n ...itemProps,\n name: context.name,\n ref: composedRefs,\n onCheck: () => context.onValueChange(itemProps.value),\n onKeyDown: composeEventHandlers2((event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(itemProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })\n }\n )\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nvar Root2 = RadioGroup;\nvar Item2 = RadioGroupItem;\nvar Indicator = RadioGroupIndicator;\nexport {\n Indicator,\n Item2 as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n Root2 as Root,\n createRadioGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\nimport { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { Circle } from 'lucide-react';\nimport { cn } from './utils';\nvar RadioGroup = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(RadioGroupPrimitive.Root, __assign({ className: cn('grid gap-2', className), \n // @ts-ignore\n error: false }, props, { ref: ref })));\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\nvar RadioGroupItem = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(RadioGroupPrimitive.Item, __assign({ ref: ref, className: cn('ring-offset-background focus-visible:ring-ring aspect-square h-5 w-5 rounded-full border border-x bg-white focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:opacity-50', \n // @ts-ignore\n props.error ? 'border-red-600 ' : 'border-x', className) }, props),\n React.createElement(RadioGroupPrimitive.Indicator, { className: cn('flex h-full w-full items-center justify-center rounded-full bg-blue-600 text-white', \n // @ts-ignore\n props.error ? 'bg-[#FEE4E2] text-transparent' : 'bg-blue-600') },\n React.createElement(Circle, { className: 'h-2.5 w-2.5 fill-current text-current' }))));\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\nexport { RadioGroup, RadioGroupItem };\n//# sourceMappingURL=RadioGroup.js.map","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/visually-hidden/src/visually-hidden.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"VisuallyHidden\";\nvar VisuallyHidden = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: {\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n ...props.style\n }\n }\n );\n }\n);\nVisuallyHidden.displayName = NAME;\nvar Root = VisuallyHidden;\nexport {\n Root,\n VisuallyHidden\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/select/src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n BubbleSelect,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nvar BubbleSelect = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...selectProps } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(VisuallyHidden, { asChild: true, children: /* @__PURE__ */ jsx(\"select\", { ...selectProps, ref: composedRefs, defaultValue: value }) });\n }\n);\nBubbleSelect.displayName = \"BubbleSelect\";\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\nimport { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { cn } from './utils';\nvar Select = SelectPrimitive.Root;\nvar SelectGroup = SelectPrimitive.Group;\nvar SelectValue = SelectPrimitive.Value;\nvar SelectTrigger = React.forwardRef(function (_a, ref) {\n var className = _a.className, children = _a.children, props = __rest(_a, [\"className\", \"children\"]);\n return (React.createElement(SelectPrimitive.Trigger, __assign({ ref: ref, className: cn('ring-offset-background focus:ring-ring flex w-full items-center justify-between rounded-lg border border-[#CDD5E0] p-3 text-[#111729] placeholder:text-[#677389] focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 [&>span]:line-clamp-1', className) }, props),\n children,\n React.createElement(SelectPrimitive.Icon, { asChild: true },\n React.createElement(\"svg\", { className: 'h-5 w-5', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', fill: 'none', viewBox: '0 0 20 20' },\n React.createElement(\"path\", { stroke: '#677389', strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: '1.667', d: 'M5 7.5l5 5 5-5' })))));\n});\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\nvar SelectScrollUpButton = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(SelectPrimitive.ScrollUpButton, __assign({ ref: ref, className: cn('flex cursor-default items-center justify-center py-1', className) }, props),\n React.createElement(\"svg\", { className: 'h-5 w-5 ', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', fill: 'none', viewBox: '0 0 20 20' },\n React.createElement(\"path\", { stroke: '#677389', strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: '1.667', d: 'M5 7.5l5 5 5-5' }))));\n});\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\nvar SelectScrollDownButton = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(SelectPrimitive.ScrollDownButton, __assign({ ref: ref, className: cn('flex cursor-default items-center justify-center py-1', className) }, props),\n React.createElement(\"svg\", { xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', fill: 'none', viewBox: '0 0 20 20' },\n React.createElement(\"path\", { stroke: '#677389', strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: '1.667', d: 'M5 7.5l5 5 5-5' }))));\n});\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\nvar SelectContent = React.forwardRef(function (_a, ref) {\n var className = _a.className, children = _a.children, _b = _a.position, position = _b === void 0 ? 'popper' : _b, props = __rest(_a, [\"className\", \"children\", \"position\"]);\n return (React.createElement(SelectPrimitive.Portal, null,\n React.createElement(SelectPrimitive.Content, __assign({ ref: ref, className: cn('relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-xl border border-[#F2F5F9] bg-white shadow-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1', className), position: position }, props),\n React.createElement(SelectScrollUpButton, null),\n React.createElement(SelectPrimitive.Viewport, { className: cn('p-3', position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]') }, children),\n React.createElement(SelectScrollDownButton, null))));\n});\nSelectContent.displayName = SelectPrimitive.Content.displayName;\nvar SelectLabel = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(SelectPrimitive.Label, __assign({ ref: ref, className: cn('py-1.5 pl-8 pr-2 text-sm font-semibold', className) }, props)));\n});\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\nvar SelectItem = React.forwardRef(function (_a, ref) {\n var className = _a.className, children = _a.children, props = __rest(_a, [\"className\", \"children\"]);\n return (React.createElement(SelectPrimitive.Item, __assign({ ref: ref, className: cn('focus:text-accent-foreground relative flex w-full cursor-default select-none items-center rounded-sm border-b border-[#F2F5F9] px-2 py-3 text-sm text-[#344054] outline-none last:border-b-0 hover:cursor-pointer focus:bg-gray-200/20 focus:font-medium data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className) }, props),\n React.createElement(SelectPrimitive.ItemText, null, children)));\n});\nSelectItem.displayName = SelectPrimitive.Item.displayName;\nvar SelectSeparator = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(SelectPrimitive.Separator, __assign({ ref: ref, className: cn('bg-gray-200 -mx-1 my-1 h-px', className) }, props)));\n});\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\nexport { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton };\n//# sourceMappingURL=Select.js.map","'use client';\nimport { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { cva } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport { cn } from './utils';\nvar Sheet = SheetPrimitive.Root;\nvar SheetTrigger = SheetPrimitive.Trigger;\nvar SheetClose = SheetPrimitive.Close;\nvar SheetPortal = SheetPrimitive.Portal;\nvar SheetOverlay = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(SheetPrimitive.Overlay, __assign({ className: cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 backdrop-blur-sm', className) }, props, { ref: ref })));\n});\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\nvar sheetVariants = cva('fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500 max-h-screen overflow-y-auto', {\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom: 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom h-full',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right: 'inset-y-2 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm'\n }\n },\n defaultVariants: {\n side: 'right'\n }\n});\nvar SheetContent = React.forwardRef(function (_a, ref) {\n var _b = _a.side, side = _b === void 0 ? 'right' : _b, className = _a.className, children = _a.children, onOpenChange = _a.onOpenChange, props = __rest(_a, [\"side\", \"className\", \"children\", \"onOpenChange\"]);\n return (React.createElement(SheetPortal, null,\n React.createElement(SheetOverlay, null),\n React.createElement(SheetPrimitive.Content, __assign({ ref: ref, className: cn(sheetVariants({ side: side }), className) }, props),\n children,\n React.createElement(SheetPrimitive.Close, { className: 'ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none', onClick: function () { return onOpenChange && onOpenChange(false); } },\n React.createElement(X, { className: 'h-4 w-4' }),\n React.createElement(\"span\", { className: 'sr-only' }, \"Close\")))));\n});\nSheetContent.displayName = SheetPrimitive.Content.displayName;\nvar SheetHeader = function (_a) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"div\", __assign({ className: cn('flex flex-col space-y-2 text-center sm:text-left', className) }, props)));\n};\nSheetHeader.displayName = 'SheetHeader';\nvar SheetFooter = function (_a) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"div\", __assign({ className: cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className) }, props)));\n};\nSheetFooter.displayName = 'SheetFooter';\nvar SheetTitle = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(SheetPrimitive.Title, __assign({ ref: ref, className: cn('text-foreground text-lg font-semibold', className) }, props)));\n});\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\nvar SheetDescription = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(SheetPrimitive.Description, __assign({ ref: ref, className: cn('text-muted-foreground text-sm', className) }, props)));\n});\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\nexport { Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription };\n//# sourceMappingURL=Sheet.js.map","\"use client\";\n\n// packages/react/switch/src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\nimport { cn } from './utils';\nvar Switch = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(SwitchPrimitives.Root, __assign({ className: cn('focus-visible:ring-ring focus-visible:ring-offset-background peer inline-flex h-[31px] w-[51px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:opacity-50 data-[state=checked]:bg-[#3662E3] data-[state=unchecked]:bg-[#CDD5E0]', className) }, props, { ref: ref }),\n React.createElement(SwitchPrimitives.Thumb, { className: cn('pointer-events-none block h-[27px] w-[27px] rounded-full bg-white shadow-lg shadow-sm ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0') })));\n});\nSwitch.displayName = SwitchPrimitives.Root.displayName;\nexport { Switch };\n//# sourceMappingURL=Switch.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { cn } from './utils';\nvar Table = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"div\", { className: 'relative w-full overflow-auto' },\n React.createElement(\"table\", __assign({ ref: ref, className: cn('w-full caption-bottom text-sm', className) }, props))));\n});\nTable.displayName = 'Table';\nvar TableHeader = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"thead\", __assign({ ref: ref, className: cn('bg-gray-100 [&_tr]:border-b', className) }, props)));\n});\nTableHeader.displayName = 'TableHeader';\nvar TableBody = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"tbody\", __assign({ ref: ref, className: cn('[&_tr:last-child]:border-0', className) }, props)));\n});\nTableBody.displayName = 'TableBody';\nvar TableFooter = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"tfoot\", __assign({ ref: ref, className: cn('bg-muted/50 border-t font-medium [&>tr]:last:border-b-0', className) }, props)));\n});\nTableFooter.displayName = 'TableFooter';\nvar TableRow = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"tr\", __assign({ ref: ref, className: cn('hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors hover:bg-gray-50', className) }, props)));\n});\nTableRow.displayName = 'TableRow';\nvar TableHead = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"th\", __assign({ ref: ref, className: cn('text-muted-foreground h-12 px-4 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0', className) }, props)));\n});\nTableHead.displayName = 'TableHead';\nvar TableCell = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"td\", __assign({ ref: ref, className: cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className) }, props)));\n});\nTableCell.displayName = 'TableCell';\nvar TableCaption = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"caption\", __assign({ ref: ref, className: cn('text-muted-foreground mt-4 text-sm', className) }, props)));\n});\nTableCaption.displayName = 'TableCaption';\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n//# sourceMappingURL=Table.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { cn } from './utils';\nvar Textarea = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"textarea\", __assign({ className: cn('flex min-h-[80px] w-full rounded-md border border-[#CDD5E0] bg-white p-3 text-[#111729] ring-offset-[#C4DAFB] placeholder:text-[#677389] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#C4DAFB] focus-visible:ring-offset-2 disabled:bg-[#F2F5F9]', className), ref: ref }, props)));\n});\nTextarea.displayName = 'Textarea';\nexport { Textarea };\n//# sourceMappingURL=Textarea.js.map","\"use client\";\n\n// packages/react/tooltip/src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Slottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const [isOpenDelayed, setIsOpenDelayed] = React.useState(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayed,\n delayDuration,\n onOpen: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n setIsOpenDelayed(false);\n }, []),\n onClose: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => setIsOpenDelayed(true),\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n }\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayed) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayed, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n const target = event.target;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport { cn } from './utils';\nvar TooltipProvider = TooltipPrimitive.Provider;\nvar Tooltip = TooltipPrimitive.Root;\nvar TooltipTrigger = TooltipPrimitive.Trigger;\nvar TooltipContent = React.forwardRef(function (_a, ref) {\n var className = _a.className, _b = _a.sideOffset, sideOffset = _b === void 0 ? 4 : _b, props = __rest(_a, [\"className\", \"sideOffset\"]);\n return (React.createElement(TooltipPrimitive.Content, __assign({ ref: ref, sideOffset: sideOffset, className: cn('animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 overflow-hidden rounded-md border bg-gray-50 px-3 py-1.5 text-sm text-gray-800 shadow-md', className) }, props)));\n});\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n//# sourceMappingURL=Tooltip.js.map","\"use client\";\n\n// packages/react/toast/src/toast.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport * as DismissableLayer from \"@radix-ui/react-dismissable-layer\";\nimport { Portal } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar PROVIDER_NAME = \"ToastProvider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(\"Toast\");\nvar [createToastContext, createToastScope] = createContextScope(\"Toast\", [createCollectionScope]);\nvar [ToastProviderProvider, useToastProviderContext] = createToastContext(PROVIDER_NAME);\nvar ToastProvider = (props) => {\n const {\n __scopeToast,\n label = \"Notification\",\n duration = 5e3,\n swipeDirection = \"right\",\n swipeThreshold = 50,\n children\n } = props;\n const [viewport, setViewport] = React.useState(null);\n const [toastCount, setToastCount] = React.useState(0);\n const isFocusedToastEscapeKeyDownRef = React.useRef(false);\n const isClosePausedRef = React.useRef(false);\n if (!label.trim()) {\n console.error(\n `Invalid prop \\`label\\` supplied to \\`${PROVIDER_NAME}\\`. Expected non-empty \\`string\\`.`\n );\n }\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeToast, children: /* @__PURE__ */ jsx(\n ToastProviderProvider,\n {\n scope: __scopeToast,\n label,\n duration,\n swipeDirection,\n swipeThreshold,\n toastCount,\n viewport,\n onViewportChange: setViewport,\n onToastAdd: React.useCallback(() => setToastCount((prevCount) => prevCount + 1), []),\n onToastRemove: React.useCallback(() => setToastCount((prevCount) => prevCount - 1), []),\n isFocusedToastEscapeKeyDownRef,\n isClosePausedRef,\n children\n }\n ) });\n};\nToastProvider.displayName = PROVIDER_NAME;\nvar VIEWPORT_NAME = \"ToastViewport\";\nvar VIEWPORT_DEFAULT_HOTKEY = [\"F8\"];\nvar VIEWPORT_PAUSE = \"toast.viewportPause\";\nvar VIEWPORT_RESUME = \"toast.viewportResume\";\nvar ToastViewport = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeToast,\n hotkey = VIEWPORT_DEFAULT_HOTKEY,\n label = \"Notifications ({hotkey})\",\n ...viewportProps\n } = props;\n const context = useToastProviderContext(VIEWPORT_NAME, __scopeToast);\n const getItems = useCollection(__scopeToast);\n const wrapperRef = React.useRef(null);\n const headFocusProxyRef = React.useRef(null);\n const tailFocusProxyRef = React.useRef(null);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n const hotkeyLabel = hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n const hasToasts = context.toastCount > 0;\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n const isHotkeyPressed = hotkey.length !== 0 && hotkey.every((key) => event[key] || event.code === key);\n if (isHotkeyPressed) ref.current?.focus();\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [hotkey]);\n React.useEffect(() => {\n const wrapper = wrapperRef.current;\n const viewport = ref.current;\n if (hasToasts && wrapper && viewport) {\n const handlePause = () => {\n if (!context.isClosePausedRef.current) {\n const pauseEvent = new CustomEvent(VIEWPORT_PAUSE);\n viewport.dispatchEvent(pauseEvent);\n context.isClosePausedRef.current = true;\n }\n };\n const handleResume = () => {\n if (context.isClosePausedRef.current) {\n const resumeEvent = new CustomEvent(VIEWPORT_RESUME);\n viewport.dispatchEvent(resumeEvent);\n context.isClosePausedRef.current = false;\n }\n };\n const handleFocusOutResume = (event) => {\n const isFocusMovingOutside = !wrapper.contains(event.relatedTarget);\n if (isFocusMovingOutside) handleResume();\n };\n const handlePointerLeaveResume = () => {\n const isFocusInside = wrapper.contains(document.activeElement);\n if (!isFocusInside) handleResume();\n };\n wrapper.addEventListener(\"focusin\", handlePause);\n wrapper.addEventListener(\"focusout\", handleFocusOutResume);\n wrapper.addEventListener(\"pointermove\", handlePause);\n wrapper.addEventListener(\"pointerleave\", handlePointerLeaveResume);\n window.addEventListener(\"blur\", handlePause);\n window.addEventListener(\"focus\", handleResume);\n return () => {\n wrapper.removeEventListener(\"focusin\", handlePause);\n wrapper.removeEventListener(\"focusout\", handleFocusOutResume);\n wrapper.removeEventListener(\"pointermove\", handlePause);\n wrapper.removeEventListener(\"pointerleave\", handlePointerLeaveResume);\n window.removeEventListener(\"blur\", handlePause);\n window.removeEventListener(\"focus\", handleResume);\n };\n }\n }, [hasToasts, context.isClosePausedRef]);\n const getSortedTabbableCandidates = React.useCallback(\n ({ tabbingDirection }) => {\n const toastItems = getItems();\n const tabbableCandidates = toastItems.map((toastItem) => {\n const toastNode = toastItem.ref.current;\n const toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];\n return tabbingDirection === \"forwards\" ? toastTabbableCandidates : toastTabbableCandidates.reverse();\n });\n return (tabbingDirection === \"forwards\" ? tabbableCandidates.reverse() : tabbableCandidates).flat();\n },\n [getItems]\n );\n React.useEffect(() => {\n const viewport = ref.current;\n if (viewport) {\n const handleKeyDown = (event) => {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n const isTabKey = event.key === \"Tab\" && !isMetaKey;\n if (isTabKey) {\n const focusedElement = document.activeElement;\n const isTabbingBackwards = event.shiftKey;\n const targetIsViewport = event.target === viewport;\n if (targetIsViewport && isTabbingBackwards) {\n headFocusProxyRef.current?.focus();\n return;\n }\n const tabbingDirection = isTabbingBackwards ? \"backwards\" : \"forwards\";\n const sortedCandidates = getSortedTabbableCandidates({ tabbingDirection });\n const index = sortedCandidates.findIndex((candidate) => candidate === focusedElement);\n if (focusFirst(sortedCandidates.slice(index + 1))) {\n event.preventDefault();\n } else {\n isTabbingBackwards ? headFocusProxyRef.current?.focus() : tailFocusProxyRef.current?.focus();\n }\n }\n };\n viewport.addEventListener(\"keydown\", handleKeyDown);\n return () => viewport.removeEventListener(\"keydown\", handleKeyDown);\n }\n }, [getItems, getSortedTabbableCandidates]);\n return /* @__PURE__ */ jsxs(\n DismissableLayer.Branch,\n {\n ref: wrapperRef,\n role: \"region\",\n \"aria-label\": label.replace(\"{hotkey}\", hotkeyLabel),\n tabIndex: -1,\n style: { pointerEvents: hasToasts ? void 0 : \"none\" },\n children: [\n hasToasts && /* @__PURE__ */ jsx(\n FocusProxy,\n {\n ref: headFocusProxyRef,\n onFocusFromOutsideViewport: () => {\n const tabbableCandidates = getSortedTabbableCandidates({\n tabbingDirection: \"forwards\"\n });\n focusFirst(tabbableCandidates);\n }\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeToast, children: /* @__PURE__ */ jsx(Primitive.ol, { tabIndex: -1, ...viewportProps, ref: composedRefs }) }),\n hasToasts && /* @__PURE__ */ jsx(\n FocusProxy,\n {\n ref: tailFocusProxyRef,\n onFocusFromOutsideViewport: () => {\n const tabbableCandidates = getSortedTabbableCandidates({\n tabbingDirection: \"backwards\"\n });\n focusFirst(tabbableCandidates);\n }\n }\n )\n ]\n }\n );\n }\n);\nToastViewport.displayName = VIEWPORT_NAME;\nvar FOCUS_PROXY_NAME = \"ToastFocusProxy\";\nvar FocusProxy = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeToast, onFocusFromOutsideViewport, ...proxyProps } = props;\n const context = useToastProviderContext(FOCUS_PROXY_NAME, __scopeToast);\n return /* @__PURE__ */ jsx(\n VisuallyHidden,\n {\n \"aria-hidden\": true,\n tabIndex: 0,\n ...proxyProps,\n ref: forwardedRef,\n style: { position: \"fixed\" },\n onFocus: (event) => {\n const prevFocusedElement = event.relatedTarget;\n const isFocusFromOutsideViewport = !context.viewport?.contains(prevFocusedElement);\n if (isFocusFromOutsideViewport) onFocusFromOutsideViewport();\n }\n }\n );\n }\n);\nFocusProxy.displayName = FOCUS_PROXY_NAME;\nvar TOAST_NAME = \"Toast\";\nvar TOAST_SWIPE_START = \"toast.swipeStart\";\nvar TOAST_SWIPE_MOVE = \"toast.swipeMove\";\nvar TOAST_SWIPE_CANCEL = \"toast.swipeCancel\";\nvar TOAST_SWIPE_END = \"toast.swipeEnd\";\nvar Toast = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, open: openProp, defaultOpen, onOpenChange, ...toastProps } = props;\n const [open = true, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || open, children: /* @__PURE__ */ jsx(\n ToastImpl,\n {\n open,\n ...toastProps,\n ref: forwardedRef,\n onClose: () => setOpen(false),\n onPause: useCallbackRef(props.onPause),\n onResume: useCallbackRef(props.onResume),\n onSwipeStart: composeEventHandlers(props.onSwipeStart, (event) => {\n event.currentTarget.setAttribute(\"data-swipe\", \"start\");\n }),\n onSwipeMove: composeEventHandlers(props.onSwipeMove, (event) => {\n const { x, y } = event.detail.delta;\n event.currentTarget.setAttribute(\"data-swipe\", \"move\");\n event.currentTarget.style.setProperty(\"--radix-toast-swipe-move-x\", `${x}px`);\n event.currentTarget.style.setProperty(\"--radix-toast-swipe-move-y\", `${y}px`);\n }),\n onSwipeCancel: composeEventHandlers(props.onSwipeCancel, (event) => {\n event.currentTarget.setAttribute(\"data-swipe\", \"cancel\");\n event.currentTarget.style.removeProperty(\"--radix-toast-swipe-move-x\");\n event.currentTarget.style.removeProperty(\"--radix-toast-swipe-move-y\");\n event.currentTarget.style.removeProperty(\"--radix-toast-swipe-end-x\");\n event.currentTarget.style.removeProperty(\"--radix-toast-swipe-end-y\");\n }),\n onSwipeEnd: composeEventHandlers(props.onSwipeEnd, (event) => {\n const { x, y } = event.detail.delta;\n event.currentTarget.setAttribute(\"data-swipe\", \"end\");\n event.currentTarget.style.removeProperty(\"--radix-toast-swipe-move-x\");\n event.currentTarget.style.removeProperty(\"--radix-toast-swipe-move-y\");\n event.currentTarget.style.setProperty(\"--radix-toast-swipe-end-x\", `${x}px`);\n event.currentTarget.style.setProperty(\"--radix-toast-swipe-end-y\", `${y}px`);\n setOpen(false);\n })\n }\n ) });\n }\n);\nToast.displayName = TOAST_NAME;\nvar [ToastInteractiveProvider, useToastInteractiveContext] = createToastContext(TOAST_NAME, {\n onClose() {\n }\n});\nvar ToastImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeToast,\n type = \"foreground\",\n duration: durationProp,\n open,\n onClose,\n onEscapeKeyDown,\n onPause,\n onResume,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n ...toastProps\n } = props;\n const context = useToastProviderContext(TOAST_NAME, __scopeToast);\n const [node, setNode] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const pointerStartRef = React.useRef(null);\n const swipeDeltaRef = React.useRef(null);\n const duration = durationProp || context.duration;\n const closeTimerStartTimeRef = React.useRef(0);\n const closeTimerRemainingTimeRef = React.useRef(duration);\n const closeTimerRef = React.useRef(0);\n const { onToastAdd, onToastRemove } = context;\n const handleClose = useCallbackRef(() => {\n const isFocusInToast = node?.contains(document.activeElement);\n if (isFocusInToast) context.viewport?.focus();\n onClose();\n });\n const startTimer = React.useCallback(\n (duration2) => {\n if (!duration2 || duration2 === Infinity) return;\n window.clearTimeout(closeTimerRef.current);\n closeTimerStartTimeRef.current = (/* @__PURE__ */ new Date()).getTime();\n closeTimerRef.current = window.setTimeout(handleClose, duration2);\n },\n [handleClose]\n );\n React.useEffect(() => {\n const viewport = context.viewport;\n if (viewport) {\n const handleResume = () => {\n startTimer(closeTimerRemainingTimeRef.current);\n onResume?.();\n };\n const handlePause = () => {\n const elapsedTime = (/* @__PURE__ */ new Date()).getTime() - closeTimerStartTimeRef.current;\n closeTimerRemainingTimeRef.current = closeTimerRemainingTimeRef.current - elapsedTime;\n window.clearTimeout(closeTimerRef.current);\n onPause?.();\n };\n viewport.addEventListener(VIEWPORT_PAUSE, handlePause);\n viewport.addEventListener(VIEWPORT_RESUME, handleResume);\n return () => {\n viewport.removeEventListener(VIEWPORT_PAUSE, handlePause);\n viewport.removeEventListener(VIEWPORT_RESUME, handleResume);\n };\n }\n }, [context.viewport, duration, onPause, onResume, startTimer]);\n React.useEffect(() => {\n if (open && !context.isClosePausedRef.current) startTimer(duration);\n }, [open, duration, context.isClosePausedRef, startTimer]);\n React.useEffect(() => {\n onToastAdd();\n return () => onToastRemove();\n }, [onToastAdd, onToastRemove]);\n const announceTextContent = React.useMemo(() => {\n return node ? getAnnounceTextContent(node) : null;\n }, [node]);\n if (!context.viewport) return null;\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n announceTextContent && /* @__PURE__ */ jsx(\n ToastAnnounce,\n {\n __scopeToast,\n role: \"status\",\n \"aria-live\": type === \"foreground\" ? \"assertive\" : \"polite\",\n \"aria-atomic\": true,\n children: announceTextContent\n }\n ),\n /* @__PURE__ */ jsx(ToastInteractiveProvider, { scope: __scopeToast, onClose: handleClose, children: ReactDOM.createPortal(\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeToast, children: /* @__PURE__ */ jsx(\n DismissableLayer.Root,\n {\n asChild: true,\n onEscapeKeyDown: composeEventHandlers(onEscapeKeyDown, () => {\n if (!context.isFocusedToastEscapeKeyDownRef.current) handleClose();\n context.isFocusedToastEscapeKeyDownRef.current = false;\n }),\n children: /* @__PURE__ */ jsx(\n Primitive.li,\n {\n role: \"status\",\n \"aria-live\": \"off\",\n \"aria-atomic\": true,\n tabIndex: 0,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-swipe-direction\": context.swipeDirection,\n ...toastProps,\n ref: composedRefs,\n style: { userSelect: \"none\", touchAction: \"none\", ...props.style },\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key !== \"Escape\") return;\n onEscapeKeyDown?.(event.nativeEvent);\n if (!event.nativeEvent.defaultPrevented) {\n context.isFocusedToastEscapeKeyDownRef.current = true;\n handleClose();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n if (event.button !== 0) return;\n pointerStartRef.current = { x: event.clientX, y: event.clientY };\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (!pointerStartRef.current) return;\n const x = event.clientX - pointerStartRef.current.x;\n const y = event.clientY - pointerStartRef.current.y;\n const hasSwipeMoveStarted = Boolean(swipeDeltaRef.current);\n const isHorizontalSwipe = [\"left\", \"right\"].includes(context.swipeDirection);\n const clamp = [\"left\", \"up\"].includes(context.swipeDirection) ? Math.min : Math.max;\n const clampedX = isHorizontalSwipe ? clamp(0, x) : 0;\n const clampedY = !isHorizontalSwipe ? clamp(0, y) : 0;\n const moveStartBuffer = event.pointerType === \"touch\" ? 10 : 2;\n const delta = { x: clampedX, y: clampedY };\n const eventDetail = { originalEvent: event, delta };\n if (hasSwipeMoveStarted) {\n swipeDeltaRef.current = delta;\n handleAndDispatchCustomEvent(TOAST_SWIPE_MOVE, onSwipeMove, eventDetail, {\n discrete: false\n });\n } else if (isDeltaInDirection(delta, context.swipeDirection, moveStartBuffer)) {\n swipeDeltaRef.current = delta;\n handleAndDispatchCustomEvent(TOAST_SWIPE_START, onSwipeStart, eventDetail, {\n discrete: false\n });\n event.target.setPointerCapture(event.pointerId);\n } else if (Math.abs(x) > moveStartBuffer || Math.abs(y) > moveStartBuffer) {\n pointerStartRef.current = null;\n }\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const delta = swipeDeltaRef.current;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n swipeDeltaRef.current = null;\n pointerStartRef.current = null;\n if (delta) {\n const toast = event.currentTarget;\n const eventDetail = { originalEvent: event, delta };\n if (isDeltaInDirection(delta, context.swipeDirection, context.swipeThreshold)) {\n handleAndDispatchCustomEvent(TOAST_SWIPE_END, onSwipeEnd, eventDetail, {\n discrete: true\n });\n } else {\n handleAndDispatchCustomEvent(\n TOAST_SWIPE_CANCEL,\n onSwipeCancel,\n eventDetail,\n {\n discrete: true\n }\n );\n }\n toast.addEventListener(\"click\", (event2) => event2.preventDefault(), {\n once: true\n });\n }\n })\n }\n )\n }\n ) }),\n context.viewport\n ) })\n ] });\n }\n);\nvar ToastAnnounce = (props) => {\n const { __scopeToast, children, ...announceProps } = props;\n const context = useToastProviderContext(TOAST_NAME, __scopeToast);\n const [renderAnnounceText, setRenderAnnounceText] = React.useState(false);\n const [isAnnounced, setIsAnnounced] = React.useState(false);\n useNextFrame(() => setRenderAnnounceText(true));\n React.useEffect(() => {\n const timer = window.setTimeout(() => setIsAnnounced(true), 1e3);\n return () => window.clearTimeout(timer);\n }, []);\n return isAnnounced ? null : /* @__PURE__ */ jsx(Portal, { asChild: true, children: /* @__PURE__ */ jsx(VisuallyHidden, { ...announceProps, children: renderAnnounceText && /* @__PURE__ */ jsxs(Fragment, { children: [\n context.label,\n \" \",\n children\n ] }) }) });\n};\nvar TITLE_NAME = \"ToastTitle\";\nvar ToastTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeToast, ...titleProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...titleProps, ref: forwardedRef });\n }\n);\nToastTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"ToastDescription\";\nvar ToastDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeToast, ...descriptionProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...descriptionProps, ref: forwardedRef });\n }\n);\nToastDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"ToastAction\";\nvar ToastAction = React.forwardRef(\n (props, forwardedRef) => {\n const { altText, ...actionProps } = props;\n if (!altText.trim()) {\n console.error(\n `Invalid prop \\`altText\\` supplied to \\`${ACTION_NAME}\\`. Expected non-empty \\`string\\`.`\n );\n return null;\n }\n return /* @__PURE__ */ jsx(ToastAnnounceExclude, { altText, asChild: true, children: /* @__PURE__ */ jsx(ToastClose, { ...actionProps, ref: forwardedRef }) });\n }\n);\nToastAction.displayName = ACTION_NAME;\nvar CLOSE_NAME = \"ToastClose\";\nvar ToastClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeToast, ...closeProps } = props;\n const interactiveContext = useToastInteractiveContext(CLOSE_NAME, __scopeToast);\n return /* @__PURE__ */ jsx(ToastAnnounceExclude, { asChild: true, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, interactiveContext.onClose)\n }\n ) });\n }\n);\nToastClose.displayName = CLOSE_NAME;\nvar ToastAnnounceExclude = React.forwardRef((props, forwardedRef) => {\n const { __scopeToast, altText, ...announceExcludeProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-toast-announce-exclude\": \"\",\n \"data-radix-toast-announce-alt\": altText || void 0,\n ...announceExcludeProps,\n ref: forwardedRef\n }\n );\n});\nfunction getAnnounceTextContent(container) {\n const textContent = [];\n const childNodes = Array.from(container.childNodes);\n childNodes.forEach((node) => {\n if (node.nodeType === node.TEXT_NODE && node.textContent) textContent.push(node.textContent);\n if (isHTMLElement(node)) {\n const isHidden = node.ariaHidden || node.hidden || node.style.display === \"none\";\n const isExcluded = node.dataset.radixToastAnnounceExclude === \"\";\n if (!isHidden) {\n if (isExcluded) {\n const altText = node.dataset.radixToastAnnounceAlt;\n if (altText) textContent.push(altText);\n } else {\n textContent.push(...getAnnounceTextContent(node));\n }\n }\n }\n });\n return textContent;\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const currentTarget = detail.originalEvent.currentTarget;\n const event = new CustomEvent(name, { bubbles: true, cancelable: true, detail });\n if (handler) currentTarget.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(currentTarget, event);\n } else {\n currentTarget.dispatchEvent(event);\n }\n}\nvar isDeltaInDirection = (delta, direction, threshold = 0) => {\n const deltaX = Math.abs(delta.x);\n const deltaY = Math.abs(delta.y);\n const isDeltaX = deltaX > deltaY;\n if (direction === \"left\" || direction === \"right\") {\n return isDeltaX && deltaX > threshold;\n } else {\n return !isDeltaX && deltaY > threshold;\n }\n};\nfunction useNextFrame(callback = () => {\n}) {\n const fn = useCallbackRef(callback);\n useLayoutEffect(() => {\n let raf1 = 0;\n let raf2 = 0;\n raf1 = window.requestAnimationFrame(() => raf2 = window.requestAnimationFrame(fn));\n return () => {\n window.cancelAnimationFrame(raf1);\n window.cancelAnimationFrame(raf2);\n };\n }, [fn]);\n}\nfunction isHTMLElement(node) {\n return node.nodeType === node.ELEMENT_NODE;\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction focusFirst(candidates) {\n const previouslyFocusedElement = document.activeElement;\n return candidates.some((candidate) => {\n if (candidate === previouslyFocusedElement) return true;\n candidate.focus();\n return document.activeElement !== previouslyFocusedElement;\n });\n}\nvar Provider = ToastProvider;\nvar Viewport = ToastViewport;\nvar Root2 = Toast;\nvar Title = ToastTitle;\nvar Description = ToastDescription;\nvar Action = ToastAction;\nvar Close = ToastClose;\nexport {\n Action,\n Close,\n Description,\n Provider,\n Root2 as Root,\n Title,\n Toast,\n ToastAction,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n Viewport,\n createToastScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as ToastPrimitives from '@radix-ui/react-toast';\nimport { cva } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport { cn } from './utils';\nvar ToastProvider = ToastPrimitives.Provider;\nvar ToastViewport = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(ToastPrimitives.Viewport, __assign({ ref: ref, className: cn('fixed top-0 z-[100] flex max-h-screen w-full flex-col gap-1 p-2 sm:right-0 sm:top-auto sm:flex-col sm:p-4 md:max-w-[420px]', className) }, props)));\n});\nToastViewport.displayName = ToastPrimitives.Viewport.displayName;\nvar toastVariants = cva('group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full', {\n variants: {\n variant: {\n primary: 'bg-[#C4DAFB] text-[#263985]',\n success: 'bg-[#A6F4C5] text-[#054F31]',\n gray: 'bg-white text-[#111729]',\n error: 'bg-[#FECDCA] text-[#7A271A]'\n }\n },\n defaultVariants: {\n variant: 'primary'\n }\n});\nvar Toast = React.forwardRef(function (_a, ref) {\n var className = _a.className, variant = _a.variant, props = __rest(_a, [\"className\", \"variant\"]);\n return (React.createElement(ToastPrimitives.Root, __assign({ ref: ref, className: cn(toastVariants({ variant: variant }), className) }, props)));\n});\nToast.displayName = ToastPrimitives.Root.displayName;\nvar ToastAction = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(ToastPrimitives.Action, __assign({ ref: ref, className: cn('ring-offset-background hover:bg-secondary focus:ring-ring inline-flex h-8 shrink-0 items-center justify-center rounded-md bg-transparent px-3 font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', className) }, props)));\n});\nToastAction.displayName = ToastPrimitives.Action.displayName;\nvar ToastClose = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(ToastPrimitives.Close, __assign({ ref: ref, className: cn('text-foreground/50 hover:text-foreground absolute right-2 top-2 rounded-md p-1 opacity-0 transition-opacity focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 ', className), \"toast-close\": '' }, props),\n React.createElement(X, { className: 'h-4 w-4' })));\n});\nToastClose.displayName = ToastPrimitives.Close.displayName;\nvar ToastTitle = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(ToastPrimitives.Title, __assign({ ref: ref, className: cn('font-semibold', className) }, props)));\n});\nToastTitle.displayName = ToastPrimitives.Title.displayName;\nvar ToastDescription = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(ToastPrimitives.Description, __assign({ ref: ref, className: cn('opacity-90', className) }, props)));\n});\nToastDescription.displayName = ToastPrimitives.Description.displayName;\nexport { ToastProvider, ToastViewport, Toast, ToastTitle, ToastDescription, ToastClose, ToastAction };\n//# sourceMappingURL=toast.js.map","import { __assign, __rest, __spreadArray } from \"tslib\";\n// Inspired by react-hot-toast library\nimport * as React from 'react';\nvar TOAST_LIMIT = 3;\nvar TOAST_REMOVE_DELAY = 10000;\nvar actionTypes = {\n ADD_TOAST: 'ADD_TOAST',\n UPDATE_TOAST: 'UPDATE_TOAST',\n DISMISS_TOAST: 'DISMISS_TOAST',\n REMOVE_TOAST: 'REMOVE_TOAST'\n};\nvar count = 0;\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\nvar toastTimeouts = new Map();\nvar addToRemoveQueue = function (toastId) {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n var timeout = setTimeout(function () {\n toastTimeouts.delete(toastId);\n dispatch({\n type: 'REMOVE_TOAST',\n toastId: toastId\n });\n }, TOAST_REMOVE_DELAY);\n toastTimeouts.set(toastId, timeout);\n};\nexport var reducer = function (state, action) {\n switch (action.type) {\n case 'ADD_TOAST':\n return __assign(__assign({}, state), { toasts: __spreadArray([action.toast], state.toasts, true).slice(0, TOAST_LIMIT) });\n case 'UPDATE_TOAST':\n return __assign(__assign({}, state), { toasts: state.toasts.map(function (t) {\n return t.id === action.toast.id ? __assign(__assign({}, t), action.toast) : t;\n }) });\n case 'DISMISS_TOAST': {\n var toastId_1 = action.toastId;\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId_1) {\n addToRemoveQueue(toastId_1);\n }\n else {\n state.toasts.forEach(function (toast) {\n addToRemoveQueue(toast.id);\n });\n }\n return __assign(__assign({}, state), { toasts: state.toasts.map(function (t) {\n return t.id === toastId_1 || toastId_1 === undefined\n ? __assign(__assign({}, t), { open: false }) : t;\n }) });\n }\n case 'REMOVE_TOAST':\n if (action.toastId === undefined) {\n return __assign(__assign({}, state), { toasts: [] });\n }\n return __assign(__assign({}, state), { toasts: state.toasts.filter(function (t) { return t.id !== action.toastId; }) });\n }\n};\nvar listeners = [];\nvar memoryState = { toasts: [] };\nfunction dispatch(action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach(function (listener) {\n listener(memoryState);\n });\n}\nfunction toast(_a) {\n var props = __rest(_a, []);\n var id = genId();\n var update = function (props) {\n return dispatch({\n type: 'UPDATE_TOAST',\n toast: __assign(__assign({}, props), { id: id })\n });\n };\n var dismiss = function () { return dispatch({ type: 'DISMISS_TOAST', toastId: id }); };\n dispatch({\n type: 'ADD_TOAST',\n toast: __assign(__assign({}, props), { id: id, open: true, onOpenChange: function (open) {\n if (!open)\n dismiss();\n } })\n });\n return {\n id: id,\n dismiss: dismiss,\n update: update\n };\n}\nfunction useToast() {\n var _a = React.useState(memoryState), state = _a[0], setState = _a[1];\n React.useEffect(function () {\n listeners.push(setState);\n return function () {\n var index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n return __assign(__assign({}, state), { toast: toast, dismiss: function (toastId) { return dispatch({ type: 'DISMISS_TOAST', toastId: toastId }); } });\n}\nexport { useToast, toast };\n//# sourceMappingURL=use-toast.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Toast, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport } from './toast';\nimport { useToast } from './use-toast';\nexport function Toaster() {\n var toasts = useToast().toasts;\n return (\n // @ts-ignore\n React.createElement(ToastProvider, { placement: 'bottom-right' },\n toasts.map(function (_a) {\n var id = _a.id, title = _a.title, description = _a.description, action = _a.action, props = __rest(_a, [\"id\", \"title\", \"description\", \"action\"]);\n return (React.createElement(Toast, __assign({ key: id }, props),\n React.createElement(\"div\", { className: 'grid gap-1' },\n title && React.createElement(ToastTitle, null, title),\n description && (React.createElement(ToastDescription, null, description))),\n action,\n React.createElement(ToastClose, null)));\n }),\n React.createElement(ToastViewport, null)));\n}\n//# sourceMappingURL=toaster.js.map","'use client';\nfunction __insertCSS(code) {\n if (!code || typeof document == 'undefined') return\n let head = document.head || document.getElementsByTagName('head')[0]\n let style = document.createElement('style')\n style.type = 'text/css'\n head.appendChild(style)\n ;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code))\n}\n\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport * as React from 'react';\nimport React__default, { useLayoutEffect, useEffect, useMemo } from 'react';\n\nconst DrawerContext = React__default.createContext({\n drawerRef: {\n current: null\n },\n overlayRef: {\n current: null\n },\n onPress: ()=>{},\n onRelease: ()=>{},\n onDrag: ()=>{},\n onNestedDrag: ()=>{},\n onNestedOpenChange: ()=>{},\n onNestedRelease: ()=>{},\n openProp: undefined,\n dismissible: false,\n isOpen: false,\n isDragging: false,\n keyboardIsOpen: {\n current: false\n },\n snapPointsOffset: null,\n snapPoints: null,\n handleOnly: false,\n modal: false,\n shouldFade: false,\n activeSnapPoint: null,\n onOpenChange: ()=>{},\n setActiveSnapPoint: ()=>{},\n closeDrawer: ()=>{},\n direction: 'bottom',\n shouldScaleBackground: false,\n setBackgroundColorOnScale: true,\n noBodyStyles: false,\n container: null,\n autoFocus: false\n});\nconst useDrawerContext = ()=>{\n const context = React__default.useContext(DrawerContext);\n if (!context) {\n throw new Error('useDrawerContext must be used within a Drawer.Root');\n }\n return context;\n};\n\n__insertCSS(\"[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,100%,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,-100%,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(-100%,0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(100%,0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\\n[data-state=closed]\\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,100%,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,100%,0)}}@keyframes slideFromTop{from{transform:translate3d(0,-100%,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,-100%,0)}}@keyframes slideFromLeft{from{transform:translate3d(-100%,0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(-100%,0,0)}}@keyframes slideFromRight{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(100%,0,0)}}\");\n\n// This code comes from https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/overlays/src/usePreventScroll.ts\nconst KEYBOARD_BUFFER = 24;\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nfunction chain$1(...callbacks) {\n return (...args)=>{\n for (let callback of callbacks){\n if (typeof callback === 'function') {\n callback(...args);\n }\n }\n };\n}\nfunction isMac() {\n return testPlatform(/^Mac/);\n}\nfunction isIPhone() {\n return testPlatform(/^iPhone/);\n}\nfunction isSafari() {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n}\nfunction isIPad() {\n return testPlatform(/^iPad/) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n isMac() && navigator.maxTouchPoints > 1;\n}\nfunction isIOS() {\n return isIPhone() || isIPad();\n}\nfunction testPlatform(re) {\n return typeof window !== 'undefined' && window.navigator != null ? re.test(window.navigator.platform) : undefined;\n}\n// @ts-ignore\nconst visualViewport = typeof document !== 'undefined' && window.visualViewport;\nfunction isScrollable(node) {\n let style = window.getComputedStyle(node);\n return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n}\nfunction getScrollParent(node) {\n if (isScrollable(node)) {\n node = node.parentElement;\n }\n while(node && !isScrollable(node)){\n node = node.parentElement;\n }\n return node || document.scrollingElement || document.documentElement;\n}\n// HTML input types that do not cause the software keyboard to appear.\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n// The number of active usePreventScroll calls. Used to determine whether to revert back to the original page style/scroll position\nlet preventScrollCount = 0;\nlet restore;\n/**\n * Prevents scrolling on the document body on mount, and\n * restores it on unmount. Also ensures that content does not\n * shift due to the scrollbars disappearing.\n */ function usePreventScroll(options = {}) {\n let { isDisabled } = options;\n useIsomorphicLayoutEffect(()=>{\n if (isDisabled) {\n return;\n }\n preventScrollCount++;\n if (preventScrollCount === 1) {\n if (isIOS()) {\n restore = preventScrollMobileSafari();\n }\n }\n return ()=>{\n preventScrollCount--;\n if (preventScrollCount === 0) {\n restore == null ? void 0 : restore();\n }\n };\n }, [\n isDisabled\n ]);\n}\n// Mobile Safari is a whole different beast. Even with overflow: hidden,\n// it still scrolls the page in many situations:\n//\n// 1. When the bottom toolbar and address bar are collapsed, page scrolling is always allowed.\n// 2. When the keyboard is visible, the viewport does not resize. Instead, the keyboard covers part of\n// it, so it becomes scrollable.\n// 3. When tapping on an input, the page always scrolls so that the input is centered in the visual viewport.\n// This may cause even fixed position elements to scroll off the screen.\n// 4. When using the next/previous buttons in the keyboard to navigate between inputs, the whole page always\n// scrolls, even if the input is inside a nested scrollable element that could be scrolled instead.\n//\n// In order to work around these cases, and prevent scrolling without jankiness, we do a few things:\n//\n// 1. Prevent default on `touchmove` events that are not in a scrollable element. This prevents touch scrolling\n// on the window.\n// 2. Prevent default on `touchmove` events inside a scrollable element when the scroll position is at the\n// top or bottom. This avoids the whole page scrolling instead, but does prevent overscrolling.\n// 3. Prevent default on `touchend` events on input elements and handle focusing the element ourselves.\n// 4. When focusing an input, apply a transform to trick Safari into thinking the input is at the top\n// of the page, which prevents it from scrolling the page. After the input is focused, scroll the element\n// into view ourselves, without scrolling the whole page.\n// 5. Offset the body by the scroll position using a negative margin and scroll to the top. This should appear the\n// same visually, but makes the actual scroll position always zero. This is required to make all of the\n// above work or Safari will still try to scroll the page when focusing an input.\n// 6. As a last resort, handle window scroll events, and scroll back to the top. This can happen when attempting\n// to navigate to an input with the next/previous buttons that's outside a modal.\nfunction preventScrollMobileSafari() {\n let scrollable;\n let lastY = 0;\n let onTouchStart = (e)=>{\n // Store the nearest scrollable parent element from the element that the user touched.\n scrollable = getScrollParent(e.target);\n if (scrollable === document.documentElement && scrollable === document.body) {\n return;\n }\n lastY = e.changedTouches[0].pageY;\n };\n let onTouchMove = (e)=>{\n // Prevent scrolling the window.\n if (!scrollable || scrollable === document.documentElement || scrollable === document.body) {\n e.preventDefault();\n return;\n }\n // Prevent scrolling up when at the top and scrolling down when at the bottom\n // of a nested scrollable area, otherwise mobile Safari will start scrolling\n // the window instead. Unfortunately, this disables bounce scrolling when at\n // the top but it's the best we can do.\n let y = e.changedTouches[0].pageY;\n let scrollTop = scrollable.scrollTop;\n let bottom = scrollable.scrollHeight - scrollable.clientHeight;\n if (bottom === 0) {\n return;\n }\n if (scrollTop <= 0 && y > lastY || scrollTop >= bottom && y < lastY) {\n e.preventDefault();\n }\n lastY = y;\n };\n let onTouchEnd = (e)=>{\n let target = e.target;\n // Apply this change if we're not already focused on the target element\n if (isInput(target) && target !== document.activeElement) {\n e.preventDefault();\n // Apply a transform to trick Safari into thinking the input is at the top of the page\n // so it doesn't try to scroll it into view. When tapping on an input, this needs to\n // be done before the \"focus\" event, so we have to focus the element ourselves.\n target.style.transform = 'translateY(-2000px)';\n target.focus();\n requestAnimationFrame(()=>{\n target.style.transform = '';\n });\n }\n };\n let onFocus = (e)=>{\n let target = e.target;\n if (isInput(target)) {\n // Transform also needs to be applied in the focus event in cases where focus moves\n // other than tapping on an input directly, e.g. the next/previous buttons in the\n // software keyboard. In these cases, it seems applying the transform in the focus event\n // is good enough, whereas when tapping an input, it must be done before the focus event. 🤷â€â™‚ï¸\n target.style.transform = 'translateY(-2000px)';\n requestAnimationFrame(()=>{\n target.style.transform = '';\n // This will have prevented the browser from scrolling the focused element into view,\n // so we need to do this ourselves in a way that doesn't cause the whole page to scroll.\n if (visualViewport) {\n if (visualViewport.height < window.innerHeight) {\n // If the keyboard is already visible, do this after one additional frame\n // to wait for the transform to be removed.\n requestAnimationFrame(()=>{\n scrollIntoView(target);\n });\n } else {\n // Otherwise, wait for the visual viewport to resize before scrolling so we can\n // measure the correct position to scroll to.\n visualViewport.addEventListener('resize', ()=>scrollIntoView(target), {\n once: true\n });\n }\n }\n });\n }\n };\n let onWindowScroll = ()=>{\n // Last resort. If the window scrolled, scroll it back to the top.\n // It should always be at the top because the body will have a negative margin (see below).\n window.scrollTo(0, 0);\n };\n // Record the original scroll position so we can restore it.\n // Then apply a negative margin to the body to offset it by the scroll position. This will\n // enable us to scroll the window to the top, which is required for the rest of this to work.\n let scrollX = window.pageXOffset;\n let scrollY = window.pageYOffset;\n let restoreStyles = chain$1(setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`));\n // Scroll to the top. The negative margin on the body will make this appear the same.\n window.scrollTo(0, 0);\n let removeEvents = chain$1(addEvent(document, 'touchstart', onTouchStart, {\n passive: false,\n capture: true\n }), addEvent(document, 'touchmove', onTouchMove, {\n passive: false,\n capture: true\n }), addEvent(document, 'touchend', onTouchEnd, {\n passive: false,\n capture: true\n }), addEvent(document, 'focus', onFocus, true), addEvent(window, 'scroll', onWindowScroll));\n return ()=>{\n // Restore styles and scroll the page back to where it was.\n restoreStyles();\n removeEvents();\n window.scrollTo(scrollX, scrollY);\n };\n}\n// Sets a CSS property on an element, and returns a function to revert it to the previous value.\nfunction setStyle(element, style, value) {\n let cur = element.style[style];\n element.style[style] = value;\n return ()=>{\n element.style[style] = cur;\n };\n}\n// Adds an event listener to an element, and returns a function to remove it.\nfunction addEvent(target, event, handler, options) {\n // @ts-ignore\n target.addEventListener(event, handler, options);\n return ()=>{\n // @ts-ignore\n target.removeEventListener(event, handler, options);\n };\n}\nfunction scrollIntoView(target) {\n let root = document.scrollingElement || document.documentElement;\n while(target && target !== root){\n // Find the parent scrollable element and adjust the scroll position if the target is not already in view.\n let scrollable = getScrollParent(target);\n if (scrollable !== document.documentElement && scrollable !== document.body && scrollable !== target) {\n let scrollableTop = scrollable.getBoundingClientRect().top;\n let targetTop = target.getBoundingClientRect().top;\n let targetBottom = target.getBoundingClientRect().bottom;\n // Buffer is needed for some edge cases\n const keyboardHeight = scrollable.getBoundingClientRect().bottom + KEYBOARD_BUFFER;\n if (targetBottom > keyboardHeight) {\n scrollable.scrollTop += targetTop - scrollableTop;\n }\n }\n // @ts-ignore\n target = scrollable.parentElement;\n }\n}\nfunction isInput(target) {\n return target instanceof HTMLInputElement && !nonTextInputTypes.has(target.type) || target instanceof HTMLTextAreaElement || target instanceof HTMLElement && target.isContentEditable;\n}\n\n// This code comes from https://github.com/radix-ui/primitives/tree/main/packages/react/compose-refs\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */ function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */ function composeRefs(...refs) {\n return (node)=>refs.forEach((ref)=>setRef(ref, node));\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */ function useComposedRefs(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nconst cache = new WeakMap();\nfunction set(el, styles, ignoreCache = false) {\n if (!el || !(el instanceof HTMLElement)) return;\n let originalStyles = {};\n Object.entries(styles).forEach(([key, value])=>{\n if (key.startsWith('--')) {\n el.style.setProperty(key, value);\n return;\n }\n originalStyles[key] = el.style[key];\n el.style[key] = value;\n });\n if (ignoreCache) return;\n cache.set(el, originalStyles);\n}\nfunction reset(el, prop) {\n if (!el || !(el instanceof HTMLElement)) return;\n let originalStyles = cache.get(el);\n if (!originalStyles) {\n return;\n }\n {\n el.style[prop] = originalStyles[prop];\n }\n}\nconst isVertical = (direction)=>{\n switch(direction){\n case 'top':\n case 'bottom':\n return true;\n case 'left':\n case 'right':\n return false;\n default:\n return direction;\n }\n};\nfunction getTranslate(element, direction) {\n if (!element) {\n return null;\n }\n const style = window.getComputedStyle(element);\n const transform = // @ts-ignore\n style.transform || style.webkitTransform || style.mozTransform;\n let mat = transform.match(/^matrix3d\\((.+)\\)$/);\n if (mat) {\n // https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix3d\n return parseFloat(mat[1].split(', ')[isVertical(direction) ? 13 : 12]);\n }\n // https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix\n mat = transform.match(/^matrix\\((.+)\\)$/);\n return mat ? parseFloat(mat[1].split(', ')[isVertical(direction) ? 5 : 4]) : null;\n}\nfunction dampenValue(v) {\n return 8 * (Math.log(v + 1) - 2);\n}\nfunction assignStyle(element, style) {\n if (!element) return ()=>{};\n const prevStyle = element.style.cssText;\n Object.assign(element.style, style);\n return ()=>{\n element.style.cssText = prevStyle;\n };\n}\n/**\n * Receives functions as arguments and returns a new function that calls all.\n */ function chain(...fns) {\n return (...args)=>{\n for (const fn of fns){\n if (typeof fn === 'function') {\n // @ts-ignore\n fn(...args);\n }\n }\n };\n}\n\nconst TRANSITIONS = {\n DURATION: 0.5,\n EASE: [\n 0.32,\n 0.72,\n 0,\n 1\n ]\n};\nconst VELOCITY_THRESHOLD = 0.4;\nconst CLOSE_THRESHOLD = 0.25;\nconst SCROLL_LOCK_TIMEOUT = 100;\nconst BORDER_RADIUS = 8;\nconst NESTED_DISPLACEMENT = 16;\nconst WINDOW_TOP_OFFSET = 26;\nconst DRAG_CLASS = 'vaul-dragging';\n\n// This code comes from https://github.com/radix-ui/primitives/blob/main/packages/react/use-controllable-state/src/useControllableState.tsx\nfunction useCallbackRef(callback) {\n const callbackRef = React__default.useRef(callback);\n React__default.useEffect(()=>{\n callbackRef.current = callback;\n });\n // https://github.com/facebook/react/issues/19240\n return React__default.useMemo(()=>(...args)=>callbackRef.current == null ? void 0 : callbackRef.current.call(callbackRef, ...args), []);\n}\nfunction useUncontrolledState({ defaultProp, onChange }) {\n const uncontrolledState = React__default.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React__default.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React__default.useEffect(()=>{\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [\n value,\n prevValueRef,\n handleChange\n ]);\n return uncontrolledState;\n}\nfunction useControllableState({ prop, defaultProp, onChange = ()=>{} }) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== undefined;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React__default.useCallback((nextValue)=>{\n if (isControlled) {\n const setter = nextValue;\n const value = typeof nextValue === 'function' ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value);\n } else {\n setUncontrolledProp(nextValue);\n }\n }, [\n isControlled,\n prop,\n setUncontrolledProp,\n handleChange\n ]);\n return [\n value,\n setValue\n ];\n}\n\nfunction useSnapPoints({ activeSnapPointProp, setActiveSnapPointProp, snapPoints, drawerRef, overlayRef, fadeFromIndex, onSnapPointChange, direction = 'bottom', container, snapToSequentialPoint }) {\n const [activeSnapPoint, setActiveSnapPoint] = useControllableState({\n prop: activeSnapPointProp,\n defaultProp: snapPoints == null ? void 0 : snapPoints[0],\n onChange: setActiveSnapPointProp\n });\n const [windowDimensions, setWindowDimensions] = React__default.useState(typeof window !== 'undefined' ? {\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight\n } : undefined);\n React__default.useEffect(()=>{\n function onResize() {\n setWindowDimensions({\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight\n });\n }\n window.addEventListener('resize', onResize);\n return ()=>window.removeEventListener('resize', onResize);\n }, []);\n const isLastSnapPoint = React__default.useMemo(()=>activeSnapPoint === (snapPoints == null ? void 0 : snapPoints[snapPoints.length - 1]) || null, [\n snapPoints,\n activeSnapPoint\n ]);\n const activeSnapPointIndex = React__default.useMemo(()=>snapPoints == null ? void 0 : snapPoints.findIndex((snapPoint)=>snapPoint === activeSnapPoint), [\n snapPoints,\n activeSnapPoint\n ]);\n const shouldFade = snapPoints && snapPoints.length > 0 && (fadeFromIndex || fadeFromIndex === 0) && !Number.isNaN(fadeFromIndex) && snapPoints[fadeFromIndex] === activeSnapPoint || !snapPoints;\n const snapPointsOffset = React__default.useMemo(()=>{\n const containerSize = container ? {\n width: container.getBoundingClientRect().width,\n height: container.getBoundingClientRect().height\n } : typeof window !== 'undefined' ? {\n width: window.innerWidth,\n height: window.innerHeight\n } : {\n width: 0,\n height: 0\n };\n var _snapPoints_map;\n return (_snapPoints_map = snapPoints == null ? void 0 : snapPoints.map((snapPoint)=>{\n const isPx = typeof snapPoint === 'string';\n let snapPointAsNumber = 0;\n if (isPx) {\n snapPointAsNumber = parseInt(snapPoint, 10);\n }\n if (isVertical(direction)) {\n const height = isPx ? snapPointAsNumber : windowDimensions ? snapPoint * containerSize.height : 0;\n if (windowDimensions) {\n return direction === 'bottom' ? containerSize.height - height : -containerSize.height + height;\n }\n return height;\n }\n const width = isPx ? snapPointAsNumber : windowDimensions ? snapPoint * containerSize.width : 0;\n if (windowDimensions) {\n return direction === 'right' ? containerSize.width - width : -containerSize.width + width;\n }\n return width;\n })) != null ? _snapPoints_map : [];\n }, [\n snapPoints,\n windowDimensions,\n container\n ]);\n const activeSnapPointOffset = React__default.useMemo(()=>activeSnapPointIndex !== null ? snapPointsOffset == null ? void 0 : snapPointsOffset[activeSnapPointIndex] : null, [\n snapPointsOffset,\n activeSnapPointIndex\n ]);\n const snapToPoint = React__default.useCallback((dimension)=>{\n var _snapPointsOffset_findIndex;\n const newSnapPointIndex = (_snapPointsOffset_findIndex = snapPointsOffset == null ? void 0 : snapPointsOffset.findIndex((snapPointDim)=>snapPointDim === dimension)) != null ? _snapPointsOffset_findIndex : null;\n onSnapPointChange(newSnapPointIndex);\n set(drawerRef.current, {\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n transform: isVertical(direction) ? `translate3d(0, ${dimension}px, 0)` : `translate3d(${dimension}px, 0, 0)`\n });\n if (snapPointsOffset && newSnapPointIndex !== snapPointsOffset.length - 1 && newSnapPointIndex !== fadeFromIndex && newSnapPointIndex < fadeFromIndex) {\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n opacity: '0'\n });\n } else {\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n opacity: '1'\n });\n }\n setActiveSnapPoint(snapPoints == null ? void 0 : snapPoints[Math.max(newSnapPointIndex, 0)]);\n }, [\n drawerRef.current,\n snapPoints,\n snapPointsOffset,\n fadeFromIndex,\n overlayRef,\n setActiveSnapPoint\n ]);\n React__default.useEffect(()=>{\n if (activeSnapPoint || activeSnapPointProp) {\n var _snapPoints_findIndex;\n const newIndex = (_snapPoints_findIndex = snapPoints == null ? void 0 : snapPoints.findIndex((snapPoint)=>snapPoint === activeSnapPointProp || snapPoint === activeSnapPoint)) != null ? _snapPoints_findIndex : -1;\n if (snapPointsOffset && newIndex !== -1 && typeof snapPointsOffset[newIndex] === 'number') {\n snapToPoint(snapPointsOffset[newIndex]);\n }\n }\n }, [\n activeSnapPoint,\n activeSnapPointProp,\n snapPoints,\n snapPointsOffset,\n snapToPoint\n ]);\n function onRelease({ draggedDistance, closeDrawer, velocity, dismissible }) {\n if (fadeFromIndex === undefined) return;\n const currentPosition = direction === 'bottom' || direction === 'right' ? (activeSnapPointOffset != null ? activeSnapPointOffset : 0) - draggedDistance : (activeSnapPointOffset != null ? activeSnapPointOffset : 0) + draggedDistance;\n const isOverlaySnapPoint = activeSnapPointIndex === fadeFromIndex - 1;\n const isFirst = activeSnapPointIndex === 0;\n const hasDraggedUp = draggedDistance > 0;\n if (isOverlaySnapPoint) {\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n });\n }\n if (!snapToSequentialPoint && velocity > 2 && !hasDraggedUp) {\n if (dismissible) closeDrawer();\n else snapToPoint(snapPointsOffset[0]); // snap to initial point\n return;\n }\n if (!snapToSequentialPoint && velocity > 2 && hasDraggedUp && snapPointsOffset && snapPoints) {\n snapToPoint(snapPointsOffset[snapPoints.length - 1]);\n return;\n }\n // Find the closest snap point to the current position\n const closestSnapPoint = snapPointsOffset == null ? void 0 : snapPointsOffset.reduce((prev, curr)=>{\n if (typeof prev !== 'number' || typeof curr !== 'number') return prev;\n return Math.abs(curr - currentPosition) < Math.abs(prev - currentPosition) ? curr : prev;\n });\n const dim = isVertical(direction) ? window.innerHeight : window.innerWidth;\n if (velocity > VELOCITY_THRESHOLD && Math.abs(draggedDistance) < dim * 0.4) {\n const dragDirection = hasDraggedUp ? 1 : -1; // 1 = up, -1 = down\n // Don't do anything if we swipe upwards while being on the last snap point\n if (dragDirection > 0 && isLastSnapPoint) {\n snapToPoint(snapPointsOffset[snapPoints.length - 1]);\n return;\n }\n if (isFirst && dragDirection < 0 && dismissible) {\n closeDrawer();\n }\n if (activeSnapPointIndex === null) return;\n snapToPoint(snapPointsOffset[activeSnapPointIndex + dragDirection]);\n return;\n }\n snapToPoint(closestSnapPoint);\n }\n function onDrag({ draggedDistance }) {\n if (activeSnapPointOffset === null) return;\n const newValue = direction === 'bottom' || direction === 'right' ? activeSnapPointOffset - draggedDistance : activeSnapPointOffset + draggedDistance;\n // Don't do anything if we exceed the last(biggest) snap point\n if ((direction === 'bottom' || direction === 'right') && newValue < snapPointsOffset[snapPointsOffset.length - 1]) {\n return;\n }\n if ((direction === 'top' || direction === 'left') && newValue > snapPointsOffset[snapPointsOffset.length - 1]) {\n return;\n }\n set(drawerRef.current, {\n transform: isVertical(direction) ? `translate3d(0, ${newValue}px, 0)` : `translate3d(${newValue}px, 0, 0)`\n });\n }\n function getPercentageDragged(absDraggedDistance, isDraggingDown) {\n if (!snapPoints || typeof activeSnapPointIndex !== 'number' || !snapPointsOffset || fadeFromIndex === undefined) return null;\n // If this is true we are dragging to a snap point that is supposed to have an overlay\n const isOverlaySnapPoint = activeSnapPointIndex === fadeFromIndex - 1;\n const isOverlaySnapPointOrHigher = activeSnapPointIndex >= fadeFromIndex;\n if (isOverlaySnapPointOrHigher && isDraggingDown) {\n return 0;\n }\n // Don't animate, but still use this one if we are dragging away from the overlaySnapPoint\n if (isOverlaySnapPoint && !isDraggingDown) return 1;\n if (!shouldFade && !isOverlaySnapPoint) return null;\n // Either fadeFrom index or the one before\n const targetSnapPointIndex = isOverlaySnapPoint ? activeSnapPointIndex + 1 : activeSnapPointIndex - 1;\n // Get the distance from overlaySnapPoint to the one before or vice-versa to calculate the opacity percentage accordingly\n const snapPointDistance = isOverlaySnapPoint ? snapPointsOffset[targetSnapPointIndex] - snapPointsOffset[targetSnapPointIndex - 1] : snapPointsOffset[targetSnapPointIndex + 1] - snapPointsOffset[targetSnapPointIndex];\n const percentageDragged = absDraggedDistance / Math.abs(snapPointDistance);\n if (isOverlaySnapPoint) {\n return 1 - percentageDragged;\n } else {\n return percentageDragged;\n }\n }\n return {\n isLastSnapPoint,\n activeSnapPoint,\n shouldFade,\n getPercentageDragged,\n setActiveSnapPoint,\n activeSnapPointIndex,\n onRelease,\n onDrag,\n snapPointsOffset\n };\n}\n\nconst noop = ()=>()=>{};\nfunction useScaleBackground() {\n const { direction, isOpen, shouldScaleBackground, setBackgroundColorOnScale, noBodyStyles } = useDrawerContext();\n const timeoutIdRef = React__default.useRef(null);\n const initialBackgroundColor = useMemo(()=>document.body.style.backgroundColor, []);\n function getScale() {\n return (window.innerWidth - WINDOW_TOP_OFFSET) / window.innerWidth;\n }\n React__default.useEffect(()=>{\n if (isOpen && shouldScaleBackground) {\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n const wrapper = document.querySelector('[data-vaul-drawer-wrapper]') || document.querySelector('[vaul-drawer-wrapper]');\n if (!wrapper) return;\n chain(setBackgroundColorOnScale && !noBodyStyles ? assignStyle(document.body, {\n background: 'black'\n }) : noop, assignStyle(wrapper, {\n transformOrigin: isVertical(direction) ? 'top' : 'left',\n transitionProperty: 'transform, border-radius',\n transitionDuration: `${TRANSITIONS.DURATION}s`,\n transitionTimingFunction: `cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n }));\n const wrapperStylesCleanup = assignStyle(wrapper, {\n borderRadius: `${BORDER_RADIUS}px`,\n overflow: 'hidden',\n ...isVertical(direction) ? {\n transform: `scale(${getScale()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`\n } : {\n transform: `scale(${getScale()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`\n }\n });\n return ()=>{\n wrapperStylesCleanup();\n timeoutIdRef.current = window.setTimeout(()=>{\n if (initialBackgroundColor) {\n document.body.style.background = initialBackgroundColor;\n } else {\n document.body.style.removeProperty('background');\n }\n }, TRANSITIONS.DURATION * 1000);\n };\n }\n }, [\n isOpen,\n shouldScaleBackground,\n initialBackgroundColor\n ]);\n}\n\nlet previousBodyPosition = null;\n/**\n * This hook is necessary to prevent buggy behavior on iOS devices (need to test on Android).\n * I won't get into too much detail about what bugs it solves, but so far I've found that setting the body to `position: fixed` is the most reliable way to prevent those bugs.\n * Issues that this hook solves:\n * https://github.com/emilkowalski/vaul/issues/435\n * https://github.com/emilkowalski/vaul/issues/433\n * And more that I discovered, but were just not reported.\n */ function usePositionFixed({ isOpen, modal, nested, hasBeenOpened, preventScrollRestoration, noBodyStyles }) {\n const [activeUrl, setActiveUrl] = React__default.useState(()=>typeof window !== 'undefined' ? window.location.href : '');\n const scrollPos = React__default.useRef(0);\n const setPositionFixed = React__default.useCallback(()=>{\n // All browsers on iOS will return true here.\n if (!isSafari()) return;\n // If previousBodyPosition is already set, don't set it again.\n if (previousBodyPosition === null && isOpen && !noBodyStyles) {\n previousBodyPosition = {\n position: document.body.style.position,\n top: document.body.style.top,\n left: document.body.style.left,\n height: document.body.style.height,\n right: 'unset'\n };\n // Update the dom inside an animation frame\n const { scrollX, innerHeight } = window;\n document.body.style.setProperty('position', 'fixed', 'important');\n Object.assign(document.body.style, {\n top: `${-scrollPos.current}px`,\n left: `${-scrollX}px`,\n right: '0px',\n height: 'auto'\n });\n window.setTimeout(()=>window.requestAnimationFrame(()=>{\n // Attempt to check if the bottom bar appeared due to the position change\n const bottomBarHeight = innerHeight - window.innerHeight;\n if (bottomBarHeight && scrollPos.current >= innerHeight) {\n // Move the content further up so that the bottom bar doesn't hide it\n document.body.style.top = `${-(scrollPos.current + bottomBarHeight)}px`;\n }\n }), 300);\n }\n }, [\n isOpen\n ]);\n const restorePositionSetting = React__default.useCallback(()=>{\n // All browsers on iOS will return true here.\n if (!isSafari()) return;\n if (previousBodyPosition !== null && !noBodyStyles) {\n // Convert the position from \"px\" to Int\n const y = -parseInt(document.body.style.top, 10);\n const x = -parseInt(document.body.style.left, 10);\n // Restore styles\n Object.assign(document.body.style, previousBodyPosition);\n window.requestAnimationFrame(()=>{\n if (preventScrollRestoration && activeUrl !== window.location.href) {\n setActiveUrl(window.location.href);\n return;\n }\n window.scrollTo(x, y);\n });\n previousBodyPosition = null;\n }\n }, [\n activeUrl\n ]);\n React__default.useEffect(()=>{\n function onScroll() {\n scrollPos.current = window.scrollY;\n }\n onScroll();\n window.addEventListener('scroll', onScroll);\n return ()=>{\n window.removeEventListener('scroll', onScroll);\n };\n }, []);\n React__default.useEffect(()=>{\n if (nested || !hasBeenOpened) return;\n // This is needed to force Safari toolbar to show **before** the drawer starts animating to prevent a gnarly shift from happening\n if (isOpen) {\n // avoid for standalone mode (PWA)\n const isStandalone = window.matchMedia('(display-mode: standalone)').matches;\n !isStandalone && setPositionFixed();\n if (!modal) {\n window.setTimeout(()=>{\n restorePositionSetting();\n }, 500);\n }\n } else {\n restorePositionSetting();\n }\n }, [\n isOpen,\n hasBeenOpened,\n activeUrl,\n modal,\n nested,\n setPositionFixed,\n restorePositionSetting\n ]);\n return {\n restorePositionSetting\n };\n}\n\nfunction Root({ open: openProp, onOpenChange, children, onDrag: onDragProp, onRelease: onReleaseProp, snapPoints, shouldScaleBackground = false, setBackgroundColorOnScale = true, closeThreshold = CLOSE_THRESHOLD, scrollLockTimeout = SCROLL_LOCK_TIMEOUT, dismissible = true, handleOnly = false, fadeFromIndex = snapPoints && snapPoints.length - 1, activeSnapPoint: activeSnapPointProp, setActiveSnapPoint: setActiveSnapPointProp, fixed, modal = true, onClose, nested, noBodyStyles, direction = 'bottom', defaultOpen = false, disablePreventScroll = true, snapToSequentialPoint = false, preventScrollRestoration = false, repositionInputs = true, onAnimationEnd, container, autoFocus = false }) {\n var _drawerRef_current, _drawerRef_current1;\n const [isOpen = false, setIsOpen] = useControllableState({\n defaultProp: defaultOpen,\n prop: openProp,\n onChange: (o)=>{\n onOpenChange == null ? void 0 : onOpenChange(o);\n if (!o && !nested) {\n restorePositionSetting();\n }\n setTimeout(()=>{\n onAnimationEnd == null ? void 0 : onAnimationEnd(o);\n }, TRANSITIONS.DURATION * 1000);\n if (o && !modal) {\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(()=>{\n document.body.style.pointerEvents = 'auto';\n });\n }\n }\n if (!o) {\n // This will be removed when the exit animation ends (`500ms`)\n document.body.style.pointerEvents = 'auto';\n }\n }\n });\n const [hasBeenOpened, setHasBeenOpened] = React__default.useState(false);\n const [isDragging, setIsDragging] = React__default.useState(false);\n const [justReleased, setJustReleased] = React__default.useState(false);\n const overlayRef = React__default.useRef(null);\n const openTime = React__default.useRef(null);\n const dragStartTime = React__default.useRef(null);\n const dragEndTime = React__default.useRef(null);\n const lastTimeDragPrevented = React__default.useRef(null);\n const isAllowedToDrag = React__default.useRef(false);\n const nestedOpenChangeTimer = React__default.useRef(null);\n const pointerStart = React__default.useRef(0);\n const keyboardIsOpen = React__default.useRef(false);\n const previousDiffFromInitial = React__default.useRef(0);\n const drawerRef = React__default.useRef(null);\n const drawerHeightRef = React__default.useRef(((_drawerRef_current = drawerRef.current) == null ? void 0 : _drawerRef_current.getBoundingClientRect().height) || 0);\n const drawerWidthRef = React__default.useRef(((_drawerRef_current1 = drawerRef.current) == null ? void 0 : _drawerRef_current1.getBoundingClientRect().width) || 0);\n const initialDrawerHeight = React__default.useRef(0);\n const onSnapPointChange = React__default.useCallback((activeSnapPointIndex)=>{\n // Change openTime ref when we reach the last snap point to prevent dragging for 500ms incase it's scrollable.\n if (snapPoints && activeSnapPointIndex === snapPointsOffset.length - 1) openTime.current = new Date();\n }, []);\n const { activeSnapPoint, activeSnapPointIndex, setActiveSnapPoint, onRelease: onReleaseSnapPoints, snapPointsOffset, onDrag: onDragSnapPoints, shouldFade, getPercentageDragged: getSnapPointsPercentageDragged } = useSnapPoints({\n snapPoints,\n activeSnapPointProp,\n setActiveSnapPointProp,\n drawerRef,\n fadeFromIndex,\n overlayRef,\n onSnapPointChange,\n direction,\n container,\n snapToSequentialPoint\n });\n usePreventScroll({\n isDisabled: !isOpen || isDragging || !modal || justReleased || !hasBeenOpened || !repositionInputs || !disablePreventScroll\n });\n const { restorePositionSetting } = usePositionFixed({\n isOpen,\n modal,\n nested,\n hasBeenOpened,\n preventScrollRestoration,\n noBodyStyles\n });\n function getScale() {\n return (window.innerWidth - WINDOW_TOP_OFFSET) / window.innerWidth;\n }\n function onPress(event) {\n var _drawerRef_current, _drawerRef_current1;\n if (!dismissible && !snapPoints) return;\n if (drawerRef.current && !drawerRef.current.contains(event.target)) return;\n drawerHeightRef.current = ((_drawerRef_current = drawerRef.current) == null ? void 0 : _drawerRef_current.getBoundingClientRect().height) || 0;\n drawerWidthRef.current = ((_drawerRef_current1 = drawerRef.current) == null ? void 0 : _drawerRef_current1.getBoundingClientRect().width) || 0;\n setIsDragging(true);\n dragStartTime.current = new Date();\n // iOS doesn't trigger mouseUp after scrolling so we need to listen to touched in order to disallow dragging\n if (isIOS()) {\n window.addEventListener('touchend', ()=>isAllowedToDrag.current = false, {\n once: true\n });\n }\n // Ensure we maintain correct pointer capture even when going outside of the drawer\n event.target.setPointerCapture(event.pointerId);\n pointerStart.current = isVertical(direction) ? event.pageY : event.pageX;\n }\n function shouldDrag(el, isDraggingInDirection) {\n var _window_getSelection, _lastTimeDragPrevented_current;\n let element = el;\n const highlightedText = (_window_getSelection = window.getSelection()) == null ? void 0 : _window_getSelection.toString();\n const swipeAmount = drawerRef.current ? getTranslate(drawerRef.current, direction) : null;\n const date = new Date();\n if (element.hasAttribute('data-vaul-no-drag') || element.closest('[data-vaul-no-drag]')) {\n return false;\n }\n if (direction === 'right' || direction === 'left') {\n return true;\n }\n // Allow scrolling when animating\n if (openTime.current && date.getTime() - openTime.current.getTime() < 500) {\n return false;\n }\n if (swipeAmount !== null) {\n if (direction === 'bottom' ? swipeAmount > 0 : swipeAmount < 0) {\n return true;\n }\n }\n // Don't drag if there's highlighted text\n if (highlightedText && highlightedText.length > 0) {\n return false;\n }\n // Disallow dragging if drawer was scrolled within `scrollLockTimeout`\n if (date.getTime() - ((_lastTimeDragPrevented_current = lastTimeDragPrevented.current) == null ? void 0 : _lastTimeDragPrevented_current.getTime()) < scrollLockTimeout && swipeAmount === 0) {\n lastTimeDragPrevented.current = date;\n return false;\n }\n if (isDraggingInDirection) {\n lastTimeDragPrevented.current = date;\n // We are dragging down so we should allow scrolling\n return false;\n }\n // Keep climbing up the DOM tree as long as there's a parent\n while(element){\n // Check if the element is scrollable\n if (element.scrollHeight > element.clientHeight) {\n if (element.scrollTop !== 0) {\n lastTimeDragPrevented.current = new Date();\n // The element is scrollable and not scrolled to the top, so don't drag\n return false;\n }\n if (element.getAttribute('role') === 'dialog') {\n return true;\n }\n }\n // Move up to the parent element\n element = element.parentNode;\n }\n // No scrollable parents not scrolled to the top found, so drag\n return true;\n }\n function onDrag(event) {\n if (!drawerRef.current) {\n return;\n }\n // We need to know how much of the drawer has been dragged in percentages so that we can transform background accordingly\n if (isDragging) {\n const directionMultiplier = direction === 'bottom' || direction === 'right' ? 1 : -1;\n const draggedDistance = (pointerStart.current - (isVertical(direction) ? event.pageY : event.pageX)) * directionMultiplier;\n const isDraggingInDirection = draggedDistance > 0;\n // Pre condition for disallowing dragging in the close direction.\n const noCloseSnapPointsPreCondition = snapPoints && !dismissible && !isDraggingInDirection;\n // Disallow dragging down to close when first snap point is the active one and dismissible prop is set to false.\n if (noCloseSnapPointsPreCondition && activeSnapPointIndex === 0) return;\n // We need to capture last time when drag with scroll was triggered and have a timeout between\n const absDraggedDistance = Math.abs(draggedDistance);\n const wrapper = document.querySelector('[data-vaul-drawer-wrapper]');\n const drawerDimension = direction === 'bottom' || direction === 'top' ? drawerHeightRef.current : drawerWidthRef.current;\n // Calculate the percentage dragged, where 1 is the closed position\n let percentageDragged = absDraggedDistance / drawerDimension;\n const snapPointPercentageDragged = getSnapPointsPercentageDragged(absDraggedDistance, isDraggingInDirection);\n if (snapPointPercentageDragged !== null) {\n percentageDragged = snapPointPercentageDragged;\n }\n // Disallow close dragging beyond the smallest snap point.\n if (noCloseSnapPointsPreCondition && percentageDragged >= 1) {\n return;\n }\n if (!isAllowedToDrag.current && !shouldDrag(event.target, isDraggingInDirection)) return;\n drawerRef.current.classList.add(DRAG_CLASS);\n // If shouldDrag gave true once after pressing down on the drawer, we set isAllowedToDrag to true and it will remain true until we let go, there's no reason to disable dragging mid way, ever, and that's the solution to it\n isAllowedToDrag.current = true;\n set(drawerRef.current, {\n transition: 'none'\n });\n set(overlayRef.current, {\n transition: 'none'\n });\n if (snapPoints) {\n onDragSnapPoints({\n draggedDistance\n });\n }\n // Run this only if snapPoints are not defined or if we are at the last snap point (highest one)\n if (isDraggingInDirection && !snapPoints) {\n const dampenedDraggedDistance = dampenValue(draggedDistance);\n const translateValue = Math.min(dampenedDraggedDistance * -1, 0) * directionMultiplier;\n set(drawerRef.current, {\n transform: isVertical(direction) ? `translate3d(0, ${translateValue}px, 0)` : `translate3d(${translateValue}px, 0, 0)`\n });\n return;\n }\n const opacityValue = 1 - percentageDragged;\n if (shouldFade || fadeFromIndex && activeSnapPointIndex === fadeFromIndex - 1) {\n onDragProp == null ? void 0 : onDragProp(event, percentageDragged);\n set(overlayRef.current, {\n opacity: `${opacityValue}`,\n transition: 'none'\n }, true);\n }\n if (wrapper && overlayRef.current && shouldScaleBackground) {\n // Calculate percentageDragged as a fraction (0 to 1)\n const scaleValue = Math.min(getScale() + percentageDragged * (1 - getScale()), 1);\n const borderRadiusValue = 8 - percentageDragged * 8;\n const translateValue = Math.max(0, 14 - percentageDragged * 14);\n set(wrapper, {\n borderRadius: `${borderRadiusValue}px`,\n transform: isVertical(direction) ? `scale(${scaleValue}) translate3d(0, ${translateValue}px, 0)` : `scale(${scaleValue}) translate3d(${translateValue}px, 0, 0)`,\n transition: 'none'\n }, true);\n }\n if (!snapPoints) {\n const translateValue = absDraggedDistance * directionMultiplier;\n set(drawerRef.current, {\n transform: isVertical(direction) ? `translate3d(0, ${translateValue}px, 0)` : `translate3d(${translateValue}px, 0, 0)`\n });\n }\n }\n }\n React__default.useEffect(()=>{\n var _window_visualViewport;\n function onVisualViewportChange() {\n if (!drawerRef.current || !repositionInputs) return;\n const focusedElement = document.activeElement;\n if (isInput(focusedElement) || keyboardIsOpen.current) {\n var _window_visualViewport;\n const visualViewportHeight = ((_window_visualViewport = window.visualViewport) == null ? void 0 : _window_visualViewport.height) || 0;\n const totalHeight = window.innerHeight;\n // This is the height of the keyboard\n let diffFromInitial = totalHeight - visualViewportHeight;\n const drawerHeight = drawerRef.current.getBoundingClientRect().height || 0;\n // Adjust drawer height only if it's tall enough\n const isTallEnough = drawerHeight > totalHeight * 0.8;\n if (!initialDrawerHeight.current) {\n initialDrawerHeight.current = drawerHeight;\n }\n const offsetFromTop = drawerRef.current.getBoundingClientRect().top;\n // visualViewport height may change due to somq e subtle changes to the keyboard. Checking if the height changed by 60 or more will make sure that they keyboard really changed its open state.\n if (Math.abs(previousDiffFromInitial.current - diffFromInitial) > 60) {\n keyboardIsOpen.current = !keyboardIsOpen.current;\n }\n if (snapPoints && snapPoints.length > 0 && snapPointsOffset && activeSnapPointIndex) {\n const activeSnapPointHeight = snapPointsOffset[activeSnapPointIndex] || 0;\n diffFromInitial += activeSnapPointHeight;\n }\n previousDiffFromInitial.current = diffFromInitial;\n // We don't have to change the height if the input is in view, when we are here we are in the opened keyboard state so we can correctly check if the input is in view\n if (drawerHeight > visualViewportHeight || keyboardIsOpen.current) {\n const height = drawerRef.current.getBoundingClientRect().height;\n let newDrawerHeight = height;\n if (height > visualViewportHeight) {\n newDrawerHeight = visualViewportHeight - (isTallEnough ? offsetFromTop : WINDOW_TOP_OFFSET);\n }\n // When fixed, don't move the drawer upwards if there's space, but rather only change it's height so it's fully scrollable when the keyboard is open\n if (fixed) {\n drawerRef.current.style.height = `${height - Math.max(diffFromInitial, 0)}px`;\n } else {\n drawerRef.current.style.height = `${Math.max(newDrawerHeight, visualViewportHeight - offsetFromTop)}px`;\n }\n } else {\n drawerRef.current.style.height = `${initialDrawerHeight.current}px`;\n }\n if (snapPoints && snapPoints.length > 0 && !keyboardIsOpen.current) {\n drawerRef.current.style.bottom = `0px`;\n } else {\n // Negative bottom value would never make sense\n drawerRef.current.style.bottom = `${Math.max(diffFromInitial, 0)}px`;\n }\n }\n }\n (_window_visualViewport = window.visualViewport) == null ? void 0 : _window_visualViewport.addEventListener('resize', onVisualViewportChange);\n return ()=>{\n var _window_visualViewport;\n return (_window_visualViewport = window.visualViewport) == null ? void 0 : _window_visualViewport.removeEventListener('resize', onVisualViewportChange);\n };\n }, [\n activeSnapPointIndex,\n snapPoints,\n snapPointsOffset\n ]);\n function closeDrawer(fromWithin) {\n cancelDrag();\n onClose == null ? void 0 : onClose();\n if (!fromWithin) {\n setIsOpen(false);\n }\n setTimeout(()=>{\n if (snapPoints) {\n setActiveSnapPoint(snapPoints[0]);\n }\n }, TRANSITIONS.DURATION * 1000); // seconds to ms\n }\n function resetDrawer() {\n if (!drawerRef.current) return;\n const wrapper = document.querySelector('[data-vaul-drawer-wrapper]');\n const currentSwipeAmount = getTranslate(drawerRef.current, direction);\n set(drawerRef.current, {\n transform: 'translate3d(0, 0, 0)',\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n });\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n opacity: '1'\n });\n // Don't reset background if swiped upwards\n if (shouldScaleBackground && currentSwipeAmount && currentSwipeAmount > 0 && isOpen) {\n set(wrapper, {\n borderRadius: `${BORDER_RADIUS}px`,\n overflow: 'hidden',\n ...isVertical(direction) ? {\n transform: `scale(${getScale()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,\n transformOrigin: 'top'\n } : {\n transform: `scale(${getScale()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,\n transformOrigin: 'left'\n },\n transitionProperty: 'transform, border-radius',\n transitionDuration: `${TRANSITIONS.DURATION}s`,\n transitionTimingFunction: `cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n }, true);\n }\n }\n function cancelDrag() {\n if (!isDragging || !drawerRef.current) return;\n drawerRef.current.classList.remove(DRAG_CLASS);\n isAllowedToDrag.current = false;\n setIsDragging(false);\n dragEndTime.current = new Date();\n }\n function onRelease(event) {\n if (!isDragging || !drawerRef.current) return;\n drawerRef.current.classList.remove(DRAG_CLASS);\n isAllowedToDrag.current = false;\n setIsDragging(false);\n dragEndTime.current = new Date();\n const swipeAmount = getTranslate(drawerRef.current, direction);\n if (!shouldDrag(event.target, false) || !swipeAmount || Number.isNaN(swipeAmount)) return;\n if (dragStartTime.current === null) return;\n const timeTaken = dragEndTime.current.getTime() - dragStartTime.current.getTime();\n const distMoved = pointerStart.current - (isVertical(direction) ? event.pageY : event.pageX);\n const velocity = Math.abs(distMoved) / timeTaken;\n if (velocity > 0.05) {\n // `justReleased` is needed to prevent the drawer from focusing on an input when the drag ends, as it's not the intent most of the time.\n setJustReleased(true);\n setTimeout(()=>{\n setJustReleased(false);\n }, 200);\n }\n if (snapPoints) {\n const directionMultiplier = direction === 'bottom' || direction === 'right' ? 1 : -1;\n onReleaseSnapPoints({\n draggedDistance: distMoved * directionMultiplier,\n closeDrawer,\n velocity,\n dismissible\n });\n onReleaseProp == null ? void 0 : onReleaseProp(event, true);\n return;\n }\n // Moved upwards, don't do anything\n if (direction === 'bottom' || direction === 'right' ? distMoved > 0 : distMoved < 0) {\n resetDrawer();\n onReleaseProp == null ? void 0 : onReleaseProp(event, true);\n return;\n }\n if (velocity > VELOCITY_THRESHOLD) {\n closeDrawer();\n onReleaseProp == null ? void 0 : onReleaseProp(event, false);\n return;\n }\n var _drawerRef_current_getBoundingClientRect_height;\n const visibleDrawerHeight = Math.min((_drawerRef_current_getBoundingClientRect_height = drawerRef.current.getBoundingClientRect().height) != null ? _drawerRef_current_getBoundingClientRect_height : 0, window.innerHeight);\n var _drawerRef_current_getBoundingClientRect_width;\n const visibleDrawerWidth = Math.min((_drawerRef_current_getBoundingClientRect_width = drawerRef.current.getBoundingClientRect().width) != null ? _drawerRef_current_getBoundingClientRect_width : 0, window.innerWidth);\n const isHorizontalSwipe = direction === 'left' || direction === 'right';\n if (Math.abs(swipeAmount) >= (isHorizontalSwipe ? visibleDrawerWidth : visibleDrawerHeight) * closeThreshold) {\n closeDrawer();\n onReleaseProp == null ? void 0 : onReleaseProp(event, false);\n return;\n }\n onReleaseProp == null ? void 0 : onReleaseProp(event, true);\n resetDrawer();\n }\n React__default.useEffect(()=>{\n // Trigger enter animation without using CSS animation\n if (isOpen) {\n set(document.documentElement, {\n scrollBehavior: 'auto'\n });\n openTime.current = new Date();\n }\n return ()=>{\n reset(document.documentElement, 'scrollBehavior');\n };\n }, [\n isOpen\n ]);\n function onNestedOpenChange(o) {\n const scale = o ? (window.innerWidth - NESTED_DISPLACEMENT) / window.innerWidth : 1;\n const y = o ? -NESTED_DISPLACEMENT : 0;\n if (nestedOpenChangeTimer.current) {\n window.clearTimeout(nestedOpenChangeTimer.current);\n }\n set(drawerRef.current, {\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n transform: `scale(${scale}) translate3d(0, ${y}px, 0)`\n });\n if (!o && drawerRef.current) {\n nestedOpenChangeTimer.current = setTimeout(()=>{\n const translateValue = getTranslate(drawerRef.current, direction);\n set(drawerRef.current, {\n transition: 'none',\n transform: isVertical(direction) ? `translate3d(0, ${translateValue}px, 0)` : `translate3d(${translateValue}px, 0, 0)`\n });\n }, 500);\n }\n }\n function onNestedDrag(_event, percentageDragged) {\n if (percentageDragged < 0) return;\n const initialScale = (window.innerWidth - NESTED_DISPLACEMENT) / window.innerWidth;\n const newScale = initialScale + percentageDragged * (1 - initialScale);\n const newTranslate = -NESTED_DISPLACEMENT + percentageDragged * NESTED_DISPLACEMENT;\n set(drawerRef.current, {\n transform: isVertical(direction) ? `scale(${newScale}) translate3d(0, ${newTranslate}px, 0)` : `scale(${newScale}) translate3d(${newTranslate}px, 0, 0)`,\n transition: 'none'\n });\n }\n function onNestedRelease(_event, o) {\n const dim = isVertical(direction) ? window.innerHeight : window.innerWidth;\n const scale = o ? (dim - NESTED_DISPLACEMENT) / dim : 1;\n const translate = o ? -NESTED_DISPLACEMENT : 0;\n if (o) {\n set(drawerRef.current, {\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n transform: isVertical(direction) ? `scale(${scale}) translate3d(0, ${translate}px, 0)` : `scale(${scale}) translate3d(${translate}px, 0, 0)`\n });\n }\n }\n return /*#__PURE__*/ React__default.createElement(DialogPrimitive.Root, {\n defaultOpen: defaultOpen,\n onOpenChange: (open)=>{\n if (!dismissible && !open) return;\n if (open) {\n setHasBeenOpened(true);\n } else {\n closeDrawer(true);\n }\n setIsOpen(open);\n },\n open: isOpen\n }, /*#__PURE__*/ React__default.createElement(DrawerContext.Provider, {\n value: {\n activeSnapPoint,\n snapPoints,\n setActiveSnapPoint,\n drawerRef,\n overlayRef,\n onOpenChange,\n onPress,\n onRelease,\n onDrag,\n dismissible,\n handleOnly,\n isOpen,\n isDragging,\n shouldFade,\n closeDrawer,\n onNestedDrag,\n onNestedOpenChange,\n onNestedRelease,\n keyboardIsOpen,\n modal,\n snapPointsOffset,\n direction,\n shouldScaleBackground,\n setBackgroundColorOnScale,\n noBodyStyles,\n container,\n autoFocus\n }\n }, children));\n}\nconst Overlay = /*#__PURE__*/ React__default.forwardRef(function({ ...rest }, ref) {\n const { overlayRef, snapPoints, onRelease, shouldFade, isOpen, modal } = useDrawerContext();\n const composedRef = useComposedRefs(ref, overlayRef);\n const hasSnapPoints = snapPoints && snapPoints.length > 0;\n // Overlay is the component that is locking scroll, removing it will unlock the scroll without having to dig into Radix's Dialog library\n if (!modal) {\n // Need to do this manually unfortunately\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(()=>{\n document.body.style.pointerEvents = 'auto';\n });\n }\n return null;\n }\n return /*#__PURE__*/ React__default.createElement(DialogPrimitive.Overlay, {\n onMouseUp: onRelease,\n ref: composedRef,\n \"data-vaul-overlay\": \"\",\n \"data-vaul-snap-points\": isOpen && hasSnapPoints ? 'true' : 'false',\n \"data-vaul-snap-points-overlay\": isOpen && shouldFade ? 'true' : 'false',\n ...rest\n });\n});\nOverlay.displayName = 'Drawer.Overlay';\nconst Content = /*#__PURE__*/ React__default.forwardRef(function({ onPointerDownOutside, style, onOpenAutoFocus, ...rest }, ref) {\n const { drawerRef, onPress, onRelease, onDrag, keyboardIsOpen, snapPointsOffset, modal, isOpen, direction, snapPoints, container, handleOnly, autoFocus } = useDrawerContext();\n // Needed to use transition instead of animations\n const [delayedSnapPoints, setDelayedSnapPoints] = React__default.useState(false);\n const composedRef = useComposedRefs(ref, drawerRef);\n const pointerStartRef = React__default.useRef(null);\n const lastKnownPointerEventRef = React__default.useRef(null);\n const wasBeyondThePointRef = React__default.useRef(false);\n const hasSnapPoints = snapPoints && snapPoints.length > 0;\n useScaleBackground();\n const isDeltaInDirection = (delta, direction, threshold = 0)=>{\n if (wasBeyondThePointRef.current) return true;\n const deltaY = Math.abs(delta.y);\n const deltaX = Math.abs(delta.x);\n const isDeltaX = deltaX > deltaY;\n const dFactor = [\n 'bottom',\n 'right'\n ].includes(direction) ? 1 : -1;\n if (direction === 'left' || direction === 'right') {\n const isReverseDirection = delta.x * dFactor < 0;\n if (!isReverseDirection && deltaX >= 0 && deltaX <= threshold) {\n return isDeltaX;\n }\n } else {\n const isReverseDirection = delta.y * dFactor < 0;\n if (!isReverseDirection && deltaY >= 0 && deltaY <= threshold) {\n return !isDeltaX;\n }\n }\n wasBeyondThePointRef.current = true;\n return true;\n };\n React__default.useEffect(()=>{\n if (hasSnapPoints) {\n window.requestAnimationFrame(()=>{\n setDelayedSnapPoints(true);\n });\n }\n }, []);\n function handleOnPointerUp(event) {\n pointerStartRef.current = null;\n wasBeyondThePointRef.current = false;\n onRelease(event);\n }\n return /*#__PURE__*/ React__default.createElement(DialogPrimitive.Content, {\n \"data-vaul-drawer-direction\": direction,\n \"data-vaul-drawer\": \"\",\n \"data-vaul-delayed-snap-points\": delayedSnapPoints ? 'true' : 'false',\n \"data-vaul-snap-points\": isOpen && hasSnapPoints ? 'true' : 'false',\n \"data-vaul-custom-container\": container ? 'true' : 'false',\n ...rest,\n ref: composedRef,\n style: snapPointsOffset && snapPointsOffset.length > 0 ? {\n '--snap-point-height': `${snapPointsOffset[0]}px`,\n ...style\n } : style,\n onPointerDown: (event)=>{\n if (handleOnly) return;\n rest.onPointerDown == null ? void 0 : rest.onPointerDown.call(rest, event);\n pointerStartRef.current = {\n x: event.pageX,\n y: event.pageY\n };\n onPress(event);\n },\n onOpenAutoFocus: (e)=>{\n onOpenAutoFocus == null ? void 0 : onOpenAutoFocus(e);\n if (!autoFocus) {\n e.preventDefault();\n }\n },\n onPointerDownOutside: (e)=>{\n onPointerDownOutside == null ? void 0 : onPointerDownOutside(e);\n if (!modal || e.defaultPrevented) {\n e.preventDefault();\n return;\n }\n if (keyboardIsOpen.current) {\n keyboardIsOpen.current = false;\n }\n },\n onFocusOutside: (e)=>{\n if (!modal) {\n e.preventDefault();\n return;\n }\n },\n onPointerMove: (event)=>{\n lastKnownPointerEventRef.current = event;\n if (handleOnly) return;\n rest.onPointerMove == null ? void 0 : rest.onPointerMove.call(rest, event);\n if (!pointerStartRef.current) return;\n const yPosition = event.pageY - pointerStartRef.current.y;\n const xPosition = event.pageX - pointerStartRef.current.x;\n const swipeStartThreshold = event.pointerType === 'touch' ? 10 : 2;\n const delta = {\n x: xPosition,\n y: yPosition\n };\n const isAllowedToSwipe = isDeltaInDirection(delta, direction, swipeStartThreshold);\n if (isAllowedToSwipe) onDrag(event);\n else if (Math.abs(xPosition) > swipeStartThreshold || Math.abs(yPosition) > swipeStartThreshold) {\n pointerStartRef.current = null;\n }\n },\n onPointerUp: (event)=>{\n rest.onPointerUp == null ? void 0 : rest.onPointerUp.call(rest, event);\n pointerStartRef.current = null;\n wasBeyondThePointRef.current = false;\n onRelease(event);\n },\n onPointerOut: (event)=>{\n rest.onPointerOut == null ? void 0 : rest.onPointerOut.call(rest, event);\n handleOnPointerUp(lastKnownPointerEventRef.current);\n },\n onContextMenu: (event)=>{\n rest.onContextMenu == null ? void 0 : rest.onContextMenu.call(rest, event);\n handleOnPointerUp(lastKnownPointerEventRef.current);\n }\n });\n});\nContent.displayName = 'Drawer.Content';\nconst LONG_HANDLE_PRESS_TIMEOUT = 250;\nconst DOUBLE_TAP_TIMEOUT = 120;\nconst Handle = /*#__PURE__*/ React__default.forwardRef(function({ preventCycle = false, children, ...rest }, ref) {\n const { closeDrawer, isDragging, snapPoints, activeSnapPoint, setActiveSnapPoint, dismissible, handleOnly, isOpen, onPress, onDrag } = useDrawerContext();\n const closeTimeoutIdRef = React__default.useRef(null);\n const shouldCancelInteractionRef = React__default.useRef(false);\n function handleStartCycle() {\n // Stop if this is the second click of a double click\n if (shouldCancelInteractionRef.current) {\n handleCancelInteraction();\n return;\n }\n window.setTimeout(()=>{\n handleCycleSnapPoints();\n }, DOUBLE_TAP_TIMEOUT);\n }\n function handleCycleSnapPoints() {\n // Prevent accidental taps while resizing drawer\n if (isDragging || preventCycle || shouldCancelInteractionRef.current) {\n handleCancelInteraction();\n return;\n }\n // Make sure to clear the timeout id if the user releases the handle before the cancel timeout\n handleCancelInteraction();\n if ((!snapPoints || snapPoints.length === 0) && dismissible) {\n closeDrawer();\n return;\n }\n const isLastSnapPoint = activeSnapPoint === snapPoints[snapPoints.length - 1];\n if (isLastSnapPoint && dismissible) {\n closeDrawer();\n return;\n }\n const currentSnapIndex = snapPoints.findIndex((point)=>point === activeSnapPoint);\n if (currentSnapIndex === -1) return; // activeSnapPoint not found in snapPoints\n const nextSnapPoint = snapPoints[currentSnapIndex + 1];\n setActiveSnapPoint(nextSnapPoint);\n }\n function handleStartInteraction() {\n closeTimeoutIdRef.current = window.setTimeout(()=>{\n // Cancel click interaction on a long press\n shouldCancelInteractionRef.current = true;\n }, LONG_HANDLE_PRESS_TIMEOUT);\n }\n function handleCancelInteraction() {\n window.clearTimeout(closeTimeoutIdRef.current);\n shouldCancelInteractionRef.current = false;\n }\n return /*#__PURE__*/ React__default.createElement(\"div\", {\n onClick: handleStartCycle,\n onPointerCancel: handleCancelInteraction,\n onPointerDown: (e)=>{\n if (handleOnly) onPress(e);\n handleStartInteraction();\n },\n onPointerMove: (e)=>{\n if (handleOnly) onDrag(e);\n },\n // onPointerUp is already handled by the content component\n ref: ref,\n \"data-vaul-drawer-visible\": isOpen ? 'true' : 'false',\n \"data-vaul-handle\": \"\",\n \"aria-hidden\": \"true\",\n ...rest\n }, /*#__PURE__*/ React__default.createElement(\"span\", {\n \"data-vaul-handle-hitarea\": \"\",\n \"aria-hidden\": \"true\"\n }, children));\n});\nHandle.displayName = 'Drawer.Handle';\nfunction NestedRoot({ onDrag, onOpenChange, ...rest }) {\n const { onNestedDrag, onNestedOpenChange, onNestedRelease } = useDrawerContext();\n if (!onNestedDrag) {\n throw new Error('Drawer.NestedRoot must be placed in another drawer');\n }\n return /*#__PURE__*/ React__default.createElement(Root, {\n nested: true,\n onClose: ()=>{\n onNestedOpenChange(false);\n },\n onDrag: (e, p)=>{\n onNestedDrag(e, p);\n onDrag == null ? void 0 : onDrag(e, p);\n },\n onOpenChange: (o)=>{\n if (o) {\n onNestedOpenChange(o);\n }\n },\n onRelease: onNestedRelease,\n ...rest\n });\n}\nfunction Portal(props) {\n const context = useDrawerContext();\n const { container = context.container, ...portalProps } = props;\n return /*#__PURE__*/ React__default.createElement(DialogPrimitive.Portal, {\n container: container,\n ...portalProps\n });\n}\nconst Drawer = {\n Root,\n NestedRoot,\n Content,\n Overlay,\n Trigger: DialogPrimitive.Trigger,\n Portal,\n Handle,\n Close: DialogPrimitive.Close,\n Title: DialogPrimitive.Title,\n Description: DialogPrimitive.Description\n};\n\nexport { Content, Drawer, Handle, NestedRoot, Overlay, Portal, Root };\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Drawer as DrawerPrimitive } from 'vaul';\nimport { cn } from './utils';\nvar Drawer = function (_a) {\n var _b = _a.shouldScaleBackground, shouldScaleBackground = _b === void 0 ? true : _b, props = __rest(_a, [\"shouldScaleBackground\"]);\n return (React.createElement(DrawerPrimitive.Root, __assign({ shouldScaleBackground: shouldScaleBackground }, props)));\n};\nDrawer.displayName = 'Drawer';\nvar DrawerTrigger = DrawerPrimitive.Trigger;\nvar DrawerPortal = DrawerPrimitive.Portal;\nvar DrawerClose = DrawerPrimitive.Close;\n// @ts-ignore\nvar DrawerOverlay = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(DrawerPrimitive.Overlay, __assign({ ref: ref, className: cn('fixed inset-0 z-50 bg-black/80', className) }, props)));\n});\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n// @ts-ignore\nvar DrawerContent = React.forwardRef(function (_a, ref) {\n var className = _a.className, children = _a.children, props = __rest(_a, [\"className\", \"children\"]);\n return (React.createElement(DrawerPortal, null,\n React.createElement(DrawerOverlay, null),\n React.createElement(DrawerPrimitive.Content, __assign({ ref: ref, className: cn('fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background', className) }, props),\n React.createElement(\"div\", { className: 'mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted' }),\n children)));\n});\nDrawerContent.displayName = 'DrawerContent';\nvar DrawerHeader = function (_a) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"div\", __assign({ className: cn('grid gap-1.5 p-4 text-center sm:text-left', className) }, props)));\n};\nDrawerHeader.displayName = 'DrawerHeader';\nvar DrawerFooter = function (_a) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"div\", __assign({ className: cn('mt-auto flex flex-col gap-2 p-4', className) }, props)));\n};\nDrawerFooter.displayName = 'DrawerFooter';\n// @ts-ignore\nvar DrawerTitle = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(DrawerPrimitive.Title, __assign({ ref: ref, className: cn('text-lg font-semibold leading-none tracking-tight', className) }, props)));\n});\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n// @ts-ignore\nvar DrawerDescription = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(DrawerPrimitive.Description, __assign({ ref: ref, className: cn('text-sm text-muted-foreground', className) }, props)));\n});\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\nexport { Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose, DrawerContent, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription };\n//# sourceMappingURL=Drawer.js.map","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|3\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:01\\\\d|[24-689])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]]],\"BL\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-35])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"(?:[56]94\\\\d|7093)\\\\d{5}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\",[6,7,8,9,10,11]],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],[\"3[2-8]\\\\d{9,10}\",[11,12]],0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[25-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"3|4(?:2[09]|7[01])|6[1-9]\",\"3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[25-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[0135-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-467]|5[0-3]|8[0-5]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"(?:596\\\\d|7091)\\\\d{5}|(?:69|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|8(?:0[6-9]|[36])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"38\\\\d{6}|[78]\\\\d{9,13}|(?:20|9\\\\d)\\\\d{8}\",[8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|7[67]|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-359]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-4]|5[1-3]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[59]\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:3052(?:0[0-8]|[1-9]\\\\d)|5056(?:[0-35-9]\\\\d|4[468]))\\\\d{4}|(?:2742|305[3-9]|472[247-9]|505[2-57-9]|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,0,[\"305209\\\\d{4}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11,12],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"7093\\\\d{5}|(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"(?:639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[235-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"],0,0,0,0,0,0,[\"2\\\\d{8}\",[9]]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,[\"348[57]\\\\d{7}\",[11]],0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// Edits text `value` (if `operation` is passed) and repositions the `caret` if needed.\n//\n// Example:\n//\n// value - '88005553535'\n// caret - 2 // starting from 0; is positioned before the first zero\n// operation - 'Backspace'\n//\n// Returns\n// {\n// \tvalue: '8005553535'\n// \tcaret: 1\n// }\n//\n// Currently supports just 'Delete' and 'Backspace' operations\n//\nexport default function edit(value, caret, operation) {\n switch (operation) {\n case 'Backspace':\n // If there exists the previous character,\n // then erase it and reposition the caret.\n if (caret > 0) {\n // Remove the previous character\n value = value.slice(0, caret - 1) + value.slice(caret); // Position the caret where the previous (erased) character was\n\n caret--;\n }\n\n break;\n\n case 'Delete':\n // Remove current digit (if any)\n value = value.slice(0, caret) + value.slice(caret + 1);\n break;\n }\n\n return {\n value: value,\n caret: caret\n };\n}\n//# sourceMappingURL=edit.js.map","// Parses the `text`.\n//\n// Returns `{ value, caret }` where `caret` is\n// the caret position inside `value`\n// corresponding to the `caret_position` inside `text`.\n//\n// The `text` is parsed by feeding each character sequentially to\n// `parse_character(character, value, context)` function\n// and appending the result (if it's not `undefined`) to `value`.\n//\n// `context` argument is just a utility empty object that is shared within the bounds\n// of parsing a single input string. The `_parse()` function could use that object\n// to store any kind of \"flags\" in it in order to alter its behavior based when\n// parsing next characters within the same string. Or it could completely ignore it.\n//\n// Example:\n//\n// `text` is `8 (800) 555-35-35`,\n// `caret_position` is `4` (before the first `0`).\n// `parse_character` is `(character, value) =>\n// if (character >= '0' && character <= '9') { return character }`.\n//\n// then `parse()` outputs `{ value: '88005553535', caret: 2 }`.\n//\nexport default function parse(text, caret_position, parse_character) {\n var context = {};\n var value = '';\n var focused_input_character_index = 0;\n var index = 0;\n\n while (index < text.length) {\n var character = parse_character(text[index], value, context);\n\n if (character !== undefined) {\n value += character;\n\n if (caret_position !== undefined) {\n if (caret_position === index) {\n focused_input_character_index = value.length - 1;\n } else if (caret_position > index) {\n focused_input_character_index = value.length;\n }\n }\n }\n\n index++;\n } // If caret position wasn't specified\n\n\n if (caret_position === undefined) {\n // Then set caret position to \"after the last input character\"\n focused_input_character_index = value.length;\n }\n\n var result = {\n value: value,\n caret: focused_input_character_index\n };\n return result;\n}\n//# sourceMappingURL=parse.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// Counts all occurences of a symbol in a string\nexport function count_occurences(symbol, string) {\n var count = 0; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes)\n // but template placeholder characters don't fall into that range\n // so skipping such miscellaneous \"exotic\" characters\n // won't matter here for just counting placeholder character occurrences.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n\n if (character === symbol) {\n count++;\n }\n }\n\n return count;\n}\n//# sourceMappingURL=helpers.js.map","import { count_occurences } from './helpers.js';\nexport default function closeBraces(retained_template, template) {\n var placeholder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n var empty_placeholder = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ' ';\n var cut_before = retained_template.length;\n var opening_braces = count_occurences('(', retained_template);\n var closing_braces = count_occurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n\n while (dangling_braces > 0 && cut_before < template.length) {\n retained_template += template[cut_before].replace(placeholder, empty_placeholder);\n\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n\n cut_before++;\n }\n\n return retained_template;\n}\n//# sourceMappingURL=closeBraces.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { count_occurences } from './helpers.js';\nimport close_braces from './closeBraces.js'; // Takes a `template` where character placeholders\n// are denoted by 'x'es (e.g. 'x (xxx) xxx-xx-xx').\n//\n// Returns a function which takes `value` characters\n// and returns the `template` filled with those characters.\n// If the `template` can only be partially filled\n// then it is cut off.\n//\n// If `shouldCloseBraces` is `true`,\n// then it will also make sure all dangling braces are closed,\n// e.g. \"8 (8\" -> \"8 (8 )\" (iPhone style phone number input).\n//\n\nexport default function (template) {\n var placeholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var shouldCloseBraces = arguments.length > 2 ? arguments[2] : undefined;\n\n if (!template) {\n return function (value) {\n return {\n text: value\n };\n };\n }\n\n var placeholdersCountInTemplate = count_occurences(placeholder, template);\n return function (value) {\n if (!value) {\n return {\n text: '',\n template: template\n };\n }\n\n var characterIndexInValue = 0;\n var templateWithFilledInPlaceholders = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes)\n // but template placeholder characters don't fall into that range\n // and appending UTF-8 characters to a string in parts still works.\n\n for (var _iterator = _createForOfIteratorHelperLoose(template.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n\n if (character !== placeholder) {\n templateWithFilledInPlaceholders += character;\n continue;\n }\n\n templateWithFilledInPlaceholders += value[characterIndexInValue];\n characterIndexInValue++; // If the last available value character has been filled in,\n // then return the filled in template\n // (either trim the right part or retain it,\n // if no more character placeholders in there)\n\n if (characterIndexInValue === value.length) {\n // If there are more character placeholders\n // in the right part of the template\n // then simply trim it.\n if (value.length < placeholdersCountInTemplate) {\n break;\n }\n }\n }\n\n if (shouldCloseBraces) {\n templateWithFilledInPlaceholders = close_braces(templateWithFilledInPlaceholders, template);\n }\n\n return {\n text: templateWithFilledInPlaceholders,\n template: template\n };\n };\n}\n//# sourceMappingURL=templateFormatter.js.map","import template_formatter from './templateFormatter.js'; // Formats `value` value preserving `caret` at the same character.\n//\n// `{ value, caret }` attribute is the result of `parse()` function call.\n//\n// Returns `{ text, caret }` where the new `caret` is the caret position\n// inside `text` text corresponding to the original `caret` position inside `value`.\n//\n// `formatter(value)` is a function returning `{ text, template }`.\n//\n// `text` is the `value` value formatted using `template`.\n// It may either cut off the non-filled right part of the `template`\n// or it may fill the non-filled character placeholders\n// in the right part of the `template` with `spacer`\n// which is a space (' ') character by default.\n//\n// `template` is the template used to format the `value`.\n// It can be either a full-length template or a partial template.\n//\n// `formatter` can also be a string — a `template`\n// where character placeholders are denoted by 'x'es.\n// In this case `formatter` function is automatically created.\n//\n// Example:\n//\n// `value` is '880',\n// `caret` is `2` (before the first `0`)\n//\n// `formatter` is `'880' =>\n// { text: '8 (80 )', template: 'x (xxx) xxx-xx-xx' }`\n//\n// The result is `{ text: '8 (80 )', caret: 4 }`.\n//\n\nexport default function format(value, caret, formatter) {\n if (typeof formatter === 'string') {\n formatter = template_formatter(formatter);\n }\n\n var _ref = formatter(value) || {},\n text = _ref.text,\n template = _ref.template;\n\n if (text === undefined) {\n text = value;\n }\n\n if (template) {\n if (caret === undefined) {\n caret = text.length;\n } else {\n var index = 0;\n var found = false;\n var possibly_last_input_character_index = -1;\n\n while (index < text.length && index < template.length) {\n // Character placeholder found\n if (text[index] !== template[index]) {\n if (caret === 0) {\n found = true;\n caret = index;\n break;\n }\n\n possibly_last_input_character_index = index;\n caret--;\n }\n\n index++;\n } // If the caret was positioned after last input character,\n // then the text caret index is just after the last input character.\n\n\n if (!found) {\n caret = possibly_last_input_character_index + 1;\n }\n }\n }\n\n return {\n text: text,\n caret: caret\n };\n}\n//# sourceMappingURL=format.js.map","export function isReadOnly(element) {\n return element.hasAttribute('readonly');\n} // Gets <input/> selection bounds\n\nexport function getSelection(element) {\n // If no selection, return nothing\n if (element.selectionStart === element.selectionEnd) {\n return;\n }\n\n return {\n start: element.selectionStart,\n end: element.selectionEnd\n };\n} // Key codes\n\nexport var Keys = {\n Backspace: 8,\n Delete: 46\n}; // Finds out the operation to be intercepted and performed\n// based on the key down event `keyCode`.\n\nexport function getOperation(event) {\n switch (event.keyCode) {\n case Keys.Backspace:\n return 'Backspace';\n\n case Keys.Delete:\n return 'Delete';\n }\n} // Gets <input/> caret position\n\nexport function getCaretPosition(element) {\n return element.selectionStart;\n} // Sets <input/> caret position\n\nexport function setCaretPosition(element, caret_position) {\n // Sanity check\n if (caret_position === undefined) {\n return;\n } // Set caret position.\n // There has been an issue with caret positioning on Android devices.\n // https://github.com/catamphetamine/input-format/issues/2\n // I was revisiting this issue and looked for similar issues in other libraries.\n // For example, there's [`text-mask`](https://github.com/text-mask/text-mask) library.\n // They've had exactly the same issue when the caret seemingly refused to be repositioned programmatically.\n // The symptoms were the same: whenever the caret passed through a non-digit character of a mask (a whitespace, a bracket, a dash, etc), it looked as if it placed itself one character before its correct position.\n // https://github.com/text-mask/text-mask/issues/300\n // They seem to have found a basic fix for it: calling `input.setSelectionRange()` in a timeout rather than instantly for Android devices.\n // https://github.com/text-mask/text-mask/pull/400/files\n // I've implemented the same workaround here.\n\n\n if (isAndroid()) {\n setTimeout(function () {\n return element.setSelectionRange(caret_position, caret_position);\n }, 0);\n } else {\n element.setSelectionRange(caret_position, caret_position);\n }\n}\n\nfunction isAndroid() {\n // `navigator` is not defined when running mocha tests.\n if (typeof navigator !== 'undefined') {\n return ANDROID_USER_AGENT_REG_EXP.test(navigator.userAgent);\n }\n}\n\nvar ANDROID_USER_AGENT_REG_EXP = /Android/i;\n//# sourceMappingURL=dom.js.map","import edit from './edit.js';\nimport parse from './parse.js';\nimport format from './format.js';\nimport { isReadOnly, getOperation, getSelection, getCaretPosition, setCaretPosition } from './dom.js'; // Deprecated.\n// I don't know why this function exists.\n\nexport function onCut(event, input, _parse, _format, on_change) {\n if (isReadOnly(input)) {\n return;\n } // The actual cut hasn't happened just yet hence the timeout.\n\n\n setTimeout(function () {\n return formatInputText(input, _parse, _format, undefined, on_change);\n }, 0);\n} // Deprecated.\n// I don't know why this function exists.\n\nexport function onPaste(event, input, _parse, _format, on_change) {\n if (isReadOnly(input)) {\n return;\n }\n\n var selection = getSelection(input); // If selection is made,\n // just erase the selected text\n // prior to pasting\n\n if (selection) {\n eraseSelection(input, selection);\n }\n\n formatInputText(input, _parse, _format, undefined, on_change);\n}\nexport function onChange(event, input, _parse, _format, on_change) {\n formatInputText(input, _parse, _format, undefined, on_change);\n} // \"Delete\" and \"Backspace\" keys are special\n// in a way that they're not handled by the regular `onChange()` handler\n// and instead are intercepted and re-applied manually.\n// The reason is that normally hitting \"Backspace\" or \"Delete\"\n// results in erasing a character, but that character might be any character,\n// while it would be a better \"user experience\" if it erased not just any character\n// but the closest \"meaningful\" character.\n// For example, if a template is `(xxx) xxx-xxxx`,\n// and the `<input/>` value is `(111) 222-3333`,\n// then, if a user begins erasing the `3333` part via \"Backspace\"\n// and reaches the \"-\" character, then it would just erase the \"-\" character.\n// Nothing wrong with that, but it would be a better \"user experience\"\n// if hitting \"Backspace\" at that position would erase the closest \"meaningful\"\n// character, which would be the rightmost `2`.\n// So, what this `onKeyDown()` handler does is it intercepts\n// \"Backspace\" and \"Delete\" keys and re-applies those operations manually\n// following the logic described above.\n\nexport function onKeyDown(event, input, _parse, _format, on_change) {\n if (isReadOnly(input)) {\n return;\n }\n\n var operation = getOperation(event);\n\n switch (operation) {\n case 'Delete':\n case 'Backspace':\n // Intercept this operation and perform it manually.\n event.preventDefault();\n var selection = getSelection(input); // If a selection is made, just erase the selected text.\n\n if (selection) {\n eraseSelection(input, selection);\n return formatInputText(input, _parse, _format, undefined, on_change);\n } // Else, perform the (character erasing) operation manually.\n\n\n return formatInputText(input, _parse, _format, operation, on_change);\n\n default: // Will be handled normally as part of the `onChange` handler.\n\n }\n}\n/**\r\n * Erases the selected text inside an `<input/>`.\r\n * @param {DOMElement} input\r\n * @param {Selection} selection\r\n */\n\nfunction eraseSelection(input, selection) {\n var text = input.value;\n text = text.slice(0, selection.start) + text.slice(selection.end);\n input.value = text;\n setCaretPosition(input, selection.start);\n}\n/**\r\n * Parses and re-formats `<input/>` textual value.\r\n * E.g. when a user enters something into the `<input/>`\r\n * that raw input must first be parsed and the re-formatted properly.\r\n * Is called either after some user input (e.g. entered a character, pasted something)\r\n * or after the user performed an `operation` (e.g. \"Backspace\", \"Delete\").\r\n * @param {DOMElement} input\r\n * @param {Function} parse\r\n * @param {Function} format\r\n * @param {string} [operation] - The operation that triggered `<input/>` textual value change. E.g. \"Backspace\", \"Delete\".\r\n * @param {Function} onChange\r\n */\n\n\nfunction formatInputText(input, _parse, _format, operation, on_change) {\n // Parse `<input/>` textual value.\n // Get the `value` and `caret` position.\n var _parse2 = parse(input.value, getCaretPosition(input), _parse),\n value = _parse2.value,\n caret = _parse2.caret; // If a user performed an operation (\"Backspace\", \"Delete\")\n // then apply that operation and get the new `value` and `caret` position.\n\n\n if (operation) {\n var newValueAndCaret = edit(value, caret, operation);\n value = newValueAndCaret.value;\n caret = newValueAndCaret.caret;\n } // Format the `value`.\n // (and reposition the caret accordingly)\n\n\n var formatted = format(value, caret, _format);\n var text = formatted.text;\n caret = formatted.caret; // Set `<input/>` textual value manually\n // to prevent React from resetting the caret position\n // later inside a subsequent `render()`.\n // Doesn't work for custom `inputComponent`s for some reason.\n\n input.value = text; // Position the caret properly.\n\n setCaretPosition(input, caret); // If the `<input/>` textual value did change,\n // then the parsed `value` may have changed too.\n\n if (on_change) {\n on_change(value);\n }\n}\n//# sourceMappingURL=inputControl.js.map","var _excluded = [\"ref\", \"parse\", \"format\", \"value\", \"defaultValue\", \"controlled\", \"onChange\", \"onKeyDown\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { useCallback, useRef } from 'react';\nimport { onChange as onInputChange, onKeyDown as onInputKeyDown } from '../inputControl.js';\nexport default function useInput(_ref) {\n var ref = _ref.ref,\n parse = _ref.parse,\n format = _ref.format,\n value = _ref.value,\n defaultValue = _ref.defaultValue,\n _ref$controlled = _ref.controlled,\n controlled = _ref$controlled === void 0 ? true : _ref$controlled,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n // It doesn't seem to be required to alert a developer about controlled/uncontrolled misuse:\n // if `controlled` is `true` then `defaultValue` is simply ignored.\n //\n // if (defaultValue && controlled) {\n // \tconsole.error('[input-format] You\\'ve passed both `defaultValue` and `controlled: true` properties which is an invalid use case')\n // }\n var internalRef = useRef();\n var setRef = useCallback(function (instance) {\n internalRef.current = instance;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(instance);\n } else {\n ref.current = instance;\n }\n }\n }, [ref]);\n\n var _onChange = useCallback(function (event) {\n return onInputChange(event, internalRef.current, parse, format, onChange);\n }, [internalRef, parse, format, onChange]);\n\n var _onKeyDown = useCallback(function (event) {\n if (onKeyDown) {\n onKeyDown(event);\n } // If `onKeyDown()` handler above has called `event.preventDefault()`\n // then ignore this `keydown` event.\n\n\n if (event.defaultPrevented) {\n return;\n }\n\n return onInputKeyDown(event, internalRef.current, parse, format, onChange);\n }, [internalRef, parse, format, onChange, onKeyDown]);\n\n var commonProps = _objectSpread(_objectSpread({}, rest), {}, {\n ref: setRef,\n onChange: _onChange,\n onKeyDown: _onKeyDown\n });\n\n if (controlled) {\n return _objectSpread(_objectSpread({}, commonProps), {}, {\n value: format(isEmptyValue(value) ? '' : value).text\n });\n }\n\n return _objectSpread(_objectSpread({}, commonProps), {}, {\n defaultValue: format(isEmptyValue(defaultValue) ? '' : defaultValue).text\n });\n}\n\nfunction isEmptyValue(value) {\n return value === undefined || value === null;\n}\n//# sourceMappingURL=useInput.js.map","var _excluded = [\"inputComponent\", \"parse\", \"format\", \"value\", \"defaultValue\", \"onChange\", \"controlled\", \"onKeyDown\", \"type\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n// This is just `./ReactInput.js` rewritten in Hooks.\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport useInput from './useInput.js'; // Usage:\n//\n// <ReactInput\n// \tvalue={this.state.phone}\n// \tonChange={phone => this.setState({ phone })}\n// \tparse={character => character}\n// \tformat={value => ({ text: value, template: 'xxxxxxxx' })}/>\n//\n\nfunction Input(_ref, ref) {\n var _ref$inputComponent = _ref.inputComponent,\n InputComponent = _ref$inputComponent === void 0 ? 'input' : _ref$inputComponent,\n parse = _ref.parse,\n format = _ref.format,\n value = _ref.value,\n defaultValue = _ref.defaultValue,\n onChange = _ref.onChange,\n controlled = _ref.controlled,\n onKeyDown = _ref.onKeyDown,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'text' : _ref$type,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var inputProps = useInput(_objectSpread({\n ref: ref,\n parse: parse,\n format: format,\n value: value,\n defaultValue: defaultValue,\n onChange: onChange,\n controlled: controlled,\n onKeyDown: onKeyDown,\n type: type\n }, rest));\n return /*#__PURE__*/React.createElement(InputComponent, inputProps);\n}\n\nInput = /*#__PURE__*/React.forwardRef(Input);\nInput.propTypes = {\n // Parses a single characher of `<input/>` text.\n parse: PropTypes.func.isRequired,\n // Formats `value` into `<input/>` text.\n format: PropTypes.func.isRequired,\n // Renders `<input/>` by default.\n inputComponent: PropTypes.elementType,\n // `<input/>` `type` attribute.\n type: PropTypes.string,\n // Is parsed from <input/> text.\n value: PropTypes.string,\n // An initial value for an \"uncontrolled\" <input/>.\n defaultValue: PropTypes.string,\n // This handler is called each time `<input/>` text is changed.\n onChange: PropTypes.func,\n // Whether this input should be \"controlled\" or \"uncontrolled\".\n // The default value is `true` meaning \"uncontrolled\".\n controlled: PropTypes.bool,\n // Passthrough\n onKeyDown: PropTypes.func,\n onCut: PropTypes.func,\n onPaste: PropTypes.func\n};\nexport default Input;\n//# sourceMappingURL=Input.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n _inherits(ParseError, _Error);\n\n var _super = _createSuper(ParseError);\n\n function ParseError(code) {\n var _this;\n\n _classCallCheck(this, ParseError);\n\n _this = _super.call(this, code); // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n\n Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport compare from './tools/semver-compare.js';\nimport isObject from './helpers/isObject.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n } // Is only present when a country supports multiple IDD prefixes.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n } // \"possible length\" data is always present in Google's metadata.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!isObject(metadata) || !isObject(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar typeOf = function typeOf(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries.hasOwnProperty(country);\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexport function isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n//# sourceMappingURL=extractExtension.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n // `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\n // Any 3rd-party code that used to `import` and call this function before that\n // won't be passing any `emitEvent` argument.\n //\n // The addition of the `emitEvent` argument was to fix the slightly-weird behavior\n // of parsing an input string when the user inputs something like `\"2+7\"\n // https://github.com/catamphetamine/react-phone-number-input/issues/437\n //\n // If the parser encounters an unexpected `+` in a string being parsed\n // then it simply discards that out-of-place `+` and any following characters.\n //\n if (typeof emitEvent === 'function') {\n emitEvent('end');\n }\n\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"<possiblePengths/>\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"<possiblePengths/>\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossible.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returns an empty object — `{}` —\n // that means that the phone number is malformed,\n // so it can't possibly be valid.\n\n if (!input.country && !input.countryCallingCode) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return [];\n }\n\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n\n _metadata.selectNumberingPlan(country);\n\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n\n return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains `<intlFormat/>`s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `<intlFormat/>` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n//# sourceMappingURL=getIddPrefix.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n\n // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n//# sourceMappingURL=format.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js'; // import checkNumberLength from './helpers/checkNumberLength.js'\n\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport formatNumber from './format.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n /**\r\n * @param {string} countryOrCountryCallingCode\r\n * @param {string} nationalNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {PhoneNumber}\r\n */\n function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryOrCountryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n\n var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n country = _getCountryAndCountry.country,\n countryCallingCode = _getCountryAndCountry.countryCallingCode;\n\n this.country = country;\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber; // Exclude `metadata` property output from `PhoneNumber.toString()`\n // so that it doesn't clutter the console output of Node.js.\n // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n // it would output the whole internal structure of the `metadata` object.\n\n this.getMetadata = function () {\n return metadata;\n };\n }\n\n _createClass(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n\n return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.getMetadata());\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n // so eventually I simply commented out this method from the `PhoneNumber` class\n // and just left the `validatePhoneNumberLength()` function, even though that one would require\n // and additional step to also validate the actual country / calling code of the phone number.\n // validateLength() {\n // \tconst metadata = new Metadata(this.getMetadata())\n // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n // \tif (result !== 'IS_POSSIBLE') {\n // \t\treturn result\n // \t}\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n var country;\n var countryCallingCode;\n var metadata = new Metadata(metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n if (isCountryCode(countryOrCountryCallingCode)) {\n country = countryOrCountryCallingCode;\n metadata.selectNumberingPlan(country);\n countryCallingCode = metadata.countryCallingCode();\n } else {\n countryCallingCode = countryOrCountryCallingCode;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n country = '001';\n }\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode\n };\n}\n//# sourceMappingURL=PhoneNumber.js.map","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n if (metadata.possibleLengths()) {\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n } // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n\n\n return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n\n default:\n return true;\n }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n }\n\n var isNumberWithIddPrefix; // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n isNumberWithIddPrefix = true;\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n // countryCallingCodeSource: 'UNSPECIFIED',\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n// // Default value returned if this is not set, because the phone number was\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n// // return false if this is the case.\n// UNSPECIFIED = 0;\n//\n// // The country_code is derived based on a phone number with a leading \"+\",\n// // e.g. the French number \"+33 1 42 68 53 00\".\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n// // The country_code is derived based on a phone number with a leading IDD,\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n// FROM_NUMBER_WITH_IDD = 5;\n//\n// // The country_code is derived based on a phone number without a leading\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n// // supplied as France.\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n// // The country_code is derived NOT based on the phone number itself, but\n// // from the defaultCountry parameter provided in the parsing function by the\n// // clients. This happens mostly for numbers written in the national format\n// // (without country code). For example, this would be set when parsing the\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n// // France.\n// FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n var countries = _ref.countries,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata); // const matchingCountries = []\n\n for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n // because of the intended use of that feature.\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n // If both the `defaultCountry` and the \"main\" one match the phone number,\n // don't prefer the `defaultCountry` over the \"main\" one.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n return country; // // If the `defaultCountry` is among the `matchingCountries` then return it.\n // if (defaultCountry) {\n // \tif (country === defaultCountry) {\n // \t\treturn country\n // \t}\n // \tmatchingCountries.push(country)\n // } else {\n // \treturn country\n // }\n }\n } // // Return the first (\"main\") one of the `matchingCountries`.\n // if (matchingCountries.length > 0) {\n // \treturn matchingCountries[0]\n // }\n\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, _ref) {\n var nationalPhoneNumber = _ref.nationalNumber,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n }\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return getCountryByNationalNumber(nationalPhoneNumber, {\n countries: possibleCountries,\n defaultCountry: defaultCountry,\n metadata: metadata.metadata\n });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\nimport { VALID_DIGITS // PLUS_CHARS\n} from '../constants.js';\nexport var PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g'); // In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\n\nvar ALPHANUM_ = VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nexport var RFC3966_PREFIX_ = 'tel:';\nexport var RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexport var RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\n\nexport default function extractPhoneContext(numberToExtractFrom) {\n var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); // If no phone-context parameter is present\n\n if (indexOfPhoneContext < 0) {\n return null;\n }\n\n var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n if (phoneContextStart >= numberToExtractFrom.length) {\n return '';\n }\n\n var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart); // If phone-context is not the last parameter\n\n if (phoneContextEnd >= 0) {\n return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n } else {\n return numberToExtractFrom.substring(phoneContextStart);\n }\n}\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\n\nexport function isPhoneContextValid(phoneContext) {\n if (phoneContext === null) {\n return true;\n }\n\n if (phoneContext.length === 0) {\n return false;\n } // Does phone-context value match pattern of global-number-digits or domainname.\n\n\n return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n//# sourceMappingURL=extractPhoneContext.js.map","import extractPhoneContext, { isPhoneContextValid, PLUS_SIGN, RFC3966_PREFIX_, RFC3966_PHONE_CONTEXT_, RFC3966_ISDN_SUBADDRESS_ } from './extractPhoneContext.js';\nimport ParseError from '../ParseError.js';\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\n\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n var phoneContext = extractPhoneContext(numberToParse);\n\n if (!isPhoneContextValid(phoneContext)) {\n throw new ParseError('NOT_A_NUMBER');\n }\n\n var phoneNumberString;\n\n if (phoneContext === null) {\n // Extract a possible number from the string passed in.\n // (this strips leading characters that could not be the start of a phone number)\n phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n } else {\n phoneNumberString = ''; // If the phone context contains a phone number prefix, we need to capture\n // it, whereas domains will be ignored.\n\n if (phoneContext.charAt(0) === PLUS_SIGN) {\n phoneNumberString += phoneContext;\n } // Now append everything between the \"tel:\" prefix and the phone-context.\n // This should include the national number, an optional extension or\n // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n // missing, as we have seen in some of the phone number inputs.\n // In that case, we append everything from the beginning.\n\n\n var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);\n var indexOfNationalNumber; // RFC 3966 \"tel:\" prefix is preset at this stage because\n // `isPhoneContextValid()` requires it to be present.\n\n /* istanbul ignore else */\n\n if (indexOfRfc3966Prefix >= 0) {\n indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;\n } else {\n indexOfNationalNumber = 0;\n }\n\n var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);\n phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n } // Delete the isdn-subaddress and everything after it if it is present.\n // Note extension won't appear at the same time with isdn-subaddress\n // according to paragraph 5.3 of the RFC3966 spec.\n\n\n var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\n\n if (indexOfIsdn > 0) {\n phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n } // If both phone context and isdn-subaddress are absent but other\n // parameters are present, the parameters are left in nationalNumber.\n // This is because we are concerned about deleting content from a potential\n // number string when there is no strong evidence that the number is\n // actually written in RFC3966.\n\n\n if (phoneNumberString !== '') {\n return phoneNumberString;\n }\n}\n//# sourceMappingURL=extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js'; // import { parseRFC3966 } from './helpers/RFC3966.js'\n\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n }\n\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n // // Parse RFC 3966 phone number URI.\n // if (text && text.indexOf('tel:') === 0) {\n // \treturn parseRFC3966(text)\n // }\n // let number = extractFormattedPhoneNumber(text, extract, v2)\n var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n return _extractFormattedPhoneNumber(text, extract, v2);\n }\n }); // If the phone number is not viable, then abort.\n\n if (!number) {\n return {};\n }\n\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is passed in \"national\" format\n // then `number` is defined and `countryCallingCode` is `undefined`.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, {\n nationalNumber: nationalNumber,\n defaultCountry: defaultCountry,\n metadata: metadata\n });\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n countryCallingCodeSource: countryCallingCodeSource,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parse from './parse.js';\nexport default function parsePhoneNumberWithError(text, options, metadata) {\n return parse(text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isObject from './helpers/isObject.js'; // Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\n\nexport default function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n}\n//# sourceMappingURL=normalizeArguments.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js';\nimport ParseError from './ParseError.js';\nimport { isSupportedCountry } from './metadata.js';\nexport default function parsePhoneNumber(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n options = _objectSpread(_objectSpread({}, options), {}, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n\n try {\n return parsePhoneNumberWithError(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof ParseError) {//\n } else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","import normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber_ from './parsePhoneNumber_.js';\nexport default function parsePhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumber_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumber.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// This \"state\" object simply holds the state of the \"AsYouType\" parser:\n//\n// * `country?: string`\n// * `callingCode?: string`\n// * `digits: string`\n// * `international: boolean`\n// * `missingPlus: boolean`\n// * `IDDPrefix?: string`\n// * `carrierCode?: string`\n// * `nationalPrefix?: string`\n// * `nationalSignificantNumber?: string`\n// * `nationalSignificantNumberMatchesInput: boolean`\n// * `complexPrefixBeforeNationalSignificantNumber?: string`\n//\n// `state.country` and `state.callingCode` aren't required to be in sync.\n// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n// So `state.country` and `state.callingCode` are totally independent.\n//\nvar AsYouTypeState = /*#__PURE__*/function () {\n function AsYouTypeState(_ref) {\n var onCountryChange = _ref.onCountryChange,\n onCallingCodeChange = _ref.onCallingCodeChange;\n\n _classCallCheck(this, AsYouTypeState);\n\n this.onCountryChange = onCountryChange;\n this.onCallingCodeChange = onCallingCodeChange;\n }\n\n _createClass(AsYouTypeState, [{\n key: \"reset\",\n value: function reset(_ref2) {\n var country = _ref2.country,\n callingCode = _ref2.callingCode;\n this.international = false;\n this.missingPlus = false;\n this.IDDPrefix = undefined;\n this.callingCode = undefined;\n this.digits = '';\n this.resetNationalSignificantNumber();\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"resetNationalSignificantNumber\",\n value: function resetNationalSignificantNumber() {\n this.nationalSignificantNumber = this.getNationalDigits();\n this.nationalSignificantNumberMatchesInput = true;\n this.nationalPrefix = undefined;\n this.carrierCode = undefined;\n this.complexPrefixBeforeNationalSignificantNumber = undefined;\n }\n }, {\n key: \"update\",\n value: function update(properties) {\n for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n this[key] = properties[key];\n }\n }\n }, {\n key: \"initCountryAndCallingCode\",\n value: function initCountryAndCallingCode(country, callingCode) {\n this.setCountry(country);\n this.setCallingCode(callingCode);\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(country) {\n this.country = country;\n this.onCountryChange(country);\n }\n }, {\n key: \"setCallingCode\",\n value: function setCallingCode(callingCode) {\n this.callingCode = callingCode;\n this.onCallingCodeChange(callingCode, this.country);\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(country, callingCode) {\n // Prepend the `+` to parsed input.\n this.international = true; // If a default country was set then reset it\n // because an explicitly international phone\n // number is being entered.\n\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"appendDigits\",\n value: function appendDigits(nextDigits) {\n this.digits += nextDigits;\n }\n }, {\n key: \"appendNationalSignificantNumberDigits\",\n value: function appendNationalSignificantNumberDigits(nextDigits) {\n this.nationalSignificantNumber += nextDigits;\n }\n /**\r\n * Returns the part of `this.digits` that corresponds to the national number.\r\n * Basically, all digits that have been input by the user, except for the\r\n * international prefix and the country calling code part\r\n * (if the number is an international one).\r\n * @return {string}\r\n */\n\n }, {\n key: \"getNationalDigits\",\n value: function getNationalDigits() {\n if (this.international) {\n return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n }\n\n return this.digits;\n }\n }, {\n key: \"getDigitsWithoutInternationalPrefix\",\n value: function getDigitsWithoutInternationalPrefix() {\n if (this.international) {\n if (this.IDDPrefix) {\n return this.digits.slice(this.IDDPrefix.length);\n }\n }\n\n return this.digits;\n }\n }]);\n\n return AsYouTypeState;\n}();\n\nexport { AsYouTypeState as default };\n//# sourceMappingURL=AsYouTypeState.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\n\nexport function countOccurences(symbol, string) {\n var count = 0; // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for counting brackets it is safe.\n // for (const character of string)\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n\n if (character === symbol) {\n count++;\n }\n }\n\n return count;\n} // Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\n\nexport function repeat(string, times) {\n if (times < 1) {\n return '';\n }\n\n var result = '';\n\n while (times > 1) {\n if (times & 1) {\n result += string;\n }\n\n times >>= 1;\n string += string;\n }\n\n return result + string;\n}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function closeNonPairedParens(template, cut_before) {\n var retained_template = template.slice(0, cut_before);\n var opening_braces = countOccurences('(', retained_template);\n var closing_braces = countOccurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n\n while (dangling_braces > 0 && cut_before < template.length) {\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n\n cut_before++;\n }\n\n return template.slice(0, cut_before);\n}\nexport function stripNonPairedParens(string) {\n var dangling_braces = [];\n var i = 0;\n\n while (i < string.length) {\n if (string[i] === '(') {\n dangling_braces.push(i);\n } else if (string[i] === ')') {\n dangling_braces.pop();\n }\n\n i++;\n }\n\n var start = 0;\n var cleared_string = '';\n dangling_braces.push(string.length);\n\n for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) {\n var index = _dangling_braces[_i];\n cleared_string += string.slice(start, index);\n start = index + 1;\n }\n\n return cleared_string;\n}\nexport function populateTemplateWithDigits(template, position, digits) {\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for `digits` it is safe.\n // for (const digit of digits)\n for (var _iterator2 = _createForOfIteratorHelperLoose(digits.split('')), _step2; !(_step2 = _iterator2()).done;) {\n var digit = _step2.value;\n\n // If there is room for more digits in current `template`,\n // then set the next digit in the `template`,\n // and return the formatted digits so far.\n // If more digits are entered than the current format could handle.\n if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n return;\n }\n\n position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n }\n\n return [template, position];\n}\n//# sourceMappingURL=AsYouTypeFormatter.util.js.map","import checkNumberLength from './helpers/checkNumberLength.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nexport default function formatCompleteNumber(state, format, _ref) {\n var metadata = _ref.metadata,\n shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n\n if (matcher.test(state.nationalSignificantNumber)) {\n return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n metadata: metadata,\n shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n });\n }\n}\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n return checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE';\n}\n\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n var metadata = _ref2.metadata,\n shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix;\n // `format` has already been checked for `nationalPrefix` requirement.\n var nationalSignificantNumber = state.nationalSignificantNumber,\n international = state.international,\n nationalPrefix = state.nationalPrefix,\n carrierCode = state.carrierCode; // Format the number with using `national_prefix_formatting_rule`.\n // If the resulting formatted number is a valid formatted number, then return it.\n //\n // Google's AsYouType formatter is different in a way that it doesn't try\n // to format using the \"national prefix formatting rule\", and instead it\n // simply prepends a national prefix followed by a \" \" character.\n // This code does that too, but as a fallback.\n // The reason is that \"national prefix formatting rule\" may use parentheses,\n // which wouldn't be included has it used the simpler Google's way.\n //\n\n if (shouldTryNationalPrefixFormattingRule(format)) {\n var formattedNumber = formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: true,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n\n if (formattedNumber) {\n return formattedNumber;\n }\n } // Format the number without using `national_prefix_formatting_rule`.\n\n\n return formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: false,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n}\n\nfunction formatNationalNumber(state, format, _ref3) {\n var metadata = _ref3.metadata,\n useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n var formattedNationalNumber = formatNationalNumberUsingFormat(state.nationalSignificantNumber, format, {\n carrierCode: state.carrierCode,\n useInternationalFormat: state.international,\n withNationalPrefix: useNationalPrefixFormattingRule,\n metadata: metadata\n });\n\n if (!useNationalPrefixFormattingRule) {\n if (state.nationalPrefix) {\n // If a national prefix was extracted, then just prepend it,\n // followed by a \" \" character.\n formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n } else if (state.complexPrefixBeforeNationalSignificantNumber) {\n formattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber + ' ' + formattedNationalNumber;\n }\n }\n\n if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n return formattedNationalNumber;\n }\n} // Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\n\n\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n return parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}\n//# sourceMappingURL=AsYouTypeFormatter.complete.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar PatternParser = /*#__PURE__*/function () {\n function PatternParser() {\n _classCallCheck(this, PatternParser);\n }\n\n _createClass(PatternParser, [{\n key: \"parse\",\n value: function parse(pattern) {\n this.context = [{\n or: true,\n instructions: []\n }];\n this.parsePattern(pattern);\n\n if (this.context.length !== 1) {\n throw new Error('Non-finalized contexts left when pattern parse ended');\n }\n\n var _this$context$ = this.context[0],\n branches = _this$context$.branches,\n instructions = _this$context$.instructions;\n\n if (branches) {\n return {\n op: '|',\n args: branches.concat([expandSingleElementArray(instructions)])\n };\n }\n /* istanbul ignore if */\n\n\n if (instructions.length === 0) {\n throw new Error('Pattern is required');\n }\n\n if (instructions.length === 1) {\n return instructions[0];\n }\n\n return instructions;\n }\n }, {\n key: \"startContext\",\n value: function startContext(context) {\n this.context.push(context);\n }\n }, {\n key: \"endContext\",\n value: function endContext() {\n this.context.pop();\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.context[this.context.length - 1];\n }\n }, {\n key: \"parsePattern\",\n value: function parsePattern(pattern) {\n if (!pattern) {\n throw new Error('Pattern is required');\n }\n\n var match = pattern.match(OPERATOR);\n\n if (!match) {\n if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n throw new Error(\"Illegal characters found in a pattern: \".concat(pattern));\n }\n\n this.getContext().instructions = this.getContext().instructions.concat(pattern.split(''));\n return;\n }\n\n var operator = match[1];\n var before = pattern.slice(0, match.index);\n var rightPart = pattern.slice(match.index + operator.length);\n\n switch (operator) {\n case '(?:':\n if (before) {\n this.parsePattern(before);\n }\n\n this.startContext({\n or: true,\n instructions: [],\n branches: []\n });\n break;\n\n case ')':\n if (!this.getContext().or) {\n throw new Error('\")\" operator must be preceded by \"(?:\" operator');\n }\n\n if (before) {\n this.parsePattern(before);\n }\n\n if (this.getContext().instructions.length === 0) {\n throw new Error('No instructions found after \"|\" operator in an \"or\" group');\n }\n\n var _this$getContext = this.getContext(),\n branches = _this$getContext.branches;\n\n branches.push(expandSingleElementArray(this.getContext().instructions));\n this.endContext();\n this.getContext().instructions.push({\n op: '|',\n args: branches\n });\n break;\n\n case '|':\n if (!this.getContext().or) {\n throw new Error('\"|\" operator can only be used inside \"or\" groups');\n }\n\n if (before) {\n this.parsePattern(before);\n } // The top-level is an implicit \"or\" group, if required.\n\n\n if (!this.getContext().branches) {\n // `branches` are not defined only for the root implicit \"or\" operator.\n\n /* istanbul ignore else */\n if (this.context.length === 1) {\n this.getContext().branches = [];\n } else {\n throw new Error('\"branches\" not found in an \"or\" group context');\n }\n }\n\n this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions));\n this.getContext().instructions = [];\n break;\n\n case '[':\n if (before) {\n this.parsePattern(before);\n }\n\n this.startContext({\n oneOfSet: true\n });\n break;\n\n case ']':\n if (!this.getContext().oneOfSet) {\n throw new Error('\"]\" operator must be preceded by \"[\" operator');\n }\n\n this.endContext();\n this.getContext().instructions.push({\n op: '[]',\n args: parseOneOfSet(before)\n });\n break;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unknown operator: \".concat(operator));\n }\n\n if (rightPart) {\n this.parsePattern(rightPart);\n }\n }\n }]);\n\n return PatternParser;\n}();\n\nexport { PatternParser as default };\n\nfunction parseOneOfSet(pattern) {\n var values = [];\n var i = 0;\n\n while (i < pattern.length) {\n if (pattern[i] === '-') {\n if (i === 0 || i === pattern.length - 1) {\n throw new Error(\"Couldn't parse a one-of set pattern: \".concat(pattern));\n }\n\n var prevValue = pattern[i - 1].charCodeAt(0) + 1;\n var nextValue = pattern[i + 1].charCodeAt(0) - 1;\n var value = prevValue;\n\n while (value <= nextValue) {\n values.push(String.fromCharCode(value));\n value++;\n }\n } else {\n values.push(pattern[i]);\n }\n\n i++;\n }\n\n return values;\n}\n\nvar ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/;\nvar OPERATOR = new RegExp( // any of:\n'(' + // or operator\n'\\\\|' + // or\n'|' + // or group start\n'\\\\(\\\\?\\\\:' + // or\n'|' + // or group end\n'\\\\)' + // or\n'|' + // one-of set start\n'\\\\[' + // or\n'|' + // one-of set end\n'\\\\]' + ')');\n\nfunction expandSingleElementArray(array) {\n if (array.length === 1) {\n return array[0];\n }\n\n return array;\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternParser.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport PatternParser from './AsYouTypeFormatter.PatternParser.js';\n\nvar PatternMatcher = /*#__PURE__*/function () {\n function PatternMatcher(pattern) {\n _classCallCheck(this, PatternMatcher);\n\n this.matchTree = new PatternParser().parse(pattern);\n }\n\n _createClass(PatternMatcher, [{\n key: \"match\",\n value: function match(string) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n allowOverflow = _ref.allowOverflow;\n\n if (!string) {\n throw new Error('String is required');\n }\n\n var result = _match(string.split(''), this.matchTree, true);\n\n if (result && result.match) {\n delete result.matchedChars;\n }\n\n if (result && result.overflow) {\n if (!allowOverflow) {\n return;\n }\n }\n\n return result;\n }\n }]);\n\n return PatternMatcher;\n}();\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param {string[]} characters\r\n * @param {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\n\n\nexport { PatternMatcher as default };\n\nfunction _match(characters, tree, last) {\n // If `tree` is a string, then `tree` is a single character.\n // That's because when a pattern is parsed, multi-character-string parts\n // of a pattern are compiled into arrays of single characters.\n // I still wrote this piece of code for a \"general\" hypothetical case\n // when `tree` could be a string of several characters, even though\n // such case is not possible with the current implementation.\n if (typeof tree === 'string') {\n var characterString = characters.join('');\n\n if (tree.indexOf(characterString) === 0) {\n // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore else */\n if (characters.length === tree.length) {\n return {\n match: true,\n matchedChars: characters\n };\n } // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore next */\n\n\n return {\n partialMatch: true // matchedChars: characters\n\n };\n }\n\n if (characterString.indexOf(tree) === 0) {\n if (last) {\n // The `else` path is not possible because `tree` is always a single character.\n // The `else` case for `characters.length > tree.length` would be\n // `characters.length <= tree.length` which means `characters.length <= 1`.\n // `characters` array can't be empty, so that means `characters === [tree]`,\n // which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n // that the `if (tree.indexOf(characterString) === 0)` condition before this\n // `if` condition would be entered, and returned from there, not reaching this code.\n\n /* istanbul ignore else */\n if (characters.length > tree.length) {\n return {\n overflow: true\n };\n }\n }\n\n return {\n match: true,\n matchedChars: characters.slice(0, tree.length)\n };\n }\n\n return;\n }\n\n if (Array.isArray(tree)) {\n var restCharacters = characters.slice();\n var i = 0;\n\n while (i < tree.length) {\n var subtree = tree[i];\n\n var result = _match(restCharacters, subtree, last && i === tree.length - 1);\n\n if (!result) {\n return;\n } else if (result.overflow) {\n return result;\n } else if (result.match) {\n // Continue with the next subtree with the rest of the characters.\n restCharacters = restCharacters.slice(result.matchedChars.length);\n\n if (restCharacters.length === 0) {\n if (i === tree.length - 1) {\n return {\n match: true,\n matchedChars: characters\n };\n } else {\n return {\n partialMatch: true // matchedChars: characters\n\n };\n }\n }\n } else {\n /* istanbul ignore else */\n if (result.partialMatch) {\n return {\n partialMatch: true // matchedChars: characters\n\n };\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(result, null, 2)));\n }\n }\n\n i++;\n } // If `last` then overflow has already been checked\n // by the last element of the `tree` array.\n\n /* istanbul ignore if */\n\n\n if (last) {\n return {\n overflow: true\n };\n }\n\n return {\n match: true,\n matchedChars: characters.slice(0, characters.length - restCharacters.length)\n };\n }\n\n switch (tree.op) {\n case '|':\n var partialMatch;\n\n for (var _iterator = _createForOfIteratorHelperLoose(tree.args), _step; !(_step = _iterator()).done;) {\n var branch = _step.value;\n\n var _result = _match(characters, branch, last);\n\n if (_result) {\n if (_result.overflow) {\n return _result;\n } else if (_result.match) {\n return {\n match: true,\n matchedChars: _result.matchedChars\n };\n } else {\n /* istanbul ignore else */\n if (_result.partialMatch) {\n partialMatch = true;\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(_result, null, 2)));\n }\n }\n }\n }\n\n if (partialMatch) {\n return {\n partialMatch: true // matchedChars: ...\n\n };\n } // Not even a partial match.\n\n\n return;\n\n case '[]':\n for (var _iterator2 = _createForOfIteratorHelperLoose(tree.args), _step2; !(_step2 = _iterator2()).done;) {\n var _char = _step2.value;\n\n if (characters[0] === _char) {\n if (characters.length === 1) {\n return {\n match: true,\n matchedChars: characters\n };\n }\n\n if (last) {\n return {\n overflow: true\n };\n }\n\n return {\n match: true,\n matchedChars: [_char]\n };\n }\n } // No character matches.\n\n\n return;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unsupported instruction tree: \".concat(tree));\n }\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternMatcher.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { DIGIT_PLACEHOLDER, countOccurences, repeat, cutAndStripNonPairedParens, closeNonPairedParens, stripNonPairedParens, populateTemplateWithDigits } from './AsYouTypeFormatter.util.js';\nimport formatCompleteNumber, { canFormatCompleteNumber } from './AsYouTypeFormatter.complete.js';\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js';\nimport parseDigits from './helpers/parseDigits.js';\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js';\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js';\nimport { VALID_PUNCTUATION } from './constants.js';\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js'; // Used in phone number format template creation.\n// Could be any digit, I guess.\n\nvar DUMMY_DIGIT = '9'; // I don't know why is it exactly `15`\n\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; // Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\n\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); // A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\n\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; // Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\n\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true; // A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\n\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\[([^\\[\\]])*\\]/g;\n}; // Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\n\n\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\d(?=[^,}][^,}])/g;\n}; // A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n// \"leading_digits_patterns\": [\"91\"],\n// \"national_prefix_formatting_rule\": \"0$1\",\n// \"format\": \"$2 15-$3-$4\",\n// \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\n\n\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('[' + VALID_PUNCTUATION + ']*' + // Google developers say:\n// \"We require that the first matching group is present in the\n// output pattern to ensure no data is lost while formatting.\"\n'\\\\$1' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' + '$'); // This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\n\nvar MIN_LEADING_DIGITS_LENGTH = 3;\n\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n function AsYouTypeFormatter(_ref) {\n var state = _ref.state,\n metadata = _ref.metadata;\n\n _classCallCheck(this, AsYouTypeFormatter);\n\n this.metadata = metadata;\n this.resetFormat();\n }\n\n _createClass(AsYouTypeFormatter, [{\n key: \"resetFormat\",\n value: function resetFormat() {\n this.chosenFormat = undefined;\n this.template = undefined;\n this.nationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplatePosition = -1;\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan, state) {\n this.resetFormat();\n\n if (numberingPlan) {\n this.isNANP = numberingPlan.callingCode() === '1';\n this.matchingFormats = numberingPlan.formats();\n\n if (state.nationalSignificantNumber) {\n this.narrowDownMatchingFormats(state);\n }\n } else {\n this.isNANP = undefined;\n this.matchingFormats = [];\n }\n }\n /**\r\n * Formats an updated phone number.\r\n * @param {string} nextDigits — Additional phone number digits.\r\n * @param {object} state — `AsYouType` state.\r\n * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n */\n\n }, {\n key: \"format\",\n value: function format(nextDigits, state) {\n var _this = this;\n\n // See if the phone number digits can be formatted as a complete phone number.\n // If not, use the results from `formatNationalNumberWithNextDigits()`,\n // which formats based on the chosen formatting pattern.\n //\n // Attempting to format complete phone number first is how it's done\n // in Google's `libphonenumber`, so this library just follows it.\n // Google's `libphonenumber` code doesn't explain in detail why does it\n // attempt to format digits as a complete phone number\n // instead of just going with a previoulsy (or newly) chosen `format`:\n //\n // \"Checks to see if there is an exact pattern match for these digits.\n // If so, we should use this instead of any other formatting template\n // whose leadingDigitsPattern also matches the input.\"\n //\n if (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n var formattedCompleteNumber = formatCompleteNumber(state, format, {\n metadata: this.metadata,\n shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n return _this.shouldTryNationalPrefixFormattingRule(format, {\n international: state.international,\n nationalPrefix: state.nationalPrefix\n });\n },\n getSeparatorAfterNationalPrefix: function getSeparatorAfterNationalPrefix(format) {\n return _this.getSeparatorAfterNationalPrefix(format);\n }\n });\n\n if (formattedCompleteNumber) {\n this.resetFormat();\n this.chosenFormat = format;\n this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state);\n this.populatedNationalNumberTemplate = formattedCompleteNumber; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER);\n return formattedCompleteNumber;\n }\n }\n } // Format the digits as a partial (incomplete) phone number\n // using the previously chosen formatting pattern (or a newly chosen one).\n\n\n return this.formatNationalNumberWithNextDigits(nextDigits, state);\n } // Formats the next phone number digits.\n\n }, {\n key: \"formatNationalNumberWithNextDigits\",\n value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n var previouslyChosenFormat = this.chosenFormat; // Choose a format from the list of matching ones.\n\n var newlyChosenFormat = this.chooseFormat(state);\n\n if (newlyChosenFormat) {\n if (newlyChosenFormat === previouslyChosenFormat) {\n // If it can format the next (current) digits\n // using the previously chosen phone number format\n // then return the updated formatted number.\n return this.formatNextNationalNumberDigits(nextDigits);\n } else {\n // If a more appropriate phone number format\n // has been chosen for these \"leading digits\",\n // then re-format the national phone number part\n // using the newly selected format.\n return this.formatNextNationalNumberDigits(state.getNationalDigits());\n }\n }\n }\n }, {\n key: \"narrowDownMatchingFormats\",\n value: function narrowDownMatchingFormats(_ref2) {\n var _this2 = this;\n\n var nationalSignificantNumber = _ref2.nationalSignificantNumber,\n nationalPrefix = _ref2.nationalPrefix,\n international = _ref2.international;\n var leadingDigits = nationalSignificantNumber; // \"leading digits\" pattern list starts with a\n // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n // So, after a user inputs 3 digits of a national (significant) phone number\n // this national (significant) number can already be formatted.\n // The next \"leading digits\" pattern is for 4 leading digits max,\n // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n // This implementation is different from Google's\n // in that it searches for a fitting format\n // even if the user has entered less than\n // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n // Because some leading digit patterns already match for a single first digit.\n\n var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n\n if (leadingDigitsPatternIndex < 0) {\n leadingDigitsPatternIndex = 0;\n }\n\n this.matchingFormats = this.matchingFormats.filter(function (format) {\n return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n }); // If there was a phone number format chosen\n // and it no longer holds given the new leading digits then reset it.\n // The test for this `if` condition is marked as:\n // \"Reset a chosen format when it no longer holds given the new leading digits\".\n // To construct a valid test case for this one can find a country\n // in `PhoneNumberMetadata.xml` yielding one format for 3 `<leadingDigits>`\n // and yielding another format for 4 `<leadingDigits>` (Australia in this case).\n\n if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n this.resetFormat();\n }\n }\n }, {\n key: \"formatSuits\",\n value: function formatSuits(format, international, nationalPrefix) {\n // When a prefix before a national (significant) number is\n // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n // In more complex cases, a prefix before national (significant) number\n // could include a national prefix as well as some \"capturing groups\",\n // and in that case there's no info whether a national prefix has been parsed.\n // If national prefix is not used when formatting a phone number\n // using this format, but a national prefix has been entered by the user,\n // and was extracted, then discard such phone number format.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n if (nationalPrefix && !format.usesNationalPrefix() && // !format.domesticCarrierCodeFormattingRule() &&\n !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n return false;\n } // If national prefix is mandatory for this phone number format\n // and there're no guarantees that a national prefix is present in user input\n // then discard this phone number format as not suitable.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n\n\n if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"formatMatches\",\n value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; // If this format is not restricted to a certain\n // leading digits pattern then it fits.\n // The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n\n if (leadingDigitsPatternsCount === 0) {\n return true;\n } // Start narrowing down the list of possible formats based on the leading digits.\n // (only previously matched formats take part in the narrowing down process)\n // `leading_digits_patterns` start with 3 digits min\n // and then go up from there one digit at a time.\n\n\n leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; // Google imposes a requirement on the leading digits\n // to be minimum 3 digits long in order to be eligible\n // for checking those with a leading digits pattern.\n //\n // Since `leading_digits_patterns` start with 3 digits min,\n // Google's original `libphonenumber` library only starts\n // excluding any non-matching formats only when the\n // national number entered so far is at least 3 digits long,\n // otherwise format matching would give false negatives.\n //\n // For example, when the digits entered so far are `2`\n // and the leading digits pattern is `21` –\n // it's quite obvious in this case that the format could be the one\n // but due to the absence of further digits it would give false negative.\n //\n // Also, `leading_digits_patterns` doesn't always correspond to a single\n // digits count. For example, `60|8` pattern would already match `8`\n // but the `60` part would require having at least two leading digits,\n // so the whole pattern would require inputting two digits first in order to\n // decide on whether it matches the input, even when the input is \"80\".\n //\n // This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\n // even when there's only 1 or 2 digits of the national (significant) number.\n // To do that, it uses a non-strict pattern matcher written specifically for that.\n //\n\n if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n // Before leading digits < 3 matching was implemented:\n // return true\n //\n // After leading digits < 3 matching was implemented:\n try {\n return new PatternMatcher(leadingDigitsPattern).match(leadingDigits, {\n allowOverflow: true\n }) !== undefined;\n } catch (error)\n /* istanbul ignore next */\n {\n // There's a slight possibility that there could be some undiscovered bug\n // in the pattern matcher code. Since the \"leading digits < 3 matching\"\n // feature is not \"essential\" for operation, it can fall back to the old way\n // in case of any issues rather than halting the application's execution.\n console.error(error);\n return true;\n }\n } // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n // available then use the usual regular expression matching.\n //\n // The whole pattern is wrapped in round brackets (`()`) because\n // the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n //\n\n\n return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n }\n }, {\n key: \"getFormatFormat\",\n value: function getFormatFormat(format, international) {\n return international ? format.internationalFormat() : format.format();\n }\n }, {\n key: \"chooseFormat\",\n value: function chooseFormat(state) {\n var _this3 = this;\n\n var _loop = function _loop() {\n var format = _step2.value;\n\n // If this format is currently being used\n // and is still suitable, then stick to it.\n if (_this3.chosenFormat === format) {\n return \"break\";\n } // Sometimes, a formatting rule inserts additional digits in a phone number,\n // and \"as you type\" formatter can't do that: it should only use the digits\n // that the user has input.\n //\n // For example, in Argentina, there's a format for mobile phone numbers:\n //\n // {\n // \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n // \"leading_digits_patterns\": [\"91\"],\n // \"national_prefix_formatting_rule\": \"0$1\",\n // \"format\": \"$2 15-$3-$4\",\n // \"international_format\": \"$1 $2 $3-$4\"\n // }\n //\n // In that format, `international_format` is used instead of `format`\n // because `format` inserts `15` in the formatted number,\n // and `AsYouType` formatter should only use the digits\n // the user has actually input, without adding any extra digits.\n // In this case, it wouldn't make a difference, because the `15`\n // is first stripped when applying `national_prefix_for_parsing`\n // and then re-added when using `format`, so in reality it doesn't\n // add any new digits to the number, but to detect that, the code\n // would have to be more complex: it would have to try formatting\n // the digits using the format and then see if any digits have\n // actually been added or removed, and then, every time a new digit\n // is input, it should re-check whether the chosen format doesn't\n // alter the digits.\n //\n // Google's code doesn't go that far, and so does this library:\n // it simply requires that a `format` doesn't add any additonal\n // digits to user's input.\n //\n // Also, people in general should move from inputting phone numbers\n // in national format (possibly with national prefixes)\n // and use international phone number format instead:\n // it's a logical thing in the modern age of mobile phones,\n // globalization and the internet.\n //\n\n /* istanbul ignore if */\n\n\n if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) {\n return \"continue\";\n }\n\n if (!_this3.createTemplateForFormat(format, state)) {\n // Remove the format if it can't generate a template.\n _this3.matchingFormats = _this3.matchingFormats.filter(function (_) {\n return _ !== format;\n });\n return \"continue\";\n }\n\n _this3.chosenFormat = format;\n return \"break\";\n };\n\n // When there are multiple available formats, the formatter uses the first\n // format where a formatting template could be created.\n //\n // For some weird reason, `istanbul` says \"else path not taken\"\n // for the `for of` line below. Supposedly that means that\n // the loop doesn't ever go over the last element in the list.\n // That's true because there always is `this.chosenFormat`\n // when `this.matchingFormats` is non-empty.\n // And, for some weird reason, it doesn't think that the case\n // with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n // So simply muting this `istanbul` warning.\n // It doesn't skip the contents of the `for of` loop,\n // it just skips the `for of` line.\n //\n\n /* istanbul ignore next */\n for (var _iterator2 = _createForOfIteratorHelperLoose(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done;) {\n var _ret = _loop();\n\n if (_ret === \"break\") break;\n if (_ret === \"continue\") continue;\n }\n\n if (!this.chosenFormat) {\n // No format matches the national (significant) phone number.\n this.resetFormat();\n }\n\n return this.chosenFormat;\n }\n }, {\n key: \"createTemplateForFormat\",\n value: function createTemplateForFormat(format, state) {\n // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n // (20|3)\\d{4}. In those cases we quickly return.\n // (Though there's no such format in current metadata)\n\n /* istanbul ignore if */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n return;\n } // Get formatting template for this phone number format\n\n\n var template = this.getTemplateForFormat(format, state); // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (template) {\n this.setNationalNumberTemplate(template, state);\n return true;\n }\n }\n }, {\n key: \"getSeparatorAfterNationalPrefix\",\n value: function getSeparatorAfterNationalPrefix(format) {\n // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n // so the `if` condition below doesn't apply to `US`,\n // but in reality there shoudl be a separator\n // between a national prefix and a national (significant) number.\n // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n if (this.isNANP) {\n return ' ';\n } // If a `format` has a `national_prefix_formatting_rule`\n // and that rule has a separator after a national prefix,\n // then it means that there should be a separator\n // between a national prefix and a national (significant) number.\n\n\n if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n return ' ';\n } // At this point, there seems to be no clear evidence that\n // there should be a separator between a national prefix\n // and a national (significant) number. So don't insert one.\n\n\n return '';\n }\n }, {\n key: \"getInternationalPrefixBeforeCountryCallingCode\",\n value: function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) {\n var IDDPrefix = _ref3.IDDPrefix,\n missingPlus = _ref3.missingPlus;\n\n if (IDDPrefix) {\n return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n }\n\n if (missingPlus) {\n return '';\n }\n\n return '+';\n }\n }, {\n key: \"getTemplate\",\n value: function getTemplate(state) {\n if (!this.template) {\n return;\n } // `this.template` holds the template for a \"complete\" phone number.\n // The currently entered phone number is most likely not \"complete\",\n // so trim all non-populated digits.\n\n\n var index = -1;\n var i = 0;\n var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n spacing: false\n }) : '';\n\n while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n\n return cutAndStripNonPairedParens(this.template, index + 1);\n }\n }, {\n key: \"setNationalNumberTemplate\",\n value: function setNationalNumberTemplate(template, state) {\n this.nationalNumberTemplate = template;\n this.populatedNationalNumberTemplate = template; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = -1; // For convenience, the public `.template` property\n // contains the whole international number\n // if the phone number being input is international:\n // 'x' for the '+' sign, 'x'es for the country phone code,\n // a spacebar and then the template for the formatted national number.\n\n if (state.international) {\n this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n } else {\n this.template = template;\n }\n }\n /**\r\n * Generates formatting template for a national phone number,\r\n * optionally containing a national prefix, for a format.\r\n * @param {Format} format\r\n * @param {string} nationalPrefix\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplateForFormat\",\n value: function getTemplateForFormat(format, _ref4) {\n var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n international = _ref4.international,\n nationalPrefix = _ref4.nationalPrefix,\n complexPrefixBeforeNationalSignificantNumber = _ref4.complexPrefixBeforeNationalSignificantNumber;\n var pattern = format.pattern();\n /* istanbul ignore else */\n\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n pattern = pattern // Replace anything in the form of [..] with \\d\n .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d') // Replace any standalone digit (not the one in `{}`) with \\d\n .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n } // Generate a dummy national number (consisting of `9`s)\n // that fits this format's `pattern`.\n //\n // This match will always succeed,\n // because the \"longest dummy phone number\"\n // has enough length to accomodate any possible\n // national phone number format pattern.\n //\n\n\n var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (nationalSignificantNumber.length > digits.length) {\n return;\n } // Get a formatting template which can be used to efficiently format\n // a partial number where digits are added one by one.\n // Below `strictPattern` is used for the\n // regular expression (with `^` and `$`).\n // This wasn't originally in Google's `libphonenumber`\n // and I guess they don't really need it\n // because they're not using \"templates\" to format phone numbers\n // but I added `strictPattern` after encountering\n // South Korean phone number formatting bug.\n //\n // Non-strict regular expression bug demonstration:\n //\n // this.nationalSignificantNumber : `111111111` (9 digits)\n //\n // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n // format : `$1 $2 $3`\n // digits : `9999999999` (10 digits)\n //\n // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n //\n // template : xx xxxx xxxx\n //\n // But the correct template in this case is `xx xxx xxxx`.\n // The template was generated incorrectly because of the\n // `{3,4}` variability in the `pattern`.\n //\n // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n // is used instead of `digits`.\n\n\n var strictPattern = new RegExp('^' + pattern + '$');\n var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT); // If `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then use it\n // instead of `digits`.\n\n if (strictPattern.test(nationalNumberDummyDigits)) {\n digits = nationalNumberDummyDigits;\n }\n\n var numberFormat = this.getFormatFormat(format, international);\n var nationalPrefixIncludedInTemplate; // If a user did input a national prefix (and that's guaranteed),\n // and if a `format` does have a national prefix formatting rule,\n // then see if that national prefix formatting rule\n // prepends exactly the same national prefix the user has input.\n // If that's the case, then use the `format` with the national prefix formatting rule.\n // Otherwise, use the `format` without the national prefix formatting rule,\n // and prepend a national prefix manually to it.\n\n if (this.shouldTryNationalPrefixFormattingRule(format, {\n international: international,\n nationalPrefix: nationalPrefix\n })) {\n var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()); // If `national_prefix_formatting_rule` of a `format` simply prepends\n // national prefix at the start of a national (significant) number,\n // then such formatting can be used with `AsYouType` formatter.\n // There seems to be no `else` case: everywhere in metadata,\n // national prefix formatting rule is national prefix + $1,\n // or `($1)`, in which case such format isn't even considered\n // when the user has input a national prefix.\n\n /* istanbul ignore else */\n\n if (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n numberFormat = numberFormatWithNationalPrefix;\n nationalPrefixIncludedInTemplate = true; // Replace all digits of the national prefix in the formatting template\n // with `DIGIT_PLACEHOLDER`s.\n\n if (nationalPrefix) {\n var i = nationalPrefix.length;\n\n while (i > 0) {\n numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n i--;\n }\n }\n }\n } // Generate formatting template for this phone number format.\n\n\n var template = digits // Format the dummy phone number according to the format.\n .replace(new RegExp(pattern), numberFormat) // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER); // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then just prepend such prefix\n // before the national (significant) number, optionally spacing\n // the two with a whitespace.\n\n if (!nationalPrefixIncludedInTemplate) {\n if (complexPrefixBeforeNationalSignificantNumber) {\n // Prepend the prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) + ' ' + template;\n } else if (nationalPrefix) {\n // Prepend national prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n\n if (international) {\n template = applyInternationalSeparatorStyle(template);\n }\n\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n var result = populateTemplateWithDigits(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n\n if (!result) {\n // Reset the format.\n this.resetFormat();\n return;\n }\n\n this.populatedNationalNumberTemplate = result[0];\n this.populatedNationalNumberTemplatePosition = result[1]; // Return the formatted phone number so far.\n\n return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); // The old way which was good for `input-format` but is not so good\n // for `react-phone-number-input`'s default input (`InputBasic`).\n // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n }\n }, {\n key: \"shouldTryNationalPrefixFormattingRule\",\n value: function shouldTryNationalPrefixFormattingRule(format, _ref5) {\n var international = _ref5.international,\n nationalPrefix = _ref5.nationalPrefix;\n\n if (format.nationalPrefixFormattingRule()) {\n // In some countries, `national_prefix_formatting_rule` is `($1)`,\n // so it applies even if the user hasn't input a national prefix.\n // `format.usesNationalPrefix()` detects such cases.\n var usesNationalPrefix = format.usesNationalPrefix();\n\n if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n return true;\n }\n }\n }\n }]);\n\n return AsYouTypeFormatter;\n}();\n\nexport { AsYouTypeFormatter as default };\n//# sourceMappingURL=AsYouTypeFormatter.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport _extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants.js';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$'); // Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\n\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\n\nvar AsYouTypeParser = /*#__PURE__*/function () {\n function AsYouTypeParser(_ref) {\n var defaultCountry = _ref.defaultCountry,\n defaultCallingCode = _ref.defaultCallingCode,\n metadata = _ref.metadata,\n onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n\n _classCallCheck(this, AsYouTypeParser);\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.metadata = metadata;\n this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n }\n\n _createClass(AsYouTypeParser, [{\n key: \"input\",\n value: function input(text, state) {\n var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n formattedDigits = _extractFormattedDigi2[0],\n hasPlus = _extractFormattedDigi2[1];\n\n var digits = parseDigits(formattedDigits); // Checks for a special case: just a leading `+` has been entered.\n\n var justLeadingPlus;\n\n if (hasPlus) {\n if (!state.digits) {\n state.startInternationalNumber();\n\n if (!digits) {\n justLeadingPlus = true;\n }\n }\n }\n\n if (digits) {\n this.inputDigits(digits, state);\n }\n\n return {\n digits: digits,\n justLeadingPlus: justLeadingPlus\n };\n }\n /**\r\n * Inputs \"next\" phone number digits.\r\n * @param {string} digits\r\n * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n */\n\n }, {\n key: \"inputDigits\",\n value: function inputDigits(nextDigits, state) {\n var digits = state.digits;\n var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3; // Append phone number digits.\n\n state.appendDigits(nextDigits); // Attempt to extract IDD prefix:\n // Some users input their phone number in international format,\n // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers as soon as there're at least 3 digits.\n // Google's library attempts to extract IDD prefix at 3 digits,\n // so this library just copies that behavior.\n // I guess that's because the most commot IDD prefixes are\n // `00` (Europe) and `011` (US).\n // There exist really long IDD prefixes too:\n // for example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n // An IDD prefix is extracted here, and then every time when\n // there's a new digit and the number couldn't be formatted.\n\n if (hasReceivedThreeLeadingDigits) {\n this.extractIddPrefix(state);\n }\n\n if (this.isWaitingForCountryCallingCode(state)) {\n if (!this.extractCountryCallingCode(state)) {\n return;\n }\n } else {\n state.appendNationalSignificantNumberDigits(nextDigits);\n } // If a phone number is being input in international format,\n // then it's not valid for it to have a national prefix.\n // Still, some people incorrectly input such numbers with a national prefix.\n // In such cases, only attempt to strip a national prefix if the number becomes too long.\n // (but that is done later, not here)\n\n\n if (!state.international) {\n if (!this.hasExtractedNationalSignificantNumber) {\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }\n }, {\n key: \"isWaitingForCountryCallingCode\",\n value: function isWaitingForCountryCallingCode(_ref2) {\n var international = _ref2.international,\n callingCode = _ref2.callingCode;\n return international && !callingCode;\n } // Extracts a country calling code from a number\n // being entered in internatonal format.\n\n }, {\n key: \"extractCountryCallingCode\",\n value: function extractCountryCallingCode(state) {\n var _extractCountryCallin = _extractCountryCallingCode('+' + state.getDigitsWithoutInternationalPrefix(), this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n state.setCallingCode(countryCallingCode);\n state.update({\n nationalSignificantNumber: number\n });\n return true;\n }\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan) {\n if (numberingPlan) {\n this.hasSelectedNumberingPlan = true;\n\n var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n\n this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n } else {\n this.hasSelectedNumberingPlan = undefined;\n this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n }\n }\n /**\r\n * Extracts a national (significant) number from user input.\r\n * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n * and doesn't apply `national_prefix_transform_rule` after that.\r\n * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n * @return {boolean} [extracted]\r\n */\n\n }, {\n key: \"extractNationalSignificantNumber\",\n value: function extractNationalSignificantNumber(nationalDigits, setState) {\n if (!this.hasSelectedNumberingPlan) {\n return;\n }\n\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe.nationalPrefix,\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n if (nationalNumber === nationalDigits) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n /**\r\n * In Google's code this function is called \"attempt to extract longer NDD\".\r\n * \"Some national prefixes are a substring of others\", they say.\r\n * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n */\n\n }, {\n key: \"extractAnotherNationalSignificantNumber\",\n value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n if (!this.hasExtractedNationalSignificantNumber) {\n return this.extractNationalSignificantNumber(nationalDigits, setState);\n }\n\n if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n return;\n }\n\n var _extractNationalNumbe2 = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n nationalNumber = _extractNationalNumbe2.nationalNumber,\n carrierCode = _extractNationalNumbe2.carrierCode; // If a national prefix has been extracted previously,\n // then it's always extracted as additional digits are added.\n // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n // doesn't do anything different from what it currently does.\n // So, just in case, here's this check, though it doesn't occur.\n\n /* istanbul ignore if */\n\n\n if (nationalNumber === prevNationalSignificantNumber) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n }, {\n key: \"onExtractedNationalNumber\",\n value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n var complexPrefixBeforeNationalSignificantNumber;\n var nationalSignificantNumberMatchesInput; // This check also works with empty `this.nationalSignificantNumber`.\n\n var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber); // If the extracted national (significant) number is the\n // last substring of the `digits`, then it means that it hasn't been altered:\n // no digits have been removed from the national (significant) number\n // while applying `national_prefix_transform_rule`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\n if (nationalSignificantNumberIndex >= 0 && nationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\n nationalSignificantNumberMatchesInput = true; // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then such prefix is stored in\n // `this.complexPrefixBeforeNationalSignificantNumber` property and will be\n // prepended \"as is\" to the national (significant) number to produce\n // a formatted result.\n\n var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex); // `prefixBeforeNationalNumber` is always non-empty,\n // because `onExtractedNationalNumber()` isn't called\n // when a national (significant) number hasn't been actually \"extracted\":\n // when a national (significant) number is equal to the national part of `digits`,\n // then `onExtractedNationalNumber()` doesn't get called.\n\n if (prefixBeforeNationalNumber !== nationalPrefix) {\n complexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber;\n }\n }\n\n setState({\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode,\n nationalSignificantNumber: nationalSignificantNumber,\n nationalSignificantNumberMatchesInput: nationalSignificantNumberMatchesInput,\n complexPrefixBeforeNationalSignificantNumber: complexPrefixBeforeNationalSignificantNumber\n }); // `onExtractedNationalNumber()` is only called when\n // the national (significant) number actually did change.\n\n this.hasExtractedNationalSignificantNumber = true;\n this.onNationalSignificantNumberChange();\n }\n }, {\n key: \"reExtractNationalSignificantNumber\",\n value: function reExtractNationalSignificantNumber(state) {\n // Attempt to extract a national prefix.\n //\n // Some people incorrectly input national prefix\n // in an international phone number.\n // For example, some people write British phone numbers as `+44(0)...`.\n //\n // Also, in some rare cases, it is valid for a national prefix\n // to be a part of an international phone number.\n // For example, mobile phone numbers in Mexico are supposed to be\n // dialled internationally using a `1` national prefix,\n // so the national prefix will be part of an international number.\n //\n // Quote from:\n // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n //\n // \"Dialing a Mexican cell phone from abroad\n // When you are calling a cell phone number in Mexico from outside Mexico,\n // it’s necessary to dial an additional “1†after Mexico’s country code\n // (which is “52â€) and before the area code.\n // You also ignore the 045, and simply dial the area code and the\n // cell phone’s number.\n //\n // If you don’t add the “1â€, you’ll receive a recorded announcement\n // asking you to redial using it.\n //\n // For example, if you are calling from the USA to a cell phone\n // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n // (Note that this is different to calling a land line in Mexico City\n // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n //\n // Google's demo output:\n // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n //\n if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function (stateUpdate) {\n return state.update(stateUpdate);\n })) {\n return true;\n } // If no format matches the phone number, then it could be\n // \"a really long IDD\" (quote from a comment in Google's library).\n // An IDD prefix is first extracted when the user has entered at least 3 digits,\n // and then here — every time when there's a new digit and the number\n // couldn't be formatted.\n // For example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n //\n // Could also check `!hasReceivedThreeLeadingDigits` here\n // to filter out the case when this check duplicates the one\n // already performed when there're 3 leading digits,\n // but it's not a big deal, and in most cases there\n // will be a suitable `format` when there're 3 leading digits.\n //\n\n\n if (this.extractIddPrefix(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n } // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n // when it \"autocorrects\" numbers that have been input for a country\n // with that country's calling code.\n // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n // https://github.com/catamphetamine/libphonenumber-js/issues/375\n // https://github.com/catamphetamine/libphonenumber-js/issues/316\n\n\n if (this.fixMissingPlus(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n }\n }, {\n key: \"extractIddPrefix\",\n value: function extractIddPrefix(state) {\n // An IDD prefix can't be present in a number written with a `+`.\n // Also, don't re-extract an IDD prefix if has already been extracted.\n var international = state.international,\n IDDPrefix = state.IDDPrefix,\n digits = state.digits,\n nationalSignificantNumber = state.nationalSignificantNumber;\n\n if (international || IDDPrefix) {\n return;\n } // Some users input their phone number in \"out-of-country\"\n // dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers.\n\n\n var numberWithoutIDD = stripIddPrefix(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n\n if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n // If an IDD prefix was stripped then convert the IDD-prefixed number\n // to international number for subsequent parsing.\n state.update({\n IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n });\n this.startInternationalNumber(state, {\n country: undefined,\n callingCode: undefined\n });\n return true;\n }\n }\n }, {\n key: \"fixMissingPlus\",\n value: function fixMissingPlus(state) {\n if (!state.international) {\n var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(state.digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n newCallingCode = _extractCountryCallin2.countryCallingCode,\n number = _extractCountryCallin2.number;\n\n if (newCallingCode) {\n state.update({\n missingPlus: true\n });\n this.startInternationalNumber(state, {\n country: state.country,\n callingCode: newCallingCode\n });\n return true;\n }\n }\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(state, _ref3) {\n var country = _ref3.country,\n callingCode = _ref3.callingCode;\n state.startInternationalNumber(country, callingCode); // If a national (significant) number has been extracted before, reset it.\n\n if (state.nationalSignificantNumber) {\n state.resetNationalSignificantNumber();\n this.onNationalSignificantNumberChange();\n this.hasExtractedNationalSignificantNumber = undefined;\n }\n }\n }, {\n key: \"extractCallingCodeAndNationalSignificantNumber\",\n value: function extractCallingCodeAndNationalSignificantNumber(state) {\n if (this.extractCountryCallingCode(state)) {\n // `this.extractCallingCode()` is currently called when the number\n // couldn't be formatted during the standard procedure.\n // Normally, the national prefix would be re-extracted\n // for an international number if such number couldn't be formatted,\n // but since it's already not able to be formatted,\n // there won't be yet another retry, so also extract national prefix here.\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }]);\n\n return AsYouTypeParser;\n}();\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\n\n\nexport { AsYouTypeParser as default };\n\nfunction extractFormattedPhoneNumber(text) {\n // Attempt to extract a possible number from the string passed in.\n var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n\n if (startsAt < 0) {\n return;\n } // Trim everything to the left of the phone number.\n\n\n text = text.slice(startsAt); // Trim the `+`.\n\n var hasPlus;\n\n if (text[0] === '+') {\n hasPlus = true;\n text = text.slice('+'.length);\n } // Trim everything to the right of the phone number.\n\n\n text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ''); // Re-add the previously trimmed `+`.\n\n if (hasPlus) {\n text = '+' + text;\n }\n\n return text;\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nfunction _extractFormattedDigitsAndPlus(text) {\n // Extract a formatted phone number part from text.\n var extractedNumber = extractFormattedPhoneNumber(text) || ''; // Trim a `+`.\n\n if (extractedNumber[0] === '+') {\n return [extractedNumber.slice('+'.length), true];\n }\n\n return [extractedNumber];\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nexport function extractFormattedDigitsAndPlus(text) {\n var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n formattedDigits = _extractFormattedDigi4[0],\n hasPlus = _extractFormattedDigi4[1]; // If the extracted phone number part\n // can possibly be a part of some valid phone number\n // then parse phone number characters from a formatted phone number.\n\n\n if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n formattedDigits = '';\n }\n\n return [formattedDigits, hasPlus];\n}\n//# sourceMappingURL=AsYouTypeParser.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport PhoneNumber from './PhoneNumber.js';\nimport AsYouTypeState from './AsYouTypeState.js';\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js';\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js';\nimport isObject from './helpers/isObject.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar AsYouType = /*#__PURE__*/function () {\n /**\r\n * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n * @param {Object} metadata\r\n */\n function AsYouType(optionsOrDefaultCountry, metadata) {\n _classCallCheck(this, AsYouType);\n\n this.metadata = new Metadata(metadata);\n\n var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n defaultCountry = _this$getCountryAndCa2[0],\n defaultCallingCode = _this$getCountryAndCa2[1]; // `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\n // For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\n // So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\n\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.reset();\n }\n\n _createClass(AsYouType, [{\n key: \"getCountryAndCallingCode\",\n value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n // Set `defaultCountry` and `defaultCallingCode` options.\n var defaultCountry;\n var defaultCallingCode; // Turns out `null` also has type \"object\". Weird.\n\n if (optionsOrDefaultCountry) {\n if (isObject(optionsOrDefaultCountry)) {\n defaultCountry = optionsOrDefaultCountry.defaultCountry;\n defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n } else {\n defaultCountry = optionsOrDefaultCountry;\n }\n }\n\n if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n defaultCountry = undefined;\n }\n\n if (defaultCallingCode) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n defaultCountry = '001';\n }\n }\n }\n\n return [defaultCountry, defaultCallingCode];\n }\n /**\r\n * Inputs \"next\" phone number characters.\r\n * @param {string} text\r\n * @return {string} Formatted phone number characters that have been input so far.\r\n */\n\n }, {\n key: \"input\",\n value: function input(text) {\n var _this$parser$input = this.parser.input(text, this.state),\n digits = _this$parser$input.digits,\n justLeadingPlus = _this$parser$input.justLeadingPlus;\n\n if (justLeadingPlus) {\n this.formattedOutput = '+';\n } else if (digits) {\n this.determineTheCountryIfNeeded(); // Match the available formats by the currently available leading digits.\n\n if (this.state.nationalSignificantNumber) {\n this.formatter.narrowDownMatchingFormats(this.state);\n }\n\n var formattedNationalNumber;\n\n if (this.metadata.hasSelectedNumberingPlan()) {\n formattedNationalNumber = this.formatter.format(digits, this.state);\n }\n\n if (formattedNationalNumber === undefined) {\n // See if another national (significant) number could be re-extracted.\n if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n this.determineTheCountryIfNeeded(); // If it could, then re-try formatting the new national (significant) number.\n\n var nationalDigits = this.state.getNationalDigits();\n\n if (nationalDigits) {\n formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n }\n }\n }\n\n this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n }\n\n return this.formattedOutput;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this = this;\n\n this.state = new AsYouTypeState({\n onCountryChange: function onCountryChange(country) {\n // Before version `1.6.0`, the official `AsYouType` formatter API\n // included the `.country` property of an `AsYouType` instance.\n // Since that property (along with the others) have been moved to\n // `this.state`, `this.country` property is emulated for compatibility\n // with the old versions.\n _this.country = country;\n },\n onCallingCodeChange: function onCallingCodeChange(callingCode, country) {\n _this.metadata.selectNumberingPlan(country, callingCode);\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n\n _this.parser.reset(_this.metadata.numberingPlan);\n }\n });\n this.formatter = new AsYouTypeFormatter({\n state: this.state,\n metadata: this.metadata\n });\n this.parser = new AsYouTypeParser({\n defaultCountry: this.defaultCountry,\n defaultCallingCode: this.defaultCallingCode,\n metadata: this.metadata,\n state: this.state,\n onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n _this.determineTheCountryIfNeeded();\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n }\n });\n this.state.reset({\n country: this.defaultCountry,\n callingCode: this.defaultCallingCode\n });\n this.formattedOutput = '';\n return this;\n }\n /**\r\n * Returns `true` if the phone number is being input in international format.\r\n * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isInternational\",\n value: function isInternational() {\n return this.state.international;\n }\n /**\r\n * Returns the \"calling code\" part of the phone number when it's being input\r\n * in an international format.\r\n * If no valid calling code has been entered so far, returns `undefined`.\r\n * @return {string} [callingCode]\r\n */\n\n }, {\n key: \"getCallingCode\",\n value: function getCallingCode() {\n // If the number is being input in national format and some \"default calling code\"\n // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n // is equal to that \"default calling code\".\n //\n // If the number is being input in national format and no \"default calling code\"\n // has been passed to `AsYouType` constructor, then returns `undefined`,\n // even if a \"default country\" has been passed to `AsYouType` constructor.\n //\n if (this.isInternational()) {\n return this.state.callingCode;\n }\n } // A legacy alias.\n\n }, {\n key: \"getCountryCallingCode\",\n value: function getCountryCallingCode() {\n return this.getCallingCode();\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * Returns `undefined` if no phone number has been input yet.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"getCountry\",\n value: function getCountry() {\n var digits = this.state.digits; // Return `undefined` if no digits have been input yet.\n\n if (digits) {\n return this._getCountry();\n }\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"_getCountry\",\n value: function _getCountry() {\n var country = this.state.country;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n // `AsYouType.getCountry()` returns `undefined`\n // for \"non-geographic\" phone numbering plans.\n if (country === '001') {\n return;\n }\n }\n\n return country;\n }\n }, {\n key: \"determineTheCountryIfNeeded\",\n value: function determineTheCountryIfNeeded() {\n // Suppose a user enters a phone number in international format,\n // and there're several countries corresponding to that country calling code,\n // and a country has been derived from the number, and then\n // a user enters one more digit and the number is no longer\n // valid for the derived country, so the country should be re-derived\n // on every new digit in those cases.\n //\n // If the phone number is being input in national format,\n // then it could be a case when `defaultCountry` wasn't specified\n // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n // and that \"calling code\" could correspond to a \"non-geographic entity\",\n // or there could be several countries corresponding to that country calling code.\n // In those cases, `this.country` is `undefined` and should be derived\n // from the number. Again, if country calling code is ambiguous, then\n // `this.country` should be re-derived with each new digit.\n //\n if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n this.determineTheCountry();\n }\n } // Prepends `+CountryCode ` in case of an international phone number\n\n }, {\n key: \"getFullNumber\",\n value: function getFullNumber(formattedNationalNumber) {\n var _this2 = this;\n\n if (this.isInternational()) {\n var prefix = function prefix(text) {\n return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n spacing: text ? true : false\n }) + text;\n };\n\n var callingCode = this.state.callingCode;\n\n if (!callingCode) {\n return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n }\n\n if (!formattedNationalNumber) {\n return prefix(callingCode);\n }\n\n return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n }\n\n return formattedNationalNumber;\n }\n }, {\n key: \"getNonFormattedNationalNumberWithPrefix\",\n value: function getNonFormattedNationalNumberWithPrefix() {\n var _this$state = this.state,\n nationalSignificantNumber = _this$state.nationalSignificantNumber,\n complexPrefixBeforeNationalSignificantNumber = _this$state.complexPrefixBeforeNationalSignificantNumber,\n nationalPrefix = _this$state.nationalPrefix;\n var number = nationalSignificantNumber;\n var prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix;\n\n if (prefix) {\n number = prefix + number;\n }\n\n return number;\n }\n }, {\n key: \"getNonFormattedNumber\",\n value: function getNonFormattedNumber() {\n var nationalSignificantNumberMatchesInput = this.state.nationalSignificantNumberMatchesInput;\n return this.getFullNumber(nationalSignificantNumberMatchesInput ? this.getNonFormattedNationalNumberWithPrefix() : this.state.getNationalDigits());\n }\n }, {\n key: \"getNonFormattedTemplate\",\n value: function getNonFormattedTemplate() {\n var number = this.getNonFormattedNumber();\n\n if (number) {\n return number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n }\n }\n }, {\n key: \"isCountryCallingCodeAmbiguous\",\n value: function isCountryCallingCodeAmbiguous() {\n var callingCode = this.state.callingCode;\n var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n return countryCodes && countryCodes.length > 1;\n } // Determines the country of the phone number\n // entered so far based on the country phone code\n // and the national phone number.\n\n }, {\n key: \"determineTheCountry\",\n value: function determineTheCountry() {\n this.state.setCountry(getCountryByCallingCode(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, {\n nationalNumber: this.state.nationalSignificantNumber,\n defaultCountry: this.defaultCountry,\n metadata: this.metadata\n }));\n }\n /**\r\n * Returns a E.164 phone number value for the user's input.\r\n *\r\n * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n * it will return `\"+12223334444\"`.\r\n *\r\n * For international phone number input, it will also auto-correct\r\n * some minor errors such as using a national prefix when writing\r\n * an international phone number. For example, if the user inputs\r\n * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n * `\"+447400000000\"` phone number value.\r\n *\r\n * Will return `undefined` if no digits have been input,\r\n * or when inputting a phone number in national format and no\r\n * default country or default \"country calling code\" have been set.\r\n *\r\n * @return {string} [value]\r\n */\n\n }, {\n key: \"getNumberValue\",\n value: function getNumberValue() {\n var _this$state2 = this.state,\n digits = _this$state2.digits,\n callingCode = _this$state2.callingCode,\n country = _this$state2.country,\n nationalSignificantNumber = _this$state2.nationalSignificantNumber; // Will return `undefined` if no digits have been input.\n\n if (!digits) {\n return;\n }\n\n if (this.isInternational()) {\n if (callingCode) {\n return '+' + callingCode + nationalSignificantNumber;\n } else {\n return '+' + digits;\n }\n } else {\n if (country || callingCode) {\n var callingCode_ = country ? this.metadata.countryCallingCode() : callingCode;\n return '+' + callingCode_ + nationalSignificantNumber;\n }\n }\n }\n /**\r\n * Returns an instance of `PhoneNumber` class.\r\n * Will return `undefined` if no national (significant) number\r\n * digits have been entered so far, or if no `defaultCountry` has been\r\n * set and the user enters a phone number not in international format.\r\n */\n\n }, {\n key: \"getNumber\",\n value: function getNumber() {\n var _this$state3 = this.state,\n nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n carrierCode = _this$state3.carrierCode,\n callingCode = _this$state3.callingCode; // `this._getCountry()` is basically same as `this.state.country`\n // with the only change that it return `undefined` in case of a\n // \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n\n var country = this._getCountry();\n\n if (!nationalSignificantNumber) {\n return;\n } // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\n // So `country` and `callingCode` are totally independent.\n\n\n if (!country && !callingCode) {\n return;\n } // By default, if `defaultCountry` parameter was passed when\n // creating `AsYouType` instance, `state.country` is gonna be\n // that `defaultCountry`, which doesn't entirely conform with\n // `parsePhoneNumber()`'s behavior where it attempts to determine\n // the country more precisely in cases when multiple countries\n // could correspond to the same `countryCallingCode`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\n //\n // Because `AsYouType.getNumber()` method is supposed to be a 1:1\n // equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\n // then it should also behave accordingly in cases of `country` ambiguity.\n // That's how users of this library would expect it to behave anyway.\n //\n\n\n if (country) {\n if (country === this.defaultCountry) {\n // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n // So `state.country` and `state.callingCode` are totally independent.\n var metadata = new Metadata(this.metadata.metadata);\n metadata.selectNumberingPlan(country);\n\n var _callingCode = metadata.numberingPlan.callingCode();\n\n var ambiguousCountries = this.metadata.getCountryCodesForCallingCode(_callingCode);\n\n if (ambiguousCountries.length > 1) {\n var exactCountry = getCountryByNationalNumber(nationalSignificantNumber, {\n countries: ambiguousCountries,\n defaultCountry: this.defaultCountry,\n metadata: this.metadata.metadata\n });\n\n if (exactCountry) {\n country = exactCountry;\n }\n }\n }\n }\n\n var phoneNumber = new PhoneNumber(country || callingCode, nationalSignificantNumber, this.metadata.metadata);\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n } // Phone number extensions are not supported by \"As You Type\" formatter.\n\n\n return phoneNumber;\n }\n /**\r\n * Returns `true` if the phone number is \"possible\".\r\n * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isPossible();\n }\n /**\r\n * Returns `true` if the phone number is \"valid\".\r\n * Is just a shortcut for `PhoneNumber.isValid()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isValid\",\n value: function isValid() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isValid();\n }\n /**\r\n * @deprecated\r\n * This method is used in `react-phone-number-input/source/input-control.js`\r\n * in versions before `3.0.16`.\r\n */\n\n }, {\n key: \"getNationalNumber\",\n value: function getNationalNumber() {\n return this.state.nationalSignificantNumber;\n }\n /**\r\n * Returns the phone number characters entered by the user.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getChars\",\n value: function getChars() {\n return (this.state.international ? '+' : '') + this.state.digits;\n }\n /**\r\n * Returns the template for the formatted phone number.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplate\",\n value: function getTemplate() {\n return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n }\n }]);\n\n return AsYouType;\n}();\n\nexport { AsYouType as default };\n//# sourceMappingURL=AsYouType.js.map","import Metadata from './metadata.js';\nexport default function getCountries(metadata) {\n return new Metadata(metadata).getCountries();\n}\n//# sourceMappingURL=getCountries.js.map","import AsYouType from './AsYouType.js';\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string|object} [optionsOrDefaultCountry] - A two-letter (\"ISO 3166-1 alpha-2\") country code, or an object of shape `{ defaultCountry?: string, defaultCallingCode?: string }`.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\n\nexport default function formatIncompletePhoneNumber(value, optionsOrDefaultCountry, metadata) {\n if (!metadata) {\n metadata = optionsOrDefaultCountry;\n optionsOrDefaultCountry = undefined;\n }\n\n return new AsYouType(optionsOrDefaultCountry, metadata).input(value);\n}\n//# sourceMappingURL=formatIncompletePhoneNumber.js.map","import { getCountryCallingCode } from 'libphonenumber-js/core';\nexport function getPrefixForFormattingValueAsPhoneNumber(_ref) {\n var inputFormat = _ref.inputFormat,\n country = _ref.country,\n metadata = _ref.metadata;\n return inputFormat === 'NATIONAL_PART_OF_INTERNATIONAL' ? \"+\".concat(getCountryCallingCode(country, metadata)) : '';\n}\nexport function removePrefixFromFormattedPhoneNumber(value, prefix) {\n if (prefix) {\n value = value.slice(prefix.length);\n if (value[0] === ' ') {\n value = value.slice(1);\n }\n }\n return value;\n}\n//# sourceMappingURL=inputValuePrefix.js.map","import { parsePhoneNumberCharacter } from 'libphonenumber-js/core';\n\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object?} context - An optional object that could be used by this function to set arbitrary \"flags\". The object should be shared within the parsing of the whole string.\r\n * @return {string?} The parsed character.\r\n */\nexport default function parsePhoneNumberCharacter_(character, prevParsedCharacters, context) {\n // `context` argument was added as a third argument of `parse()` function\n // in `input-format` package on Dec 26th, 2023. So it could potentially be\n // `undefined` here if a 3rd-party app somehow ends up with this newer version\n // of `react-phone-number-input` and an older version of `input-format`.\n // Dunno how, but just in case, it could be `undefined` here and it wouldn't break.\n // Maybe it's not required to handle `undefined` case here.\n //\n // The addition of the `context` argument was to fix the slightly-weird behavior\n // of parsing an input string when the user inputs something like `\"2+7\"\n // https://github.com/catamphetamine/react-phone-number-input/issues/437\n //\n // If the parser encounters an unexpected `+` in a string being parsed\n // then it simply discards that out-of-place `+` and any following characters.\n //\n if (context && context.ignoreRest) {\n return;\n }\n var emitEvent = function emitEvent(eventName) {\n if (context) {\n switch (eventName) {\n case 'end':\n context.ignoreRest = true;\n break;\n }\n }\n };\n return parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent);\n}\n//# sourceMappingURL=parsePhoneNumberCharacter.js.map","import { useCallback } from 'react';\n\n// Returns a custom `onKeyDown` handler that works around a Backspace keypress edge case:\n// * `<PhoneInputWithCountrySelect international countryCallingCodeEditable={false}/>`\n// * When placing the caret before the leading plus character and pressing Backspace,\n// it duplicates the country calling code in the `<input/>`.\n// https://github.com/catamphetamine/react-phone-number-input/issues/442\nexport default function useInputKeyDownHandler(_ref) {\n var onKeyDown = _ref.onKeyDown,\n inputFormat = _ref.inputFormat;\n return useCallback(function (event) {\n // Usability:\n // Don't allow the user to erase a leading \"+\" character when \"international\" input mode is forced.\n // That indicates to the user that they can't possibly enter the phone number in a non-international format.\n if (event.keyCode === BACKSPACE_KEY_CODE && inputFormat === 'INTERNATIONAL') {\n // It checks `event.target` here for being an `<input/>` element\n // because \"keydown\" events may bubble from arbitrary child elements\n // so there's no guarantee that `event.target` represents an `<input/>` element.\n // Also, since `inputComponent` is not neceesarily an `<input/>`, this check is required too.\n if (event.target instanceof HTMLInputElement) {\n if (getCaretPosition(event.target) === LEADING_PLUS.length) {\n event.preventDefault();\n return;\n }\n }\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n }, [onKeyDown, inputFormat]);\n}\n\n// Gets the caret position in an `<input/>` field.\n// The caret position starts with `0` which means \"before the first character\".\nfunction getCaretPosition(element) {\n return element.selectionStart;\n}\nvar BACKSPACE_KEY_CODE = 8;\nvar LEADING_PLUS = '+';\n//# sourceMappingURL=useInputKeyDownHandler.js.map","var _excluded = [\"onKeyDown\", \"country\", \"inputFormat\", \"metadata\", \"international\", \"withCountryCallingCode\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport Input from 'input-format/react';\nimport { AsYouType } from 'libphonenumber-js/core';\nimport { getPrefixForFormattingValueAsPhoneNumber, removePrefixFromFormattedPhoneNumber } from './helpers/inputValuePrefix.js';\nimport parsePhoneNumberCharacter from './helpers/parsePhoneNumberCharacter.js';\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js';\nexport function createInput(defaultMetadata) {\n /**\r\n * `InputSmart` is a \"smarter\" implementation of a `Component`\r\n * that can be passed to `<PhoneInput/>`. It parses and formats\r\n * the user's and maintains the caret's position in the process.\r\n * The caret positioning is maintained using `input-format` library.\r\n * Relies on being run in a DOM environment for calling caret positioning functions.\r\n */\n function InputSmart(_ref, ref) {\n var onKeyDown = _ref.onKeyDown,\n country = _ref.country,\n inputFormat = _ref.inputFormat,\n _ref$metadata = _ref.metadata,\n metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n international = _ref.international,\n withCountryCallingCode = _ref.withCountryCallingCode,\n rest = _objectWithoutProperties(_ref, _excluded);\n var format = useCallback(function (value) {\n // \"As you type\" formatter.\n var formatter = new AsYouType(country, metadata);\n var prefix = getPrefixForFormattingValueAsPhoneNumber({\n inputFormat: inputFormat,\n country: country,\n metadata: metadata\n });\n\n // Format the number.\n var text = formatter.input(prefix + value);\n var template = formatter.getTemplate();\n if (prefix) {\n text = removePrefixFromFormattedPhoneNumber(text, prefix);\n // `AsYouType.getTemplate()` can be `undefined`.\n if (template) {\n template = removePrefixFromFormattedPhoneNumber(template, prefix);\n }\n }\n return {\n text: text,\n template: template\n };\n }, [country, metadata]);\n var _onKeyDown = useInputKeyDownHandler({\n onKeyDown: onKeyDown,\n inputFormat: inputFormat\n });\n return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {\n ref: ref,\n parse: parsePhoneNumberCharacter,\n format: format,\n onKeyDown: _onKeyDown\n }));\n }\n InputSmart = /*#__PURE__*/React.forwardRef(InputSmart);\n InputSmart.propTypes = {\n /**\r\n * The parsed phone number.\r\n * \"Parsed\" not in a sense of \"E.164\"\r\n * but rather in a sense of \"having only\r\n * digits and possibly a leading plus character\".\r\n * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n */\n value: PropTypes.string.isRequired,\n /**\r\n * A function of `value: string`.\r\n * Updates the `value` property.\r\n */\n onChange: PropTypes.func.isRequired,\n /**\r\n * A function of `event: Event`.\r\n * Handles `keydown` events.\r\n */\n onKeyDown: PropTypes.func,\n /**\r\n * A two-letter country code for formatting `value`\r\n * as a national phone number (e.g. `(800) 555 35 35`).\r\n * E.g. \"US\", \"RU\", etc.\r\n * If no `country` is passed then `value`\r\n * is formatted as an international phone number.\r\n * (e.g. `+7 800 555 35 35`)\r\n * This property should've been called `defaultCountry`\r\n * because it only applies when the user inputs a phone number in a national format\r\n * and is completely ignored when the user inputs a phone number in an international format.\r\n */\n country: PropTypes.string,\n /**\r\n * The format that the input field value is being input/output in.\r\n */\n inputFormat: PropTypes.oneOf(['INTERNATIONAL', 'NATIONAL_PART_OF_INTERNATIONAL', 'NATIONAL', 'INTERNATIONAL_OR_NATIONAL']).isRequired,\n /**\r\n * `libphonenumber-js` metadata.\r\n */\n metadata: PropTypes.object\n };\n return InputSmart;\n}\nexport default createInput();\n//# sourceMappingURL=InputSmart.js.map","var _excluded = [\"value\", \"onChange\", \"onKeyDown\", \"country\", \"inputFormat\", \"metadata\", \"inputComponent\", \"international\", \"withCountryCallingCode\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { parseIncompletePhoneNumber, formatIncompletePhoneNumber } from 'libphonenumber-js/core';\nimport { getPrefixForFormattingValueAsPhoneNumber, removePrefixFromFormattedPhoneNumber } from './helpers/inputValuePrefix.js';\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js';\nexport function createInput(defaultMetadata) {\n /**\r\n * `InputBasic` is the most basic implementation of a `Component`\r\n * that can be passed to `<PhoneInput/>`. It parses and formats\r\n * the user's input but doesn't control the caret in the process:\r\n * when erasing or inserting digits in the middle of a phone number\r\n * the caret usually jumps to the end (this is the expected behavior).\r\n * Why does `InputBasic` exist when there's `InputSmart`?\r\n * One reason is working around the [Samsung Galaxy smart caret positioning bug]\r\n * (https://github.com/catamphetamine/react-phone-number-input/issues/75).\r\n * Another reason is that, unlike `InputSmart`, it doesn't require DOM environment.\r\n */\n function InputBasic(_ref, ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n country = _ref.country,\n inputFormat = _ref.inputFormat,\n _ref$metadata = _ref.metadata,\n metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n _ref$inputComponent = _ref.inputComponent,\n Input = _ref$inputComponent === void 0 ? 'input' : _ref$inputComponent,\n international = _ref.international,\n withCountryCallingCode = _ref.withCountryCallingCode,\n rest = _objectWithoutProperties(_ref, _excluded);\n var prefix = getPrefixForFormattingValueAsPhoneNumber({\n inputFormat: inputFormat,\n country: country,\n metadata: metadata\n });\n var _onChange = useCallback(function (event) {\n var newValue = parseIncompletePhoneNumber(event.target.value);\n // By default, if a value is something like `\"(123)\"`\n // then Backspace would only erase the rightmost brace\n // becoming something like `\"(123\"`\n // which would give the same `\"123\"` value\n // which would then be formatted back to `\"(123)\"`\n // and so a user wouldn't be able to erase the phone number.\n //\n // This issue is worked around with this simple hack:\n // when \"old\" and \"new\" parsed values are the same,\n // it checks if the \"new\" formatted value could be obtained\n // from the \"old\" formatted value by erasing some (or no) characters at the right side.\n // If it could then it's likely that the user has hit a Backspace key\n // and what they really intended was to erase a rightmost digit rather than\n // a rightmost punctuation character.\n //\n if (newValue === value) {\n var newValueFormatted = format(prefix, newValue, country, metadata);\n if (newValueFormatted.indexOf(event.target.value) === 0) {\n // Trim the last digit (or plus sign).\n newValue = newValue.slice(0, -1);\n }\n }\n onChange(newValue);\n }, [prefix, value, onChange, country, metadata]);\n var _onKeyDown = useInputKeyDownHandler({\n onKeyDown: onKeyDown,\n inputFormat: inputFormat\n });\n return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {\n ref: ref,\n value: format(prefix, value, country, metadata),\n onChange: _onChange,\n onKeyDown: _onKeyDown\n }));\n }\n InputBasic = /*#__PURE__*/React.forwardRef(InputBasic);\n InputBasic.propTypes = {\n /**\r\n * The parsed phone number.\r\n * \"Parsed\" not in a sense of \"E.164\"\r\n * but rather in a sense of \"having only\r\n * digits and possibly a leading plus character\".\r\n * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n */\n value: PropTypes.string.isRequired,\n /**\r\n * A function of `value: string`.\r\n * Updates the `value` property.\r\n */\n onChange: PropTypes.func.isRequired,\n /**\r\n * A function of `event: Event`.\r\n * Handles `keydown` events.\r\n */\n onKeyDown: PropTypes.func,\n /**\r\n * A two-letter country code for formatting `value`\r\n * as a national phone number (e.g. `(800) 555 35 35`).\r\n * E.g. \"US\", \"RU\", etc.\r\n * If no `country` is passed then `value`\r\n * is formatted as an international phone number.\r\n * (e.g. `+7 800 555 35 35`)\r\n * This property should've been called `defaultCountry`\r\n * because it only applies when the user inputs a phone number in a national format\r\n * and is completely ignored when the user inputs a phone number in an international format.\r\n */\n country: PropTypes.string,\n /**\r\n * The format that the input field value is being input/output in.\r\n */\n inputFormat: PropTypes.oneOf(['INTERNATIONAL', 'NATIONAL_PART_OF_INTERNATIONAL', 'NATIONAL', 'INTERNATIONAL_OR_NATIONAL']).isRequired,\n /**\r\n * `libphonenumber-js` metadata.\r\n */\n metadata: PropTypes.object,\n /**\r\n * The `<input/>` component.\r\n */\n inputComponent: PropTypes.elementType\n };\n return InputBasic;\n}\nexport default createInput();\nfunction format(prefix, value, country, metadata) {\n return removePrefixFromFormattedPhoneNumber(formatIncompletePhoneNumber(prefix + value, country, metadata), prefix);\n}\n//# sourceMappingURL=InputBasic.js.map","/**\r\n * Creates Unicode flag from a two-letter ISO country code.\r\n * https://stackoverflow.com/questions/24050671/how-to-put-japan-flag-character-in-a-string\r\n * @param {string} country — A two-letter ISO country code (case-insensitive).\r\n * @return {string}\r\n */\nexport default function getCountryFlag(country) {\n return getRegionalIndicatorSymbol(country[0]) + getRegionalIndicatorSymbol(country[1]);\n}\n/**\r\n * Converts a letter to a Regional Indicator Symbol.\r\n * @param {string} letter\r\n * @return {string}\r\n */\n\nfunction getRegionalIndicatorSymbol(letter) {\n return String.fromCodePoint(0x1F1E6 - 65 + letter.toUpperCase().charCodeAt(0));\n}\n//# sourceMappingURL=unicode.js.map","var _excluded = [\"value\", \"onChange\", \"options\", \"disabled\", \"readOnly\"],\n _excluded2 = [\"value\", \"options\", \"className\", \"iconComponent\", \"getIconAspectRatio\", \"arrowComponent\", \"unicodeFlags\"];\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport getUnicodeFlagIcon from 'country-flag-icons/unicode';\nexport default function CountrySelect(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n options = _ref.options,\n disabled = _ref.disabled,\n readOnly = _ref.readOnly,\n rest = _objectWithoutProperties(_ref, _excluded);\n var onChange_ = useCallback(function (event) {\n var value = event.target.value;\n onChange(value === 'ZZ' ? undefined : value);\n }, [onChange]);\n var selectedOption = useMemo(function () {\n return getSelectedOption(options, value);\n }, [options, value]);\n\n // \"ZZ\" means \"International\".\n // (HTML requires each `<option/>` have some string `value`).\n return /*#__PURE__*/React.createElement(\"select\", _extends({}, rest, {\n disabled: disabled || readOnly,\n readOnly: readOnly,\n value: value || 'ZZ',\n onChange: onChange_\n }), options.map(function (_ref2) {\n var value = _ref2.value,\n label = _ref2.label,\n divider = _ref2.divider;\n return /*#__PURE__*/React.createElement(\"option\", {\n key: divider ? '|' : value || 'ZZ',\n value: divider ? '|' : value || 'ZZ',\n disabled: divider ? true : false,\n style: divider ? DIVIDER_STYLE : undefined\n }, label);\n }));\n}\nCountrySelect.propTypes = {\n /**\r\n * A two-letter country code.\r\n * Example: \"US\", \"RU\", etc.\r\n */\n value: PropTypes.string,\n /**\r\n * A function of `value: string`.\r\n * Updates the `value` property.\r\n */\n onChange: PropTypes.func.isRequired,\n // `<select/>` options.\n options: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n divider: PropTypes.bool\n })).isRequired,\n // `readonly` attribute doesn't work on a `<select/>`.\n // https://github.com/catamphetamine/react-phone-number-input/issues/419#issuecomment-1764384480\n // https://www.delftstack.com/howto/html/html-select-readonly/\n // To work around that, if `readOnly: true` property is passed\n // to this component, it behaves analogous to `disabled: true`.\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool\n};\nvar DIVIDER_STYLE = {\n fontSize: '1px',\n backgroundColor: 'currentColor',\n color: 'inherit'\n};\nexport function CountrySelectWithIcon(_ref3) {\n var value = _ref3.value,\n options = _ref3.options,\n className = _ref3.className,\n Icon = _ref3.iconComponent,\n getIconAspectRatio = _ref3.getIconAspectRatio,\n _ref3$arrowComponent = _ref3.arrowComponent,\n Arrow = _ref3$arrowComponent === void 0 ? DefaultArrowComponent : _ref3$arrowComponent,\n unicodeFlags = _ref3.unicodeFlags,\n rest = _objectWithoutProperties(_ref3, _excluded2);\n var selectedOption = useMemo(function () {\n return getSelectedOption(options, value);\n }, [options, value]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"PhoneInputCountry\"\n }, /*#__PURE__*/React.createElement(CountrySelect, _extends({}, rest, {\n value: value,\n options: options,\n className: classNames('PhoneInputCountrySelect', className)\n })), selectedOption && (unicodeFlags && value ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"PhoneInputCountryIconUnicode\"\n }, getUnicodeFlagIcon(value)) : /*#__PURE__*/React.createElement(Icon, {\n \"aria-hidden\": true,\n country: value,\n label: selectedOption.label,\n aspectRatio: unicodeFlags ? 1 : undefined\n })), /*#__PURE__*/React.createElement(Arrow, null));\n}\nCountrySelectWithIcon.propTypes = {\n // Country flag component.\n iconComponent: PropTypes.elementType,\n // Select arrow component.\n arrowComponent: PropTypes.elementType,\n // Set to `true` to render Unicode flag icons instead of SVG images.\n unicodeFlags: PropTypes.bool\n};\nfunction DefaultArrowComponent() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"PhoneInputCountrySelectArrow\"\n });\n}\nfunction getSelectedOption(options, value) {\n for (var _iterator = _createForOfIteratorHelperLoose(options), _step; !(_step = _iterator()).done;) {\n var option = _step.value;\n if (!option.divider) {\n if (isSameOptionValue(option.value, value)) {\n return option;\n }\n }\n }\n}\nfunction isSameOptionValue(value1, value2) {\n // `undefined` is identical to `null`: both mean \"no country selected\".\n if (value1 === undefined || value1 === null) {\n return value2 === undefined || value2 === null;\n }\n return value1 === value2;\n}\n//# sourceMappingURL=CountrySelect.js.map","var _excluded = [\"country\", \"countryName\", \"flags\", \"flagUrl\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n// Default country flag icon.\n// `<img/>` is wrapped in a `<div/>` to prevent SVGs from exploding in size in IE 11.\n// https://github.com/catamphetamine/react-phone-number-input/issues/111\nexport default function FlagComponent(_ref) {\n var country = _ref.country,\n countryName = _ref.countryName,\n flags = _ref.flags,\n flagUrl = _ref.flagUrl,\n rest = _objectWithoutProperties(_ref, _excluded);\n if (flags && flags[country]) {\n return flags[country]({\n title: countryName\n });\n }\n return /*#__PURE__*/React.createElement(\"img\", _extends({}, rest, {\n alt: countryName,\n role: countryName ? undefined : \"presentation\",\n src: flagUrl.replace('{XX}', country).replace('{xx}', country.toLowerCase())\n }));\n}\nFlagComponent.propTypes = {\n // The country to be selected by default.\n // Two-letter country code (\"ISO 3166-1 alpha-2\").\n country: PropTypes.string.isRequired,\n // Will be HTML `title` attribute of the `<img/>`.\n countryName: PropTypes.string.isRequired,\n // Country flag icon components.\n // By default flag icons are inserted as `<img/>`s\n // with their `src` pointed to `country-flag-icons` gitlab pages website.\n // There might be cases (e.g. an offline application)\n // where having a large (3 megabyte) `<svg/>` flags\n // bundle is more appropriate.\n // `import flags from 'react-phone-number-input/flags'`.\n flags: PropTypes.objectOf(PropTypes.elementType),\n // A URL for a country flag icon.\n // By default it points to `country-flag-icons` gitlab pages website.\n flagUrl: PropTypes.string.isRequired\n};\n//# sourceMappingURL=Flag.js.map","var _excluded = [\"aspectRatio\"],\n _excluded2 = [\"title\"],\n _excluded3 = [\"title\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nexport default function InternationalIcon(_ref) {\n var aspectRatio = _ref.aspectRatio,\n rest = _objectWithoutProperties(_ref, _excluded);\n if (aspectRatio === 1) {\n return /*#__PURE__*/React.createElement(InternationalIcon1x1, rest);\n } else {\n return /*#__PURE__*/React.createElement(InternationalIcon3x2, rest);\n }\n}\nInternationalIcon.propTypes = {\n title: PropTypes.string.isRequired,\n aspectRatio: PropTypes.number\n};\n\n// 3x2.\n// Using `<title/>` in `<svg/>`s:\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\nfunction InternationalIcon3x2(_ref2) {\n var title = _ref2.title,\n rest = _objectWithoutProperties(_ref2, _excluded2);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 75 50\"\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n className: \"PhoneInputInternationalIconGlobe\",\n stroke: \"currentColor\",\n fill: \"none\",\n strokeWidth: \"2\",\n strokeMiterlimit: \"10\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n d: \"M47.2,36.1C48.1,36,49,36,50,36c7.4,0,14,1.7,18.5,4.3\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.6,9.6C64.2,12.3,57.5,14,50,14c-7.4,0-14-1.7-18.5-4.3\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"26\",\n y1: \"25\",\n x2: \"74\",\n y2: \"25\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"50\",\n y1: \"1\",\n x2: \"50\",\n y2: \"49\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n d: \"M46.3,48.7c1.2,0.2,2.5,0.3,3.7,0.3c13.3,0,24-10.7,24-24S63.3,1,50,1S26,11.7,26,25c0,2,0.3,3.9,0.7,5.8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n d: \"M46.8,48.2c1,0.6,2.1,0.8,3.2,0.8c6.6,0,12-10.7,12-24S56.6,1,50,1S38,11.7,38,25c0,1.4,0.1,2.7,0.2,4c0,0.1,0,0.2,0,0.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"PhoneInputInternationalIconPhone\",\n stroke: \"none\",\n fill: \"currentColor\",\n d: \"M12.4,17.9c2.9-2.9,5.4-4.8,0.3-11.2S4.1,5.2,1.3,8.1C-2,11.4,1.1,23.5,13.1,35.6s24.3,15.2,27.5,11.9c2.8-2.8,7.8-6.3,1.4-11.5s-8.3-2.6-11.2,0.3c-2,2-7.2-2.2-11.7-6.7S10.4,19.9,12.4,17.9z\"\n }));\n}\nInternationalIcon3x2.propTypes = {\n title: PropTypes.string.isRequired\n};\n\n// 1x1.\n// Using `<title/>` in `<svg/>`s:\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\nfunction InternationalIcon1x1(_ref3) {\n var title = _ref3.title,\n rest = _objectWithoutProperties(_ref3, _excluded3);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50 50\"\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n className: \"PhoneInputInternationalIconGlobe\",\n stroke: \"currentColor\",\n fill: \"none\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.45,13A21.44,21.44,0,1,1,37.08,41.56\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.36,35.47a36.9,36.9,0,0,1-2.28-13.24C17.08,10.39,21.88.85,27.8.85s10.72,9.54,10.72,21.38c0,6.48-1.44,12.28-3.71,16.21\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.41,33.4A39,39,0,0,1,27.8,32.06c6.62,0,12.55,1.5,16.48,3.86\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.29,8.53c-3.93,2.37-9.86,3.88-16.49,3.88S15.25,10.9,11.31,8.54\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"27.8\",\n y1: \"0.85\",\n x2: \"27.8\",\n y2: \"34.61\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"15.2\",\n y1: \"22.23\",\n x2: \"49.15\",\n y2: \"22.23\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"PhoneInputInternationalIconPhone\",\n stroke: \"transparent\",\n fill: \"currentColor\",\n d: \"M9.42,26.64c2.22-2.22,4.15-3.59.22-8.49S3.08,17,.93,19.17c-2.49,2.48-.13,11.74,9,20.89s18.41,11.5,20.89,9c2.15-2.15,5.91-4.77,1-8.71s-6.27-2-8.49.22c-1.55,1.55-5.48-1.69-8.86-5.08S7.87,28.19,9.42,26.64Z\"\n }));\n}\nInternationalIcon1x1.propTypes = {\n title: PropTypes.string.isRequired\n};\n//# sourceMappingURL=InternationalIcon.js.map","// Tells if `value: string` is an `E.164` phone number.\n//\n// Returns a boolean.\n//\n// It doesn't validate that the minimum national (significant) number length\n// is at least 2 characters.\n//\nexport default function isE164Number(value) {\n if (value.length < 2) {\n return false;\n }\n if (value[0] !== '+') {\n return false;\n }\n var i = 1;\n while (i < value.length) {\n var character = value.charCodeAt(i);\n if (character >= 48 && character <= 57) {\n // Is a digit.\n } else {\n return false;\n }\n i++;\n }\n return true;\n}\nexport function validateE164Number(value) {\n if (!isE164Number(value)) {\n console.error('[react-phone-number-input] Expected the initial `value` to be a E.164 phone number. Got', value);\n }\n}\n//# sourceMappingURL=isE164Number.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n// Ignores weird istanbul error: \"else path not taken\".\nimport { isSupportedCountry } from 'libphonenumber-js/core';\nexport { getCountries } from 'libphonenumber-js/core';\n\n/**\r\n * Sorts country `<select/>` options.\r\n * Can move some country `<select/>` options\r\n * to the top of the list, for example.\r\n * @param {object[]} countryOptions — Country `<select/>` options.\r\n * @param {string[]} [countryOptionsOrder] — Country `<select/>` options order. Example: `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`.\r\n * @return {object[]}\r\n */\nexport function sortCountryOptions(options, order) {\n if (!order) {\n return options;\n }\n var optionsOnTop = [];\n var optionsOnBottom = [];\n var appendTo = optionsOnTop;\n var _loop = function _loop() {\n var element = _step.value;\n if (element === '|') {\n appendTo.push({\n divider: true\n });\n } else if (element === '...' || element === '…') {\n appendTo = optionsOnBottom;\n } else {\n var countryCode;\n if (element === 'ðŸŒ') {\n countryCode = undefined;\n } else {\n countryCode = element;\n }\n // Find the position of the option.\n var index = options.indexOf(options.filter(function (option) {\n return option.value === countryCode;\n })[0]);\n // Get the option.\n var option = options[index];\n // Remove the option from its default position.\n options.splice(index, 1);\n // Add the option on top.\n appendTo.push(option);\n }\n };\n for (var _iterator = _createForOfIteratorHelperLoose(order), _step; !(_step = _iterator()).done;) {\n _loop();\n }\n return optionsOnTop.concat(options).concat(optionsOnBottom);\n}\nexport function getSupportedCountryOptions(countryOptions, metadata) {\n if (countryOptions) {\n countryOptions = countryOptions.filter(function (option) {\n switch (option) {\n case 'ðŸŒ':\n case '|':\n case '...':\n case '…':\n return true;\n default:\n return isCountrySupportedWithError(option, metadata);\n }\n });\n if (countryOptions.length > 0) {\n return countryOptions;\n }\n }\n}\nexport function isCountrySupportedWithError(country, metadata) {\n if (isSupportedCountry(country, metadata)) {\n return true;\n } else {\n console.error(\"Country not found: \".concat(country));\n return false;\n }\n}\nexport function getSupportedCountries(countries, metadata) {\n if (countries) {\n countries = countries.filter(function (country) {\n return isCountrySupportedWithError(country, metadata);\n });\n if (countries.length === 0) {\n countries = undefined;\n }\n }\n return countries;\n}\n//# sourceMappingURL=countries.js.map","var _excluded = [\"country\", \"label\", \"aspectRatio\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport DefaultInternationalIcon from './InternationalIcon.js';\nimport Flag from './Flag.js';\nexport function createCountryIconComponent(_ref) {\n var flags = _ref.flags,\n flagUrl = _ref.flagUrl,\n FlagComponent = _ref.flagComponent,\n InternationalIcon = _ref.internationalIcon;\n function CountryIcon(_ref2) {\n var country = _ref2.country,\n label = _ref2.label,\n aspectRatio = _ref2.aspectRatio,\n rest = _objectWithoutProperties(_ref2, _excluded);\n // `aspectRatio` is currently a hack for the default \"International\" icon\n // to render it as a square when Unicode flag icons are used.\n // So `aspectRatio` property is only used with the default \"International\" icon.\n var _aspectRatio = InternationalIcon === DefaultInternationalIcon ? aspectRatio : undefined;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, rest, {\n className: classNames('PhoneInputCountryIcon', {\n 'PhoneInputCountryIcon--square': _aspectRatio === 1,\n 'PhoneInputCountryIcon--border': country\n })\n }), country ? /*#__PURE__*/React.createElement(FlagComponent, {\n country: country,\n countryName: label,\n flags: flags,\n flagUrl: flagUrl,\n className: \"PhoneInputCountryIconImg\"\n }) : /*#__PURE__*/React.createElement(InternationalIcon, {\n title: label,\n aspectRatio: _aspectRatio,\n className: \"PhoneInputCountryIconImg\"\n }));\n }\n CountryIcon.propTypes = {\n country: PropTypes.string,\n label: PropTypes.string.isRequired,\n aspectRatio: PropTypes.number\n };\n return CountryIcon;\n}\nexport default createCountryIconComponent({\n // Must be equal to `defaultProps.flagUrl` in `./PhoneInputWithCountry.js`.\n flagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',\n flagComponent: Flag,\n internationalIcon: DefaultInternationalIcon\n});\n//# sourceMappingURL=CountryIcon.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { useRef, useCallback } from 'react';\n\n/**\r\n * This hook creates an internal copy of a `ref`\r\n * and returns a new `ref`-alike setter function\r\n * that updates both `ref` and the internal copy of it.\r\n * That `ref`-alike setter function could then be passed\r\n * to child elements instead of the original `ref`.\r\n *\r\n * The internal copy of the `ref` can then be used to\r\n * call instance methods like `.focus()`, etc.\r\n *\r\n * One may ask: why create a copy of `ref` for \"internal\" use\r\n * when the code could use the original `ref` for that.\r\n * The answer is: the code would have to dance around the original `ref` anyway\r\n * to figure out whether it exists and to find out the internal implementation of it\r\n * in order to read its value correctly. This hook encapsulates all that \"boilerplate\" code.\r\n * The returned copy of the `ref` is guaranteed to exist and functions as a proper ref \"object\".\r\n * The returned `ref`-alike setter function must be used instead of the original `ref`\r\n * when passing it to child elements.\r\n *\r\n * @param {(object|function)} [externalRef] — The original `ref` that may have any internal implementation and might not even exist.\r\n * @return {any[]} Returns an array of two elements: a copy of the `ref` for \"internal\" use and a `ref`-alike setter function that should be used in-place of the original `ref` when passing it to child elements.\r\n */\nexport default function useExternalRef(externalRef) {\n // Create a copy of the original `ref` (which might not exist).\n // Both refs will point to the same value.\n var refCopy = useRef();\n\n // Updates both `ref`s with the same `value`.\n var refSetter = useCallback(function (value) {\n setRefsValue([externalRef, refCopy], value);\n }, [externalRef, refCopy]);\n return [refCopy, refSetter];\n}\n\n// Sets the same `value` of all `ref`s.\n// Some of the `ref`s may not exist in which case they'll be skipped.\nexport function setRefsValue(refs, value) {\n for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n var ref = _step.value;\n if (ref) {\n setRefValue(ref, value);\n }\n }\n}\n\n// Sets the value of a `ref`.\n// Before React Hooks were introduced, `ref`s used to be functions.\n// After React Hooks were introduces, `ref`s became objects with `.current` property.\n// This function sets a `ref`'s value regardless of its internal implementation,\n// so it supports both types of `ref`s.\nfunction setRefValue(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else {\n ref.current = value;\n }\n}\n//# sourceMappingURL=useExternalRef.js.map","import PropTypes from 'prop-types';\nexport var metadata = PropTypes.shape({\n country_calling_codes: PropTypes.object.isRequired,\n countries: PropTypes.object.isRequired\n});\nexport var labels = PropTypes.objectOf(PropTypes.string);\n//# sourceMappingURL=PropTypes.js.map","import { getCountryCallingCode, Metadata } from 'libphonenumber-js/core';\nvar ONLY_DIGITS_REGEXP = /^\\d+$/;\nexport default function getInternationalPhoneNumberPrefix(country, metadata) {\n // Standard international phone number prefix: \"+\" and \"country calling code\".\n var prefix = '+' + getCountryCallingCode(country, metadata);\n\n // \"Leading digits\" can't be used to rule out any countries.\n // So the \"pre-fill with leading digits on country selection\" feature had to be reverted.\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10#note_1231042367\n // // Get \"leading digits\" for a phone number of the country.\n // // If there're \"leading digits\" then they can be part of the prefix too.\n // // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10\n // metadata = new Metadata(metadata)\n // metadata.selectNumberingPlan(country)\n // // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // // condition for a phone number to belong to a country.\n // // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n // const leadingDigits = metadata.numberingPlan.leadingDigits()\n // if (leadingDigits && ONLY_DIGITS_REGEXP.test(leadingDigits)) {\n // \tprefix += leadingDigits\n // }\n\n return prefix;\n}\n//# sourceMappingURL=getInternationalPhoneNumberPrefix.js.map","import parsePhoneNumber_, { getCountryCallingCode, AsYouType, Metadata } from 'libphonenumber-js/core';\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js';\n\n/**\r\n * Decides which country should be pre-selected\r\n * when the phone number input component is first mounted.\r\n * @param {object?} phoneNumber - An instance of `PhoneNumber` class.\r\n * @param {string?} country - Pre-defined country (two-letter code).\r\n * @param {string[]?} countries - A list of countries available.\r\n * @param {object} metadata - `libphonenumber-js` metadata\r\n * @return {string?}\r\n */\nexport function getPreSelectedCountry(_ref) {\n var value = _ref.value,\n phoneNumber = _ref.phoneNumber,\n defaultCountry = _ref.defaultCountry,\n getAnyCountry = _ref.getAnyCountry,\n countries = _ref.countries,\n required = _ref.required,\n metadata = _ref.metadata;\n var country;\n\n // If can get country from E.164 phone number\n // then it overrides the `country` passed (or not passed).\n if (phoneNumber && phoneNumber.country) {\n // `country` will be left `undefined` in case of non-detection.\n country = phoneNumber.country;\n } else if (defaultCountry) {\n if (!value || couldNumberBelongToCountry(value, defaultCountry, metadata)) {\n country = defaultCountry;\n }\n }\n\n // Only pre-select a country if it's in the available `countries` list.\n if (countries && countries.indexOf(country) < 0) {\n country = undefined;\n }\n\n // If there will be no \"International\" option\n // then some `country` must be selected.\n // It will still be the wrong country though.\n // But still country `<select/>` can't be left in a broken state.\n if (!country && required && countries && countries.length > 0) {\n country = getAnyCountry();\n // noCountryMatchesTheNumber = true\n }\n return country;\n}\n\n/**\r\n * Generates a sorted list of country `<select/>` options.\r\n * @param {string[]} countries - A list of two-letter (\"ISO 3166-1 alpha-2\") country codes.\r\n * @param {object} labels - Custom country labels. E.g. `{ RU: 'РоÑÑиÑ', US: 'СШÐ', ... }`.\r\n * @param {boolean} addInternationalOption - Whether should include \"International\" option at the top of the list.\r\n * @return {object[]} A list of objects having shape `{ value : string, label : string }`.\r\n */\nexport function getCountrySelectOptions(_ref2) {\n var countries = _ref2.countries,\n countryNames = _ref2.countryNames,\n addInternationalOption = _ref2.addInternationalOption,\n compareStringsLocales = _ref2.compareStringsLocales,\n _compareStrings = _ref2.compareStrings;\n // Default country name comparator uses `String.localeCompare()`.\n if (!_compareStrings) {\n _compareStrings = compareStrings;\n }\n\n // Generates a `<Select/>` option for each country.\n var countrySelectOptions = countries.map(function (country) {\n return {\n value: country,\n // All `locale` country names included in this library\n // include all countries (this is checked at build time).\n // The only case when a country name might be missing\n // is when a developer supplies their own `labels` property.\n // To guard against such cases, a missing country name\n // is substituted by country code.\n label: countryNames[country] || country\n };\n });\n\n // Sort the list of countries alphabetically.\n countrySelectOptions.sort(function (a, b) {\n return _compareStrings(a.label, b.label, compareStringsLocales);\n });\n\n // Add the \"International\" option to the country list (if suitable)\n if (addInternationalOption) {\n countrySelectOptions.unshift({\n label: countryNames.ZZ\n });\n }\n return countrySelectOptions;\n}\n\n/**\r\n * Parses a E.164 phone number to an instance of `PhoneNumber` class.\r\n * @param {string?} value = E.164 phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata\r\n * @return {object} Object having shape `{ country: string?, countryCallingCode: string, number: string }`. `PhoneNumber`: https://gitlab.com/catamphetamine/libphonenumber-js#phonenumber.\r\n * @example\r\n * parsePhoneNumber('+78005553535')\r\n */\nexport function parsePhoneNumber(value, metadata) {\n return parsePhoneNumber_(value || '', metadata);\n}\n\n/**\r\n * Generates national number digits for a parsed phone.\r\n * May prepend national prefix.\r\n * The phone number must be a complete and valid phone number.\r\n * @param {object} phoneNumber - An instance of `PhoneNumber` class.\r\n * @param {object} metadata - `libphonenumber-js` metadata\r\n * @return {string}\r\n * @example\r\n * getNationalNumberDigits({ country: 'RU', phone: '8005553535' })\r\n * // returns '88005553535'\r\n */\nexport function generateNationalNumberDigits(phoneNumber) {\n return phoneNumber.formatNational().replace(/\\D/g, '');\n}\n\n/**\r\n * Migrates parsed `<input/>` `value` for the newly selected `country`.\r\n * @param {string?} phoneDigits - Phone number digits (and `+`) parsed from phone number `<input/>` (it's not the same as the `value` property).\r\n * @param {string?} prevCountry - Previously selected country.\r\n * @param {string?} newCountry - Newly selected country. Can't be same as previously selected country.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @param {boolean} useNationalFormat - whether should attempt to convert from international to national number for the new country.\r\n * @return {string?}\r\n */\nexport function getPhoneDigitsForNewCountry(phoneDigits, _ref3) {\n var prevCountry = _ref3.prevCountry,\n newCountry = _ref3.newCountry,\n metadata = _ref3.metadata,\n useNationalFormat = _ref3.useNationalFormat;\n if (prevCountry === newCountry) {\n return phoneDigits;\n }\n\n // If `parsed_input` is empty\n // then no need to migrate anything.\n if (!phoneDigits) {\n if (useNationalFormat) {\n return '';\n } else {\n if (newCountry) {\n // If `phoneDigits` is empty then set `phoneDigits` to\n // `+{getCountryCallingCode(newCountry)}`.\n return getInternationalPhoneNumberPrefix(newCountry, metadata);\n }\n return '';\n }\n }\n\n // If switching to some country.\n // (from \"International\" or another country)\n // If switching from \"International\" then `phoneDigits` starts with a `+`.\n // Otherwise it may or may not start with a `+`.\n if (newCountry) {\n // If the phone number was entered in international format\n // then migrate it to the newly selected country.\n // The phone number may be incomplete.\n // The phone number entered not necessarily starts with\n // the previously selected country phone prefix.\n if (phoneDigits[0] === '+') {\n // If the international phone number is for the new country\n // then convert it to local if required.\n if (useNationalFormat) {\n // // If a phone number is being input in international form\n // // and the country can already be derived from it,\n // // and if it is the new country, then format as a national number.\n // const derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(phoneDigits, metadata)\n // if (derived_country === newCountry) {\n // \treturn stripCountryCallingCode(phoneDigits, derived_country, metadata)\n // }\n\n // Actually, the two countries don't necessarily need to match:\n // the condition could be looser here, because several countries\n // might share the same international phone number format\n // (for example, \"NANPA\" countries like US, Canada, etc).\n // The looser condition would be just \"same nternational phone number format\"\n // which would mean \"same country calling code\" in the context of `libphonenumber-js`.\n if (phoneDigits.indexOf('+' + getCountryCallingCode(newCountry, metadata)) === 0) {\n return stripCountryCallingCode(phoneDigits, newCountry, metadata);\n }\n\n // Simply discard the previously entered international phone number,\n // because otherwise any \"smart\" transformation like getting the\n // \"national (significant) number\" part and then prepending the\n // newly selected country's \"country calling code\" to it\n // would just be confusing for a user without being actually useful.\n return '';\n\n // // Simply strip the leading `+` character\n // // therefore simply converting all digits into a \"local\" phone number.\n // // https://github.com/catamphetamine/react-phone-number-input/issues/287\n // return phoneDigits.slice(1)\n }\n if (prevCountry) {\n var newCountryPrefix = getInternationalPhoneNumberPrefix(newCountry, metadata);\n if (phoneDigits.indexOf(newCountryPrefix) === 0) {\n return phoneDigits;\n } else {\n return newCountryPrefix;\n }\n } else {\n var defaultValue = getInternationalPhoneNumberPrefix(newCountry, metadata);\n // If `phoneDigits`'s country calling code part is the same\n // as for the new `country`, then leave `phoneDigits` as is.\n if (phoneDigits.indexOf(defaultValue) === 0) {\n return phoneDigits;\n }\n // If `phoneDigits`'s country calling code part is not the same\n // as for the new `country`, then set `phoneDigits` to\n // `+{getCountryCallingCode(newCountry)}`.\n return defaultValue;\n }\n\n // // If the international phone number already contains\n // // any country calling code then trim the country calling code part.\n // // (that could also be the newly selected country phone code prefix as well)\n // // `phoneDigits` doesn't neccessarily belong to `prevCountry`.\n // // (e.g. if a user enters an international number\n // // not belonging to any of the reduced `countries` list).\n // phoneDigits = stripCountryCallingCode(phoneDigits, prevCountry, metadata)\n\n // // Prepend country calling code prefix\n // // for the newly selected country.\n // return e164(phoneDigits, newCountry, metadata) || `+${getCountryCallingCode(newCountry, metadata)}`\n }\n }\n // If switching to \"International\" from a country.\n else {\n // If the phone number was entered in national format.\n if (phoneDigits[0] !== '+') {\n // Format the national phone number as an international one.\n // The phone number entered not necessarily even starts with\n // the previously selected country phone prefix.\n // Even if the phone number belongs to whole another country\n // it will still be parsed into some national phone number.\n //\n // Ignore the now-uncovered `|| ''` code branch:\n // previously `e164()` function could return an empty string\n // even when `phoneDigits` were not empty.\n // Now it always returns some `value` when there're any `phoneDigits`.\n // Still, didn't remove the `|| ''` code branch just in case\n // that logic changes somehow in some future, so there're no\n // possible bugs related to that.\n //\n // (ignore the `|| ''` code branch)\n /* istanbul ignore next */\n return e164(phoneDigits, prevCountry, metadata) || '';\n }\n }\n return phoneDigits;\n}\n\n/**\r\n * Converts phone number digits to a (possibly incomplete) E.164 phone number.\r\n * @param {string?} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function e164(number, country, metadata) {\n if (!number) {\n return;\n }\n // If the phone number is being input in international format.\n if (number[0] === '+') {\n // If it's just the `+` sign then return nothing.\n if (number === '+') {\n return;\n }\n // Return a E.164 phone number.\n //\n // Could return `number` \"as is\" here, but there's a possibility\n // that some user might incorrectly input an international number\n // with a \"national prefix\". Such numbers aren't considered valid,\n // but `libphonenumber-js` is \"forgiving\" when it comes to parsing\n // user's input, and this input component follows that behavior.\n //\n var asYouType = new AsYouType(country, metadata);\n asYouType.input(number);\n // This function would return `undefined` only when `number` is `\"+\"`,\n // but at this point it is known that `number` is not `\"+\"`.\n return asYouType.getNumberValue();\n }\n // For non-international phone numbers\n // an accompanying country code is required.\n // The situation when `country` is `undefined`\n // and a non-international phone number is passed\n // to this function shouldn't happen.\n if (!country) {\n return;\n }\n var partial_national_significant_number = getNationalSignificantNumberDigits(number, country, metadata);\n //\n // Even if no \"national (significant) number\" digits have been input,\n // still return a non-`undefined` value.\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/113\n //\n // For example, if the user has selected country `US` and entered `\"1\"`\n // then that `\"1\"` is just a \"national prefix\" and no \"national (significant) number\"\n // digits have been input yet. Still, return `\"+1\"` as `value` in such cases,\n // because otherwise the app would think that the input is empty and mark it as such\n // while in reality it isn't empty, which might be thought of as a \"bug\", or just\n // a \"weird\" behavior.\n //\n // if (partial_national_significant_number) {\n return \"+\".concat(getCountryCallingCode(country, metadata)).concat(partial_national_significant_number || '');\n // }\n}\n\n/**\r\n * Trims phone number digits if they exceed the maximum possible length\r\n * for a national (significant) number for the country.\r\n * @param {string} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param {string} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} Can be empty.\r\n */\nexport function trimNumber(number, country, metadata) {\n var nationalSignificantNumberPart = getNationalSignificantNumberDigits(number, country, metadata);\n if (nationalSignificantNumberPart) {\n var overflowDigitsCount = nationalSignificantNumberPart.length - getMaxNumberLength(country, metadata);\n if (overflowDigitsCount > 0) {\n return number.slice(0, number.length - overflowDigitsCount);\n }\n }\n return number;\n}\nfunction getMaxNumberLength(country, metadata) {\n // Get \"possible lengths\" for a phone number of the country.\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country);\n // Return the last \"possible length\".\n return metadata.numberingPlan.possibleLengths()[metadata.numberingPlan.possibleLengths().length - 1];\n}\n\n// If the phone number being input is an international one\n// then tries to derive the country from the phone number.\n// (regardless of whether there's any country currently selected)\n/**\r\n * @param {string} partialE164Number - A possibly incomplete E.164 phone number.\r\n * @param {string?} country - Currently selected country.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {string?} defaultCountry — Default country.\r\n * @param {string?} latestCountrySelectedByUser — The latest country that has been manually selected by the user.\r\n * @param {boolean?} required — Whether \"International\" option could be selected, meaning \"no country is selected\".\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function getCountryForPartialE164Number(partialE164Number, _ref4) {\n var country = _ref4.country,\n countries = _ref4.countries,\n defaultCountry = _ref4.defaultCountry,\n latestCountrySelectedByUser = _ref4.latestCountrySelectedByUser,\n required = _ref4.required,\n metadata = _ref4.metadata;\n // `partialE164Number` is supposed to be an E.164 phone number.\n\n // `partialE164Number` is supposed to be non-empty when calling this function\n // so it doesn't check for `if (!partialE164Number)`.\n\n if (partialE164Number === '+') {\n // Don't change the currently selected country yet.\n return country;\n }\n var derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(partialE164Number, metadata);\n\n // If a phone number is being input in international form\n // and the country can already be derived from it,\n // then select that country.\n if (derived_country) {\n if (!countries || countries.indexOf(derived_country) >= 0) {\n return derived_country;\n } else {\n return undefined;\n }\n }\n // Otherwise, if the phone number doesn't correspond to any particular country.\n // If some country was previously selected.\n else if (country) {\n // If the international phone number entered could still correspond to the previously selected country\n // and also to some other country or countries corresponding to the same calling code\n // then it should reset the currently selected country to reflect the ambiguity.\n if (couldNumberBelongToCountry(partialE164Number, country, metadata)) {\n // Reset the country either to the latest one that was manually selected by the user\n // or to the default country or just reset the country selection.\n if (latestCountrySelectedByUser && couldNumberBelongToCountry(partialE164Number, latestCountrySelectedByUser, metadata)) {\n return latestCountrySelectedByUser;\n } else if (defaultCountry && couldNumberBelongToCountry(partialE164Number, defaultCountry, metadata)) {\n return defaultCountry;\n } else {\n if (!required) {\n // Just reset the currently selected country.\n return undefined;\n }\n }\n } else {\n // If \"International\" country option has not been disabled\n // and the international phone number entered doesn't necessarily correspond to\n // the currently selected country and it could not possibly correspond to it\n // then reset the currently selected country.\n if (!required) {\n return undefined;\n }\n }\n }\n\n // Don't change the currently selected country.\n return country;\n}\n\n/**\r\n * Parses `<input/>` value. Derives `country` from `input`. Derives an E.164 `value`.\r\n * @param {string?} phoneDigits — Parsed `<input/>` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param {string?} prevPhoneDigits — Previous parsed `<input/>` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param {string?} country - Currently selected country.\r\n * @param {string?} defaultCountry - Default country.\r\n * @param {string?} latestCountrySelectedByUser - The latest country that has been manually selected by the user.\r\n * @param {boolean} countryRequired - Is selecting some country required.\r\n * @param {function} getAnyCountry - Can be used to get any country when selecting some country required.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {boolean} international - Set to `true` to force international phone number format (leading `+`). Set to `false` to force \"national\" phone number format. Is `undefined` by default.\r\n * @param {boolean} limitMaxLength — Whether to enable limiting phone number max length.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {object} An object of shape `{ phoneDigits, country, value }`. `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`. The returned `phoneDigits` shouldn't be used anywhere except for passing it as `prevPhoneDigits` parameter to this same function on next input change event.\r\n */\nexport function onPhoneDigitsChange(phoneDigits, _ref5) {\n var prevPhoneDigits = _ref5.prevPhoneDigits,\n country = _ref5.country,\n defaultCountry = _ref5.defaultCountry,\n latestCountrySelectedByUser = _ref5.latestCountrySelectedByUser,\n countryRequired = _ref5.countryRequired,\n getAnyCountry = _ref5.getAnyCountry,\n countries = _ref5.countries,\n international = _ref5.international,\n limitMaxLength = _ref5.limitMaxLength,\n countryCallingCodeEditable = _ref5.countryCallingCodeEditable,\n metadata = _ref5.metadata;\n // When the input is in `international` and `countryCallingCodeEditable={false}` mode,\n // the `country` should not change. If the user attempted to overwrite the country callling code part,\n // the component should reset it back to the correct country calling code for the `country`.\n if (international && countryCallingCodeEditable === false) {\n if (country) {\n // For international phone numbers written with non-editable country calling code,\n // the `<input/>` value must always start with that non-editable country calling code.\n var prefix = getInternationalPhoneNumberPrefix(country, metadata);\n // If the input value doesn't start with the non-editable country calling code,\n // it should be fixed.\n if (phoneDigits.indexOf(prefix) !== 0) {\n var _value;\n // If a phone number input is declared as\n // `international: true` and `countryCallingCodeEditable: false`,\n // then the value of the `<input/>` is gonna be non-empty at all times,\n // even before the user has started to input any digits in the input field,\n // because the country calling code is always there by design.\n //\n // The fact that the input value is always non-empty results in a side effect:\n // whenever a user tabs into such input field, its value gets automatically selected.\n // If at that moment in time the user starts typing in the national digits of the phone number,\n // the selected `<input/>` value gets automatically replaced by those typed-in digits\n // so the value changes from `+xxx` to `y`, because inputting anything while having\n // the `<input/>` value selected results in erasing that `<input/>` value.\n //\n // This component handles such cases by restoring the `<input/>` value to what\n // it should be in such cases: `+xxxy`.\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/43\n //\n var hasStartedTypingInNationalNumberDigitsHavingInputValueSelected = phoneDigits && phoneDigits[0] !== '+';\n if (hasStartedTypingInNationalNumberDigitsHavingInputValueSelected) {\n // Fix the input value to what it should be: `y` → `+xxxy`.\n phoneDigits = prefix + phoneDigits;\n _value = e164(phoneDigits, country, metadata);\n } else {\n // In other cases, simply reset the `<input/>` value, because there're only two\n // possible cases:\n // * The user has selected the `<input/>` value and then hit Delete/Backspace to erase it.\n // * The user has pasted an international phone number for another country calling code,\n // which is considered a non-valid value.\n phoneDigits = prefix;\n }\n return {\n phoneDigits: phoneDigits,\n value: _value,\n country: country\n };\n }\n }\n }\n\n // If `international` property is `false`, then it means\n // \"enforce national-only format during input\",\n // so, if that's the case, then remove all `+` characters,\n // but only if some country is currently selected.\n // (not if \"International\" country is selected).\n if (international === false && country && phoneDigits && phoneDigits[0] === '+') {\n phoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata);\n }\n\n // Trim the input to not exceed the maximum possible number length.\n if (phoneDigits && country && limitMaxLength) {\n phoneDigits = trimNumber(phoneDigits, country, metadata);\n }\n\n // If this `onChange()` event was triggered\n // as a result of selecting \"International\" country,\n // then force-prepend a `+` sign if the phone number\n // `<input/>` value isn't in international format.\n // Also, force-prepend a `+` sign if international\n // phone number input format is set.\n if (phoneDigits && phoneDigits[0] !== '+' && (!country || international)) {\n phoneDigits = '+' + phoneDigits;\n }\n\n // If the previously entered phone number\n // has been entered in international format\n // and the user decides to erase it,\n // then also reset the `country`\n // because it was most likely automatically selected\n // while the user was typing in the phone number\n // in international format.\n // This fixes the issue when a user is presented\n // with a phone number input with no country selected\n // and then types in their local phone number\n // then discovers that the input's messed up\n // (a `+` has been prepended at the start of their input\n // and a random country has been selected),\n // decides to undo it all by erasing everything\n // and then types in their local phone number again\n // resulting in a seemingly correct phone number\n // but in reality that phone number has incorrect country.\n // https://github.com/catamphetamine/react-phone-number-input/issues/273\n if (!phoneDigits && prevPhoneDigits && prevPhoneDigits[0] === '+') {\n if (international) {\n country = undefined;\n } else {\n country = defaultCountry;\n }\n }\n // Also resets such \"randomly\" selected country\n // as soon as the user erases the number\n // digit-by-digit up to the leading `+` sign.\n if (phoneDigits === '+' && prevPhoneDigits && prevPhoneDigits[0] === '+' && prevPhoneDigits.length > '+'.length) {\n country = undefined;\n }\n\n // Generate the new `value` property.\n var value;\n if (phoneDigits) {\n if (phoneDigits[0] === '+') {\n if (phoneDigits === '+') {\n value = undefined;\n } else if (country && getInternationalPhoneNumberPrefix(country, metadata).indexOf(phoneDigits) === 0) {\n // Selected a `country` and started inputting an\n // international phone number for this country\n // but hasn't input any \"national (significant) number\" digits yet.\n // In that case, assume `value` be `undefined`.\n //\n // For example, if selected `country` `\"US\"`\n // and started inputting phone number `\"+1\"`\n // then `value` `undefined` will be returned from this function.\n //\n value = undefined;\n } else {\n value = e164(phoneDigits, country, metadata);\n }\n } else {\n value = e164(phoneDigits, country, metadata);\n }\n }\n\n // Derive the country from the phone number.\n // (regardless of whether there's any country currently selected,\n // because there could be several countries corresponding to one country calling code)\n if (value) {\n country = getCountryForPartialE164Number(value, {\n country: country,\n countries: countries,\n defaultCountry: defaultCountry,\n latestCountrySelectedByUser: latestCountrySelectedByUser,\n // `countryRequired` flag is not passed here.\n // Instead, it's explicitly checked a bit later in the code.\n required: false,\n metadata: metadata\n });\n // If `international` property is `false`, then it means\n // \"enforce national-only format during input\",\n // so, if that's the case, then remove all `+` characters,\n // but only if some country is currently selected.\n // (not if \"International\" country is selected).\n if (international === false && country && phoneDigits && phoneDigits[0] === '+') {\n phoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata);\n // Re-calculate `value` because `phoneDigits` has changed.\n value = e164(phoneDigits, country, metadata);\n }\n }\n if (!country && countryRequired) {\n country = defaultCountry || getAnyCountry();\n }\n return {\n // `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`.\n // The returned `phoneDigits` shouldn't be used anywhere except for passing it as\n // `prevPhoneDigits` parameter to this same function on next input change event.\n phoneDigits: phoneDigits,\n country: country,\n value: value\n };\n}\nfunction convertInternationalPhoneDigitsToNational(input, country, metadata) {\n // Handle the case when a user might have pasted\n // a phone number in international format.\n if (input.indexOf(getInternationalPhoneNumberPrefix(country, metadata)) === 0) {\n // Create \"as you type\" formatter.\n var formatter = new AsYouType(country, metadata);\n // Input partial national phone number.\n formatter.input(input);\n // Return the parsed partial national phone number.\n var phoneNumber = formatter.getNumber();\n if (phoneNumber) {\n // Transform the number to a national one,\n // and remove all non-digits.\n return phoneNumber.formatNational().replace(/\\D/g, '');\n } else {\n return '';\n }\n } else {\n // Just remove the `+` sign.\n return input.replace(/\\D/g, '');\n }\n}\n\n/**\r\n * Determines the country for a given (possibly incomplete) E.164 phone number.\r\n * @param {string} number - A possibly incomplete E.164 phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function getCountryFromPossiblyIncompleteInternationalPhoneNumber(number, metadata) {\n var formatter = new AsYouType(null, metadata);\n formatter.input(number);\n // // `001` is a special \"non-geograpical entity\" code\n // // in Google's `libphonenumber` library.\n // if (formatter.getCountry() === '001') {\n // \treturn\n // }\n return formatter.getCountry();\n}\n\n/**\r\n * Compares two strings.\r\n * A helper for `Array.sort()`.\r\n * @param {string} a — First string.\r\n * @param {string} b — Second string.\r\n * @param {(string[]|string)} [locales] — The `locales` argument of `String.localeCompare`.\r\n */\nexport function compareStrings(a, b, locales) {\n // Use `String.localeCompare` if it's available.\n // https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\n // Which means everyone except IE <= 10 and Safari <= 10.\n // `localeCompare()` is available in latest Node.js versions.\n /* istanbul ignore else */\n if (String.prototype.localeCompare) {\n return a.localeCompare(b, locales);\n }\n /* istanbul ignore next */\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\r\n * Strips `+${countryCallingCode}` prefix from an E.164 phone number.\r\n * @param {string} number - (possibly incomplete) E.164 phone number.\r\n * @param {string?} country - A possible country for this phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string}\r\n */\nexport function stripCountryCallingCode(number, country, metadata) {\n // Just an optimization, so that it\n // doesn't have to iterate through all country calling codes.\n if (country) {\n var countryCallingCodePrefix = '+' + getCountryCallingCode(country, metadata);\n\n // If `country` fits the actual `number`.\n if (number.length < countryCallingCodePrefix.length) {\n if (countryCallingCodePrefix.indexOf(number) === 0) {\n return '';\n }\n } else {\n if (number.indexOf(countryCallingCodePrefix) === 0) {\n return number.slice(countryCallingCodePrefix.length);\n }\n }\n }\n\n // If `country` doesn't fit the actual `number`.\n // Try all available country calling codes.\n for (var _i = 0, _Object$keys = Object.keys(metadata.country_calling_codes); _i < _Object$keys.length; _i++) {\n var country_calling_code = _Object$keys[_i];\n if (number.indexOf(country_calling_code) === '+'.length) {\n return number.slice('+'.length + country_calling_code.length);\n }\n }\n return '';\n}\n\n/**\r\n * Parses a partially entered national phone number digits\r\n * (or a partially entered E.164 international phone number)\r\n * and returns the national significant number part.\r\n * National significant number returned doesn't come with a national prefix.\r\n * @param {string} number - National number digits. Or possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} [result]\r\n */\nexport function getNationalSignificantNumberDigits(number, country, metadata) {\n // Create \"as you type\" formatter.\n var formatter = new AsYouType(country, metadata);\n // Input partial national phone number.\n formatter.input(number);\n // Return the parsed partial national phone number.\n var phoneNumber = formatter.getNumber();\n return phoneNumber && phoneNumber.nationalNumber;\n}\n\n/**\r\n * Checks if a partially entered E.164 phone number could belong to a country.\r\n * @param {string} number\r\n * @param {string} country\r\n * @return {boolean}\r\n */\nexport function couldNumberBelongToCountry(number, country, metadata) {\n var intlPhoneNumberPrefix = getInternationalPhoneNumberPrefix(country, metadata);\n var i = 0;\n while (i < number.length && i < intlPhoneNumberPrefix.length) {\n if (number[i] !== intlPhoneNumberPrefix[i]) {\n return false;\n }\n i++;\n }\n return true;\n}\n\n/**\r\n * Gets initial \"phone digits\" (including `+`, if using international format).\r\n * @return {string} [phoneDigits] Returns `undefined` if there should be no initial \"phone digits\".\r\n */\nexport function getInitialPhoneDigits(_ref6) {\n var value = _ref6.value,\n phoneNumber = _ref6.phoneNumber,\n defaultCountry = _ref6.defaultCountry,\n international = _ref6.international,\n useNationalFormat = _ref6.useNationalFormat,\n metadata = _ref6.metadata;\n // If the `value` (E.164 phone number)\n // belongs to the currently selected country\n // and `useNationalFormat` is `true`\n // then convert `value` (E.164 phone number)\n // to a local phone number digits.\n // E.g. '+78005553535' -> '88005553535'.\n if ((international === false || useNationalFormat) && phoneNumber && phoneNumber.country) {\n return generateNationalNumberDigits(phoneNumber);\n }\n // If `international` property is `true`,\n // meaning \"enforce international phone number format\",\n // then always show country calling code in the input field.\n if (!value && international && defaultCountry) {\n return getInternationalPhoneNumberPrefix(defaultCountry, metadata);\n }\n return value;\n}\n\n// function doesIncompletePhoneNumberCorrespondToASingleCountry(value, metadata) {\n// \t// Create \"as you type\" formatter.\n// \tconst formatter = new AsYouType(undefined, metadata)\n// \t// Input partial national phone number.\n// \tformatter.input(value)\n// \t// Return the parsed partial national phone number.\n// \tconst phoneNumber = formatter.getNumber()\n// \tif (phoneNumber) {\n// \t\treturn phoneNumber.getPossibleCountries().length === 1\n// \t} else {\n// \t\treturn false\n// \t}\n// }\n//# sourceMappingURL=phoneInputHelpers.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { getInitialPhoneDigits, getCountryForPartialE164Number, parsePhoneNumber, couldNumberBelongToCountry } from './phoneInputHelpers.js';\nimport { validateE164Number } from './isE164Number.js';\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js';\nimport { isCountrySupportedWithError, getSupportedCountries } from './countries.js';\nexport default function getPhoneInputWithCountryStateUpdateFromNewProps(props, prevProps, state) {\n var metadata = props.metadata,\n countries = props.countries,\n newDefaultCountry = props.defaultCountry,\n newValue = props.value,\n newReset = props.reset,\n international = props.international,\n displayInitialValueAsLocalNumber = props.displayInitialValueAsLocalNumber,\n initialValueFormat = props.initialValueFormat;\n var prevDefaultCountry = prevProps.defaultCountry,\n prevValue = prevProps.value,\n prevReset = prevProps.reset;\n var country = state.country,\n value = state.value,\n hasUserSelectedACountry = state.hasUserSelectedACountry,\n latestCountrySelectedByUser = state.latestCountrySelectedByUser;\n var _getInitialPhoneDigits = function _getInitialPhoneDigits(parameters) {\n return getInitialPhoneDigits(_objectSpread(_objectSpread({}, parameters), {}, {\n international: international,\n useNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\n metadata: metadata\n }));\n };\n\n // Some users requested a way to reset the component\n // (both number `<input/>` and country `<select/>`).\n // Whenever `reset` property changes both number `<input/>`\n // and country `<select/>` are reset.\n // It's not implemented as some instance `.reset()` method\n // because `ref` is forwarded to `<input/>`.\n // It's also not replaced with just resetting `country` on\n // external `value` reset, because a user could select a country\n // and then not input any `value`, and so the selected country\n // would be \"stuck\", if not using this `reset` property.\n // https://github.com/catamphetamine/react-phone-number-input/issues/300\n if (newReset !== prevReset) {\n return {\n phoneDigits: _getInitialPhoneDigits({\n value: undefined,\n defaultCountry: newDefaultCountry\n }),\n value: undefined,\n country: newDefaultCountry,\n latestCountrySelectedByUser: undefined,\n hasUserSelectedACountry: undefined\n };\n }\n\n // `value` is the value currently shown in the component:\n // it's stored in the component's `state`, and it's not the `value` property.\n // `prevValue` is \"previous `value` property\".\n // `newValue` is \"new `value` property\".\n\n // If the default country changed\n // (e.g. in case of ajax GeoIP detection after page loaded)\n // then select it, but only if the user hasn't already manually\n // selected a country, and no phone number has been manually entered so far.\n // Because if the user has already started inputting a phone number\n // then they're okay with no country being selected at all (\"International\")\n // and they don't want to be disturbed, don't want their input to be screwed, etc.\n if (newDefaultCountry !== prevDefaultCountry) {\n var isNewDefaultCountrySupported = !newDefaultCountry || isCountrySupportedWithError(newDefaultCountry, metadata);\n var noValueHasBeenEnteredByTheUser =\n // By default, \"no value has been entered\" means `value` is `undefined`.\n !value ||\n // When `international` is `true`, and some country has been pre-selected,\n // then the `<input/>` contains a pre-filled value of `+${countryCallingCode}${leadingDigits}`,\n // so in case of `international` being `true`, \"the user hasn't entered anything\" situation\n // doesn't just mean `value` is `undefined`, but could also mean `value` is `+${countryCallingCode}`.\n international && value === _getInitialPhoneDigits({\n value: undefined,\n defaultCountry: prevDefaultCountry\n });\n // Only update the `defaultCountry` property if no phone number\n // has been entered by the user or pre-set by the application.\n var noValueHasBeenEntered = !newValue && noValueHasBeenEnteredByTheUser;\n if (!hasUserSelectedACountry && isNewDefaultCountrySupported && noValueHasBeenEntered) {\n return {\n country: newDefaultCountry,\n // If `phoneDigits` is empty, then automatically select the new `country`\n // and set `phoneDigits` to `+{getCountryCallingCode(newCountry)}`.\n // The code assumes that \"no phone number has been entered by the user\",\n // and no `value` property has been passed, so the `phoneNumber` parameter\n // of `_getInitialPhoneDigits({ value, phoneNumber, ... })` is `undefined`.\n phoneDigits: _getInitialPhoneDigits({\n value: undefined,\n defaultCountry: newDefaultCountry\n }),\n // `value` is `undefined` and it stays so.\n value: undefined\n };\n }\n }\n\n // If a new `value` is set externally.\n // (e.g. as a result of an ajax API request\n // to get user's phone after page loaded)\n // The first part — `newValue !== prevValue` —\n // is basically `props.value !== prevProps.value`\n // so it means \"if value property was changed externally\".\n // The second part — `newValue !== value` —\n // is for ignoring the `getDerivedStateFromProps()` call\n // which happens in `this.onChange()` right after `this.setState()`.\n // If this `getDerivedStateFromProps()` call isn't ignored\n // then the country flag would reset on each input.\n if (!valuesAreEqual(newValue, prevValue) && !valuesAreEqual(newValue, value)) {\n var phoneNumber;\n var parsedCountry;\n if (newValue) {\n // Validate that the newly-supplied `value` is in `E.164` format.\n // Because sometimes people attempt to supply a `value` like \"+1 (879) 490-8676\".\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/231#note_2016334796\n if (newValue) {\n validateE164Number(newValue);\n }\n phoneNumber = parsePhoneNumber(newValue, metadata);\n var supportedCountries = getSupportedCountries(countries, metadata);\n if (phoneNumber && phoneNumber.country) {\n // Ignore `else` because all countries are supported in metadata.\n /* istanbul ignore next */\n if (!supportedCountries || supportedCountries.indexOf(phoneNumber.country) >= 0) {\n parsedCountry = phoneNumber.country;\n }\n } else {\n parsedCountry = getCountryForPartialE164Number(newValue, {\n country: undefined,\n countries: supportedCountries,\n metadata: metadata\n });\n\n // In cases when multiple countries correspond to the same country calling code,\n // the phone number digits of `newValue` have to be matched against country-specific\n // regular expressions in order to determine the exact country.\n // Sometimes, that algorithm can't decide for sure which country does the phone number belong to,\n // for example when the digits of `newValue` don't match any of those regular expressions.\n // and the country of the phone number couldn't be determined.\n // In those cases, people prefer the component to show the flag of the `defaultCountry`\n // if the phone number could potentially belong to that `defaultCountry`.\n // At least that's how the component behaves when a user pastes an international\n // phone number into the input field: for example, when `defaultCountry` is `\"US\"`\n // and the user pastes value \"+1 555 555 5555\" into the input field, it keep showing \"US\" flag.\n // So when setting new `value` property externally, the component should behave the same way:\n // it should select the `defaultCountry` when the new `value` could potentially belong\n // to that country in cases when the exact country can't be determined.\n // https://github.com/catamphetamine/react-phone-number-input/issues/413#issuecomment-1536219404\n if (!parsedCountry) {\n if (newDefaultCountry) {\n if (newValue.indexOf(getInternationalPhoneNumberPrefix(newDefaultCountry, metadata)) === 0) {\n parsedCountry = newDefaultCountry;\n }\n }\n }\n }\n }\n var userCountrySelectionHistoryStateUpdate;\n if (newValue) {\n // If the latest country that has been manually selected by the user\n // no longer corresponds to the new value then reset it.\n if (latestCountrySelectedByUser) {\n var couldNewValueCorrespondToLatestCountrySelectedByUser = parsedCountry ? latestCountrySelectedByUser === parsedCountry : couldNumberBelongToCountry(newValue, latestCountrySelectedByUser, metadata);\n if (couldNewValueCorrespondToLatestCountrySelectedByUser) {\n if (!parsedCountry) {\n parsedCountry = latestCountrySelectedByUser;\n }\n } else {\n userCountrySelectionHistoryStateUpdate = {\n latestCountrySelectedByUser: undefined\n };\n }\n }\n } else {\n // When the `value` property is being reset \"externally\",\n // reset any tracking of the country that the user has previously selected.\n userCountrySelectionHistoryStateUpdate = {\n latestCountrySelectedByUser: undefined,\n hasUserSelectedACountry: undefined\n };\n }\n return _objectSpread(_objectSpread({}, userCountrySelectionHistoryStateUpdate), {}, {\n phoneDigits: _getInitialPhoneDigits({\n phoneNumber: phoneNumber,\n value: newValue,\n defaultCountry: newDefaultCountry\n }),\n value: newValue,\n country: newValue ? parsedCountry : newDefaultCountry\n });\n }\n\n // `defaultCountry` didn't change.\n // `value` didn't change.\n // `phoneDigits` didn't change, because `value` didn't change.\n //\n // So no need to update state.\n}\nexport function valuesAreEqual(value1, value2) {\n // If `value` has been set to `null` externally then convert it to `undefined`.\n //\n // For example, `react-hook-form` sets `value` to `null` when the user clears the input.\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/164\n // In that case, without this conversion of `null` to `undefined`, it would reset\n // the selected country to `defaultCountry` because in that case `newValue !== value`\n // because `null !== undefined`.\n //\n // Historically, empty `value` is encoded as `undefined`.\n // Perhaps empty `value` would be better encoded as `null` instead.\n // But because that would be a potentially breaking change for some people,\n // it's left as is for the current \"major\" version of this library.\n //\n if (value1 === null) {\n value1 = undefined;\n }\n if (value2 === null) {\n value2 = undefined;\n }\n return value1 === value2;\n}\n//# sourceMappingURL=getPhoneInputWithCountryStateUpdateFromNewProps.js.map","var _excluded = [\"name\", \"disabled\", \"readOnly\", \"autoComplete\", \"style\", \"className\", \"inputRef\", \"inputComponent\", \"numberInputProps\", \"smartCaret\", \"countrySelectComponent\", \"countrySelectProps\", \"containerComponent\", \"containerComponentProps\", \"defaultCountry\", \"countries\", \"countryOptionsOrder\", \"labels\", \"flags\", \"flagComponent\", \"flagUrl\", \"addInternationalOption\", \"internationalIcon\", \"displayInitialValueAsLocalNumber\", \"initialValueFormat\", \"onCountryChange\", \"limitMaxLength\", \"countryCallingCodeEditable\", \"focusInputOnCountrySelection\", \"reset\", \"metadata\", \"international\", \"locales\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport InputSmart from './InputSmart.js';\nimport InputBasic from './InputBasic.js';\nimport { CountrySelectWithIcon as CountrySelect } from './CountrySelect.js';\nimport Flag from './Flag.js';\nimport InternationalIcon from './InternationalIcon.js';\nimport { validateE164Number } from './helpers/isE164Number.js';\nimport { sortCountryOptions, isCountrySupportedWithError, getSupportedCountries, getSupportedCountryOptions, getCountries } from './helpers/countries.js';\nimport { createCountryIconComponent } from './CountryIcon.js';\nimport { setRefsValue } from './useExternalRef.js';\nimport { metadata as metadataPropType, labels as labelsPropType } from './PropTypes.js';\nimport { getPreSelectedCountry, getCountrySelectOptions as _getCountrySelectOptions, couldNumberBelongToCountry, parsePhoneNumber, generateNationalNumberDigits, getPhoneDigitsForNewCountry, getInitialPhoneDigits, onPhoneDigitsChange, e164 } from './helpers/phoneInputHelpers.js';\nimport getPhoneInputWithCountryStateUpdateFromNewProps from './helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js';\nvar PhoneNumberInput_ = /*#__PURE__*/function (_React$PureComponent) {\n function PhoneNumberInput_(props) {\n var _this;\n _classCallCheck(this, PhoneNumberInput_);\n _this = _callSuper(this, PhoneNumberInput_, [props]);\n // This function mimicks `refSetter` function returned from `useExternalRef()` hook\n // because this class-like React component can't use the `useExternalRef()` hook.\n _defineProperty(_this, \"setInputRef\", function (instance) {\n setRefsValue([_this.props.inputRef, _this.inputRef], instance);\n });\n // A shorthand for not passing `metadata` as a second argument.\n _defineProperty(_this, \"isCountrySupportedWithError\", function (country) {\n var metadata = _this.props.metadata;\n return isCountrySupportedWithError(country, metadata);\n });\n // Country `<select/>` `onChange` handler.\n _defineProperty(_this, \"onCountryChange\", function (newCountry) {\n var _this$props = _this.props,\n international = _this$props.international,\n metadata = _this$props.metadata,\n onChange = _this$props.onChange,\n focusInputOnCountrySelection = _this$props.focusInputOnCountrySelection;\n var _this$state = _this.state,\n prevPhoneDigits = _this$state.phoneDigits,\n prevCountry = _this$state.country;\n\n // After the new `country` has been selected,\n // if the phone number `<input/>` holds any digits\n // then migrate those digits for the new `country`.\n var newPhoneDigits = getPhoneDigitsForNewCountry(prevPhoneDigits, {\n prevCountry: prevCountry,\n newCountry: newCountry,\n metadata: metadata,\n // Convert the phone number to \"national\" format\n // when the user changes the selected country by hand.\n useNationalFormat: !international\n });\n var newValue = e164(newPhoneDigits, newCountry, metadata);\n\n // Focus phone number `<input/>` upon country selection.\n if (focusInputOnCountrySelection) {\n _this.inputRef.current.focus();\n }\n\n // If the user has already manually selected a country\n // then don't override that already selected country\n // if the `defaultCountry` property changes.\n // That's what `hasUserSelectedACountry` flag is for.\n\n _this.setState({\n country: newCountry,\n latestCountrySelectedByUser: newCountry,\n hasUserSelectedACountry: true,\n phoneDigits: newPhoneDigits,\n value: newValue\n }, function () {\n // Update the new `value` property.\n // Doing it after the `state` has been updated\n // because `onChange()` will trigger `getDerivedStateFromProps()`\n // with the new `value` which will be compared to `state.value` there.\n onChange(newValue);\n });\n });\n /**\r\n * `<input/>` `onChange()` handler.\r\n * Updates `value` property accordingly (so that they are kept in sync).\r\n * @param {string?} input — Either a parsed phone number or an empty string. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n */\n _defineProperty(_this, \"onChange\", function (_phoneDigits) {\n var _this$props2 = _this.props,\n defaultCountry = _this$props2.defaultCountry,\n onChange = _this$props2.onChange,\n addInternationalOption = _this$props2.addInternationalOption,\n international = _this$props2.international,\n limitMaxLength = _this$props2.limitMaxLength,\n countryCallingCodeEditable = _this$props2.countryCallingCodeEditable,\n metadata = _this$props2.metadata;\n var _this$state2 = _this.state,\n countries = _this$state2.countries,\n prevPhoneDigits = _this$state2.phoneDigits,\n currentlySelectedCountry = _this$state2.country,\n latestCountrySelectedByUser = _this$state2.latestCountrySelectedByUser;\n var _onPhoneDigitsChange = onPhoneDigitsChange(_phoneDigits, {\n prevPhoneDigits: prevPhoneDigits,\n country: currentlySelectedCountry,\n countryRequired: !addInternationalOption,\n defaultCountry: defaultCountry,\n latestCountrySelectedByUser: latestCountrySelectedByUser,\n getAnyCountry: function getAnyCountry() {\n return _this.getFirstSupportedCountry({\n countries: countries\n });\n },\n countries: countries,\n international: international,\n limitMaxLength: limitMaxLength,\n countryCallingCodeEditable: countryCallingCodeEditable,\n metadata: metadata\n }),\n phoneDigits = _onPhoneDigitsChange.phoneDigits,\n country = _onPhoneDigitsChange.country,\n value = _onPhoneDigitsChange.value;\n var stateUpdate = {\n phoneDigits: phoneDigits,\n value: value,\n country: country\n };\n\n // Reset `latestCountrySelectedByUser` if it no longer fits the `value`.\n if (latestCountrySelectedByUser && value && !couldNumberBelongToCountry(value, latestCountrySelectedByUser, metadata)) {\n stateUpdate.latestCountrySelectedByUser = undefined;\n }\n if (countryCallingCodeEditable === false) {\n // If it simply did `setState({ phoneDigits: intlPrefix })` here,\n // then it would have no effect when erasing an inital international prefix\n // via Backspace, because `phoneDigits` in `state` wouldn't change\n // as a result, because it was `prefix` and it became `prefix`,\n // so the component wouldn't rerender, and the user would be able\n // to erase the country calling code part, and that part is\n // assumed to be non-eraseable. That's why the component is\n // forcefully rerendered here.\n // https://github.com/catamphetamine/react-phone-number-input/issues/367#issuecomment-721703501\n if (!value && phoneDigits === _this.state.phoneDigits) {\n // Force a re-render of the `<input/>` in order to reset its value.\n stateUpdate.forceRerender = {};\n }\n }\n _this.setState(stateUpdate,\n // Update the new `value` property.\n // Doing it after the `state` has been updated\n // because `onChange()` will trigger `getDerivedStateFromProps()`\n // with the new `value` which will be compared to `state.value` there.\n function () {\n return onChange(value);\n });\n });\n // Toggles the `--focus` CSS class.\n _defineProperty(_this, \"_onFocus\", function () {\n return _this.setState({\n isFocused: true\n });\n });\n // Toggles the `--focus` CSS class.\n _defineProperty(_this, \"_onBlur\", function () {\n return _this.setState({\n isFocused: false\n });\n });\n _defineProperty(_this, \"onFocus\", function (event) {\n _this._onFocus();\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus(event);\n }\n });\n _defineProperty(_this, \"onBlur\", function (event) {\n var onBlur = _this.props.onBlur;\n _this._onBlur();\n if (onBlur) {\n onBlur(event);\n }\n });\n _defineProperty(_this, \"onCountryFocus\", function (event) {\n _this._onFocus();\n // this.setState({ countrySelectFocused: true })\n var countrySelectProps = _this.props.countrySelectProps;\n if (countrySelectProps) {\n var onFocus = countrySelectProps.onFocus;\n if (onFocus) {\n onFocus(event);\n }\n }\n });\n _defineProperty(_this, \"onCountryBlur\", function (event) {\n _this._onBlur();\n // this.setState({ countrySelectFocused: false })\n var countrySelectProps = _this.props.countrySelectProps;\n if (countrySelectProps) {\n var onBlur = countrySelectProps.onBlur;\n if (onBlur) {\n onBlur(event);\n }\n }\n });\n _this.inputRef = /*#__PURE__*/React.createRef();\n var _this$props3 = _this.props,\n _value = _this$props3.value,\n labels = _this$props3.labels,\n _international = _this$props3.international,\n _addInternationalOption = _this$props3.addInternationalOption,\n displayInitialValueAsLocalNumber = _this$props3.displayInitialValueAsLocalNumber,\n initialValueFormat = _this$props3.initialValueFormat,\n _metadata = _this$props3.metadata;\n var _this$props4 = _this.props,\n _defaultCountry = _this$props4.defaultCountry,\n _countries = _this$props4.countries;\n\n // Validate `defaultCountry`.\n if (_defaultCountry) {\n if (!_this.isCountrySupportedWithError(_defaultCountry)) {\n _defaultCountry = undefined;\n }\n }\n\n // Validate that the initially-supplied `value` is in `E.164` format.\n // Because sometimes people attempt to supply a `value` like \"+1 (879) 490-8676\".\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/231#note_2016334796\n if (_value) {\n validateE164Number(_value);\n }\n\n // Validate `countries`.\n _countries = getSupportedCountries(_countries, _metadata);\n var phoneNumber = parsePhoneNumber(_value, _metadata);\n _this.CountryIcon = createCountryIconComponent(_this.props);\n var preSelectedCountry = getPreSelectedCountry({\n value: _value,\n phoneNumber: phoneNumber,\n defaultCountry: _defaultCountry,\n required: !_addInternationalOption,\n countries: _countries || getCountries(_metadata),\n getAnyCountry: function getAnyCountry() {\n return _this.getFirstSupportedCountry({\n countries: _countries\n });\n },\n metadata: _metadata\n });\n _this.state = {\n // Workaround for `this.props` inside `getDerivedStateFromProps()`.\n props: _this.props,\n // The country selected.\n country: preSelectedCountry,\n // `countries` are stored in `this.state` because they're filtered.\n // For example, a developer might theoretically pass some unsupported\n // countries as part of the `countries` property, and because of that\n // the component uses `this.state.countries` (which are filtered)\n // instead of `this.props.countries`\n // (which could potentially contain unsupported countries).\n countries: _countries,\n // `phoneDigits` state property holds non-formatted user's input.\n // The reason is that there's no way of finding out\n // in which form should `value` be displayed: international or national.\n // E.g. if `value` is `+78005553535` then it could be input\n // by a user both as `8 (800) 555-35-35` and `+7 800 555 35 35`.\n // Hence storing just `value` is not sufficient for correct formatting.\n // E.g. if a user entered `8 (800) 555-35-35`\n // then value is `+78005553535` and `phoneDigits` are `88005553535`\n // and if a user entered `+7 800 555 35 35`\n // then value is `+78005553535` and `phoneDigits` are `+78005553535`.\n phoneDigits: getInitialPhoneDigits({\n value: _value,\n phoneNumber: phoneNumber,\n defaultCountry: _defaultCountry,\n international: _international,\n useNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\n metadata: _metadata\n }),\n // `value` property is duplicated in state.\n // The reason is that `getDerivedStateFromProps()`\n // needs this `value` to compare to the new `value` property\n // to find out if `phoneDigits` needs updating:\n // If the `value` property was changed externally\n // then it won't be equal to `state.value`\n // in which case `phoneDigits` and `country` should be updated.\n value: _value\n };\n return _this;\n }\n _inherits(PhoneNumberInput_, _React$PureComponent);\n return _createClass(PhoneNumberInput_, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var onCountryChange = this.props.onCountryChange;\n var defaultCountry = this.props.defaultCountry;\n var selectedCountry = this.state.country;\n if (onCountryChange) {\n if (defaultCountry) {\n if (!this.isCountrySupportedWithError(defaultCountry)) {\n defaultCountry = undefined;\n }\n }\n if (selectedCountry !== defaultCountry) {\n onCountryChange(selectedCountry);\n }\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var onCountryChange = this.props.onCountryChange;\n var country = this.state.country;\n // Call `onCountryChange` when user selects another country.\n if (onCountryChange && country !== prevState.country) {\n onCountryChange(country);\n }\n }\n }, {\n key: \"getCountrySelectOptions\",\n value: function getCountrySelectOptions(_ref) {\n var countries = _ref.countries;\n var _this$props5 = this.props,\n international = _this$props5.international,\n countryCallingCodeEditable = _this$props5.countryCallingCodeEditable,\n countryOptionsOrder = _this$props5.countryOptionsOrder,\n addInternationalOption = _this$props5.addInternationalOption,\n labels = _this$props5.labels,\n locales = _this$props5.locales,\n metadata = _this$props5.metadata;\n return this.useMemoCountrySelectOptions(function () {\n return sortCountryOptions(_getCountrySelectOptions({\n countries: countries || getCountries(metadata),\n countryNames: labels,\n addInternationalOption: international && countryCallingCodeEditable === false ? false : addInternationalOption,\n compareStringsLocales: locales\n // compareStrings\n }), getSupportedCountryOptions(countryOptionsOrder, metadata));\n }, [countries, countryOptionsOrder, addInternationalOption, labels, metadata]);\n }\n }, {\n key: \"useMemoCountrySelectOptions\",\n value: function useMemoCountrySelectOptions(generator, dependencies) {\n if (!this.countrySelectOptionsMemoDependencies || !areEqualArrays(dependencies, this.countrySelectOptionsMemoDependencies)) {\n this.countrySelectOptionsMemo = generator();\n this.countrySelectOptionsMemoDependencies = dependencies;\n }\n return this.countrySelectOptionsMemo;\n }\n }, {\n key: \"getFirstSupportedCountry\",\n value: function getFirstSupportedCountry(_ref2) {\n var countries = _ref2.countries;\n var countryOptions = this.getCountrySelectOptions({\n countries: countries\n });\n return countryOptions[0].value;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n name = _this$props6.name,\n disabled = _this$props6.disabled,\n readOnly = _this$props6.readOnly,\n autoComplete = _this$props6.autoComplete,\n style = _this$props6.style,\n className = _this$props6.className,\n inputRef = _this$props6.inputRef,\n inputComponent = _this$props6.inputComponent,\n numberInputProps = _this$props6.numberInputProps,\n smartCaret = _this$props6.smartCaret,\n CountrySelectComponent = _this$props6.countrySelectComponent,\n countrySelectProps = _this$props6.countrySelectProps,\n ContainerComponent = _this$props6.containerComponent,\n containerComponentProps = _this$props6.containerComponentProps,\n defaultCountry = _this$props6.defaultCountry,\n countriesProperty = _this$props6.countries,\n countryOptionsOrder = _this$props6.countryOptionsOrder,\n labels = _this$props6.labels,\n flags = _this$props6.flags,\n flagComponent = _this$props6.flagComponent,\n flagUrl = _this$props6.flagUrl,\n addInternationalOption = _this$props6.addInternationalOption,\n internationalIcon = _this$props6.internationalIcon,\n displayInitialValueAsLocalNumber = _this$props6.displayInitialValueAsLocalNumber,\n initialValueFormat = _this$props6.initialValueFormat,\n onCountryChange = _this$props6.onCountryChange,\n limitMaxLength = _this$props6.limitMaxLength,\n countryCallingCodeEditable = _this$props6.countryCallingCodeEditable,\n focusInputOnCountrySelection = _this$props6.focusInputOnCountrySelection,\n reset = _this$props6.reset,\n metadata = _this$props6.metadata,\n international = _this$props6.international,\n locales = _this$props6.locales,\n rest = _objectWithoutProperties(_this$props6, _excluded);\n var _this$state3 = this.state,\n country = _this$state3.country,\n countries = _this$state3.countries,\n phoneDigits = _this$state3.phoneDigits,\n isFocused = _this$state3.isFocused;\n var InputComponent = smartCaret ? InputSmart : InputBasic;\n var countrySelectOptions = this.getCountrySelectOptions({\n countries: countries\n });\n return /*#__PURE__*/React.createElement(ContainerComponent, _extends({\n style: style,\n className: classNames(className, 'PhoneInput', {\n 'PhoneInput--focus': isFocused,\n 'PhoneInput--disabled': disabled,\n 'PhoneInput--readOnly': readOnly\n })\n }, containerComponentProps), /*#__PURE__*/React.createElement(CountrySelectComponent, _extends({\n name: name ? \"\".concat(name, \"Country\") : undefined,\n \"aria-label\": labels.country\n }, countrySelectProps, {\n value: country,\n options: countrySelectOptions,\n onChange: this.onCountryChange,\n onFocus: this.onCountryFocus,\n onBlur: this.onCountryBlur,\n disabled: disabled || countrySelectProps && countrySelectProps.disabled,\n readOnly: readOnly || countrySelectProps && countrySelectProps.readOnly,\n iconComponent: this.CountryIcon\n })), /*#__PURE__*/React.createElement(InputComponent, _extends({\n ref: this.setInputRef,\n type: \"tel\",\n autoComplete: autoComplete\n }, numberInputProps, rest, {\n inputFormat: international === true ? 'INTERNATIONAL' : international === false ? 'NATIONAL' : 'INTERNATIONAL_OR_NATIONAL',\n international: international ? true : undefined,\n withCountryCallingCode: international ? true : undefined,\n name: name,\n metadata: metadata,\n country: country,\n value: phoneDigits || '',\n onChange: this.onChange,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n disabled: disabled,\n readOnly: readOnly,\n inputComponent: inputComponent,\n className: classNames('PhoneInputInput', numberInputProps && numberInputProps.className, rest.className)\n })));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value:\n // `state` holds previous props as `props`, and also:\n // * `country` — The currently selected country, e.g. `\"RU\"`.\n // * `value` — The currently entered phone number (E.164), e.g. `+78005553535`.\n // * `phoneDigits` — The parsed `<input/>` value, e.g. `8005553535`.\n // (and a couple of other less significant properties)\n function getDerivedStateFromProps(props, state) {\n return _objectSpread({\n // Emulate `prevProps` via `state.props`.\n props: props\n }, getPhoneInputWithCountryStateUpdateFromNewProps(props, state.props, state));\n }\n }]);\n}(React.PureComponent); // This wrapper is only to `.forwardRef()` to the `<input/>`.\nvar PhoneNumberInput = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(PhoneNumberInput_, _extends({}, withDefaultProps(props), {\n inputRef: ref\n }));\n});\nPhoneNumberInput.propTypes = {\n /**\r\n * Phone number in `E.164` format.\r\n *\r\n * Example:\r\n *\r\n * `\"+12223333333\"`\r\n *\r\n * Any \"falsy\" value like `undefined`, `null` or an empty string `\"\"` is treated like \"empty\".\r\n */\n value: PropTypes.string,\n /**\r\n * A function of `value: string?`.\r\n *\r\n * Updates the `value` property as the user inputs a phone number.\r\n *\r\n * If the user erases the input value, the argument is `undefined`.\r\n */\n onChange: PropTypes.func.isRequired,\n /**\r\n * Toggles the `--focus` CSS class.\r\n * @ignore\r\n */\n onFocus: PropTypes.func,\n /**\r\n * `onBlur` is usually passed by `redux-form`.\r\n * @ignore\r\n */\n onBlur: PropTypes.func,\n /**\r\n * Set to `true` to mark both the phone number `<input/>`\r\n * and the country `<select/>` as `disabled`.\r\n */\n disabled: PropTypes.bool,\n /**\r\n * Set to `true` to mark both the phone number `<input/>`\r\n * and the country `<select/>` as `readonly`.\r\n */\n readOnly: PropTypes.bool,\n /**\r\n * Sets `autoComplete` property for phone number `<input/>`.\r\n *\r\n * Web browser's \"autocomplete\" feature\r\n * remembers the phone number being input\r\n * and can also autofill the `<input/>`\r\n * with previously remembered phone numbers.\r\n *\r\n * https://developers.google.com\r\n * /web/updates/2015/06/checkout-faster-with-autofill\r\n *\r\n * For example, can be used to turn it off:\r\n *\r\n * \"So when should you use `autocomplete=\"off\"`?\r\n * One example is when you've implemented your own version\r\n * of autocomplete for search. Another example is any form field\r\n * where users will input and submit different kinds of information\r\n * where it would not be useful to have the browser remember\r\n * what was submitted previously\".\r\n */\n // (is `\"tel\"` by default)\n autoComplete: PropTypes.string,\n /**\r\n * Set to `\"national\"` to show the initial `value` in\r\n * \"national\" format rather than \"international\".\r\n *\r\n * For example, if `initialValueFormat` is `\"national\"`\r\n * and the initial `value=\"+12133734253\"` is passed\r\n * then the `<input/>` value will be `\"(213) 373-4253\"`.\r\n *\r\n * By default, `initialValueFormat` is `undefined`,\r\n * meaning that if the initial `value=\"+12133734253\"` is passed\r\n * then the `<input/>` value will be `\"+1 213 373 4253\"`.\r\n *\r\n * The reason for such default behaviour is that\r\n * the newer generation grows up when there are no stationary phones\r\n * and therefore everyone inputs phone numbers in international format\r\n * in their smartphones so people gradually get more accustomed to\r\n * writing phone numbers in international format rather than in local format.\r\n * Future people won't be using \"national\" format, only \"international\".\r\n */\n // (is `undefined` by default)\n initialValueFormat: PropTypes.oneOf(['national']),\n // `displayInitialValueAsLocalNumber` property has been\n // superceded by `initialValueFormat` property.\n displayInitialValueAsLocalNumber: PropTypes.bool,\n /**\r\n * The country to be selected by default.\r\n * For example, can be set after a GeoIP lookup.\r\n *\r\n * Example: `\"US\"`.\r\n */\n // A two-letter country code (\"ISO 3166-1 alpha-2\").\n defaultCountry: PropTypes.string,\n /**\r\n * If specified, only these countries will be available for selection.\r\n *\r\n * Example:\r\n *\r\n * `[\"RU\", \"UA\", \"KZ\"]`\r\n */\n countries: PropTypes.arrayOf(PropTypes.string),\n /**\r\n * Custom country `<select/>` option names.\r\n * Also some labels like \"ext\" and country `<select/>` `aria-label`.\r\n *\r\n * Example:\r\n *\r\n * `{ \"ZZ\": \"Международный\", RU: \"РоÑÑиÑ\", US: \"СШÐ\", ... }`\r\n *\r\n * See the `locales` directory for examples.\r\n */\n labels: labelsPropType,\n /**\r\n * Country `<select/>` options are sorted by their labels.\r\n * The default sorting function uses `a.localeCompare(b, locales)`,\r\n * and, if that's not available, falls back to simple `a > b` / `a < b`.\r\n * Some languages, like Chinese, support multiple sorting variants\r\n * (called \"collations\"), and the user might prefer one or another.\r\n * Also, sometimes the Operating System language is not always\r\n * the preferred language for a person using a website or an application,\r\n * so there should be a way to specify custom locale.\r\n * This `locales` property mimicks the `locales` argument of `Intl` constructors,\r\n * and can be either a Unicode BCP 47 locale identifier or an array of such locale identifiers.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument\r\n */\n locales: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n /*\r\n * Custom country `<select/>` options sorting function.\r\n * The default one uses `a.localeCompare(b)`, and,\r\n * if that's not available, falls back to simple `a > b`/`a < b`.\r\n * There have been requests to add custom sorter for cases\r\n * like Chinese language and \"pinyin\" (non-default) sorting order.\r\n * https://stackoverflow.com/questions/22907288/chinese-sorting-by-pinyin-in-javascript-with-localecompare\r\n compareStrings: PropTypes.func,\r\n */\n\n /**\r\n * A URL template of a country flag, where\r\n * \"{XX}\" is a two-letter country code in upper case,\r\n * or where \"{xx}\" is a two-letter country code in lower case.\r\n * By default it points to `country-flag-icons` gitlab pages website.\r\n * I imagine someone might want to download those country flag icons\r\n * and host them on their own servers instead\r\n * (all flags are available in the `country-flag-icons` library).\r\n * There's a catch though: new countries may be added in future,\r\n * so when hosting country flag icons on your own server\r\n * one should check the `CHANGELOG.md` every time before updating this library,\r\n * otherwise there's a possibility that some new country flag would be missing.\r\n */\n flagUrl: PropTypes.string,\n /**\r\n * Custom country flag icon components.\r\n * These flags will be used instead of the default ones.\r\n * The the \"Flags\" section of the readme for more info.\r\n *\r\n * The shape is an object where keys are country codes\r\n * and values are flag icon components.\r\n * Flag icon components receive the same properties\r\n * as `flagComponent` (see below).\r\n *\r\n * Example:\r\n *\r\n * `{ \"RU\": (props) => <img src=\"...\"/> }`\r\n *\r\n * Example:\r\n *\r\n * `import flags from 'country-flag-icons/react/3x2'`\r\n *\r\n * `import PhoneInput from 'react-phone-number-input'`\r\n *\r\n * `<PhoneInput flags={flags} .../>`\r\n */\n flags: PropTypes.objectOf(PropTypes.elementType),\n /**\r\n * Country flag icon component.\r\n *\r\n * Takes properties:\r\n *\r\n * * `country: string` — The country code.\r\n * * `countryName: string` — The country name.\r\n * * `flagUrl: string` — The `flagUrl` property (see above).\r\n * * `flags: object` — The `flags` property (see above).\r\n */\n flagComponent: PropTypes.elementType,\n /**\r\n * Set to `false` to remove the \"International\" option from country `<select/>`.\r\n */\n addInternationalOption: PropTypes.bool,\n /**\r\n * \"International\" icon component.\r\n * Should have the same aspect ratio.\r\n *\r\n * Receives properties:\r\n *\r\n * * `title: string` — \"International\" country option label.\r\n */\n internationalIcon: PropTypes.elementType,\n /**\r\n * Can be used to place some countries on top of the list of country `<select/>` options.\r\n *\r\n * * `\"XX\"` — inserts an option for \"XX\" country.\r\n * * `\"ðŸŒ\"` — inserts \"International\" option.\r\n * * `\"|\"` — inserts a separator.\r\n * * `\"...\"` — inserts options for the rest of the countries (can be omitted, in which case it will be automatically added at the end).\r\n *\r\n * Example:\r\n *\r\n * `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`\r\n */\n countryOptionsOrder: PropTypes.arrayOf(PropTypes.string),\n /**\r\n * `<Phone/>` component CSS style object.\r\n */\n style: PropTypes.object,\n /**\r\n * `<Phone/>` component CSS class.\r\n */\n className: PropTypes.string,\n /**\r\n * Country `<select/>` component.\r\n *\r\n * Receives properties:\r\n *\r\n * * `name: string?` — HTML `name` attribute.\r\n * * `value: string?` — The currently selected country code.\r\n * * `onChange(value: string?)` — Updates the `value`.\r\n * * `onFocus()` — Is used to toggle the `--focus` CSS class.\r\n * * `onBlur()` — Is used to toggle the `--focus` CSS class.\r\n * * `options: object[]` — The list of all selectable countries (including \"International\") each being an object of shape `{ value: string?, label: string }`.\r\n * * `iconComponent: PropTypes.elementType` — React component that renders a country icon: `<Icon country={value}/>`. If `country` is `undefined` then it renders an \"International\" icon.\r\n * * `disabled: boolean?` — HTML `disabled` attribute.\r\n * * `readOnly: boolean?` — HTML `readOnly` attribute.\r\n * * `tabIndex: (number|string)?` — HTML `tabIndex` attribute.\r\n * * `className: string` — CSS class name.\r\n */\n countrySelectComponent: PropTypes.elementType,\n /**\r\n * Country `<select/>` component props.\r\n * Along with the usual DOM properties such as `aria-label` and `tabIndex`,\r\n * some custom properties are supported, such as `arrowComponent` and `unicodeFlags`.\r\n */\n countrySelectProps: PropTypes.object,\n /**\r\n * Phone number `<input/>` component.\r\n *\r\n * Receives properties:\r\n *\r\n * * `value: string` — The formatted `value`.\r\n * * `onChange(event: Event)` — Updates the formatted `value` from `event.target.value`.\r\n * * `onFocus()` — Is used to toggle the `--focus` CSS class.\r\n * * `onBlur()` — Is used to toggle the `--focus` CSS class.\r\n * * Other properties like `type=\"tel\"` or `autoComplete=\"tel\"` that should be passed through to the DOM `<input/>`.\r\n *\r\n * Must also either use `React.forwardRef()` to \"forward\" `ref` to the `<input/>` or implement `.focus()` method.\r\n */\n inputComponent: PropTypes.elementType,\n /**\r\n * Phone number `<input/>` component props.\r\n */\n numberInputProps: PropTypes.object,\n /**\r\n * Wrapping `<div/>` component.\r\n *\r\n * Receives properties:\r\n *\r\n * * `style: object` — A component CSS style object.\r\n * * `className: string` — Classes to attach to the component, typically changes when component focuses or blurs.\r\n */\n containerComponent: PropTypes.elementType,\n /**\r\n * Wrapping `<div/>` component props.\r\n */\n containerComponentProps: PropTypes.object,\n /**\r\n * When the user attempts to insert a digit somewhere in the middle of a phone number,\r\n * the caret position is moved right before the next available digit skipping\r\n * any punctuation in between. This is called \"smart\" caret positioning.\r\n * Another case would be the phone number format changing as a result of\r\n * the user inserting the digit somewhere in the middle, which would require\r\n * re-positioning the caret because all digit positions have changed.\r\n * This \"smart\" caret positioning feature can be turned off by passing\r\n * `smartCaret={false}` property: use it in case of any possible issues\r\n * with caret position during phone number input.\r\n */\n // Is `true` by default.\n smartCaret: PropTypes.bool,\n /**\r\n * Set to `true` to force \"international\" phone number format.\r\n * Set to `false` to force \"national\" phone number format.\r\n * By default it's `undefined` meaning that it doesn't enforce any phone number format:\r\n * the user can input their phone number in either \"national\" or \"international\" format.\r\n */\n international: PropTypes.bool,\n /**\r\n * If set to `true`, the phone number input will get trimmed\r\n * if it exceeds the maximum length for the country.\r\n */\n limitMaxLength: PropTypes.bool,\n /**\r\n * If set to `false`, and `international` is `true`, then\r\n * users won't be able to erase the \"country calling part\"\r\n * of a phone number in the `<input/>`.\r\n */\n countryCallingCodeEditable: PropTypes.bool,\n /**\r\n * `libphonenumber-js` metadata.\r\n *\r\n * Can be used to pass custom `libphonenumber-js` metadata\r\n * to reduce the overall bundle size for those who compile \"custom\" metadata.\r\n */\n metadata: metadataPropType,\n /**\r\n * Is called every time the selected country changes:\r\n * either programmatically or when user selects it manually from the list.\r\n */\n // People have been asking for a way to get the selected country.\n // @see https://github.com/catamphetamine/react-phone-number-input/issues/128\n // For some it's just a \"business requirement\".\n // I guess it's about gathering as much info on the user as a website can\n // without introducing any addional fields that would complicate the form\n // therefore reducing \"conversion\" (that's a marketing term).\n // Assuming that the phone number's country is the user's country\n // is not 100% correct but in most cases I guess it's valid.\n onCountryChange: PropTypes.func,\n /**\r\n * If set to `false`, will not focus the `<input/>` component\r\n * when the user selects a country from the list of countries.\r\n * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n * Quote:\r\n * \"On input: Changing the setting of any user interface component\r\n * does not automatically cause a change of context unless the user\r\n * has been advised of the behaviour before using the component.\"\r\n */\n focusInputOnCountrySelection: PropTypes.bool\n};\nvar defaultProps = {\n /**\r\n * Remember (and autofill) the value as a phone number.\r\n */\n autoComplete: 'tel',\n /**\r\n * Country `<select/>` component.\r\n */\n countrySelectComponent: CountrySelect,\n /**\r\n * Flag icon component.\r\n */\n flagComponent: Flag,\n /**\r\n * By default, uses icons from `country-flag-icons` gitlab pages website.\r\n */\n // Must be equal to `flagUrl` in `./CountryIcon.js`.\n flagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',\n /**\r\n * Default \"International\" country `<select/>` option icon.\r\n */\n internationalIcon: InternationalIcon,\n /**\r\n * Phone number `<input/>` component.\r\n */\n inputComponent: 'input',\n /**\r\n * Wrapping `<div/>` component.\r\n */\n containerComponent: 'div',\n /**\r\n * Some users requested a way to reset the component:\r\n * both number `<input/>` and country `<select/>`.\r\n * Whenever `reset` property changes both number `<input/>`\r\n * and country `<select/>` are reset.\r\n * It's not implemented as some instance `.reset()` method\r\n * because `ref` is forwarded to `<input/>`.\r\n * It's also not replaced with just resetting `country` on\r\n * external `value` reset, because a user could select a country\r\n * and then not input any `value`, and so the selected country\r\n * would be \"stuck\", if not using this `reset` property.\r\n */\n // https://github.com/catamphetamine/react-phone-number-input/issues/300\n reset: PropTypes.any,\n /**\r\n *\r\n */\n\n /**\r\n * Set to `false` to use \"basic\" caret instead of the \"smart\" one.\r\n */\n smartCaret: true,\n /**\r\n * Whether to add the \"International\" option\r\n * to the list of countries.\r\n */\n addInternationalOption: true,\n /**\r\n * If set to `false`, and `international` is `true`, then\r\n * users won't be able to erase the \"country calling part\"\r\n * of a phone number in the `<input/>`.\r\n */\n countryCallingCodeEditable: true,\n /**\r\n * If set to `false`, will not focus the `<input/>` component\r\n * when the user selects a country from the list of countries.\r\n * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n * Quote:\r\n * \"On input: Changing the setting of any user interface component\r\n * does not automatically cause a change of context unless the user\r\n * has been advised of the behaviour before using the component.\"\r\n */\n focusInputOnCountrySelection: true\n};\nfunction withDefaultProps(props) {\n props = _objectSpread({}, props);\n for (var key in defaultProps) {\n if (props[key] === undefined) {\n props[key] = defaultProps[key];\n }\n }\n return props;\n}\nexport default PhoneNumberInput;\nfunction areEqualArrays(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n var i = 0;\n while (i < a.length) {\n if (a[i] !== b[i]) {\n return false;\n }\n i++;\n }\n return true;\n}\n//# sourceMappingURL=PhoneInputWithCountry.js.map","export default {\n \"ext\": \"ext.\",\n \"country\": \"Phone number country\",\n \"phone\": \"Phone\",\n \"AB\": \"Abkhazia\",\n \"AC\": \"Ascension Island\",\n \"AD\": \"Andorra\",\n \"AE\": \"United Arab Emirates\",\n \"AF\": \"Afghanistan\",\n \"AG\": \"Antigua and Barbuda\",\n \"AI\": \"Anguilla\",\n \"AL\": \"Albania\",\n \"AM\": \"Armenia\",\n \"AO\": \"Angola\",\n \"AQ\": \"Antarctica\",\n \"AR\": \"Argentina\",\n \"AS\": \"American Samoa\",\n \"AT\": \"Austria\",\n \"AU\": \"Australia\",\n \"AW\": \"Aruba\",\n \"AX\": \"Ã…land Islands\",\n \"AZ\": \"Azerbaijan\",\n \"BA\": \"Bosnia and Herzegovina\",\n \"BB\": \"Barbados\",\n \"BD\": \"Bangladesh\",\n \"BE\": \"Belgium\",\n \"BF\": \"Burkina Faso\",\n \"BG\": \"Bulgaria\",\n \"BH\": \"Bahrain\",\n \"BI\": \"Burundi\",\n \"BJ\": \"Benin\",\n \"BL\": \"Saint Barthélemy\",\n \"BM\": \"Bermuda\",\n \"BN\": \"Brunei Darussalam\",\n \"BO\": \"Bolivia\",\n \"BQ\": \"Bonaire, Sint Eustatius and Saba\",\n \"BR\": \"Brazil\",\n \"BS\": \"Bahamas\",\n \"BT\": \"Bhutan\",\n \"BV\": \"Bouvet Island\",\n \"BW\": \"Botswana\",\n \"BY\": \"Belarus\",\n \"BZ\": \"Belize\",\n \"CA\": \"Canada\",\n \"CC\": \"Cocos (Keeling) Islands\",\n \"CD\": \"Congo, Democratic Republic of the\",\n \"CF\": \"Central African Republic\",\n \"CG\": \"Congo\",\n \"CH\": \"Switzerland\",\n \"CI\": \"Cote d'Ivoire\",\n \"CK\": \"Cook Islands\",\n \"CL\": \"Chile\",\n \"CM\": \"Cameroon\",\n \"CN\": \"China\",\n \"CO\": \"Colombia\",\n \"CR\": \"Costa Rica\",\n \"CU\": \"Cuba\",\n \"CV\": \"Cape Verde\",\n \"CW\": \"Curaçao\",\n \"CX\": \"Christmas Island\",\n \"CY\": \"Cyprus\",\n \"CZ\": \"Czech Republic\",\n \"DE\": \"Germany\",\n \"DJ\": \"Djibouti\",\n \"DK\": \"Denmark\",\n \"DM\": \"Dominica\",\n \"DO\": \"Dominican Republic\",\n \"DZ\": \"Algeria\",\n \"EC\": \"Ecuador\",\n \"EE\": \"Estonia\",\n \"EG\": \"Egypt\",\n \"EH\": \"Western Sahara\",\n \"ER\": \"Eritrea\",\n \"ES\": \"Spain\",\n \"ET\": \"Ethiopia\",\n \"FI\": \"Finland\",\n \"FJ\": \"Fiji\",\n \"FK\": \"Falkland Islands\",\n \"FM\": \"Federated States of Micronesia\",\n \"FO\": \"Faroe Islands\",\n \"FR\": \"France\",\n \"GA\": \"Gabon\",\n \"GB\": \"United Kingdom\",\n \"GD\": \"Grenada\",\n \"GE\": \"Georgia\",\n \"GF\": \"French Guiana\",\n \"GG\": \"Guernsey\",\n \"GH\": \"Ghana\",\n \"GI\": \"Gibraltar\",\n \"GL\": \"Greenland\",\n \"GM\": \"Gambia\",\n \"GN\": \"Guinea\",\n \"GP\": \"Guadeloupe\",\n \"GQ\": \"Equatorial Guinea\",\n \"GR\": \"Greece\",\n \"GS\": \"South Georgia and the South Sandwich Islands\",\n \"GT\": \"Guatemala\",\n \"GU\": \"Guam\",\n \"GW\": \"Guinea-Bissau\",\n \"GY\": \"Guyana\",\n \"HK\": \"Hong Kong\",\n \"HM\": \"Heard Island and McDonald Islands\",\n \"HN\": \"Honduras\",\n \"HR\": \"Croatia\",\n \"HT\": \"Haiti\",\n \"HU\": \"Hungary\",\n \"ID\": \"Indonesia\",\n \"IE\": \"Ireland\",\n \"IL\": \"Israel\",\n \"IM\": \"Isle of Man\",\n \"IN\": \"India\",\n \"IO\": \"British Indian Ocean Territory\",\n \"IQ\": \"Iraq\",\n \"IR\": \"Iran\",\n \"IS\": \"Iceland\",\n \"IT\": \"Italy\",\n \"JE\": \"Jersey\",\n \"JM\": \"Jamaica\",\n \"JO\": \"Jordan\",\n \"JP\": \"Japan\",\n \"KE\": \"Kenya\",\n \"KG\": \"Kyrgyzstan\",\n \"KH\": \"Cambodia\",\n \"KI\": \"Kiribati\",\n \"KM\": \"Comoros\",\n \"KN\": \"Saint Kitts and Nevis\",\n \"KP\": \"North Korea\",\n \"KR\": \"South Korea\",\n \"KW\": \"Kuwait\",\n \"KY\": \"Cayman Islands\",\n \"KZ\": \"Kazakhstan\",\n \"LA\": \"Laos\",\n \"LB\": \"Lebanon\",\n \"LC\": \"Saint Lucia\",\n \"LI\": \"Liechtenstein\",\n \"LK\": \"Sri Lanka\",\n \"LR\": \"Liberia\",\n \"LS\": \"Lesotho\",\n \"LT\": \"Lithuania\",\n \"LU\": \"Luxembourg\",\n \"LV\": \"Latvia\",\n \"LY\": \"Libya\",\n \"MA\": \"Morocco\",\n \"MC\": \"Monaco\",\n \"MD\": \"Moldova\",\n \"ME\": \"Montenegro\",\n \"MF\": \"Saint Martin (French Part)\",\n \"MG\": \"Madagascar\",\n \"MH\": \"Marshall Islands\",\n \"MK\": \"North Macedonia\",\n \"ML\": \"Mali\",\n \"MM\": \"Myanmar\",\n \"MN\": \"Mongolia\",\n \"MO\": \"Macao\",\n \"MP\": \"Northern Mariana Islands\",\n \"MQ\": \"Martinique\",\n \"MR\": \"Mauritania\",\n \"MS\": \"Montserrat\",\n \"MT\": \"Malta\",\n \"MU\": \"Mauritius\",\n \"MV\": \"Maldives\",\n \"MW\": \"Malawi\",\n \"MX\": \"Mexico\",\n \"MY\": \"Malaysia\",\n \"MZ\": \"Mozambique\",\n \"NA\": \"Namibia\",\n \"NC\": \"New Caledonia\",\n \"NE\": \"Niger\",\n \"NF\": \"Norfolk Island\",\n \"NG\": \"Nigeria\",\n \"NI\": \"Nicaragua\",\n \"NL\": \"Netherlands\",\n \"NO\": \"Norway\",\n \"NP\": \"Nepal\",\n \"NR\": \"Nauru\",\n \"NU\": \"Niue\",\n \"NZ\": \"New Zealand\",\n \"OM\": \"Oman\",\n \"OS\": \"South Ossetia\",\n \"PA\": \"Panama\",\n \"PE\": \"Peru\",\n \"PF\": \"French Polynesia\",\n \"PG\": \"Papua New Guinea\",\n \"PH\": \"Philippines\",\n \"PK\": \"Pakistan\",\n \"PL\": \"Poland\",\n \"PM\": \"Saint Pierre and Miquelon\",\n \"PN\": \"Pitcairn\",\n \"PR\": \"Puerto Rico\",\n \"PS\": \"Palestine\",\n \"PT\": \"Portugal\",\n \"PW\": \"Palau\",\n \"PY\": \"Paraguay\",\n \"QA\": \"Qatar\",\n \"RE\": \"Reunion\",\n \"RO\": \"Romania\",\n \"RS\": \"Serbia\",\n \"RU\": \"Russia\",\n \"RW\": \"Rwanda\",\n \"SA\": \"Saudi Arabia\",\n \"SB\": \"Solomon Islands\",\n \"SC\": \"Seychelles\",\n \"SD\": \"Sudan\",\n \"SE\": \"Sweden\",\n \"SG\": \"Singapore\",\n \"SH\": \"Saint Helena\",\n \"SI\": \"Slovenia\",\n \"SJ\": \"Svalbard and Jan Mayen\",\n \"SK\": \"Slovakia\",\n \"SL\": \"Sierra Leone\",\n \"SM\": \"San Marino\",\n \"SN\": \"Senegal\",\n \"SO\": \"Somalia\",\n \"SR\": \"Suriname\",\n \"SS\": \"South Sudan\",\n \"ST\": \"Sao Tome and Principe\",\n \"SV\": \"El Salvador\",\n \"SX\": \"Sint Maarten\",\n \"SY\": \"Syria\",\n \"SZ\": \"Swaziland\",\n \"TA\": \"Tristan da Cunha\",\n \"TC\": \"Turks and Caicos Islands\",\n \"TD\": \"Chad\",\n \"TF\": \"French Southern Territories\",\n \"TG\": \"Togo\",\n \"TH\": \"Thailand\",\n \"TJ\": \"Tajikistan\",\n \"TK\": \"Tokelau\",\n \"TL\": \"Timor-Leste\",\n \"TM\": \"Turkmenistan\",\n \"TN\": \"Tunisia\",\n \"TO\": \"Tonga\",\n \"TR\": \"Turkey\",\n \"TT\": \"Trinidad and Tobago\",\n \"TV\": \"Tuvalu\",\n \"TW\": \"Taiwan\",\n \"TZ\": \"Tanzania\",\n \"UA\": \"Ukraine\",\n \"UG\": \"Uganda\",\n \"UM\": \"United States Minor Outlying Islands\",\n \"US\": \"United States\",\n \"UY\": \"Uruguay\",\n \"UZ\": \"Uzbekistan\",\n \"VA\": \"Holy See (Vatican City State)\",\n \"VC\": \"Saint Vincent and the Grenadines\",\n \"VE\": \"Venezuela\",\n \"VG\": \"Virgin Islands, British\",\n \"VI\": \"Virgin Islands, U.S.\",\n \"VN\": \"Vietnam\",\n \"VU\": \"Vanuatu\",\n \"WF\": \"Wallis and Futuna\",\n \"WS\": \"Samoa\",\n \"XK\": \"Kosovo\",\n \"YE\": \"Yemen\",\n \"YT\": \"Mayotte\",\n \"ZA\": \"South Africa\",\n \"ZM\": \"Zambia\",\n \"ZW\": \"Zimbabwe\",\n \"ZZ\": \"International\"\n}","var _excluded = [\"metadata\", \"labels\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport defaultLabels from '../locale/en.json.js';\nimport { metadata as metadataPropType, labels as labelsPropType } from './PropTypes.js';\nimport PhoneInput from './PhoneInputWithCountry.js';\nexport function createPhoneInput(defaultMetadata) {\n var PhoneInputDefault = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _ref$metadata = _ref.metadata,\n metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n _ref$labels = _ref.labels,\n labels = _ref$labels === void 0 ? defaultLabels : _ref$labels,\n rest = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(PhoneInput, _extends({}, rest, {\n ref: ref,\n metadata: metadata,\n labels: labels\n }));\n });\n PhoneInputDefault.propTypes = {\n metadata: metadataPropType,\n labels: labelsPropType\n };\n return PhoneInputDefault;\n}\nexport default createPhoneInput();\n//# sourceMappingURL=PhoneInputWithCountryDefault.js.map","import metadata from 'libphonenumber-js/min/metadata'\r\n\r\nimport {\r\n\tparsePhoneNumber as _parsePhoneNumber,\r\n\tformatPhoneNumber as _formatPhoneNumber,\r\n\tformatPhoneNumberIntl as _formatPhoneNumberIntl,\r\n\tisValidPhoneNumber as _isValidPhoneNumber,\r\n\tisPossiblePhoneNumber as _isPossiblePhoneNumber,\r\n\tgetCountries as _getCountries,\r\n\tgetCountryCallingCode as _getCountryCallingCode,\r\n\tisSupportedCountry as _isSupportedCountry\r\n} from '../core/index.js'\r\n\r\nimport { createPhoneInput } from '../modules/PhoneInputWithCountryDefault.js'\r\n\r\nfunction call(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}\r\n\r\nexport default createPhoneInput(metadata)\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn call(_parsePhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumber() {\r\n\treturn call(_formatPhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumberIntl() {\r\n\treturn call(_formatPhoneNumberIntl, arguments)\r\n}\r\n\r\nexport function isValidPhoneNumber() {\r\n\treturn call(_isValidPhoneNumber, arguments)\r\n}\r\n\r\nexport function isPossiblePhoneNumber() {\r\n\treturn call(_isPossiblePhoneNumber, arguments)\r\n}\r\n\r\nexport function getCountries() {\r\n\treturn call(_getCountries, arguments)\r\n}\r\n\r\nexport function getCountryCallingCode() {\r\n\treturn call(_getCountryCallingCode, arguments)\r\n}\r\n\r\nexport function isSupportedCountry() {\r\n\treturn call(_isSupportedCountry, arguments)\r\n}","var _excluded = [\"title\"],\n _excluded2 = [\"title\"],\n _excluded3 = [\"title\"],\n _excluded4 = [\"title\"],\n _excluded5 = [\"title\"],\n _excluded6 = [\"title\"],\n _excluded7 = [\"title\"],\n _excluded8 = [\"title\"],\n _excluded9 = [\"title\"],\n _excluded10 = [\"title\"],\n _excluded11 = [\"title\"],\n _excluded12 = [\"title\"],\n _excluded13 = [\"title\"],\n _excluded14 = [\"title\"],\n _excluded15 = [\"title\"],\n _excluded16 = [\"title\"],\n _excluded17 = [\"title\"],\n _excluded18 = [\"title\"],\n _excluded19 = [\"title\"],\n _excluded20 = [\"title\"],\n _excluded21 = [\"title\"],\n _excluded22 = [\"title\"],\n _excluded23 = [\"title\"],\n _excluded24 = [\"title\"],\n _excluded25 = [\"title\"],\n _excluded26 = [\"title\"],\n _excluded27 = [\"title\"],\n _excluded28 = [\"title\"],\n _excluded29 = [\"title\"],\n _excluded30 = [\"title\"],\n _excluded31 = [\"title\"],\n _excluded32 = [\"title\"],\n _excluded33 = [\"title\"],\n _excluded34 = [\"title\"],\n _excluded35 = [\"title\"],\n _excluded36 = [\"title\"],\n _excluded37 = [\"title\"],\n _excluded38 = [\"title\"],\n _excluded39 = [\"title\"],\n _excluded40 = [\"title\"],\n _excluded41 = [\"title\"],\n _excluded42 = [\"title\"],\n _excluded43 = [\"title\"],\n _excluded44 = [\"title\"],\n _excluded45 = [\"title\"],\n _excluded46 = [\"title\"],\n _excluded47 = [\"title\"],\n _excluded48 = [\"title\"],\n _excluded49 = [\"title\"],\n _excluded50 = [\"title\"],\n _excluded51 = [\"title\"],\n _excluded52 = [\"title\"],\n _excluded53 = [\"title\"],\n _excluded54 = [\"title\"],\n _excluded55 = [\"title\"],\n _excluded56 = [\"title\"],\n _excluded57 = [\"title\"],\n _excluded58 = [\"title\"],\n _excluded59 = [\"title\"],\n _excluded60 = [\"title\"],\n _excluded61 = [\"title\"],\n _excluded62 = [\"title\"],\n _excluded63 = [\"title\"],\n _excluded64 = [\"title\"],\n _excluded65 = [\"title\"],\n _excluded66 = [\"title\"],\n _excluded67 = [\"title\"],\n _excluded68 = [\"title\"],\n _excluded69 = [\"title\"],\n _excluded70 = [\"title\"],\n _excluded71 = [\"title\"],\n _excluded72 = [\"title\"],\n _excluded73 = [\"title\"],\n _excluded74 = [\"title\"],\n _excluded75 = [\"title\"],\n _excluded76 = [\"title\"],\n _excluded77 = [\"title\"],\n _excluded78 = [\"title\"],\n _excluded79 = [\"title\"],\n _excluded80 = [\"title\"],\n _excluded81 = [\"title\"],\n _excluded82 = [\"title\"],\n _excluded83 = [\"title\"],\n _excluded84 = [\"title\"],\n _excluded85 = [\"title\"],\n _excluded86 = [\"title\"],\n _excluded87 = [\"title\"],\n _excluded88 = [\"title\"],\n _excluded89 = [\"title\"],\n _excluded90 = [\"title\"],\n _excluded91 = [\"title\"],\n _excluded92 = [\"title\"],\n _excluded93 = [\"title\"],\n _excluded94 = [\"title\"],\n _excluded95 = [\"title\"],\n _excluded96 = [\"title\"],\n _excluded97 = [\"title\"],\n _excluded98 = [\"title\"],\n _excluded99 = [\"title\"],\n _excluded100 = [\"title\"],\n _excluded101 = [\"title\"],\n _excluded102 = [\"title\"],\n _excluded103 = [\"title\"],\n _excluded104 = [\"title\"],\n _excluded105 = [\"title\"],\n _excluded106 = [\"title\"],\n _excluded107 = [\"title\"],\n _excluded108 = [\"title\"],\n _excluded109 = [\"title\"],\n _excluded110 = [\"title\"],\n _excluded111 = [\"title\"],\n _excluded112 = [\"title\"],\n _excluded113 = [\"title\"],\n _excluded114 = [\"title\"],\n _excluded115 = [\"title\"],\n _excluded116 = [\"title\"],\n _excluded117 = [\"title\"],\n _excluded118 = [\"title\"],\n _excluded119 = [\"title\"],\n _excluded120 = [\"title\"],\n _excluded121 = [\"title\"],\n _excluded122 = [\"title\"],\n _excluded123 = [\"title\"],\n _excluded124 = [\"title\"],\n _excluded125 = [\"title\"],\n _excluded126 = [\"title\"],\n _excluded127 = [\"title\"],\n _excluded128 = [\"title\"],\n _excluded129 = [\"title\"],\n _excluded130 = [\"title\"],\n _excluded131 = [\"title\"],\n _excluded132 = [\"title\"],\n _excluded133 = [\"title\"],\n _excluded134 = [\"title\"],\n _excluded135 = [\"title\"],\n _excluded136 = [\"title\"],\n _excluded137 = [\"title\"],\n _excluded138 = [\"title\"],\n _excluded139 = [\"title\"],\n _excluded140 = [\"title\"],\n _excluded141 = [\"title\"],\n _excluded142 = [\"title\"],\n _excluded143 = [\"title\"],\n _excluded144 = [\"title\"],\n _excluded145 = [\"title\"],\n _excluded146 = [\"title\"],\n _excluded147 = [\"title\"],\n _excluded148 = [\"title\"],\n _excluded149 = [\"title\"],\n _excluded150 = [\"title\"],\n _excluded151 = [\"title\"],\n _excluded152 = [\"title\"],\n _excluded153 = [\"title\"],\n _excluded154 = [\"title\"],\n _excluded155 = [\"title\"],\n _excluded156 = [\"title\"],\n _excluded157 = [\"title\"],\n _excluded158 = [\"title\"],\n _excluded159 = [\"title\"],\n _excluded160 = [\"title\"],\n _excluded161 = [\"title\"],\n _excluded162 = [\"title\"],\n _excluded163 = [\"title\"],\n _excluded164 = [\"title\"],\n _excluded165 = [\"title\"],\n _excluded166 = [\"title\"],\n _excluded167 = [\"title\"],\n _excluded168 = [\"title\"],\n _excluded169 = [\"title\"],\n _excluded170 = [\"title\"],\n _excluded171 = [\"title\"],\n _excluded172 = [\"title\"],\n _excluded173 = [\"title\"],\n _excluded174 = [\"title\"],\n _excluded175 = [\"title\"],\n _excluded176 = [\"title\"],\n _excluded177 = [\"title\"],\n _excluded178 = [\"title\"],\n _excluded179 = [\"title\"],\n _excluded180 = [\"title\"],\n _excluded181 = [\"title\"],\n _excluded182 = [\"title\"],\n _excluded183 = [\"title\"],\n _excluded184 = [\"title\"],\n _excluded185 = [\"title\"],\n _excluded186 = [\"title\"],\n _excluded187 = [\"title\"],\n _excluded188 = [\"title\"],\n _excluded189 = [\"title\"],\n _excluded190 = [\"title\"],\n _excluded191 = [\"title\"],\n _excluded192 = [\"title\"],\n _excluded193 = [\"title\"],\n _excluded194 = [\"title\"],\n _excluded195 = [\"title\"],\n _excluded196 = [\"title\"],\n _excluded197 = [\"title\"],\n _excluded198 = [\"title\"],\n _excluded199 = [\"title\"],\n _excluded200 = [\"title\"],\n _excluded201 = [\"title\"],\n _excluded202 = [\"title\"],\n _excluded203 = [\"title\"],\n _excluded204 = [\"title\"],\n _excluded205 = [\"title\"],\n _excluded206 = [\"title\"],\n _excluded207 = [\"title\"],\n _excluded208 = [\"title\"],\n _excluded209 = [\"title\"],\n _excluded210 = [\"title\"],\n _excluded211 = [\"title\"],\n _excluded212 = [\"title\"],\n _excluded213 = [\"title\"],\n _excluded214 = [\"title\"],\n _excluded215 = [\"title\"],\n _excluded216 = [\"title\"],\n _excluded217 = [\"title\"],\n _excluded218 = [\"title\"],\n _excluded219 = [\"title\"],\n _excluded220 = [\"title\"],\n _excluded221 = [\"title\"],\n _excluded222 = [\"title\"],\n _excluded223 = [\"title\"],\n _excluded224 = [\"title\"],\n _excluded225 = [\"title\"],\n _excluded226 = [\"title\"],\n _excluded227 = [\"title\"],\n _excluded228 = [\"title\"],\n _excluded229 = [\"title\"],\n _excluded230 = [\"title\"],\n _excluded231 = [\"title\"],\n _excluded232 = [\"title\"],\n _excluded233 = [\"title\"],\n _excluded234 = [\"title\"],\n _excluded235 = [\"title\"],\n _excluded236 = [\"title\"],\n _excluded237 = [\"title\"],\n _excluded238 = [\"title\"],\n _excluded239 = [\"title\"],\n _excluded240 = [\"title\"],\n _excluded241 = [\"title\"],\n _excluded242 = [\"title\"],\n _excluded243 = [\"title\"],\n _excluded244 = [\"title\"],\n _excluded245 = [\"title\"],\n _excluded246 = [\"title\"],\n _excluded247 = [\"title\"],\n _excluded248 = [\"title\"],\n _excluded249 = [\"title\"],\n _excluded250 = [\"title\"],\n _excluded251 = [\"title\"],\n _excluded252 = [\"title\"],\n _excluded253 = [\"title\"],\n _excluded254 = [\"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\nexport var AC = function AC(_ref) {\n var title = _ref.title,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M440.1 181.1c-.1 39.2-6.4 81.4-57.4 101.5-51.1-20.1-57.3-62.3-57.4-101.5h114.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29DBFF\",\n d: \"M439.6 197.7c-2.8 34.9-12.4 67.4-57 85-44.4-17.6-54.5-51.2-56.9-84.9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M437.8 214.1c-3.2 24.3-16.7 53.5-55.1 68.6-38.4-15.1-50.5-42.5-55.1-68.4\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29DBFF\",\n d: \"M434.2 230.3c-5.7 17.7-19.3 39.4-51.3 52.8-32-12.6-45.2-33.8-51.4-53\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M426.7 246.9c-6.5 11.3-17.7 25.4-44 35.9-27.5-11.5-37.4-25.3-44-36.1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29DBFF\",\n d: \"M412.4 265.1c-8.1 7.2-12 11.2-29.6 17.9-20.1-7.9-22.6-11.6-29.2-17.5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#5CC85C\",\n d: \"M383.3 231.6c-.2-.2-27.9 35.7-27.9 35.7-1.8-1.3-10-9.5-13.3-15l41.3-50.1 40.2 49.7c-3.9 6.5-11.4 13.6-13.2 15M382.6 85.3l-26.5 45h53z\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"rotate(-82.3 291.431 225.686)\",\n fill: \"#F7A226\",\n cx: 291.4,\n cy: 225.7,\n rx: 48.7,\n ry: 15.7\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"rotate(-68.099 303.087 164.67)\",\n fill: \"#DDC7AB\",\n cx: 303.1,\n cy: 164.7,\n rx: 11.7,\n ry: 7.2\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"rotate(-81.738 291.697 271.697)\",\n fill: \"#DDC7AB\",\n cx: 291.7,\n cy: 271.7,\n rx: 11.4,\n ry: 3.3\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"matrix(.9986 -.05353 .05353 .9986 -13.992 16.424)\",\n fill: \"#DDC7AB\",\n cx: 299.6,\n cy: 269.4,\n rx: 3.3,\n ry: 11\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"rotate(-21.518 314.54 201.06)\",\n fill: \"#DDC7AB\",\n cx: 314.5,\n cy: 201.1,\n rx: 4.1,\n ry: 13.7\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"rotate(-21.518 317.511 178.077)\",\n fill: \"#DDC7AB\",\n cx: 317.5,\n cy: 178.1,\n rx: 13.7,\n ry: 4.1\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"rotate(-7.7 473.781 225.857)\",\n fill: \"#F7A226\",\n cx: 473.6,\n cy: 225.9,\n rx: 15.7,\n ry: 48.7\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"rotate(-21.901 462.057 164.866)\",\n fill: \"#DDC7AB\",\n cx: 462,\n cy: 164.9,\n rx: 7.2,\n ry: 11.7\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"rotate(-8.27 473.27 271.908)\",\n fill: \"#DDC7AB\",\n cx: 473.4,\n cy: 271.9,\n rx: 3.3,\n ry: 11.4\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"matrix(.05353 -.9986 .9986 .05353 171.34 719.998)\",\n fill: \"#DDC7AB\",\n cx: 465.5,\n cy: 269.6,\n rx: 11,\n ry: 3.3\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"rotate(-68.482 450.552 201.247)\",\n fill: \"#DDC7AB\",\n cx: 450.6,\n cy: 201.2,\n rx: 13.7,\n ry: 4.1\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"rotate(-68.482 447.58 178.265)\",\n fill: \"#DDC7AB\",\n cx: 447.6,\n cy: 178.3,\n rx: 4.1,\n ry: 13.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#B0C6CC\",\n d: \"M373.3 130.3 356.1 155l17.8 26.1H396l4.7-25.4-5.4-25.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 0v117.4h-46.1l46.1 30.7v22.6h-22.6L160 121.8v48.9H96v-48.9l-73.4 48.9H0v-22.6l46.1-30.7H0v-64h46.1L0 22.7V0h22.6L96 48.9V0h64v48.9L233.4 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M144 0h-32v69.4H0v32h112v69.3h32v-69.3h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M256 22.7v30.7h-46.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 170.7v-11l62.5-42.3h22.6L7.3 170.7zM7.3.1l77.8 53.2H62.5L0 11.1V.1zM256 .1v11l-62.5 42.3h-22.6L248.7.1zm-7.3 170.6-77.8-53.3h22.6l62.5 42.3v11z\"\n }));\n};\nexport var AD = function AD(_ref2) {\n var title = _ref2.title,\n rest = _objectWithoutProperties(_ref2, _excluded2);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h171v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M342 0h171v342H342zM198.9 113.6H256v64.8h-57.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M267.6 113.6v64.7m16.6-64.7v64.7m16.6-64.7v64.7\",\n stroke: \"#D80027\",\n strokeWidth: 7\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M247.4 178.4v64.7m-13.3-64.7v64.7m-13.3-64.6v53.9m-13.7-53.9v47.1\",\n stroke: \"#D80027\",\n strokeWidth: 5\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m199.9 146 27.6-32.4 28.5 32.3-28.1 32.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#BC8B00\",\n d: \"M182.2 95.9v92.2c0 34.3 27.3 54.2 48.6 64.5-.8 1.4 25.1 8.3 25.1 8.3s25.9-6.9 25.1-8.3c21.4-10.3 48.6-30.1 48.6-64.5V95.9H182.2zm129.9 92.2c0 16.9-10 29.4-32.8 43.9-8.6 5.5-17.5 9-23.3 11-5.8-2-14.7-5.5-23.3-11-22.8-14.5-32.8-28-32.8-43.9v-74.5h112.2v74.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M264.4 188.9h29.5v8.6h-29.5zm0 17.6h29.5v8.6h-29.5z\"\n }));\n};\nexport var AE = function AE(_ref3) {\n var title = _ref3.title,\n rest = _objectWithoutProperties(_ref3, _excluded3);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#009e49\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 228h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ce1126\",\n d: \"M0 0h171v342H0z\"\n }));\n};\nexport var AF = function AF(_ref4) {\n var title = _ref4.title,\n rest = _objectWithoutProperties(_ref4, _excluded4);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DB3E00\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#479900\",\n d: \"M331 0h182v342H331z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h181.8v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 126.7c-19.4 0-35.2 15.8-35.2 35.2v52.8h70.4v-52.8c0-19.5-15.8-35.2-35.2-35.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 84.3c-47.7 0-86.4 38.7-86.4 86.4S208.3 257 256 257s86.4-38.7 86.4-86.4-38.7-86.3-86.4-86.3zm0 157.7c-39.4 0-71.4-32-71.4-71.4 0-39.4 32-71.4 71.4-71.4 39.4 0 71.4 32 71.4 71.4 0 39.5-32 71.4-71.4 71.4z\"\n }));\n};\nexport var AG = function AG(_ref5) {\n var title = _ref5.title,\n rest = _objectWithoutProperties(_ref5, _excluded5);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0072c6\",\n d: \"M88.8 136.5c-2.2 12.9-3.4 26.2-3.4 39.8 0 13.6 1.2 27 3.4 39.8L256 228.3l167.2-12.1c2.2-12.9 3.4-26.2 3.4-39.8s-1.2-27-3.4-39.8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M423.2 219H88.8c15.8 69.8 84.7 122.3 167.2 122.3S407.4 288.8 423.2 219z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M365.9 136.5H146.1l44.9-21.1-23.9-43.5 48.8 9.4L222 32l34 36.2L290 32l6.1 49.3 48.8-9.4-23.9 43.5z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#ce1126\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256.5 342 0 0v342z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M513 342V0L256 342z\"\n })));\n};\nexport var AI = function AI(_ref6) {\n var title = _ref6.title,\n rest = _objectWithoutProperties(_ref6, _excluded6);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00318b\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M454.8 265.38c7.94-10.93 13.24-24.27 13.24-40.42V104.89a59.754 59.754 0 0 1-36.02 12.01c-19.64 0-37.07-9.43-48.03-24.01-10.95 14.58-28.39 24.01-48.03 24.01-13.52 0-25.99-4.47-36.02-12v120.06c0 16.16 5.3 29.5 13.24 40.42H454.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#8DCCFF\",\n d: \"M310.23 260.98C332.65 296.96 384 309 384 309s51.35-12.04 73.77-48.02H310.23z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D87B00\",\n d: \"M396.66 172.21c.32 1.42 8.72 10.17 17.56 20.15 1.39 1.57-8.74 12.63-6.91 12.59 4.75-.12 19.27-17.26 19.34 6.65.05 15.94-30 27.51-30 27.51h17.47l.65 14.96s4.97-13.34 7.59-16.57c8.1-9.97 20.18-30.07 34.59-27.1 14.41 2.97-13.66-13.92-13.66-13.92s-5.2-15.19-16.63-16.97c-10.06-1.57-14.29-2.51-26.64-7.3-1.68-.65-3.88-2.32-3.36 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D87B00\",\n d: \"M359.69 198.69c1.07-.99 4.46-12.63 8.69-25.28.67-1.99 15.31 1.27 14.35-.3-2.47-4.06-24.58-8.08-3.9-20.08 13.79-8 38.82 12.27 38.82 12.27l-8.72-15.14 12.64-8.03s-14.05 2.35-18.14 1.69c-12.68-2.04-36.13-2.48-40.75-16.45-4.62-13.97-5.25 18.79-5.25 18.79s-10.56 12.08-6.4 22.88c3.66 9.5 4.96 13.64 6.97 26.73.29 1.79-.06 4.53 1.69 2.92z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D87B00\",\n d: \"M395.67 219.87c-1.39-.43-13.16 2.49-26.22 5.18-2.06.42-6.59-13.88-7.47-12.26-2.27 4.17 5.36 25.31-15.41 13.45-13.84-7.91-8.89-39.73-8.89-39.73l-8.71 15.14-13.29-6.9s9.09 10.96 10.57 14.84c4.6 11.99 16 32.49 6.24 43.49-9.76 11.01 18.88-4.9 18.88-4.9s15.76 3.07 23-5.96c6.38-7.94 9.3-11.14 19.61-19.45 1.43-1.12 3.97-2.19 1.69-2.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256.5 0h-23.1L160 48.9V0H96v48.9L22.6 0H0v22.7l46.1 30.7H0v64h46.1L0 148.1V171h22.6L96 121.8V171h64v-49.2l73.4 49.2h23.1v-22.9l-46.6-30.7h46.6v-64h-46.6l46.6-30.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M144 0h-32v69.4H0v32h112V171h32v-69.6h112.5v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 171v-11.3l62.5-42.3h22.6L7.3 171zM7.3.1l77.8 53.2H62.5L0 11.1V.1zm249.2 0v11l-63 42.3h-22.6L248.7.1zM248.7 171l-77.8-53.6h22.6l63 42.3V171z\"\n }));\n};\nexport var AL = function AL(_ref7) {\n var title = _ref7.title,\n rest = _objectWithoutProperties(_ref7, _excluded7);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 90 60\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ED2024\",\n d: \"M0 0h90v60H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#212121\",\n d: \"M32.5 12.2v16l7.1 2.5-5 4.9 2.4 3 5.3-5.5 1.2 2.3-3 4.9 3.6 5.6-1.8 2.6 2.8 3.6 2.7-3.7-1.5-2.6 3-5.8-2.7-4.6 1.2-2.3 5.2 5.5 2.5-2.9-5.2-5.1 7.2-2.6V12.2l-5.2 1.9-.1 3.8-3.3.3v-2.6l1.7-2.3 5.6-2.2-2.3-.4 1.4-1.2.9.4-.8-1.4L54 9l-1-1.1L47.5 9l1.4 1.1-3.8 4.9-3.8-4.8 1.3-1.1-5-1.2L36.2 9l-1.5-.4-.8 1.4.9-.6 1.6 1.1-2.3.5 5.5 2 1.6 2.3v2.9l-3.3-.3v-3.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.2 25h6.4v2.5h-6.4zm0-4.1h6.4v2.7h-6.4zm0-4.2h6.4v2.6h-6.4zm0-4h6.4v2.5h-6.4zM57.4 25h6.4v2.5h-6.4zm0-4.1h6.4v2.7h-6.4zm0-4.2h6.4v2.6h-6.4zm0-4h6.4v2.5h-6.4zM53.4 36.1h6.4V38h-6.4zm-23.2 0h6.4V38h-6.4z\",\n fill: \"#212121\"\n }));\n};\nexport var AM = function AM(_ref8) {\n var title = _ref8.title,\n rest = _objectWithoutProperties(_ref8, _excluded8);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9811\",\n d: \"M0 228h513v114H0z\"\n }));\n};\nexport var AO = function AO(_ref9) {\n var title = _ref9.title,\n rest = _objectWithoutProperties(_ref9, _excluded9);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 171h513v171H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v171H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFDA44\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m332.7 135.6 17.5-8.6-7.4-19-18.7 6.2zm-45.6-56 5.5-18.8-19.1-7.2-8 18zm29.4 23.2 12.2-15.3-14.9-13.9-14.2 13.6zm19.4 68.9 19.5-.8v-21.3l-22.9.2zm-12.6 38.1 18.8 5.5 7.3-19-18-8zm-29 32.4 14.9 12.7 14.4-14.4-13.1-14.7zm-47-147.7 9.8 19.9 21.9 3.3-15.9 15.5 3.6 21.9-19.6-10.4-19.7 10.2 3.8-21.9-15.8-15.5 22-3.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m250.8 61.3-2.7 18.3c43.1 3.2 77 39.2 77 83.1 0 46-37.3 82.9-83.4 83.4-29.2.3-51.3-14.8-67-33.7l-13.9 12.3c15 19 40.8 39.9 80.9 39.9 56.3 0 101.9-45.6 101.9-101.9.1-53.2-40.7-96.9-92.8-101.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n d: \"m291.9 223.4-11.8 14s51.9 38.9 53.6 40.4c1.7 1.5 5.2 2 9.1-2.7 3.7-4.5 2.8-8.1.9-9.7-2-1.5-51.8-42-51.8-42z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.1 157.2c-7.7 10.3-7.5 23.1 2.8 30.9 0 0 135.2 101.5 136.9 103 1.7 1.5 5.2 2 9.1-2.7 3.7-4.5 2.8-8.1.9-9.7-1.9-1.5-149.7-121.5-149.7-121.5zm47.7 99.1 7.3 18.2 19.5-6-4.8-19.1zm-40.4-3.7-2 19.5 20.1 3.6 4.5-19.1zm-35.7-21.2L167.4 248l16.4 12.1 12.5-15.2z\"\n })));\n};\nexport var AQ = function AQ(_ref10) {\n var title = _ref10.title,\n rest = _objectWithoutProperties(_ref10, _excluded10);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 744 496\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3A7DCE\",\n d: \"M0 0h744v496H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m120 125 90 63 54-14 23-81 61-36 92 14 105 55 6 90 34 12v92l-65 115-78 24-72-17 18-30-8-32-10 9-162-25-49-85 20-46-49-62z\"\n }));\n};\nexport var AR = function AR(_ref11) {\n var title = _ref11.title,\n rest = _objectWithoutProperties(_ref11, _excluded11);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h512v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 0h512v114H0zm0 228h512v114H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFDA44\",\n stroke: \"#d6ab00\",\n strokeWidth: 5,\n cx: 256.5,\n cy: 171,\n r: 40\n }));\n};\nexport var AS = function AS(_ref12) {\n var title = _ref12.title,\n rest = _objectWithoutProperties(_ref12, _excluded12);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#10338c\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M513 33 95.3 171 513 310.76V342L0 171 513 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M513 287.18v24.58L81.72 171 513 30v24.16\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A2001D\",\n d: \"m476.98 140.21-21.89 10.68-3.18-15.32 31.19-29.77s-9.42-40.65-13.75-44.98l-112.32 55.82-6.84 36.76-31.9 28.59-.4 34.2 34.29-22.76 67.23-2.66-1.51 38.11h22.23l11.9-44.64 31.55-24.61-6.6-19.42z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EFC100\",\n stroke: \"#231F20\",\n strokeMiterlimit: 10,\n d: \"m317.89 238.41-22.24-11.11 22.24-11.11h144.46v22.22z\"\n }));\n};\nexport var AT = function AT(_ref13) {\n var title = _ref13.title,\n rest = _objectWithoutProperties(_ref13, _excluded13);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 114h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v114H0zm0 228h513v114H0z\"\n }));\n};\nexport var AU = function AU(_ref14) {\n var title = _ref14.title,\n rest = _objectWithoutProperties(_ref14, _excluded14);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#10338c\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M222.2 170.7c.3-.3.5-.6.8-.9-.2.3-.5.6-.8.9zM188 212.6l11 22.9 24.7-5.7-11 22.8 19.9 15.8-24.8 5.6.1 25.4-19.9-15.9-19.8 15.9.1-25.4-24.8-5.6 19.9-15.8-11.1-22.8 24.8 5.7zm197.9 28.5 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6v12.2l-9.4-7.6-9.5 7.6.1-12.2-11.8-2.6 9.5-7.5-5.3-10.9 11.8 2.7zm-48.6-116 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6.1-12.1-11.9-2.7 9.5-7.5-5.3-10.9L332 136zm48.6-66.2 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6.1-12.1-11.8-2.7 9.5-7.5-5.3-10.9 11.8 2.7zm42.5 49.7 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6V150l-9.4-7.6-9.5 7.6v-12.2l-11.8-2.6 9.5-7.5-5.3-10.9 11.8 2.7zM398 166.5l4.1 12.7h13.3l-10.8 7.8 4.2 12.7-10.8-7.9-10.8 7.9 4.1-12.7-10.7-7.8h13.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M254.8 0v30.6l-45.1 25.1h45.1V115h-59.1l59.1 32.8v22.9h-26.7l-73.5-40.9v40.9H99v-48.6l-87.4 48.6H-1.2v-30.6L44 115H-1.2V55.7h59.1L-1.2 22.8V0h26.7L99 40.8V0h55.6v48.6L242.1 0z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M142.8 0h-32v69.3h-112v32h112v69.4h32v-69.4h112v-32h-112z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"m154.6 115 100.2 55.7v-15.8L183 115z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m154.6 115 100.2 55.7v-15.8L183 115z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m154.6 115 100.2 55.7v-15.8L183 115zm-83.9 0-71.9 39.9v15.8L99 115z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M99 55.7-1.2 0v15.7l71.9 40z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M99 55.7-1.2 0v15.7l71.9 40z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99 55.7-1.2 0v15.7l71.9 40zm84 0 71.8-40V0L154.6 55.7z\",\n fill: \"#D80027\"\n }));\n};\nexport var AW = function AW(_ref15) {\n var title = _ref15.title,\n rest = _objectWithoutProperties(_ref15, _excluded15);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 363 242\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 0h363v242H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M57 96.9 14.7 78.2 57 59.6l18.6-42.2 18.6 42.2 42.3 18.6-42.3 18.7-18.6 42.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#f30028\",\n d: \"m75.6 40.6 11.5 26.1 26.1 11.5-26.1 11.5-11.5 26.1-11.5-26.1L38 78.2l26.1-11.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 152.2h363v15.7H0zm0 31.4h363v15.7H0z\",\n fill: \"#FFDA44\"\n }));\n};\nexport var AX = function AX(_ref16) {\n var title = _ref16.title,\n rest = _objectWithoutProperties(_ref16, _excluded16);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M513 210.9H202.2V342h-79.8V210.9H0v-79.8h122.4V0h79.8v131.1H513v61.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M513 149.7v42.6H183.7V342H141V192.3H0v-42.6h141V0h42.7v149.7z\"\n }));\n};\nexport var AZ = function AZ(_ref17) {\n var title = _ref17.title,\n rest = _objectWithoutProperties(_ref17, _excluded17);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ef3340\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00b5e2\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#509e2f\",\n d: \"M0 228h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M265.6 212.6c-23 0-41.6-18.6-41.6-41.6s18.6-41.6 41.6-41.6c7.2 0 13.9 1.8 19.8 5-9.2-9-21.9-14.6-35.8-14.6-28.3 0-51.2 22.9-51.2 51.2s22.9 51.2 51.2 51.2c13.9 0 26.6-5.6 35.8-14.6-5.9 3.2-12.6 5-19.8 5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m297.6 142.2 5.5 15.5 14.9-7.1-7.1 14.9 15.5 5.5-15.5 5.5 7.1 14.9-14.9-7.1-5.5 15.5-5.5-15.5-14.9 7.1 7.1-14.9-15.5-5.5 15.5-5.5-7.1-14.9 14.9 7.1z\"\n })));\n};\nexport var BA = function BA(_ref18) {\n var title = _ref18.title,\n rest = _objectWithoutProperties(_ref18, _excluded18);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#10338C\",\n d: \"M0 0h513.1v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F6C500\",\n d: \"M99.9 0h342v342\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.9 21.1 40.3 6.2 60.9 21 54 0H26.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.3 25.5 84.4 1.3l-7.8 24.2H51.3l20.5 14.8-7.8 24 20.4-14.8L105 64.3l-7.9-24 20.5-14.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m136.3 69.2-7.8-24-7.8 24H95.5l20.4 14.9-7.8 24 20.4-14.8 20.6 14.8-7.8-24 20.4-14.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m179.4 112.3-7.8-24.1-7.8 24.1h-25.3l20.5 14.9-7.8 24 20.4-14.8 20.6 14.8-7.9-24 20.5-15z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m222.5 155.3-7.8-24-7.8 24h-25.4l20.6 15-7.8 24 20.4-14.9 20.4 14.9-7.8-24 20.6-15z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m265.6 198.4-7.8-24-7.8 24h-25.4l20.6 14.9-7.8 24.1 20.4-14.9 20.4 14.9-7.8-24.2 20.5-14.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m308.7 241.5-7.9-24-7.8 24h-25.3l20.5 14.8-7.9 24.2 20.6-14.9 20.4 14.8-7.8-24.1 20.5-14.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m351.7 284.6-7.8-24.2-7.8 24.2h-25.3l20.4 14.8-7.8 24.1 20.5-14.9 20.5 14.9-7.8-24.1 20.4-14.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m387 303.5-7.9 24.1-25.3.1 19.8 14.3h26.6l19.9-14.4h-25.3z\"\n })));\n};\nexport var BB = function BB(_ref19) {\n var title = _ref19.title,\n rest = _objectWithoutProperties(_ref19, _excluded19);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffc726\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h171v342H0zm342 0h171v342H342z\",\n fill: \"#00267f\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m325.74 101.02-31.97 12.4c-.68 1.35-5.79 7.54-8.18 53.06h-17.05v-60.42L256 78.68l-12.54 27v60.8H226.4c-2.39-45.53-7.8-52.48-8.47-53.84l-31.68-11.63c.15.31 15.4 31.34 15.4 78.01v12.54h41.81v71.07h25.08v-71.07h41.81v-12.54c0-24.13 4.17-44.02 7.68-56.46 3.82-13.57 7.7-21.49 7.74-21.57l-.03.03z\"\n }));\n};\nexport var BD = function BD(_ref20) {\n var title = _ref20.title,\n rest = _objectWithoutProperties(_ref20, _excluded20);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2d6e41\",\n d: \"M0 85.331h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#F40B32\",\n cx: 218.902,\n cy: 256.5,\n r: 115\n }));\n};\nexport var BE = function BE(_ref21) {\n var title = _ref21.title,\n rest = _objectWithoutProperties(_ref21, _excluded21);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fdda25\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h171v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ef3340\",\n d: \"M342 0h171v342H342z\"\n }));\n};\nexport var BF = function BF(_ref22) {\n var title = _ref22.title,\n rest = _objectWithoutProperties(_ref22, _excluded22);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3d944f\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ef2b2d\",\n d: \"M0 0h513v171H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m256 102.6 16.9 52h54.7l-44.2 32.2 16.8 52-44.2-32.1-44.2 32.1 16.8-52-44.2-32.2h54.7z\"\n }));\n};\nexport var BG = function BG(_ref23) {\n var title = _ref23.title,\n rest = _objectWithoutProperties(_ref23, _excluded23);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00966e\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#d62612\",\n d: \"M0 228h513v114H0z\"\n }));\n};\nexport var BH = function BH(_ref24) {\n var title = _ref24.title,\n rest = _objectWithoutProperties(_ref24, _excluded24);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m222.8 34.3-85.2 34.2 85.2 34.1-85.2 34.1 85.2 34.1-85.2 34.1 85.2 34.1-85.2 34.1 85.2 34.1-85.2 34.8H0V0h137.6z\"\n }));\n};\nexport var BI = function BI(_ref25) {\n var title = _ref25.title,\n rest = _objectWithoutProperties(_ref25, _excluded25);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M215.9 170.7 0 314.6V26.8zM513 26.8v287.8L297.1 170.7z\",\n fill: \"#47a644\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M513 26.8 296.1 170.7 513 314.6V342h-41.1L256 197.4 40.1 342H0v-27.4l215.9-143.9L0 26.8V0h40.1L256 143.9 471.9 0H513z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M513 26.8 297.1 170.7 513 314.6V342h-40L256 197.4 39 342H0v-27.4l215.9-143.9L0 26.8V0h40.1L256 143.9 471.9 0H513z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 251.6,\n cy: 170.7,\n r: 100.2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m251.4 103.6 7.4 12.9h14.8l-7.4 12.8 7.4 12.8h-14.8l-7.4 12.9-7.4-12.9h-14.8l7.4-12.8-7.4-12.8H244zm38.8 66.7 7.4 12.9h14.8L305 196l7.4 12.8h-14.8l-7.4 12.9-7.4-12.9h-14.9l7.4-12.8-7.4-12.8h14.9zm-77.2 0 7.4 12.9h14.9l-7.4 12.8 7.4 12.8h-14.9l-7.4 12.9-7.4-12.9h-14.8l7.4-12.8-7.4-12.8h14.8z\",\n fill: \"#D80027\",\n stroke: \"#47a644\",\n strokeWidth: 3\n }));\n};\nexport var BJ = function BJ(_ref26) {\n var title = _ref26.title,\n rest = _objectWithoutProperties(_ref26, _excluded26);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#008751\",\n d: \"M0 85.333h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fcd116\",\n d: \"M196.666 85.333H513v171H196.666z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#e8112d\",\n d: \"M196.666 256H513v171H196.666z\"\n }));\n};\nexport var BL = function BL(_ref27) {\n var title = _ref27.title,\n rest = _objectWithoutProperties(_ref27, _excluded27);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E6BC00\",\n d: \"M157.31 199.76s-9.04 43.93-19.31 40.39c-10.62-3.54-17.53-18.76-17.53-18.76l-14.52 21.24s38.18 8.48 41.01 5.47c1.22-1.14 8.21-15.1 10.34-26.05v-22.29zm-56.13 60.57s-2.48 20.18-1.06 22.66c1.24 2.3 39.48 11.33 39.48 11.33s-24.96 16.46-29.74 20.54L91.8 284.94l-.71-24.61h10.09zm11.33-165.69s39.65 41.6 40.36 45.5c.71 3.72-4.25 3.19-4.25 3.19s-44.79-37.53-49.92-41.07c-5.31-3.55 13.81-7.62 13.81-7.62z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ADADAD\",\n d: \"M99.41 104.73s16.99-.71 16.64-11.51c-.35-10.62-11.15-14.87-19.12-12.39-7.97 2.3-23.01 13.45-13.63 35.05 9.38 21.42 23.37 29.39 26.2 47.8 0 0-5.46 9.86-19.12.35-16.9-11.77-6.2-38.24-10.44-44.96-4.25-7.08-40.95-38.92-40.95-38.92s-30.24 39.37-18 74.92c16.95 49.21 51.74 31.98 64.61 36.76 0 0-42.13 61.96-49.57 67.09 0 0 24.08 8.32 47.8-18.76 0 0 5.84 9.74 7.08 20.18h10.27c4.78-26.2 51.51-64.26 49.92-82.32-1.77-21.25-49.21-49.39-51.69-73.29z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E6BC00\",\n d: \"M359.17 201.27s8.96 42.43 19.23 38.89c10.62-3.54 17.53-18.76 17.53-18.76l14.52 21.24s-37 8.48-39.83 5.47c-1.21-1.14-9.32-13.79-11.52-24.66l.07-22.18zm56.05 59.06s2.48 20.18 1.06 22.66c-1.24 2.3-39.48 11.33-39.48 11.33s24.96 16.46 29.74 20.54l18.06-29.92.71-24.61h-10.09zM403.89 94.64s-39.65 41.6-40.36 45.5c-.71 3.72 4.25 3.19 4.25 3.19s44.79-37.53 49.92-41.07c5.14-3.55-13.81-7.62-13.81-7.62z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#125ECC\",\n d: \"M157.31 87.06H359.1v145.46c0 16.06-9.69 21.39-21.91 31.85l-45.92 39.41c-18.25 15.62-47.91 15.57-66.07 0l-46.01-39.43c-12.08-10.35-21.88-15.71-21.88-31.82V87.06z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFE600\",\n d: \"M200.55 147.71c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41zm57.65-3c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41zm57.65 3c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41zM214.96 274.43c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41c.01 7.96-6.45 14.41-14.41 14.41zm43.24 14.42c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41c0 7.95-6.45 14.41-14.41 14.41zm43.24-14.42c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D60537\",\n d: \"M157.31 175.36H359.1v57.65H157.31v-57.65z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EACE00\",\n d: \"M142.9 43.82s57.65-14.41 115.31-14.41 115.31 14.41 115.31 14.41l-14.41 57.65s-50.45-14.41-100.89-14.41-100.89 14.41-100.89 14.41L142.9 43.82z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#7A6920\",\n d: \"M258.2 72.65c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41zm57.65 5c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41zm-115.3 0c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ADADAD\",\n d: \"M365.08 178.02c-1.59 18.06 45.14 56.12 49.92 82.32h10.27c1.24-10.44 7.08-20.18 7.08-20.18 23.72 27.09 47.8 18.76 47.8 18.76-7.44-5.13-49.57-67.09-49.57-67.09 12.88-4.78 47.67 12.45 64.61-36.76 12.24-35.55-18-74.92-18-74.92s-36.7 31.84-40.95 38.92c-4.25 6.73 6.46 33.2-10.44 44.96-13.66 9.51-19.12-.35-19.12-.35 2.83-18.41 16.82-26.38 26.2-47.8 9.38-21.6-5.66-32.75-13.63-35.05-7.97-2.48-18.76 1.77-19.12 12.39-.35 10.8 16.64 11.51 16.64 11.51-2.48 23.9-49.92 52.04-51.69 73.29z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 258.2,\n cy: 204.19,\n r: 16.93\n }));\n};\nexport var BM = function BM(_ref28) {\n var title = _ref28.title,\n rest = _objectWithoutProperties(_ref28, _excluded28);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#c8102e\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#012169\",\n d: \"M0 .1h256.5v171H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 0h-22.6L160 48.9V0H96v48.9L22.6 0H0v22.7l46.1 30.7H0v64h46.1L0 148.1v22.6h22.6L96 121.8v48.9h64v-48.9l73.4 48.9H256v-22.6l-46.1-30.7H256v-64h-46.1L256 22.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#c8102e\",\n d: \"M144 0h-32v69.4H0v32h112v69.3h32v-69.3h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#c8102e\",\n d: \"M0 170.7v-11l62.5-42.3h22.6L7.3 170.7zM7.3.1l77.8 53.2H62.5L0 11.1V.1zM256 .1v11l-62.5 42.3h-22.6L248.7.1zm-7.3 170.6-77.8-53.3h22.6l62.5 42.3v11z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(13 5)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M303.9 94.94v99.69c0 59.81 79.75 99.69 79.75 99.69s79.75-39.88 79.75-99.69V94.94H303.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2F8F22\",\n d: \"M436.37 254.44H330.93c23.13 25.08 52.72 39.88 52.72 39.88s29.59-14.8 52.72-39.88z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#65B5D2\",\n cx: 383.65,\n cy: 214.56,\n r: 39.88\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#c8102e\",\n cx: 343.77,\n cy: 194.63,\n r: 19.94\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#c8102e\",\n cx: 423.52,\n cy: 194.63,\n r: 19.94\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#c8102e\",\n cx: 383.65,\n cy: 154.75,\n r: 19.94\n })));\n};\nexport var BN = function BN(_ref29) {\n var title = _ref29.title,\n rest = _objectWithoutProperties(_ref29, _excluded29);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 193.74 513 127.19V214.26L0 97.08z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M513 234.26v-86.67L0 20.41v86.67\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\",\n stroke: \"#231F20\",\n strokeWidth: 3,\n strokeMiterlimit: 10\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M306.4 134.01a50.28 50.28 0 0 1 6.07 24.02c0 21.55-13.51 39.94-32.52 47.19v-59.51c5.7-1.19 10-6.37 10-12.59 6.9 0 12.5-5.75 12.5-12.85h-.42c6.9 0 12.91-5.75 12.91-12.85h-34.99V76.58l-14.99-27.71-15 27.71v30.84h-34.99c0 7.1 6.01 12.85 12.91 12.85h-.42c0 7.1 5.6 12.85 12.5 12.85 0 6.22 4.29 11.4 9.99 12.59v61.37c-22.09-5.39-38.48-25.3-38.48-49.05 0-8.7 2.2-16.88 6.07-24.02-10.96 11.21-17.72 26.53-17.72 43.44 0 34.32 27.82 62.15 62.15 62.15s62.15-27.83 62.15-62.15c0-16.91-6.77-32.24-17.72-43.44z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M198.46 226.81s20.69 27.71 66.5 27.71 66.5-27.71 66.5-27.71l13.47 28.37s-21.03 27.71-79.97 27.71-79.97-27.71-79.97-27.71l13.47-28.37zm-69.22-93.63h20.88l24.93 27.26v73.45h-26.28v-68.37zm270.76 0h-20.88l-24.93 27.26v73.45h26.27v-68.37z\"\n })));\n};\nexport var BO = function BO(_ref30) {\n var title = _ref30.title,\n rest = _objectWithoutProperties(_ref30, _excluded30);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#d52b1e\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#f9e300\",\n d: \"M0 114h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#007934\",\n d: \"M0 228h513v114H0z\"\n }));\n};\nexport var BQ = function BQ(_ref31) {\n var title = _ref31.title,\n rest = _objectWithoutProperties(_ref31, _excluded31);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#012a87\",\n d: \"M0 342h513V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#f9d90f\",\n d: \"M250.4 0H0v166.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#dc171d\",\n d: \"m140.4 118.3 12.2 21.2h24.5l-12.3 21.1 12.3 21.2h-24.5L140.4 203l-12.2-21.2h-24.5l12.3-21.2-12.3-21.1h24.5z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 9,\n strokeMiterlimit: 10,\n cx: 140.4,\n cy: 160.6,\n r: 57.7\n }));\n};\nexport var BR = function BR(_ref32) {\n var title = _ref32.title,\n rest = _objectWithoutProperties(_ref32, _excluded32);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#009b3a\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fedf00\",\n d: \"m256.5 19.3 204.9 151.4L256.5 322 50.6 170.7z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 256.5,\n cy: 171,\n r: 80.4\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002776\",\n d: \"M215.9 165.7c-13.9 0-27.4 2.1-40.1 6 .6 43.9 36.3 79.3 80.3 79.3 27.2 0 51.3-13.6 65.8-34.3-24.9-31-63.2-51-106-51zm119 20.3c.9-5 1.5-10.1 1.5-15.4 0-44.4-36-80.4-80.4-80.4-33.1 0-61.5 20.1-73.9 48.6 10.9-2.2 22.1-3.4 33.6-3.4 46.8.1 89 19.5 119.2 50.6z\"\n }));\n};\nexport var BS = function BS(_ref33) {\n var title = _ref33.title,\n rest = _objectWithoutProperties(_ref33, _excluded33);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffc72c\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v114H0zm0 228h513v114H0z\",\n fill: \"#00778b\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 171 0 342V0z\"\n }));\n};\nexport var BT = function BT(_ref34) {\n var title = _ref34.title,\n rest = _objectWithoutProperties(_ref34, _excluded34);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF7415\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M513 0H0v342\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#FFF\",\n strokeWidth: 42,\n strokeMiterlimit: 10,\n d: \"M128.7 255.5s35 54 67.3 32.4c56.9-37.9-68.9-108.6-2.9-152.6 58.3-38.8 76.6 103.5 137.6 62.8 59-39.3-64.7-111.4-9.2-148.4 33.4-22.2 67.1 32.6 67.1 32.6\"\n }));\n};\nexport var BV = function BV(_ref35) {\n var title = _ref35.title,\n rest = _objectWithoutProperties(_ref35, _excluded35);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 33.333 1100 733.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ef2b2d\",\n d: \"M0 0h1100v800H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M300 0h200v800H300z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 300h1100v200H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002868\",\n d: \"M350 0h100v800H350z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002868\",\n d: \"M0 350h1100v100H0z\"\n }));\n};\nexport var BW = function BW(_ref36) {\n var title = _ref36.title,\n rest = _objectWithoutProperties(_ref36, _excluded36);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 238h513v104H0zM0 0h513v104H0z\",\n fill: \"#6da9d2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 125.5h513v89.656H0z\"\n }));\n};\nexport var BY = function BY(_ref37) {\n var title = _ref37.title,\n rest = _objectWithoutProperties(_ref37, _excluded37);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#007C30\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CE1720\",\n d: \"M0 230h513V0H0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M100 230V0H0v342h513-413z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28 159.6 8.6 128.2 28 97.4l19.3 30.8zm44.6 0-19.3-31.4 19.3-30.8L92 128.2zM28 241.2 8.6 209.8 28 179l19.3 30.8zm44.6 0-19.3-31.4L72.6 179 92 209.8z\",\n fill: \"#CE1720\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m28 73.8-16.1-26L28 22.2l16 25.6zm44.6 0-16-26 16-25.6 16.1 25.6zM28 318l-16.1-26.1L28 266.3l16 25.6zm44.6 0-16-26.1 16-25.6 16.1 25.6z\",\n fill: \"none\",\n stroke: \"#CE1720\",\n strokeWidth: 7\n }));\n};\nexport var BZ = function BZ(_ref38) {\n var title = _ref38.title,\n rest = _objectWithoutProperties(_ref38, _excluded38);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#003e87\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 260.9,\n cy: 170.9,\n r: 118.9\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"none\",\n stroke: \"#6DA544\",\n strokeWidth: 18,\n strokeMiterlimit: 10,\n cx: 261.9,\n cy: 173.1,\n r: 94.5\n }), /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"#000\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#003e87\",\n d: \"m261.9 151.5-50.6 23.4v20c0 11.8 6.1 22.8 16.2 28.9L262 239l34.5-15.2c10-6.2 16.2-17.1 16.2-28.9v-20l-50.8-23.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M211.3 128.1h101.3v46.7H211.3z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v35H0zm0 306h513v35H0z\",\n fill: \"#ce1127\"\n }));\n};\nexport var CA = function CA(_ref39) {\n var title = _ref39.title,\n rest = _objectWithoutProperties(_ref39, _excluded39);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h142v342H0zm371 0h142v342H371zm-64.5 206 50.4-25.2-25.2-12.6V143l-50.4 25.2 25.2-50.4h-25.2L256.1 80l-25.2 37.8h-25.2l25.2 50.4-50.4-25.2v25.2l-25.2 12.6 50.4 25.2-12.6 25.2h50.4V269h25.2v-37.8h50.4z\",\n fill: \"red\"\n }));\n};\nexport var CC = function CC(_ref40) {\n var title = _ref40.title,\n rest = _objectWithoutProperties(_ref40, _excluded40);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"green\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m422.7 252.4 6.2 12.8 13.8-3.2-6.2 12.8 11.2 8.8-13.9 3.2V301l-11.1-8.9-11.1 8.9v-14.2l-13.8-3.2 11.1-8.8-6.2-12.8 13.9 3.2zm-46.6-136.3 6.2 12.9 13.8-3.2-6.2 12.8 11.2 8.8-13.9 3.1v14.3l-11.1-8.9-11.1 8.9.1-14.3-13.9-3.1 11.1-8.8-6.2-12.8L370 129zm37-77.8 6.2 12.8 13.8-3.2-6.2 12.8 11.2 8.9-13.9 3.1v14.2L413.1 78 402 86.9l.1-14.2-13.9-3.1 11.1-8.9-6.2-12.8 13.9 3.2zm51.8 58.4 6.2 12.8 13.9-3.2-6.3 12.8 11.2 8.9-13.9 3.1.1 14.2-11.2-8.9-11.1 8.9.1-14.2L440 128l11.2-8.9-6.3-12.8 13.9 3.2zm-28 68.1 4.9 14.8h15.6l-12.6 9.2 4.8 14.9-12.7-9.2-12.6 9.2 4.8-14.9-12.6-9.2h15.6zM306.8 254.7c-49.2 0-89.1-39.9-89.1-89.1s39.9-89.1 89.1-89.1c15.3 0 29.8 3.9 42.4 10.7C329.4 67.9 302.3 56 272.5 56c-60.5 0-109.6 49.1-109.6 109.6S212 275.3 272.5 275.3c29.8 0 56.9-11.9 76.6-31.3-12.6 6.8-27 10.7-42.3 10.7zM140.4 59.5C129.7 41 109.7 28.6 86.8 28.6S44 41 33.3 59.5h107.1zm.2.4-53.8 53.8-53.7-53.8C28 68.9 25 79.3 25 90.5c0 34.2 27.7 61.9 61.9 61.9s61.9-27.7 61.9-61.9c-.1-11.2-3.1-21.6-8.2-30.6z\",\n fill: \"#FFDA44\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A2001D\",\n d: \"M71.4 98.2v52.2c4.9 1.3 10.1 1.9 15.5 1.9s10.5-.7 15.5-1.9V98.2h-31z\"\n }));\n};\nexport var CD = function CD(_ref41) {\n var title = _ref41.title,\n rest = _objectWithoutProperties(_ref41, _excluded41);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M513 66.9V0H411.7L0 274.4V342h100.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M513 0v40.1L60.2 342H0v-40.8L451.8 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m93.6 31.2 16.3 50.4H163l-42.9 31.2 16.4 50.5-42.9-31.2-43 31.2L67 112.8 24.1 81.6h53.1z\"\n }));\n};\nexport var CF = function CF(_ref42) {\n var title = _ref42.title,\n rest = _objectWithoutProperties(_ref42, _excluded42);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#d21034\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 171h211.5v85.3H0zm300.5 0H512v85.3H300.5z\",\n fill: \"#3a9927\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#003082\",\n d: \"M0 0v85.3h211.5V0h89v85.3H513V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M300.5 85.3H512v85.3H300.5zM0 85.3h211.5v85.3H0z\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M300.5 342h-89v-86H0v86h513v-86H300.5zM105.7 8.6l8.6 26.2h27.5L119.5 51l8.6 26.2L105.7 61 83.4 77.2 91.9 51 69.6 34.8h27.6z\",\n fill: \"#ffce00\"\n }));\n};\nexport var CG = function CG(_ref43) {\n var title = _ref43.title,\n rest = _objectWithoutProperties(_ref43, _excluded43);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#da1a35\",\n d: \"M0 85.331h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#009543\",\n d: \"M443.726 85.331 102.4 426.657H0V85.331z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fbde4a\",\n d: \"M500.124 85.331 158.798 426.657H11.876L353.202 85.331z\"\n }));\n};\nexport var CH = function CH(_ref44) {\n var title = _ref44.title,\n rest = _objectWithoutProperties(_ref44, _excluded44);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"red\",\n d: \"M0 85.337h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M356.174 222.609h-66.783v-66.783h-66.782v66.783h-66.783v66.782h66.783v66.783h66.782v-66.783h66.783z\"\n }));\n};\nexport var CI = function CI(_ref45) {\n var title = _ref45.title,\n rest = _objectWithoutProperties(_ref45, _excluded45);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#009e60\",\n d: \"M342 0h171v342H342z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#f77f00\",\n d: \"M0 0h171v342H0z\"\n }));\n};\nexport var CK = function CK(_ref46) {\n var title = _ref46.title,\n rest = _objectWithoutProperties(_ref46, _excluded46);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#01237a\",\n d: \"M0 85.332h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m384 156.705 5.283 16.254h17.089l-13.826 10.045 5.281 16.254L384 189.211l-13.825 10.047 5.28-16.254-13.825-10.045h17.089zm-70.209 29.081 15.228 7.758 12.084-12.083-2.673 16.879 15.227 7.759-16.879 2.673-2.674 16.88-7.76-15.227-16.878 2.673 12.086-12.084zm-29.081 70.209 16.254-5.281.001-17.089 10.044 13.825 16.254-5.282-10.046 13.827 10.046 13.826-16.254-5.28-10.044 13.825v-17.09zm29.081 70.209 7.759-15.229-12.084-12.084 16.881 2.674 7.757-15.227 2.674 16.879 16.879 2.672-15.227 7.759 2.673 16.882-12.084-12.087zM384 355.284l-5.281-16.253h-17.091l13.827-10.045-5.28-16.254L384 322.776l13.827-10.044-5.281 16.254 13.826 10.045h-17.089zm70.209-29.08-15.229-7.758-12.083 12.084 2.673-16.882-15.227-7.756 16.879-2.675 2.675-16.879 7.756 15.227 16.881-2.674-12.086 12.085zm29.081-70.209-16.254 5.281v17.09l-10.045-13.826-16.254 5.281 10.046-13.826-10.046-13.827 16.254 5.282 10.045-13.825v17.089zm-29.081-70.207-7.757 15.226 12.082 12.084-16.881-2.673-7.756 15.227-2.675-16.88-16.879-2.675 15.227-7.757-2.673-16.878 12.084 12.082zM0 186.665v16h46.069L0 233.377v7.539l57.377-38.252H80L0 255.998h112v-69.334H0zm96 69.331H22.628L96 207.083v48.913zm80-117.331 80-53.334H144v69.334h112v-16h-46.069L256 107.951v-7.539l-57.377 38.251H176v.002zm-16-53.332h73.372L160 134.246V85.333zm-16 170.665h112l-80-53.334h22.623L256 240.917v-7.539l-46.069-30.713H256v-16H144v69.333zm16-48.915 73.372 48.913H160v-48.913zM112 85.331H0l80 53.334H57.377L0 100.413v7.539l46.069 30.712H0v16h112V85.331zm-16 48.915L22.628 85.333H96v48.913z\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144 85.331h-32v69.334H0v32h112v69.333h32v-69.333h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M80 138.665 0 85.331v15.082l57.377 38.252zm96 0h22.623L256 100.413V85.331zm-118.623 64L0 240.917v15.081l80-53.333zm118.623 0 80 53.333v-15.081l-57.377-38.252z\"\n })));\n};\nexport var CL = function CL(_ref47) {\n var title = _ref47.title,\n rest = _objectWithoutProperties(_ref47, _excluded47);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M196 0h317v171H196z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0037A1\",\n d: \"M0 0h196v171H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M98 24.5 113.1 71H162l-39.6 28.7 15.2 46.5L98 117.5l-39.6 28.7 15.2-46.5L34 71h48.9z\"\n }));\n};\nexport var CM = function CM(_ref48) {\n var title = _ref48.title,\n rest = _objectWithoutProperties(_ref48, _excluded48);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ce1126\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#007a5e\",\n d: \"M0 0h171v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M342 0h171v342H342zm-86 102.2 17.2 53H329L283.9 188l17.2 53-45.1-32.7-45.1 32.7 17.2-53-45.1-32.8h55.8z\",\n fill: \"#fcd116\"\n }));\n};\nexport var CN = function CN(_ref49) {\n var title = _ref49.title,\n rest = _objectWithoutProperties(_ref49, _excluded49);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m226.8 239.2-9.7-15.6-17.9 4.4 11.9-14.1-9.7-15.6 17.1 6.9 11.8-14.1-1.3 18.4 17.1 6.9-17.9 4.4zM290.6 82l-10.1 15.4 11.6 14.3-17.7-4.8-10.1 15.5-1-18.4-17.7-4.8 17.2-6.6-1-18.4 11.6 14.3zm-54.4-56.6-2 18.3 16.8 7.6-18 3.8-2 18.3-9.2-16-17.9 3.8 12.3-13.7-9.2-15.9 16.8 7.5zm56.6 136.4-14.9 10.9 5.8 17.5-14.9-10.8-14.9 11 5.6-17.6-14.9-10.7 18.4-.1 5.6-17.6 5.8 17.5zM115 46.3l17.3 53.5h56.2l-45.4 32.9 17.3 53.5-45.4-33-45.5 33 17.4-53.5-45.5-32.9h56.3z\",\n fill: \"#FFDA44\"\n }));\n};\nexport var CO = function CO(_ref50) {\n var title = _ref50.title,\n rest = _objectWithoutProperties(_ref50, _excluded50);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 256.5h513V342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 171h513v85.5H0z\"\n }));\n};\nexport var CR = function CR(_ref51) {\n var title = _ref51.title,\n rest = _objectWithoutProperties(_ref51, _excluded51);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 114h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 285h513v57H0zM0 0h513v57H0z\"\n }));\n};\nexport var CU = function CU(_ref52) {\n var title = _ref52.title,\n rest = _objectWithoutProperties(_ref52, _excluded52);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9811\",\n d: \"M0-40.8v422.9-211.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v68.3H0zm0 136.5h513v68.3H0zm0 136.6h513v68.3H0z\",\n fill: \"#0052B4\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M256 170.7 0 342V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m86.5 111.4 12.7 39.2h41.3l-33.4 24.2 12.8 39.3-33.4-24.2-33.4 24.2 12.8-39.3-33.4-24.2h41.2z\"\n }));\n};\nexport var CV = function CV(_ref53) {\n var title = _ref53.title,\n rest = _objectWithoutProperties(_ref53, _excluded53);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#003893\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#cf2027\",\n d: \"M0 182.2h513v41.4H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 140.8h513v41.4H0zm0 82.8h513V265H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m150.4 70 6.9 21.1h22.2l-18 13.1 6.9 21.1-18-13.1-17.9 13.1 6.8-21.1-17.9-13.1h22.2zm0 209.7 6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-17.9-13h22.2zm-97.6-70.9 6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-17.9-13H46zM90.1 91l6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-18-13h22.3zm-66.3 71H46l6.8-21.1 6.9 21.1h22.2l-18 13.1 6.9 21.1-18-13-17.9 13 6.8-21.1zm48.4 148.9 6.8-21.1-18-13h22.3l6.8-21.2 6.9 21.2h22.2l-18 13 6.9 21.1-18-13zM248 208.8l-6.9 21.1h-22.2l18 13-6.9 21.2 18-13.1 18 13.1-6.9-21.2 18-13h-22.2zM210.7 91l-6.8 21.1h-22.2l17.9 13-6.8 21.2 17.9-13.1 18 13.1-6.9-21.2 18-13h-22.2zm66.4 71h-22.2l-6.9-21.1-6.9 21.1h-22.2l18 13.1-6.9 21.1 18-13 18 13-6.9-21.1zm-48.4 148.9-6.9-21.1 18-13h-22.2l-6.9-21.2-6.8 21.2h-22.2l17.9 13-6.8 21.1 17.9-13z\",\n fill: \"#f7d116\",\n stroke: \"#000\"\n }));\n};\nexport var CW = function CW(_ref54) {\n var title = _ref54.title,\n rest = _objectWithoutProperties(_ref54, _excluded54);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002b7f\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#f9e814\",\n d: \"M0 233.5h513v51H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m168.7 86.5 12.9 39.8h41.8l-33.8 24.5 12.9 39.7-33.8-24.5-33.8 24.5 12.9-39.7-33.8-24.5h41.8zm-83.3-54 7.8 23.9h25L97.9 71.1l7.8 23.8-20.3-14.7-20.3 14.7 7.8-23.8-20.3-14.7h25.1z\",\n fill: \"#FFF\"\n }));\n};\nexport var CX = function CX(_ref55) {\n var title = _ref55.title,\n rest = _objectWithoutProperties(_ref55, _excluded55);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0021ad\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1c8a42\",\n d: \"M0 0h513v342\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m77.6 272 5.7 11.9 12.8-3-5.7 11.9 10.3 8.1-12.8 2.9V317l-10.3-8.3-10.2 8.3v-13.2l-12.8-2.9 10.3-8.1-5.8-11.9 12.9 3zm-37.1-98.9 5.7 11.9 12.8-3-5.7 11.8 10.3 8.2-12.9 2.9.1 13.2-10.3-8.3-10.3 8.3.1-13.2-12.9-2.9 10.4-8.2L22 182l12.8 3zm37.1-80.9 5.7 11.8 12.8-2.9-5.7 11.8 10.3 8.2-12.8 2.9v13.1l-10.3-8.2-10.2 8.2V124l-12.8-2.9 10.3-8.2-5.8-11.8L72 104zm46.1 62.9 5.7 11.9 12.8-3-5.7 11.9 10.3 8.1-12.8 2.9v13.2l-10.3-8.2-10.2 8.2v-13.2l-12.8-2.9 10.3-8.1-5.7-11.9 12.8 3zm-32.9 54 4.4 13.7h14.5L98 231.3l4.5 13.7-11.7-8.4-11.7 8.4 4.5-13.7-11.7-8.5h14.4z\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#ffc639\",\n cx: 267.1,\n cy: 170.7,\n r: 74.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1c8a42\",\n d: \"M267.1 220.3h24.8s10.8-19 0-37.2l24.8-24.8-12.4-24.8h-12.4s-6.2 18.6-31 18.6-31-18.6-31-18.6h-12.4l12.4 24.8-12.4 24.8 12.4 12.4s12.4-24.8 37.2-12.4c0 0 10.5 15.5 0 37.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffc639\",\n d: \"M464.4 92.2c.6-2.9-.2-17.6-.2-20.7 0-21.3-13.9-39.4-33.2-45.7 5.9 12 9.2 25.4 9.2 39.7 0 4.8-.4 9.5-1.1 14.1-2.9-4.7-6.6-8.9-11.2-12.6-17.1-13.6-40.6-14-57.9-2.5 13.4 2.9 26.3 8.9 37.7 18 9 7.1 16.2 16.8 21.7 26.1 0 0-17.8 10.9-31 15.1s-42.3 7.9-42.3 7.9c72 12 132-36 132-36-6.5-13.4-15.8-4-23.7-3.4z\"\n }));\n};\nexport var CY = function CY(_ref56) {\n var title = _ref56.title,\n rest = _objectWithoutProperties(_ref56, _excluded56);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DB7D00\",\n d: \"M141.7 154.7s.2 67.1 74.7 65.3l4.5 13.9h8.9s-7.4-41.1 60.1-41.5c0 0 0-27.6 27.6-27.6H359s-66-51.8 58.9-118l1.8-13.1s-129.9 71-198.9 57.2c0 0 10.7 42.5-10.8 42.5-10.8 0-9.7-8.1-32.3-8.1-18.7 0-17.3 19.7-26.3 19.5-8.9-.2-18.8-12.3-19.6-10.2-.7 2.1 9.9 20.1 9.9 20.1z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#006651\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M237.2 308.1c6.9-5 13-6.6 22.4-8.3s19.4-4.4 24.6-5.8-17.7 6.6-23.5 8.3c-5.8 1.6-23.5 5.8-23.5 5.8zm37.9-14.7c-1.9-11.9 2.8-24.3 13.5-29.3 2.5 8.6-5.2 23.2-13.5 29.3zm18.2-6.2c-5.8-9.8 4-22.6 11.1-28.8 3.3 6-2.5 23.7-11.1 28.8zm16.9-7.6c-6.2-8.4 1.1-23.2 8.8-29 3.1 8.2.1 23.2-8.8 29zm16.9-10.6c-5.6-8-1.7-20.4 6.3-28.4 5.8 6.6.9 21-6.3 28.4zm13.5-10.7c-4.7-7.5 1.1-25.4 8.6-30.4 3.3 6.6.8 25.4-8.6 30.4zm10.8-2.8c-1.4-10.8 17.4-22.7 25.2-22.4-.9 8.9-8.9 18.6-25.2 22.4zm-10.5 12.2c8.8-9.1 26-9.1 32.1-7.2-1.7 5.3-21.9 16.9-32.1 7.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M328.7 276.8c12.4-3.3 20.5-6.1 27.9 1.7-5.2 6.6-25.4 4.7-27.9-1.7zm-17.7 8c11.9-6.4 26.3 3 28.5 8.6-13.3 5.5-28.7-7.2-28.5-8.6zm-16.3 9.2c10.8-4.1 23.2 1.4 28.2 7.5-5.8 2.7-21 5.7-28.2-7.5zm-14.9 4.7c12.4-1.4 24.4 8 27 13.4-15.9 1.5-22-3.2-27-13.4zm-4 9.4c-6.9-5-13-6.6-22.4-8.3-9.4-1.7-19.4-4.4-24.6-5.8-5.3-1.4 17.7 6.6 23.5 8.3 5.8 1.6 23.5 5.8 23.5 5.8zm-37.9-14.7c1.9-11.9-2.8-24.3-13.5-29.3-2.5 8.6 5.2 23.2 13.5 29.3zm-18.2-6.2c5.8-9.8-4-22.6-11.1-28.8-3.3 6 2.5 23.7 11.1 28.8zm-16.9-7.6c6.2-8.4-1.1-23.2-8.8-29-3.1 8.2-.1 23.2 8.8 29zM185.9 269c5.6-8 1.7-20.4-6.3-28.4-5.8 6.6-.9 21 6.3 28.4zm-13.5-10.7c4.7-7.5-1.1-25.4-8.6-30.4-3.3 6.6-.8 25.4 8.6 30.4zm-10.8-2.8c1.4-10.8-17.4-22.7-25.2-22.4.9 8.9 8.9 18.6 25.2 22.4zm10.5 12.2c-8.8-9.1-26-9.1-32.1-7.2 1.7 5.3 21.9 16.9 32.1 7.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M184.3 276.8c-12.4-3.3-20.5-6.1-27.9 1.7 5.2 6.6 25.4 4.7 27.9-1.7zm17.7 8c-11.9-6.4-26.3 3-28.5 8.6 13.3 5.5 28.7-7.2 28.5-8.6zm16.3 9.2c-10.8-4.1-23.2 1.4-28.2 7.5 5.8 2.7 21 5.7 28.2-7.5zm14.9 4.7c-12.4-1.4-24.4 8-27 13.4 15.9 1.5 22-3.2 27-13.4z\"\n })));\n};\nexport var CZ = function CZ(_ref57) {\n var title = _ref57.title,\n rest = _objectWithoutProperties(_ref57, _excluded57);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#11457e\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#d7141a\",\n d: \"M513 171v171H0l215-171z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M513 0v171H215.185L0 0z\"\n }));\n};\nexport var DE = function DE(_ref58) {\n var title = _ref58.title,\n rest = _objectWithoutProperties(_ref58, _excluded58);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 228h513v114H0z\"\n }));\n};\nexport var DJ = function DJ(_ref59) {\n var title = _ref59.title,\n rest = _objectWithoutProperties(_ref59, _excluded59);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#12ad2b\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6ab2e7\",\n d: \"M513 0v166.7L0 170.8V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 170.7 0 342V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#d7141a\",\n d: \"m89.8 92.5 17 52.4H162l-44.6 32.5 17 52.4-44.6-32.4-44.6 32.4 17-52.4-44.6-32.5h55.2z\"\n }));\n};\nexport var DK = function DK(_ref60) {\n var title = _ref60.title,\n rest = _objectWithoutProperties(_ref60, _excluded60);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#c60c30\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M190 0h-60v140H0v60h130v142h60V200h323v-60H190z\"\n }));\n};\nexport var DM = function DM(_ref61) {\n var title = _ref61.title,\n rest = _objectWithoutProperties(_ref61, _excluded61);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 110.7v120h513v-120z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 110.7h513v40H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 190.7h513v40H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M196 0h120v342H196z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M196 0h40v342h-40z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M274.7 0h40v342h-40z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#D80027\",\n cx: 256,\n cy: 170.7,\n r: 123.1\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m256 58.6 4.6 14.2h15l-12.1 8.9 4.6 14.2-12.1-8.8-12.1 8.8 4.6-14.2-12.1-8.9h15zM190.1 80l12.2 8.8 12.1-8.8-4.6 14.3 12.1 8.8h-15l-4.6 14.2-4.7-14.2h-15l12.1-8.8zm-40.7 56h15l4.6-14.2 4.7 14.2h15l-12.2 8.8 4.7 14.3-12.2-8.8-12.1 8.8 4.6-14.3zm0 69.3 12.1-8.8-4.6-14.3L169 191l12.2-8.8-4.7 14.3 12.2 8.8h-15l-4.7 14.3-4.6-14.3zm40.7 56.1 4.6-14.3-12.1-8.8h15l4.7-14.3 4.6 14.3h15l-12.1 8.8 4.6 14.3-12.1-8.9zm65.9 21.4-4.6-14.3h-15l12.1-8.8-4.6-14.3 12.1 8.8 12.1-8.8-4.6 14.3 12.1 8.8h-15zm65.9-21.4-12.2-8.9-12.1 8.9 4.6-14.3-12.1-8.8h15l4.6-14.3 4.7 14.3h15l-12.1 8.8zm40.7-56.1h-15l-4.6 14.3-4.7-14.3h-15l12.2-8.8-4.7-14.3L343 191l12.1-8.8-4.6 14.3zm0-69.3-12.1 8.8 4.6 14.3-12.1-8.8-12.2 8.8 4.7-14.3-12.2-8.8h15l4.7-14.2 4.6 14.2zm-40.7-56-4.6 14.3 12.1 8.8h-15l-4.7 14.2-4.6-14.2h-15l12.1-8.8-4.6-14.3 12.1 8.8zM279.3 168.7c-11-21.1-14.5-25.1-14.5-25.1s.4-9.7.4-15.6c0-8.8-7.4-15.8-16.5-15.8-8.6 0-15.7 2.9-16.5 11-4.2.9-8.6 4.1-8.6 10.7 0 4.8 1 7.3 5.2 9.3 2.1-4.6 4.3-4.8 9.3-6.4.8.6 1.7 3 2.6 3.4l.3 1s-13.3 6.6-13.3 30.9c0 29.5 22 45.4 22 45.4l-1.8.3-1.9 7.1h22v-7.2l11 17.5c.3-.3 10.2-47.6.3-66.5z\",\n fill: \"#496E2D\"\n }));\n};\nexport var DO = function DO(_ref62) {\n var title = _ref62.title,\n rest = _objectWithoutProperties(_ref62, _excluded62);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 215.2h211.5v126.1H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h211.5v126.2H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M300.5 0H512v126.2H300.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M300.5 215.2H512v126.1H300.5z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"#FFF\",\n strokeWidth: 5,\n strokeMiterlimit: 10\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M256 130h-49.9v49.4s19.5 6 49.9 6V130z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M206.1 179.4v6c0 27.5 22.3 49.9 49.9 49.9v-49.9c-30.4 0-49.9-6-49.9-6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M256 235.3c27.5 0 49.9-22.3 49.9-49.9v-6s-19.5 6-49.9 6v49.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M256 130v55.4c30.4 0 49.9-6 49.9-6V130H256z\"\n })));\n};\nexport var DZ = function DZ(_ref63) {\n var title = _ref63.title,\n rest = _objectWithoutProperties(_ref63, _excluded63);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#41662E\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256.5 0H513v342H256.5z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m341.5 105.3-29.4 40.4-47.5-15.4 29.4 40.4-29.4 40.4 47.5-15.4 29.4 40.4v-50l47.5-15.5-47.5-15.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M309.9 276.7c-58.5 0-106-47.5-106-106s47.5-106 106-106c18.3 0 35.4 4.6 50.4 12.7-23.5-23-55.7-37.2-91.2-37.2-72 0-130.4 58.4-130.4 130.4S197.1 301 269.1 301c35.5 0 67.7-14.2 91.2-37.2-14.9 8.2-32.1 12.9-50.4 12.9z\"\n })));\n};\nexport var EC = function EC(_ref64) {\n var title = _ref64.title,\n rest = _objectWithoutProperties(_ref64, _excluded64);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 170.7h513V256H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 256h513v85.3H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFDA44\",\n cx: 256,\n cy: 171,\n r: 60\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#4C1F00\",\n d: \"M369.2 79.9s-27.2-13.8-33.9-16c-6.7-2.2-49.1-13.2-49.1-7 0 10.3-13.5 12-15.5 12s-2-5.3-14.8-5.3-13.7 4.8-15.8 4.8c-2.2 0-14.5-1-14.5-11.5 0-5.2-42.9 4-49.1 7-6.1 3.1-33.9 16-33.9 16s45.8 2.7 53.9 6.2 43.8 16.5 43.8 16.5l-2.8 13.3h37.8l-3.8-13.3s35.1-12.7 43.8-16.5 53.9-6.2 53.9-6.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#57BA17\",\n d: \"M217.7 171.7c0 21.1 17.2 38.3 38.3 38.3 21.1 0 38.3-17.2 38.3-38.3v-11.5h-76.5v11.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M256 110.5c-21.1 0-38.3 17.2-38.3 38.3v11.5h76.5v-11.5c.1-21.1-17.1-38.3-38.2-38.3z\"\n }));\n};\nexport var EE = function EE(_ref65) {\n var title = _ref65.title,\n rest = _objectWithoutProperties(_ref65, _excluded65);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#111\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#368FD8\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 228h513v114H0z\"\n }));\n};\nexport var EG = function EG(_ref66) {\n var title = _ref66.title,\n rest = _objectWithoutProperties(_ref66, _excluded66);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 228h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C09300\",\n d: \"M220.3 204.4s0-58.4 4.5-64.7c3.1-4.3 16.8 5.2 22.7 4.5 0 0 4.2-7.5 4.5-12 .3-4.6-1.1-7.6-4.9-6.2 0 0-1.2-2.1.5-3.3 1.6-1.2 5.6.1 5.6.1s-.5-1 1.6-.9c2.9.2 7.2 1.4 7.4 5.6.2 3.1.3 7.7.4 8.7.7 6.8 2.7 8.7 2.7 8.7s18.4-9.2 22-5.2c3.3 3.8 4.5 64.7 4.5 64.7l-18.1-16.8 12.1 29.5s-14.4 2.4-28.9 2.4c-14.5 0-31.1-4.2-31.1-4.2l13.8-28.2-19.3 17.3z\"\n }));\n};\nexport var EH = function EH(_ref67) {\n var title = _ref67.title,\n rest = _objectWithoutProperties(_ref67, _excluded67);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#428823\",\n d: \"M0 228h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 171 0 342V0zm53.1 0c0-22.9 13.1-42.1 34.6-46.8-3.3-.7-6.7-1.1-10.3-1.1-26.4 0-47.9 21.4-47.9 47.9s21.4 47.9 47.9 47.9c3.5 0 7-.4 10.3-1.1-21.5-5.1-34.6-24.2-34.6-46.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m365 129.2 10.3 31.7h33.3l-27 19.6 10.3 31.7-26.9-19.6-27 19.6 10.3-31.7-27-19.6h33.4z\"\n })));\n};\nexport var ER = function ER(_ref68) {\n var title = _ref68.title,\n rest = _objectWithoutProperties(_ref68, _excluded68);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#56AF35\",\n d: \"M0 0h513v171H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"m0 342 513-171L0 0v342z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#ffc945\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M134.7 231.5c33.6 0 60.8-27.2 60.8-60.8s-27.2-60.8-60.8-60.8-60.8 27.2-60.8 60.8 27.2 60.8 60.8 60.8zm0 24.3c-47 0-85.2-38.1-85.2-85.2s38.1-85.2 85.2-85.2 85.2 38.1 85.2 85.2-38.2 85.2-85.2 85.2z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 119.5,\n cy: 148.3,\n r: 17.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 148.9,\n cy: 158.5,\n r: 17.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 134.7,\n cy: 135.2,\n r: 17.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 119.5,\n cy: 172.7,\n r: 17.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 149.9,\n cy: 182.8,\n r: 17.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 122.5,\n cy: 198,\n r: 17.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 145.9,\n cy: 205.2,\n r: 17.5\n })));\n};\nexport var ES = function ES(_ref69) {\n var title = _ref69.title,\n rest = _objectWithoutProperties(_ref69, _excluded69);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 22.5 15\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h22.5v15H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D03433\",\n d: \"M0 0h22.5v4H0V0zm0 11h22.5v4H0v-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FBCA46\",\n d: \"M0 4h22.5v7H0V4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M7.8 7h1v.5h-1V7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A41517\",\n d: \"M7.2 8.5c0 .3.3.5.6.5s.6-.2.6-.5L8.5 7H7.1l.1 1.5zM6.6 7c0-.3.2-.5.4-.5h1.5c.3 0 .5.2.5.4V7l-.1 1.5c-.1.6-.5 1-1.1 1-.6 0-1-.4-1.1-1L6.6 7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A41517\",\n d: \"M6.8 7.5h2V8h-.5l-.5 1-.5-1h-.5v-.5zM5.3 6h1v3.5h-1V6zm4 0h1v3.5h-1V6zm-2.5-.5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v.2c0 .2-.1.3-.3.3H7c-.1 0-.2-.1-.2-.2v-.3z\"\n }));\n};\nexport var ET = function ET(_ref70) {\n var title = _ref70.title,\n rest = _objectWithoutProperties(_ref70, _excluded70);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 22.5 15\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#20AA46\",\n d: \"M0 0h22.5v5H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E92F3B\",\n d: \"M0 10h22.5v5H0v-5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FADF50\",\n d: \"M0 5h22.5v5H0V5z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#205CCA\",\n cx: 11.3,\n cy: 7.5,\n r: 5.2\n }), /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"#FFDB3D\",\n fill: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11.3 8.8-2.1 1.5.8-2.4-2-1.5h2.5l.8-2.3.8 2.3h2.6l-2.1 1.5.8 2.4-2.1-1.5zm-1-2.4h1.9M9.9 7.8l1.3 1m.8-2.6.7 1.8M10 7.9l.6-1.8M11 9l1.6-1.1\",\n strokeWidth: 0.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m8.7 3.9 1.1 1.6m4-1.7-1 1.6m-1.5 4.7V12M8.9 8.3 7.1 9m8.4 0-1.8-.7\",\n strokeWidth: 0.25\n })));\n};\nexport var EU = function EU(_ref71) {\n var title = _ref71.title,\n rest = _objectWithoutProperties(_ref71, _excluded71);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 810 540\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#039\",\n d: \"M0 0h810v540H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FC0\",\n d: \"m404.951 59.865 6.735 20.718h21.894l-17.633 12.812 6.638 20.74-17.634-12.812-17.634 12.812 6.736-20.729-17.633-12.812h21.796zm-90 24 6.735 20.718h21.894l-17.633 12.812 6.638 20.74-17.634-12.812-17.634 12.812 6.736-20.729-17.633-12.812h21.796zm-66 66 6.735 20.718h21.894l-17.633 12.812 6.638 20.74-17.634-12.812-17.634 12.812 6.736-20.729-17.633-12.812h21.796zm-24 89.999 6.735 20.719h21.894l-17.633 12.813 6.638 20.74-17.634-12.813-17.634 12.813 6.736-20.731-17.633-12.811h21.796zm24 90.001 6.735 20.719h21.894l-17.633 12.811 6.638 20.74-17.634-12.811-17.634 12.811 6.736-20.729-17.633-12.812h21.796zm66 66 6.735 20.719h21.894l-17.633 12.811 6.638 20.74-17.634-12.811-17.634 12.811 6.736-20.729-17.633-12.812h21.796zm180-312 6.735 20.718h21.894l-17.633 12.812 6.637 20.74-17.633-12.812-17.635 12.812 6.737-20.729-17.633-12.812h21.795zm66 66 6.735 20.718h21.894l-17.633 12.812 6.637 20.74-17.633-12.812-17.635 12.812 6.737-20.729-17.633-12.812h21.795zm24 90 6.735 20.718h21.894l-17.633 12.813 6.638 20.74-17.634-12.813-17.634 12.813 6.736-20.731-17.633-12.811h21.796zm-24 90 6.735 20.719h21.894l-17.633 12.811 6.638 20.74-17.634-12.811-17.634 12.811 6.736-20.729-17.633-12.812h21.796zm-156 90 6.735 20.719h21.894l-17.633 12.811 6.638 20.74-17.634-12.811-17.634 12.811 6.736-20.729-17.633-12.812h21.796zm90-24.001 6.735 20.719h21.894l-17.633 12.812 6.639 20.74-17.635-12.812-17.633 12.812 6.735-20.73-17.633-12.811h21.797z\"\n }));\n};\nexport var FI = function FI(_ref72) {\n var title = _ref72.title,\n rest = _objectWithoutProperties(_ref72, _excluded72);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M513 129.3V212H203.7v130H121V212H0v-82.7h121V0h82.7v129.3z\"\n }));\n};\nexport var FJ = function FJ(_ref73) {\n var title = _ref73.title,\n rest = _objectWithoutProperties(_ref73, _excluded73);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#62B5E5\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F3F3F3\",\n d: \"M307.1 127.1v92c0 61.6 80.5 80.5 80.5 80.5s80.4-19 80.4-80.6v-92l-80.5-23-80.4 23.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M468 132.8V98.3H307.1v34.5h69v69h-69v23h69V296c6.9 2.5 11.5 3.5 11.5 3.5s4.6-1.1 11.5-3.5v-71.2h69v-23h-69v-69H468z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h256.5v170.6H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m155.9 115 100.6 55.6v-15.8L184.6 115h-28.7zm-55.7-59.3L0 0v15.8l71.8 39.9h28.4z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m196.9 115 59.6 32.9V115h-59.6zm-41 0 100.6 55.6v-15.8L184.6 115h-28.7zm73.4 55.6-73.5-40.9v40.9h73.5zM45.2 115 0 140.1V115h45.2zm55 7.1v48.6H12.8l87.4-48.6zM59.1 55.7 0 22.8v32.8s59.1 0 59.1.1zm41.1 0L0 0v15.8l71.8 39.9h28.4zM26.7 0l73.5 40.8V0H26.7zm184.2 55.7 45.6-25.1v25.1h-45.6zm-55-7.2V0h87.4l-87.4 48.5z\",\n fill: \"#0052B4\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144.3-.2h-32.1v69.5H0v32.1h112.2v69.5h32.1v-69.5h112.2V69.3H144.3V-.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m155.9 115 100.6 55.6v-15.8L184.6 115h-28.7zm-84.1 0L0 154.9v15.8L100.2 115H71.8zm28.4-59.3L0 0v15.8l71.8 39.9h28.4zm83.9 0 72.4-39.9V0L155.9 55.7h28.2z\"\n })));\n};\nexport var FK = function FK(_ref74) {\n var title = _ref74.title,\n rest = _objectWithoutProperties(_ref74, _excluded74);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 0v30.6l-45.2 25.1H256V115h-59.1l59.1 32.8v22.9h-26.7l-73.5-40.9v40.9h-55.6v-48.6l-87.5 48.6H0v-30.6L45.2 115H0V55.7h59.1L0 22.8V0h26.7l73.5 40.8V0h55.6v48.6L243.3 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M144 0h-32v69.3H0v32h112v69.4h32v-69.4h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M155.8 115 256 170.7v-15.8L184.2 115z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M155.8 115 256 170.7v-15.8L184.2 115z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.8 115 256 170.7v-15.8L184.2 115zm-84 0L0 154.9v15.8L100.2 115z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M100.2 55.6 0 0v15.7l71.8 39.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M100.2 55.6 0 0v15.7l71.8 39.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.2 55.6 0 0v15.7l71.8 39.9zm84 0L256 15.7V0L155.8 55.6z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1F8BDE\",\n d: \"M312.2 194.2v-90c0-8.5 6.5-15.3 15-15.3h120.5c8.3 0 15 6.8 15 15.3v90c0 75.2-75.2 105.3-75.2 105.3s-75.3-30.1-75.3-105.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M312.2 194.2v-90c0-8.5 6.5-15.3 15-15.3h120.5c8.3 0 15 6.8 15 15.3v90c0 75.2-75.2 105.3-75.2 105.3s-75.3-30.1-75.3-105.3zm79.6 86.3c7.9-4.5 15.9-10 23.2-16.7 20.5-18.5 32.6-41.4 32.6-69.7v-90c0-.3-120.4-.3-120.4-.3v90.3c0 28.3 12.1 51.2 32.6 69.7 8.3 7.5 17.6 13.9 27.6 19 1.4-.6 2.8-1.4 4.4-2.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#187536\",\n d: \"M347.1 193.4c-2.6-7.9 1.7-14.3 10.1-14.3h60.5c8.2 0 12.8 6.3 10.1 14.3l-5.5 16.5c-2.6 7.9-8.9 9.2-15.8 4 0 0 2.6-4.8-19.1-4.8-21.7 0-19.1 4.8-19.1 4.8-6.1 5.7-13.1 4-15.8-4 .1.1-5.4-16.5-5.4-16.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M357.4 179.1c8.1 1.6 17.8-15 30.1-15 13.1 0 21.8 17.1 30.1 15 7.4-1.8 15-22.2 15-30.1 0-16.6-20.2-30.1-45.1-30.1-24.9 0-45.1 13.5-45.1 30.1-.1 8.5 6.6 28.5 15 30.1zm-1.4 91.6c6.2.4 12.5-1.8 17.2-6.5l9-9c2.9-2.9 7.5-2.9 10.4 0l9 9c4.7 4.7 11 6.9 17.1 6.5 5.3-.3 32.5-33.5 25.7-32.6-4.6.6-9.1 2.8-12.7 6.3l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-8.7-8.8-22.9-8.8-31.7-.1l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-3.5-3.5-7.8-5.6-12.3-6.3-6.7-1.1 20.1 32.2 25.3 32.5zM322.1 210c2.9-2.9 7.5-2.9 10.4 0l9 9c8.8 8.7 22.9 8.7 31.7 0l9-9c2.9-2.9 7.5-2.9 10.4 0l9 9c8.8 8.7 22.9 8.7 31.7 0l9-9c2.9-2.9 7.5-2.9 10.4 0 0 0 5.5-14.8 2.5-15.9-7.9-2.9-17.2-1.2-23.5 5.2l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-8.7-8.8-22.9-8.8-31.7-.1l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-6.2-6.2-15.1-8-22.8-5.5-3.1 1.1 1.9 16.1 1.9 16.1z\"\n }));\n};\nexport var FM = function FM(_ref75) {\n var title = _ref75.title,\n rest = _objectWithoutProperties(_ref75, _excluded75);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m256 37.9 10.1 31.2H299l-26.6 19.3 10.2 31.2-26.6-19.3-26.6 19.3 10.2-31.2L213 69.1h32.9zM123.2 170.7l31.2-10.2v-32.8l19.3 26.6 31.2-10.2-19.3 26.6 19.3 26.5-31.2-10.1-19.3 26.5v-32.8zM256 303.5l-10.1-31.2H213l26.6-19.3-10.2-31.3L256 241l26.6-19.3-10.2 31.3 26.6 19.3h-32.9zm132.8-132.8-31.2 10.1v32.8l-19.3-26.5-31.2 10.1 19.3-26.5-19.3-26.6 31.2 10.2 19.3-26.6v32.8z\",\n fill: \"#FFF\"\n }));\n};\nexport var FO = function FO(_ref76) {\n var title = _ref76.title,\n rest = _objectWithoutProperties(_ref76, _excluded76);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0F61A5\",\n d: \"M513 214.5H206.2V342h-87.8V214.5H0v-87.7h118.4V0h87.8v126.8H513V192z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E50E3D\",\n d: \"M513 149.3V192H183.7v150H141V192H0v-42.7h141V0h42.7v149.3z\"\n }));\n};\nexport var FR = function FR(_ref77) {\n var title = _ref77.title,\n rest = _objectWithoutProperties(_ref77, _excluded77);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00318A\",\n d: \"M0 0h171v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M342 0h171v342H342z\"\n }));\n};\nexport var GA = function GA(_ref78) {\n var title = _ref78.title,\n rest = _objectWithoutProperties(_ref78, _excluded78);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 228h513v114H0z\"\n }));\n};\nexport var GB = function GB(_ref79) {\n var title = _ref79.title,\n rest = _objectWithoutProperties(_ref79, _excluded79);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v341.3H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M311.7 230 513 341.3v-31.5L369.3 230h-57.6zM200.3 111.3 0 0v31.5l143.7 79.8h56.6z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M393.8 230 513 295.7V230H393.8zm-82.1 0L513 341.3v-31.5L369.3 230h-57.6zm146.9 111.3-147-81.7v81.7h147zM90.3 230 0 280.2V230h90.3zm110 14.2v97.2H25.5l174.8-97.2zm-82.1-132.9L0 45.6v65.7h118.2zm82.1 0L0 0v31.5l143.7 79.8h56.6zM53.4 0l147 81.7V0h-147zm368.3 111.3L513 61.1v50.2h-91.3zm-110-14.2V0h174.9L311.7 97.1z\",\n fill: \"#0052B4\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M288 0h-64v138.7H0v64h224v138.7h64V202.7h224v-64H288V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M311.7 230 513 341.3v-31.5L369.3 230h-57.6zm-168 0L0 309.9v31.5L200.3 230h-56.6zm56.6-118.7L0 0v31.5l143.7 79.8h56.6zm168 0L513 31.5V0L311.7 111.3h56.6z\"\n })));\n};\nexport var GD = function GD(_ref80) {\n var title = _ref80.title,\n rest = _objectWithoutProperties(_ref80, _excluded80);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#c60a0a\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3E8446\",\n d: \"m256.5 170.7-212 126.1V44.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m256.5 170.7 211 126.1h-423zm211-126.2-211 126.2-212-126.2z\",\n fill: \"#FFDA44\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3E8446\",\n d: \"M467.5 44.5v252.3l-211-126.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m256.5 10.4 2.8 10.2H270l-8.6 6.3 3.3 10.2-8.2-6.3-9.2 6.3 3.3-10.2-8.6-6.3h10.7zm-86.4 0 3.3 10.2h10.7l-8.6 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7zm171.8 0 3.3 10.2H356l-8.7 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7zm-85.4 293.8 2.8 10.2H270l-8.6 6.3 3.3 10.2-8.2-6.3-9.2 6.3 3.3-10.2-8.6-6.3h10.7zm-86.4 0 3.3 10.2h10.7l-8.6 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7zm171.8 0 3.3 10.2H356l-8.7 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7z\",\n fill: \"#FFDA44\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#c60a0a\",\n cx: 244.5,\n cy: 170.7,\n r: 76.2\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m244.5 110.1 13.6 41.8h44l-35.6 25.8 13.6 41.8-35.6-25.8-35.5 25.8 13.6-41.8-35.6-25.8h44zm-136.8 57.7c4.4 6.9 2.3 16.1-4.6 20.5s-16.1 2.3-20.5-4.6c-7.9-12.5-3.3-33-3.3-33s20.4 4.6 28.4 17.1z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#A2001D\",\n cx: 99.1,\n cy: 182.1,\n r: 7.4\n }));\n};\nexport var GE = function GE(_ref81) {\n var title = _ref81.title,\n rest = _objectWithoutProperties(_ref81, _excluded81);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 22.5 15\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M.8 0h21v15H.8V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#eb000e\",\n d: \"M9.8 6H0v3h9.8v6h3V9h9.8V6h-9.8V0h-3v6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#eb000e\",\n d: \"m17.3 2.7-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2zm-12.7 0-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2zm0 9-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2zm12.7 0-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2z\"\n }));\n};\nexport var GF = function GF(_ref82) {\n var title = _ref82.title,\n rest = _objectWithoutProperties(_ref82, _excluded82);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 90 60\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FDEB01\",\n d: \"m0 0 90 60H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#58A846\",\n d: \"M90 0v60L0 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ED3D24\",\n d: \"m50.7 33.3 9.3-6.7H48.5L45 15.7l-3.5 10.9H30l9.3 6.7-3.6 11 9.3-6.7 9.3 6.7z\"\n }));\n};\nexport var GG = function GG(_ref83) {\n var title = _ref83.title,\n rest = _objectWithoutProperties(_ref83, _excluded83);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M308 0H204v118.7H0v104h204V342h104V222.7h205v-104H308z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m368.6 188 26 17.3V136l-26 17.3h-95.3V58.1l17.3-26h-69.2l17.3 26v95.2h-95.3l-26-17.3v69.3l26-17.3h95.3v95.2l-17.3 26h69.2l-17.3-26V188z\"\n }));\n};\nexport var GH = function GH(_ref84) {\n var title = _ref84.title,\n rest = _objectWithoutProperties(_ref84, _excluded84);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M0 228h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m255.9 113.8 14.1 43.4 40.4 3.2-37 26.9 19.5 40.3-37-26.9-37 26.9 14.1-43.5-36.9-26.9h45.7z\"\n }));\n};\nexport var GI = function GI(_ref85) {\n var title = _ref85.title,\n rest = _objectWithoutProperties(_ref85, _excluded85);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 230h513v112H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n stroke: \"#000\",\n strokeMiterlimit: 10,\n d: \"M363.1 131.8V99.1H374V77.3h-21.9v10.9h-21.8V77.3h-21.8v21.8h10.9v32.7h-21.8V55.5h10.9V33.7h-21.8v10.9h-10.9V33.7H254v10.9h-10.9V33.7h-21.8v21.8h10.9v76.3h-21.8V99.1h10.9V77.3h-21.8v10.9h-21.8V77.3h-21.8v21.8h10.9v32.7H145V219h239.9v-87.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n stroke: \"#000\",\n strokeMiterlimit: 10,\n d: \"m264.9 235.5-24.2 18.2 19.1 14.3v31.3h-23.2v9h23v7.9h-23v9.3H270V268l19.1-14.3-24.2-18.2zm0 25.3-10.1-7.1 10.1-7.1 10.1 7.1-10.1 7.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M239.6 209.7v-27.9s.1-22.3 25-22.3c24.8 0 25.7 22 25.7 22v28.2h-50.7zm-69.1 0v-24.3s.1-18.7 19.6-18.7 20.2 18.4 20.2 18.4v24.5h-39.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M169.1 209.7v-24.3s.1-18.7 19.6-18.7 20.2 18.4 20.2 18.4v24.5h-39.8zm151.8 0v-24.3s.1-18.7 19.6-18.7 20.2 18.4 20.2 18.4v24.5h-39.8zm8.4-77.7v-15.7s.1-12.1 11.3-12.1c11.3 0 11.7 11.9 11.7 11.9V132h-23zm-78.8 0v-23.7s.1-18.3 14.3-18.3c14.2 0 14.7 18 14.7 18v24h-29zm-73 0v-15.7s.1-12.1 11.3-12.1 11.7 11.9 11.7 11.9V132h-23z\"\n }));\n};\nexport var GL = function GL(_ref86) {\n var title = _ref86.title,\n rest = _objectWithoutProperties(_ref86, _excluded86);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M513 0v171H0V0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 185.8,\n cy: 171.2,\n r: 117.8\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M68 171c0-65.1 52.8-117.8 117.8-117.8 65.1 0 117.8 52.8 117.8 117.8\"\n }));\n};\nexport var GM = function GM(_ref87) {\n var title = _ref87.title,\n rest = _objectWithoutProperties(_ref87, _excluded87);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#cf0d19\",\n d: \"M0 0h513v100H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 121h513v100H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1a7e25\",\n d: \"M0 242h513v100H0z\"\n }));\n};\nexport var GN = function GN(_ref88) {\n var title = _ref88.title,\n rest = _objectWithoutProperties(_ref88, _excluded88);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h512v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M342 0h171v342H342z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h171v342H0z\"\n }));\n};\nexport var GP = function GP(_ref89) {\n var title = _ref89.title,\n rest = _objectWithoutProperties(_ref89, _excluded89);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00318A\",\n d: \"M0 0h171v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M342 0h171v342H342z\"\n }));\n};\nexport var GQ = function GQ(_ref90) {\n var title = _ref90.title,\n rest = _objectWithoutProperties(_ref90, _excluded90);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 0h513v113.8H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 227.6h513V342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0070C8\",\n d: \"M126 171 0 342V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeMiterlimit: 10,\n d: \"M233.8 139.4v40.4c0 35.6 35.6 35.6 35.6 35.6s35.6 0 35.6-35.6v-40.4h-71.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#786145\",\n d: \"M264.5 179.8h9.8l4 25.8h-17.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M287.2 162c0-9.8-8-14.8-17.8-14.8s-17.8 5-17.8 14.8c-4.9 0-8.9 4-8.9 8.9s4 8.9 8.9 8.9h35.6c4.9 0 8.9-4 8.9-8.9s-4-8.9-8.9-8.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m230.7 120 1.9 3.3h3.8l-1.9 3.3 1.9 3.2h-3.8l-1.9 3.3-1.9-3.3H225l1.9-3.2-1.9-3.3h3.8zm15.3 0 1.9 3.3h3.7l-1.9 3.3 1.9 3.2h-3.7l-1.9 3.3-1.9-3.3h-3.8l1.9-3.2-1.9-3.3h3.8zm15.3 0 1.9 3.3h3.7l-1.9 3.3 1.9 3.2h-3.7l-1.9 3.3-1.9-3.3h-3.8l1.9-3.2-1.9-3.3h3.8zm15.8 0 1.9 3.3h3.8l-1.9 3.3 1.9 3.2H279l-1.9 3.3-1.9-3.3h-3.7l1.8-3.2-1.8-3.3h3.7zm16 0 1.9 3.3h3.8l-1.9 3.3 1.9 3.2H295l-1.9 3.3-1.9-3.3h-3.7l1.8-3.2-1.8-3.3h3.7zm15 0 1.9 3.3h3.7l-1.9 3.3 1.9 3.2H310l-1.9 3.3-1.9-3.3h-3.8l1.9-3.2-1.9-3.3h3.8z\",\n fill: \"#FFDA00\",\n stroke: \"#000\",\n strokeMiterlimit: 10\n }));\n};\nexport var GR = function GR(_ref91) {\n var title = _ref91.title,\n rest = _objectWithoutProperties(_ref91, _excluded91);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#0d5eaf\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v38H0zm0 76h513v38H0zm0 76h513v38H0zm0 76h513v38H0zm0 76h513v38H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h190v190H0z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 76h190v38H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76 0h38v190H76z\"\n })));\n};\nexport var GS = function GS(_ref92) {\n var title = _ref92.title,\n rest = _objectWithoutProperties(_ref92, _excluded92);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 0v117.4h-46.1l46.1 30.7v22.6h-22.6L160 121.8v48.9H96v-48.9l-73.4 48.9H0v-22.6l46.1-30.7H0v-64h46.1L0 22.7V0h22.6L96 48.9V0h64v48.9L233.4 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M144 0h-32v69.4H0v32h112v69.3h32v-69.3h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M256 22.7v30.7h-46.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 170.7v-11l62.5-42.3h22.6L7.3 170.7zM7.3.1l77.8 53.2H62.5L0 11.1V.1zM256 .1v11l-62.5 42.3h-22.6L248.7.1zm-7.3 170.6-77.8-53.3h22.6l62.5 42.3v11z\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n fill: \"#FFF\",\n cx: 443.4,\n cy: 233.6,\n rx: 29,\n ry: 43.5\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n fill: \"#FFCE00\",\n cx: 406.9,\n cy: 317.7,\n rx: 22,\n ry: 9.3\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n fill: \"#FFCE00\",\n cx: 364,\n cy: 317.7,\n rx: 22,\n ry: 9.3\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#39B200\",\n d: \"m342 190.1 43.4 86.9 43.5-86.9z\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n fill: \"#9B9B9B\",\n cx: 327.5,\n cy: 233.6,\n rx: 29,\n ry: 43.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#757575\",\n d: \"m371 175.6-14.5 14.5h57.9l-14.5-14.5 14.5-43.5s-13-29-29-29-29 29-29 29l14.6 43.5z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#C6B56F\",\n cx: 385.4,\n cy: 67,\n r: 29\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#A54A00\",\n cx: 386,\n cy: 88.7,\n r: 29\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 443.4,\n cy: 117.7,\n r: 29\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#0049FF\",\n cx: 342.2,\n cy: 146.7,\n r: 29\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#0041F9\",\n cx: 429.8,\n cy: 146.7,\n r: 29\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#F7D71E\",\n cx: 386,\n cy: 233.6,\n r: 29\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#CEC851\",\n cx: 457.9,\n cy: 190.1,\n r: 29\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 385.4,\n cy: 289.5,\n r: 29\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#7C0B29\",\n d: \"m371 135.7 14.5-3.5 14.5 3.5c0 7.5-14.5 11-14.5 11s-14.5-3.5-14.5-11z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 327.5,\n cy: 117.4,\n r: 29\n }));\n};\nexport var GT = function GT(_ref93) {\n var title = _ref93.title,\n rest = _objectWithoutProperties(_ref93, _excluded93);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h171v342H0zm342 0h171v342H342z\",\n fill: \"#338AF3\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#DCC26D\",\n cx: 256,\n cy: 155.8,\n r: 25.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#628A40\",\n d: \"M194.2 155.9c0 22.1 11.8 42.5 30.8 53.5 5.9 3.4 13.5 1.4 16.9-4.5 3.4-5.9 1.4-13.5-4.5-16.9-11.5-6.6-18.5-18.9-18.5-32.1 0-6.8-5.5-12.4-12.4-12.4s-12.3 5.5-12.3 12.4zm95.1 52.1c17.8-11.4 28.6-31 28.5-52.1 0-6.8-5.5-12.4-12.4-12.4-6.8 0-12.4 5.5-12.4 12.4 0 12.7-6.5 24.5-17.1 31.3-5.8 3.6-7.7 11.2-4.1 17 3.6 5.8 11.2 7.7 17 4.1.2-.1.3-.2.5-.3z\"\n }));\n};\nexport var GU = function GU(_ref94) {\n var title = _ref94.title,\n rest = _objectWithoutProperties(_ref94, _excluded94);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M11.1 11.1h489.7v319.1H11.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#7DBEF1\",\n d: \"M256 285.3s76.4-51.3 76.4-114.6S256 56 256 56s-76.4 51.3-76.4 114.6S256 285.3 256 285.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1C8AE6\",\n d: \"M179.8 180.7h152.6l-29.3 64.9h-95.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF042\",\n d: \"M192.3 205.9s40.5 38.2 51 38.2c12.4 0 12.6-18.4 25.5-25.5 20.2-11.1 51-12.7 51-12.7L297 248.7l-41 36.6-46.8-39.7-16.9-39.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#259C7B\",\n d: \"m256 157.5-22.5 15.6 7.9-26.2-21.8-16.5 27.4-.5 9-25.9 9 25.9 27.4.5-21.8 16.6 7.9 26.2-22.5-15.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#8E5715\",\n d: \"M249.7 144.6c-.9 9.2-1.5 18.4-1.7 27.6-.3 11.9.3 20.7 2 26 2.2 6.6 7.2 12.9 14.2 18.9 5.3 4.6 10.6 8.1 14.2 10.1 3.1 1.7 7 .6 8.7-2.4 1.7-3.1.6-7-2.4-8.7-4.3-2.5-8.4-5.4-12.2-8.7-5.4-4.6-9.1-9.2-10.4-13.3-1.1-3.4-1.6-11.3-1.4-21.7.2-8.9.8-17.8 1.7-26.6.4-3.5-2.2-6.6-5.7-7-3.6-.3-6.7 2.3-7 5.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m217.8 170.7 25.5 38.2h-25.5v-38.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#D80027\",\n strokeWidth: 12,\n strokeMiterlimit: 10,\n d: \"M256 285.3s76.4-51.3 76.4-114.6S256 56 256 56s-76.4 51.3-76.4 114.6S256 285.3 256 285.3z\"\n }));\n};\nexport var GW = function GW(_ref95) {\n var title = _ref95.title,\n rest = _objectWithoutProperties(_ref95, _excluded95);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 0h512v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h512v171H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h182v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m98.3 109.8 15.1 46.5h48.9L122.8 185l15.1 46.5-39.6-28.7-39.5 28.7L73.9 185l-39.6-28.7h48.9z\"\n }));\n};\nexport var GY = function GY(_ref96) {\n var title = _ref96.title,\n rest = _objectWithoutProperties(_ref96, _excluded96);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 900 600\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#009E49\",\n d: \"M0 0h900v600H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m0 0 947 300L0 600V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFD00D\",\n d: \"M0 26.1 870 300 0 573.9V26.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2D2D2D\",\n d: \"m0 0 450 300L0 600V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D3132F\",\n d: \"m0 35 397.5 265L0 565V35z\"\n }));\n};\nexport var HK = function HK(_ref97) {\n var title = _ref97.title,\n rest = _objectWithoutProperties(_ref97, _excluded97);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0.5 21 14\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h21v15H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ee1c25\",\n d: \"M0 0h21v15H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 7.19c-.798-.5-1 .409-1 0 0-.828.895-1.5 2-1.5s2 .672 2 1.5c-.949 0-1.044.5-1.5.5-.56 0-.702 0-1.5-.5zM13.25 7a.25.25 0 1 0 0-.5.25.25 0 0 0 0 .5zm-1.81 1.962c.228-.913-.698-.824-.31-.95.788-.257 1.703.387 2.045 1.438.341 1.05-.021 2.11-.809 2.366-.293-.903-.798-.838-.939-1.272-.173-.533-.217-.668.012-1.582zm.566 1.13a.25.25 0 1 0 .476-.154.25.25 0 0 0-.476.154zM9.58 8.977c.94-.065.57-.919.81-.588.486.67.157 1.74-.737 2.389-.894.65-2.013.632-2.5-.038.768-.558.55-1.018.92-1.286.453-.33.568-.413 1.507-.477zm-.899.888a.25.25 0 1 0 .294.405.25.25 0 0 0-.294-.405zm.312-2.652c.351.874 1.049.258.809.588-.487.67-1.606.687-2.5.038-.894-.65-1.223-1.719-.736-2.39.767.559 1.138.21 1.507.478.453.33.568.413.92 1.286zm-1.124-.58a.25.25 0 1 0-.293.404.25.25 0 0 0 .293-.404zm2.619-.524c-.722.605.08 1.078-.309.951-.788-.256-1.15-1.315-.809-2.365.342-1.05 1.257-1.695 2.045-1.439-.293.903.153 1.147.012 1.581-.173.533-.217.668-.939 1.272zm.205-1.247a.25.25 0 1 0-.475-.155.25.25 0 0 0 .475.155z\",\n fill: \"#FFF\"\n })));\n};\nexport var HM = function HM(_ref98) {\n var title = _ref98.title,\n rest = _objectWithoutProperties(_ref98, _excluded98);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M223.4 170.7c.3-.3.5-.6.8-.9-.3.3-.5.6-.8.9zm-34.2 41.9 11 22.9 24.7-5.7-11.1 22.8 19.9 15.8L209 274v25.4l-19.8-15.9-19.8 15.9.1-25.4-24.8-5.6 19.9-15.8-11.1-22.8 24.8 5.7zm197.9 28.5 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6v12.2l-9.4-7.6-9.5 7.6.1-12.2-11.9-2.6 9.5-7.5-5.3-10.9 11.9 2.7zm-48.6-116 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6v-12.1l-11.8-2.7 9.5-7.5-5.3-10.9 11.8 2.7zm48.6-66.2 5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6.1-12.1-11.9-2.7 9.5-7.5-5.3-10.9 11.9 2.7zm42.4 49.7 5.3 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6V150l-9.5-7.6-9.4 7.6v-12.2l-11.8-2.6 9.5-7.5-5.3-10.9 11.8 2.7zm-30.3 57.9 4.1 12.7h13.3l-10.8 7.8 4.1 12.6-10.7-7.8-10.8 7.8 4.1-12.6-10.7-7.8h13.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 0v30.6l-45.2 25.1H256V115h-59.1l59.1 32.8v22.9h-26.7l-73.5-40.9v40.9h-55.6v-48.6l-87.5 48.6H0v-30.6L45.2 115H0V55.7h59.1L0 22.8V0h26.7l73.5 40.8V0h55.6v48.6L243.3 0z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M144 0h-32v69.3H0v32h112v69.4h32v-69.4h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M155.8 115 256 170.7v-15.8L184.2 115z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M155.8 115 256 170.7v-15.8L184.2 115z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.8 115 256 170.7v-15.8L184.2 115zm-84 0L0 154.9v15.8L100.2 115z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M100.2 55.6 0 0v15.7l71.8 39.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M100.2 55.6 0 0v15.7l71.8 39.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.2 55.6 0 0v15.7l71.8 39.9zm84 0L256 15.7V0L155.8 55.6z\",\n fill: \"#D80027\"\n }));\n};\nexport var HN = function HN(_ref99) {\n var title = _ref99.title,\n rest = _objectWithoutProperties(_ref99, _excluded99);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v114H0zm0 228h513v114H0zm203.5-110.1 6.7 16.6 17.6 1-14 10.9 4.7 17.7-15-9.9-15 9.9 4.7-17.7-14-10.9 17.6-1zm105 0 6.7 16.6 17.6 1-14 10.9 4.7 17.7-15-9.9-15 9.9 4.7-17.7-14-10.9 17.6-1zM256 147.6l6.7 16.6 17.6 1-14 10.9 4.7 17.7-15-9.9-15 9.9 4.7-17.7-14-10.9 17.6-1zm-52.5 29.7 6.7 16.6 17.6 1-14 10.9 4.7 17.6-15-9.9-15 9.9 4.7-17.6-14-10.9 17.6-1zm105 0 6.7 16.6 17.6 1-14 10.9 4.7 17.6-15-9.9-15 9.9 4.7-17.6-14-10.9 17.6-1z\",\n fill: \"#338AF3\"\n }));\n};\nexport var HR = function HR(_ref100) {\n var title = _ref100.title,\n rest = _objectWithoutProperties(_ref100, _excluded100);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 228h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M309.3 113.2v-44l17.5-14.4 17.7 14.4v44zm-105.6 0v-44l-17.3-14.4-17.9 14.4v44zm35.2 0v-44l17.6-14.4 17.6 14.4v44z\",\n fill: \"#338AF3\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M309.3 113.2h-35.2v-44l17.5-14.4 17.7 14.4zm-70.4 0h-35.2v-44l17.5-14.4 17.7 14.4z\",\n fill: \"#0052B4\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#D80027\",\n fill: \"#FFF\",\n d: \"M168.5 113.2v101.9c0 24.3 14.4 46.2 35.4 59.4 21.3 13.4 42.1 14.7 52.6 14.7s31.4-1.7 52.6-14.8c21-13 35.4-35.1 35.4-59.3V113.2h-176z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.5 113.2h35.2v35.2h-35.2zm70.4 0h35.2v35.2h-35.2zm70.4 0h35.2v35.2h-35.2zm-105.6 35.2h35.2v35.2h-35.2zm70.4 0h35.2v35.2h-35.2zm-105.6 35.2h35.2v35.2h-35.2zm35.2 35.2h35.2V254h-35.2zm35.2-35.2h35.2v35.2h-35.2zm70.4 0h35.2v35.2h-35.2zm-35.2 35.2h35.2V254h-35.2zm35.2 55.5c8.6-5.4 16.2-12.3 22-20.3h-22v20.3zM181.7 254c5.8 8 13.3 14.9 22 20.4V254h-22zm57.2 0v33.7c7.2 1.2 13.3 1.5 17.6 1.5 4.3 0 10.4-.3 17.6-1.6V254h-35.2z\",\n fill: \"#D80027\"\n }));\n};\nexport var HT = function HT(_ref101) {\n var title = _ref101.title,\n rest = _objectWithoutProperties(_ref101, _excluded101);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A2001D\",\n d: \"M0 0h513v172H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 172h513v172H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m381.4 251.5-110.7-13.8-110.8 13.8V85.4h221.5z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#0052B4\",\n cx: 270.7,\n cy: 182.3,\n r: 55.4\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#A2001D\",\n cx: 270.7,\n cy: 182.3,\n r: 27.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M229.1 113.1h83.1l-41.5 41.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M256.8 140.8h27.7v83h-27.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M314.9 215.5h-88.5l-66.5 36h221.5z\"\n }));\n};\nexport var HU = function HU(_ref102) {\n var title = _ref102.title,\n rest = _objectWithoutProperties(_ref102, _excluded102);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 228h513v114H0z\"\n }));\n};\nexport var IC = function IC(_ref103) {\n var title = _ref103.title,\n rest = _objectWithoutProperties(_ref103, _excluded103);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 300 200\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fc0\",\n d: \"M0 0h300v200H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0768a9\",\n d: \"M0 0h200v200H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h100v200H0z\"\n }));\n};\nexport var ID = function ID(_ref104) {\n var title = _ref104.title,\n rest = _objectWithoutProperties(_ref104, _excluded104);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E00\",\n d: \"M0 0h513v171H0z\"\n }));\n};\nexport var IE = function IE(_ref105) {\n var title = _ref105.title,\n rest = _objectWithoutProperties(_ref105, _excluded105);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 0h171v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9811\",\n d: \"M342 0h171v342H342z\"\n }));\n};\nexport var IL = function IL(_ref106) {\n var title = _ref106.title,\n rest = _objectWithoutProperties(_ref106, _excluded106);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M340.6 122.4h-56.1l-28-48.6-28 48.6h-56.1l28 48.6-28 48.6h56.1l28 48.6 28-48.6h56.1l-28-48.6 28-48.6zM293.2 171 276 204.2h-38.9L219.8 171l17.2-33.2h38.9l17.3 33.2zm-36.7-71.8 11.9 23.3h-23.9l12-23.3zm-58.3 38.6h23.9l-10.8 21-13.1-21zm0 66.4 13-22.1 11.9 22.1h-24.9zm58.3 37.5-11.9-22.1h23.9l-12 22.1zm59.4-37.5h-25l11.9-22.1 13.1 22.1zm-26.1-66.4h26.1l-13 22.1-13.1-22.1zM0 21.3h512V64H0zm0 256h512V320H0z\",\n fill: \"#2E52B2\"\n }));\n};\nexport var IM = function IM(_ref107) {\n var title = _ref107.title,\n rest = _objectWithoutProperties(_ref107, _excluded107);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E52D42\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M393.3 68.2h-45.8l-33.8 80.2-34.4-22.9s-24.7-59.1-34.4-68.2c-9.7-9.7-18.7-.6-48.9 7.8-29.6 8.4-30.8 18.7-42.2 18.7-4.8 0-19.9-17.5-27.7-22.3-12.1-7.8-16.9-4.2-13.9 7.2 1.2 4.8 10.9 10.9 16.9 19.9 7.8 11.5 12.7 25.9 12.7 25.9s10.9-10.3 16.9-12.1c9-2.4 19.3 1.8 31.4 0 15.1-2.4 31.4-10.9 31.4-10.9l4.2 43.4s-54.3 50.7-49.5 70.6 56.1 44.6 68.2 62.7c12.1 17.5-7.2 24.1-7.2 32.6s-1.8 19.9 7.2 16.3c9-3.6 10.3-18.1 18.7-31.4 6-9 10.3-13.9 11.5-17.5 1.8-9-23.5-32-37.4-48.9-6.6-7.8-19.9-18.7-19.9-18.7l39.2-29.6s67.6 27.7 82.6 18.7c15.1-9 19.3-98.3 19.3-98.3l47-11.5-12.1-11.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F8DD4E\",\n d: \"M279.3 262.4c-6 0-11.5-4.8-11.5-11.5s4.8-11.5 11.5-11.5c6 0 11.5 4.8 11.5 11.5s-5.5 11.5-11.5 11.5zm45.8-182.8c-6 0-11.5-4.8-11.5-11.5s4.8-11.5 11.5-11.5c6 0 11.5 4.8 11.5 11.5s-5.5 11.5-11.5 11.5zm0 91.1c-6 0-11.5-4.8-11.5-11.5 0-6 4.8-11.5 11.5-11.5 6 0 11.5 4.8 11.5 11.5-.6 6.7-5.5 11.5-11.5 11.5zm-136.9 45.8c-6 0-11.5-4.8-11.5-11.5 0-6 4.8-11.5 11.5-11.5 6.6 0 11.5 4.8 11.5 11.5s-5.5 11.5-11.5 11.5zm45.2-136.9c-6 0-11.5-4.8-11.5-11.5s4.8-11.5 11.5-11.5c6 0 11.5 4.8 11.5 11.5s-4.8 11.5-11.5 11.5zm22.9 91.1c-6 0-11.5-10.3-11.5-22.9s4.8-22.9 11.5-22.9c6 0 11.5 10.3 11.5 22.9s-4.8 22.9-11.5 22.9zm-114-45.2c-6 0-11.5-4.8-11.5-11.5 0-6.6 4.8-11.5 11.5-11.5 6.6 0 11.5 4.8 11.5 11.5 0 6.6-4.8 11.5-11.5 11.5z\"\n }));\n};\nexport var IN = function IN(_ref108) {\n var title = _ref108.title,\n rest = _objectWithoutProperties(_ref108, _excluded108);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#181A93\",\n d: \"M17.3 0h478.4v342H17.3V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFA44A\",\n d: \"M0 0h513v114H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1A9F0B\",\n d: \"M0 228h513v114H0V228z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 114h513v114H0V114z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 256.5,\n cy: 171,\n r: 34.2\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#181A93\",\n d: \"M256.5 216.6c-25.1 0-45.6-20.5-45.6-45.6s20.5-45.6 45.6-45.6 45.6 20.5 45.6 45.6-20.5 45.6-45.6 45.6zm0-11.4c18.2 0 34.2-16 34.2-34.2s-15.9-34.2-34.2-34.2-34.2 16-34.2 34.2 16 34.2 34.2 34.2z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#181A93\",\n cx: 256.5,\n cy: 171,\n r: 22.8\n }));\n};\nexport var IO = function IO(_ref109) {\n var title = _ref109.title,\n rest = _objectWithoutProperties(_ref109, _excluded109);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0-.3h513V342H0V-.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M462.9 198.1c-4 0-14-5-21-9-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12-9 0-20 6-31.1 12-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12-10 0-21 6-32.1 12-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-12-30.1-12v22l19 10c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-10 20-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-10 21-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 21 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 20 10c11 6 22 12 32.1 12s20-6 31.1-12l19-10v-22c-10 0-20 6-30.1 12-7 4-16 9-20 9zM0 31.7l19 10c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-10 20-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-10 21-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 21 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 20 10c11 6 22 12 32.1 12s20-6 31.1-12l19-10v-22c-10 1-20 6-30.1 12-7 4-16 9-20 9s-14-5-21-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12s-21 6-32.1 12c-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-11-30.1-12v22zm462.9 55.2c-4 0-14-5-21-9-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12-9 0-20 6-31.1 12-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12-10 0-21 6-32.1 12-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-12-30.1-12v22l19 9c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12l19-9v-22c-10 0-20 6-30.1 12-7 3.9-16 9-20 9zm50.1 34c-10 1-20 6-30.1 12-7 4-16 10-20 10s-14-6-21-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-14-6-20-10c-11-6-22-12-32.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-13-6-20-10c-11-6-22-12-31.1-12s-21 6-32.1 12c-6 4-16 10-20 10s-13-6-20-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 10-21 10s-13-6-20-10c-10-6-20-11-30.1-12v23c4 1 13 5 19 9 11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12c6-4 15-8 19-9v-23zm-50.1 133.3c-4 0-14-5-21-9-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12-9 0-20 6-31.1 12-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12-10 0-21 6-32.1 12-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-12-30.1-12v22l19 9c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12l19-9v-22c-10 0-20 6-30.1 12-7 4-16 9-20 9zm50.1 34c-10 1-20 6-30.1 12-7 4-16 10-20 10s-14-6-21-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-14-6-20-10c-11-6-22-12-32.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-13-6-20-10c-11-6-22-12-31.1-12s-21 6-32.1 12c-6 4-16 10-20 10s-13-6-20-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 10-21 10s-13-6-20-10c-10-6-20-11-30.1-12v23c4 0 13 5 19 9 11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12c6-4 15-9 19-9v-23z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0-.3h256v171H0V-.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M389.8 119.9H408v78.8h-18.3l.1-78.8zm0 117.8H408v75.1h-18.3l.1-75.1z\",\n fill: \"#A2001D\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144-.3h-32v70H0v32h112v69h32v-69h112v-32H144v-70z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0-.3v15l57 39h23L0-.3zm256 0v15l-57 39h-23l80-54z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0-.3v15l57 39h23L0-.3zm256 0v15l-57 39h-23l80-54zM0 170.7v-15l57-38h23l-80 53zm256 0v-15l-57-38h-23l80 53z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#2E52B2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 22.7v31h46l-46-31zm96-23v49L23-.3h73zm160 23v31h-46l46-31zm-96-23v49l73-49h-73z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 22.7v31h46l-46-31zm96-23v49L23-.3h73zm160 23v31h-46l46-31zm-96-23v49l73-49h-73zM0 147.7v-30h46l-46 30zm96 23v-49l-73 49h73zm160-23v-30h-46l46 30zm-96 23v-49l73 49h-73z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#5DA51E\",\n stroke: \"#45602C\",\n strokeWidth: 4,\n strokeMiterlimit: 10,\n d: \"M462.8 91.5h-29.1l25.7-25.7c4.5-4.4 4.5-11.4 0-15.8l-3.4-3.4c-4.4-4.4-11.4-4.4-15.8 0l-25.9 25.9V37.4c0-6.2-5.1-11.3-11.3-11.3h-4.7c-6.2 0-11.3 5.1-11.3 11.3v31.7l-23.5-23.8c-4.7-4.7-12.2-4.7-16.9 0l-3.6 3.6c-4.7 4.7-4.7 12.4 0 17.2l25 25.4h-30.6c-6 0-10.9 4.9-10.9 10.9v4.6c0 6 4.9 10.9 10.9 10.9H369l-20.7 20.7c-4.4 4.4-4.4 11.4 0 15.8l3.4 3.4c4.4 4.4 11.4 4.4 15.8 0l19.6-19.6V167c0 6.1 5.1 11.1 11.3 11.3h4.7c6.2 0 11.3-5.1 11.3-11.3v-28.3l22.2 22.6c4.7 4.7 12.4 4.7 17.1 0l3.6-3.6c4.7-4.7 4.7-12.4 0-17.2L435.2 118h27.6c5.9 0 10.7-4.9 10.9-10.9v-4.6c0-6.1-4.9-11-10.9-11z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E2DD24\",\n stroke: \"#525625\",\n strokeWidth: 4,\n strokeMiterlimit: 10,\n d: \"M439.2 249.1h-79.8s-.9-13.4-6-21.8c-6.2-10.4-13.9-28.1-1.4-36.7 15.9-10.9 33.7.8 48.2.8 11.8.1 26.9-14 45-.8 12.2 8.9 3.9 28.2-1.3 36.7-7 11.5-4.7 21.8-4.7 21.8z\"\n }));\n};\nexport var IQ = function IQ(_ref110) {\n var title = _ref110.title,\n rest = _objectWithoutProperties(_ref110, _excluded110);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CE1126\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 228h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M219.2 160.7h-29.3c1.5-5.7 6.6-9.9 12.8-9.9v-19.9c-18.3 0-33.1 14.9-33.1 33.1v16.5h49.6c1.8 0 3.3 1.5 3.3 3.3v6.6h-66.2v19.9h86.1v-26.5c0-12.7-10.4-23.1-23.2-23.1zm49.6 29.8v-59.6H249v79.5h33.1v-19.9zm66.2 0v-59.6h-19.8v59.6h-6.6v-19.8h-19.9v39.7h59.6v-19.9z\",\n fill: \"#547C31\"\n }));\n};\nexport var IR = function IR(_ref111) {\n var title = _ref111.title,\n rest = _objectWithoutProperties(_ref111, _excluded111);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h512v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 227.9h513v114H0zm278.8-93.1c.1 2 8.7 26.2 4.4 39.4-6.6 20.3-15.8 21.8-19.8 24.5V134l-6.9-4.2-6.9 4.2v64.7c-4-2.7-12.4-2.4-19.8-24.5-4.3-12.7 5.7-37.3 5.8-39.2 0 0-9.5 8.1-15.8 24-5.9 14.8 1.9 49.6 29.5 54.8 2.3.4 4.7 5.6 7.2 5.6 2.1 0 4.1-5.2 6-5.5 28.4-4.6 35-41.7 29.9-55.6-5.4-14.6-13.6-23.5-13.6-23.5z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.6 98.9h22.3v24.4H44.6zM0 98.9h22.3v24.4H0zm89.2 0h22.3v24.4H89.2zm44.6 0h22.3v24.4h-22.3zm44.6 0h22.3v24.4h-22.3zm44.6 0h22.3v24.4H223zm44.7 0H290v24.4h-22.3zm44.6 0h22.3v24.4h-22.3zm44.6 0h22.3v24.4h-22.3zm44.6 0h22.3v24.4h-22.3zm44.6 0h22.3v24.4h-22.3zm44.6 0H513v24.4h-22.3zm-446.1 118h22.3v25.5H44.6zm-44.6 0h22.3v25.5H0zm89.2 0h22.3v25.5H89.2zm44.6 0h22.3v25.5h-22.3zm44.6 0h22.3v25.5h-22.3zm44.6 0h22.3v25.5H223zm44.7 0H290v25.5h-22.3zm44.6 0h22.3v25.5h-22.3zm44.6 0h22.3v25.5h-22.3zm44.6 0h22.3v25.5h-22.3zm44.6 0h22.3v25.5h-22.3zm44.6 0H513v25.5h-22.3z\",\n fill: \"#FFF\",\n opacity: 0.5\n }));\n};\nexport var IS = function IS(_ref112) {\n var title = _ref112.title,\n rest = _objectWithoutProperties(_ref112, _excluded112);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M513 210.6H202.2v130.7h-79.8V210.6H0v-79.8h122.4V0h79.8v130.8H513v18.5l-1 42.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M513 149.3V192H183.7v149.3H141V192H0v-42.7h141V0h42.7v149.3z\"\n }));\n};\nexport var IT = function IT(_ref113) {\n var title = _ref113.title,\n rest = _objectWithoutProperties(_ref113, _excluded113);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F4F5F0\",\n d: \"M342 0H0v341.3h512V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#008C45\",\n d: \"M0 0h171v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CD212A\",\n d: \"M342 0h171v342H342z\"\n }));\n};\nexport var JE = function JE(_ref114) {\n var title = _ref114.title,\n rest = _objectWithoutProperties(_ref114, _excluded114);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M301.8 171 513 30.2V0h-45.3L256.5 140.8 45.3 0H0v30.2L211.2 171 0 311.8V342h45.3l211.2-140.8L467.7 342H513v-30.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m233.7 44.6 22.3 5.6 22.3-5.6 4-20.9-14.9 6.5L256 14.8l-11.4 15.4-14.9-6.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M233.7 44.6s-4 12.9-4 29.9c0 27.9 26.3 41.3 26.3 41.3s26.3-15.5 26.3-41.3c0-15.4-4-29.9-4-29.9s-8.1-5-22.3-5-22.3 5-22.3 5z\"\n }));\n};\nexport var JM = function JM(_ref115) {\n var title = _ref115.title,\n rest = _objectWithoutProperties(_ref115, _excluded115);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M215.9 171 0 314.6V26.8zM513 26.8v287.8L296.1 171z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M513 26.8 296.1 171 513 314.6V342h-41.1L256 197.4 40.1 342H0v-27.4L215.9 171 0 26.8V0h40.1L256 143.9 471.9 0H513z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M513 26.8 296.1 171 513 314.6V342h-41.1L256 197.4 40.1 342H0v-27.4L215.9 171 0 26.8V0h40.1L256 143.9 471.9 0H513z\"\n }));\n};\nexport var JO = function JO(_ref116) {\n var title = _ref116.title,\n rest = _objectWithoutProperties(_ref116, _excluded116);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 228h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M256.5 170.7 0 341.3V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m77.9 139.5 7.9 16.4 17.8-4.1-8 16.5 14.3 11.3-17.8 4 .1 18.3-14.3-11.5-14.2 11.5v-18.3l-17.8-4 14.3-11.3-7.9-16.5 17.7 4.1z\"\n }));\n};\nexport var JP = function JP(_ref117) {\n var title = _ref117.title,\n rest = _objectWithoutProperties(_ref117, _excluded117);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h512v342H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#D80027\",\n cx: 256.5,\n cy: 171,\n r: 96\n }));\n};\nexport var KE = function KE(_ref118) {\n var title = _ref118.title,\n rest = _objectWithoutProperties(_ref118, _excluded118);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h512v90.579H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M0 251h513v91H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A2001D\",\n d: \"M0 114h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m323.3 54.5-25.6-11.8L256 137l-41.7-94.3-25.6 11.8 51.8 116.2-51.8 116.2 25.6 11.8 41.7-94.4 41.7 94.4 25.6-11.8-51.8-116.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M273.4 65.6c-9.9-10.8-17.4-17-17.4-17s-7.5 6.2-17.4 17v210.1c9.9 10.8 17.4 17 17.4 17s7.5-6.2 17.4-17V65.6z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209 105.9v129.5c10.5 18.5 23.3 33.7 32.9 43.8V62.1c-9.6 10.1-22.4 25.3-32.9 43.8zm94 0c-10.5-18.5-23.3-33.7-32.9-43.8v217.2c9.6-10.1 22.4-25.3 32.9-43.8V105.9z\",\n fill: \"#A2001D\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M303 105.9v129.5c10.6-18.8 18.8-41 18.8-64.8s-8.2-45.9-18.8-64.7zm-94 0v129.5c-10.6-18.8-18.8-41-18.8-64.8s8.2-45.9 18.8-64.7z\"\n }));\n};\nexport var KG = function KG(_ref119) {\n var title = _ref119.title,\n rest = _objectWithoutProperties(_ref119, _excluded119);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 256,\n cy: 170.7,\n r: 170.7\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M382.4 170.7 330.8 195l27.5 50-56.1-10.7-7.1 56.6-39.1-41.7-39.1 41.7-7.1-56.6-56.1 10.7 27.5-50-51.6-24.3 51.6-24.3-27.5-50.1 56.1 10.8 7.1-56.7L256 92.1l39.1-41.7 7.1 56.7 56.1-10.8-27.5 50.1z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#D80027\",\n cx: 257.4,\n cy: 170.7,\n r: 71.6\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M214.2 170.7c-2.1 0-4.1.1-6.2.3.1 12 4.4 22.9 11.6 31.5 3.8-10.3 9.5-19.6 16.7-27.7-6.9-2.7-14.3-4.1-22.1-4.1zm26.6 46.5c5.2 1.9 10.8 2.9 16.6 2.9 5.8 0 11.4-1 16.6-2.9-2.8-11.1-8.7-21-16.6-28.8-7.9 7.8-13.8 17.7-16.6 28.8zm59.4-71.2c-8.5-14.8-24.5-24.7-42.8-24.7-18.3 0-34.2 9.9-42.8 24.7 15.6.1 30.2 4.3 42.8 11.6 12.6-7.3 27.2-11.6 42.8-11.6zm-21.7 28.8c7.2 8 12.9 17.4 16.7 27.7 7.2-8.5 11.5-19.5 11.6-31.5-2-.2-4.1-.3-6.2-.3-7.7 0-15.2 1.4-22.1 4.1z\",\n fill: \"#FFDA44\"\n }));\n};\nexport var KH = function KH(_ref120) {\n var title = _ref120.title,\n rest = _objectWithoutProperties(_ref120, _excluded120);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v114H0zm0 228h513v114H0z\",\n fill: \"#0052B4\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M303.5 196.6v-17.8h-11.9v-23.7l-11.9-11.9-11.8 11.9v-23.8L256 119.5l-11.9 11.8v23.8l-11.8-11.9-11.9 11.9v23.7h-11.9v17.8h-11.9v17.8h118.8v-17.8z\"\n }));\n};\nexport var KI = function KI(_ref121) {\n var title = _ref121.title,\n rest = _objectWithoutProperties(_ref121, _excluded121);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 450 300\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CE1126\",\n d: \"M0 0h450v300H0V0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FCD116\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 227.6,\n cy: 161.2,\n r: 56.2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m254.1 73.4-23.7 26 28.6 6.5zm-51.5.2-4.8 33.1 28.5-8zm94.3 26.7-34.7 8.5 20.1 23.7zm-138.3-1.8 15.5 32.7 20.2-22.7zm159 45.3-34.4-9.9 5.6 29.5zm-182-2.6 31.9 19.8 5.2-27.7z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#003F87\",\n d: \"M0 175h450v125H0V175z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 267c15 0 30 13 45 13s30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13v-21c-15 0-30 13-45 13s-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13v21zm0-43c15 0 30 13 45 13s30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13v-21c-15 0-30 13-45 13s-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13v21zm0-43c15 0 30 13 45 13s30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13v-21c-15 0-30 13-45 13s-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13v21z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#FCD116\",\n d: \"m183.2 48.3-1.1-5.3 22.4-3.7s-30.1-7.1-40-10.7c-14.3-5.1-16.3-12.1-16.3-12.1s44.7 11 64.8 11c4.3 0 12.8 10.7 12.8 10.7s14.8-14.9 21.9-15.4c32.1-2.3 66.6-6.4 66.6-6.4s-10 6.7-16 8.5c-16.2 4.9-50.6 11.7-50.6 11.7l-4.8 7.5H277l-14.4 4.3 7.4 6.9s-7.8-4.1-18.1-2.1c-7.1 1.3-15.4 6-22.9 8-18.7 4.8-29.9-12.8-29.9-12.8l-15.9-.1z\"\n }));\n};\nexport var KM = function KM(_ref122) {\n var title = _ref122.title,\n rest = _objectWithoutProperties(_ref122, _excluded122);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h513v85.5H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.5h513V171H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 171h513v85.5H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M256.5 171 0 342V0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.6 170.7c0-24.9 17.5-45.6 40.8-50.7-3.6-.8-7.3-1.2-11.1-1.2-28.7 0-51.9 23.3-51.9 51.9s23.3 51.9 51.9 51.9c3.8 0 7.5-.4 11.1-1.2-23.3-5.1-40.8-25.9-40.8-50.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m108.9 126.1 2.7 8.5h9l-7.3 5.3 2.8 8.5-7.2-5.2-7.3 5.2 2.8-8.5-7.2-5.3h8.9zm0 22.3 2.7 8.5h9l-7.3 5.3 2.8 8.5-7.2-5.3-7.3 5.3 2.8-8.5-7.2-5.3h8.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m108.9 170.7 2.7 8.5h9l-7.3 5.2 2.8 8.5-7.2-5.2-7.3 5.2 2.8-8.5-7.2-5.2h8.9zm0 22.2 2.7 8.5h9l-7.3 5.3 2.8 8.5-7.2-5.3-7.3 5.3 2.8-8.5-7.2-5.3h8.9z\"\n })));\n};\nexport var KN = function KN(_ref123) {\n var title = _ref123.title,\n rest = _objectWithoutProperties(_ref123, _excluded123);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M512 0H0v342\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M307.7 0 0 194.5V342h206.9L513 148.5V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M513 0H385.2L0 249.4V341l126.2 1L513 91.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m141.1 187 31.2 24 32.3-22.2-13.1 37 31.1 23.9-39.2-1.1-13.2 37-11.1-37.6-39.2-1.1 32.3-22.2zM310.6 70.8l31.2 23.9 32.3-22.2-13.1 37 31.1 23.9-39.2-1.1-13.2 37-11.1-37.6-39.2-1.1 32.4-22.2z\",\n fill: \"#FFF\"\n }));\n};\nexport var KP = function KP(_ref124) {\n var title = _ref124.title,\n rest = _objectWithoutProperties(_ref124, _excluded124);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#91DC5A\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v57.188H0zm0 284.1h513v57.177H0z\",\n fill: \"#0052B4\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 79.9h513v181.582H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 190.33,\n cy: 171,\n r: 65.668\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"m190.3 105 14.8 45.3h47.7l-38.6 28.1 14.8 45.5-38.7-28.2-38.6 28.1 14.8-45.4-38.6-28.1h47.7z\"\n }));\n};\nexport var KR = function KR(_ref125) {\n var title = _ref125.title,\n rest = _objectWithoutProperties(_ref125, _excluded125);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 900 600\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h900v600H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(-56.31)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-75 228.3H75m-150 37.5H75m-150 37.5H75m-150 475H75m-150 37.5H75m-150 37.5H75\",\n stroke: \"#000\",\n strokeWidth: 25\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#FFF\",\n strokeWidth: 12.5,\n d: \"M0 753.3v125\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#ca163a\",\n cy: 540.8,\n r: 150\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0e4896\",\n d: \"M0 390.8c-41.4 0-75 33.6-75 75s33.6 75 75 75 75 33.6 75 75-33.6 75-75 75c-82.8 0-150-67.2-150-150s67.2-150 150-150z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m231.56 535.73-83.205-124.808M262.76 514.928l-83.205-124.807m114.407 104.006-83.205-124.808m478.43-138.675-83.205-124.807M720.39 209.843 637.184 85.036m114.407 104.006L668.386 64.234\",\n stroke: \"#000\",\n strokeWidth: 25\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#FFF\",\n strokeWidth: 12.5,\n d: \"m205.6 462.897 31.202-20.8m389.981-259.989 36.444-24.296m31.202-20.801 31.202-20.801\"\n }));\n};\nexport var KW = function KW(_ref126) {\n var title = _ref126.title,\n rest = _objectWithoutProperties(_ref126, _excluded126);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 228h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167 227.6 0 341.3V0l167 113.8z\"\n }));\n};\nexport var KY = function KY(_ref127) {\n var title = _ref127.title,\n rest = _objectWithoutProperties(_ref127, _excluded127);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#6DA544\",\n cx: 384,\n cy: 96.5,\n r: 29.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M332.1 89H436v44.5H332.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M435.9 170.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M332.1 200.3V230h15.6c9.4 9.2 22.2 14.8 36.3 14.8 14.1 0 27-5.7 36.3-14.8h15.6v-29.7H332.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M332.1 126.1v44.5c0 39.8 51.9 51.9 51.9 51.9s51.9-12.2 51.9-51.9v-44.5H332.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M384 149.9c-13 0-13 11.9-26 11.9s-13-11.9-26-11.9v20.8c13 0 13 11.9 26 11.9s13-11.9 26-11.9 13 11.9 26 11.9 13-11.9 26-11.9v-20.8c-13 0-13 11.9-26 11.9s-13-11.9-26-11.9zm0-41.6c-13 0-13 11.9-26 11.9s-13-11.9-26-11.9v20.8c13 0 13 11.9 26 11.9s13-11.9 26-11.9 13 11.9 26 11.9 13-11.9 26-11.9v-20.8c-13 0-13 11.9-26 11.9s-13-11.9-26-11.9z\",\n fill: \"#F3F3F3\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 0v22.6l-46.1 30.7H256v64h-46.1L256 148v22.7h-22.6l-73.4-49v49H96v-49l-73.4 49H0V148l46.1-30.7H0v-64h46.1L0 22.6V0h22.6L96 48.9V0h64v48.9L233.4 0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144 0h-32v69.3H0v32h112v69.4h32v-69.4h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0v15.1l57.4 38.2H80zm256 0v15.1l-57.4 38.2H176z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0v15.1l57.4 38.2H80zm256 0v15.1l-57.4 38.2H176zM0 170.7v-15.1l57.4-38.3H80zm256 0v-15.1l-57.4-38.3H176z\"\n })));\n};\nexport var KZ = function KZ(_ref128) {\n var title = _ref128.title,\n rest = _objectWithoutProperties(_ref128, _excluded128);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#36B6CC\",\n d: \"M0 0h513v342H0V0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFD400\",\n cx: 256.5,\n cy: 170.9,\n r: 68.4\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFD400\",\n d: \"m256.5 251.5-27.9 41.7-7.1-49.7-43.2 25.5 15.2-47.8-50 4.2 34.4-36.5-46.9-18 46.8-18-34.4-36.5 50 4.2-15.2-47.8 43.2 25.4 7.1-49.7 27.9 41.7 27.9-41.7 7.1 49.7 43.2-25.4-15.2 47.8 50-4.2-34.3 36.6 46.8 17.9-46.8 18 34.4 36.5-50-4.2 15.2 47.8-43.2-25.4-7.1 49.7c0-.1-27.9-41.8-27.9-41.8zm0-.8c44.1 0 79.9-35.8 79.9-79.9S300.6 91 256.5 91s-79.9 35.8-79.9 79.9 35.8 79.8 79.9 79.8zM22.8 28.3c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6V28.3zm0 45.7c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6V74zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0 45.7c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm22.8-22.8c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7V245c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0-45.7c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6V188zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6V96.8zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6V51.2z\"\n }));\n};\nexport var LA = function LA(_ref129) {\n var title = _ref129.title,\n rest = _objectWithoutProperties(_ref129, _excluded129);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 .1h513v90.7H0zm0 251.2h513V342H0z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 256.5,\n cy: 171,\n r: 65.9\n }));\n};\nexport var LB = function LB(_ref130) {\n var title = _ref130.title,\n rest = _objectWithoutProperties(_ref130, _excluded130);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 .2h513v90.7H0zm.5 251.1H513V342H.5z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M290.3 193.5 256 130.7l-34.3 62.8h25.7v17.2h17.2v-17.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#14AF5A\",\n d: \"M241.3 213.1c4.4-4.4 4.4-11.6-.1-16l4.7 4.7c-5.2-4.7-12.2-6.6-19.1-5.3l-23.5 5.9c-6.1 1.5-6.8-.4-1.8-4.2l27.1-20.3c5.1-3.8 4.2-6.9-2.3-6.9h-11c-6.4 0-7-2.3-1.5-5.1l25.3-12.7c5.6-2.8 5.1-5.1-1.5-5.1h-11c-6.4 0-7.4-3.1-2.3-6.9l27.1-20.3c5.6-3.8 12.9-3.8 18.5 0l27.1 20.3c5.1 3.8 4.2 6.9-2.3 6.9h-11c-6.4 0-7 2.3-1.5 5.1l25.3 12.7c5.6 2.8 5.1 5.1-1.5 5.1h-11c-6.4 0-7.4 3.1-2.3 6.9l27.1 20.3c5.1 3.8 4.4 5.7-1.8 4.2l-23.5-5.9c-6.8-1.3-13.9.6-19.1 5.3l4.7-4.7c-4.4 4.4-4.5 11.5-.1 16l6.8 6.8c4.4 4.4 3.1 8-3.3 8h-45.8c-6.2 0-7.7-3.6-3.3-8 .1.1 6.9-6.8 6.9-6.8z\"\n }));\n};\nexport var LC = function LC(_ref131) {\n var title = _ref131.title,\n rest = _objectWithoutProperties(_ref131, _excluded131);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#55B2FF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F3F3F3\",\n d: \"M148.5 298.1h216l-108-254.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#333\",\n d: \"m186 272.7 70.5-160.3L327 272.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M148.5 298.1h216l-108-101.7z\"\n }));\n};\nexport var LI = function LI(_ref132) {\n var title = _ref132.title,\n rest = _objectWithoutProperties(_ref132, _excluded132);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v171H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M149.3 98.1c0-14-11.3-25.3-25.3-25.3-6.5 0-12.4 2.4-16.9 6.4V64.4h8.4V47.5h-8.4v-8.4H90.3v8.4h-8.4v16.9h8.4v14.9c-4.5-4-10.4-6.4-16.9-6.4-14 0-25.3 11.3-25.3 25.3 0 7.5 3.3 14.2 8.4 18.8v14.9h84.3V117c5.3-4.7 8.5-11.5 8.5-18.9z\"\n }));\n};\nexport var LK = function LK(_ref133) {\n var title = _ref133.title,\n rest = _objectWithoutProperties(_ref133, _excluded133);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A2001D\",\n d: \"M222.6 22.3h267.1v296.8H222.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M22.3 22.3h200.3v296.8H22.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M200.3 0h22.3v342h-22.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M22.3 22.3h89v296.8h-89z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9811\",\n d: \"M111.3 22.3h89v296.8h-89z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M368.2 156.8c-1.4-2 0-37.9 0-37.9.9-7.4.1-8.4 1-11.4.9-2.9 5.4-11.6 5.4-11.6s-6-2.3-10.3-.6c-4.3 1.7-24.7-7.5-31.2 3.4-4.4 7-23.6 16.2-24.6 14-1-2.2-5.9-5-6.9-2.9s-.7 13.9 0 16c.8 2.6 9.8 2 12.3 3.1 3.7 1.8 12.2 8.2 11.9 10.7-.3 2.5-22.5-6-24.2-4.5-1.4 1.2-1.9 13.2-.4 15 1.8 2.1 23.4 5.6 25 7.5 1.6 1.9-13.1 7.4-12.3 25 .7 14.7 8 17.4 8 17.4s-2.4 3.6-7.8 3.1c-6.2-.6-27.4-17.7-27.4-17.7s-3.5-109 3.6-121.4c4.9-8.5-22.7 10.1-22.7 50.8V151c0 6.6-1.4 22.4 2.6 34 0 0-.4 46.9 1.5 49.6s12.7 2.2 14.8 0 0-30 0-30c7.7.2 18.3 17.5 32.5 16.4 20.6-1.6 28.7-9.9 34.3-5 8.1 7.1 5.5 23.2.4 31.5-2.2 3.5-14.3 4.7-15.7 7.6-1.4 2.9.5 5.4.5 5.4h29.7s1.4-20.5 2.7-26.1c1.3-5.7-.6-10.7 5.9-10.4 23.5 1.1 39.8-15.3 45.5-8 3.2 4.1 5.6 29.9 3.3 33.3-2.2 3.4-13.8 2.8-15.2 6.7-1.4 4 .8 4.4.8 4.4h29.7s-.4-21.2 2.5-27.7 4.9-10.4 9.3-17.2c4.4-6.8 11.3-15.7 11.3-36.2 0-14.2-8.1-22.8-8.1-22.8H417c-14.1.2-47.4 2.3-48.8.3zm-136-124.5c10.7-10.6 20.2-2.7 22.2 2.1 1.9 4.8 2.1 8.2 2.8 13.6.9 6.9 4.9 14 4.9 14s-7.1-3.8-14.7-4.2c-4.7-.3-9-.6-13.6-2.5-5.7-2.3-11.7-12.9-1.6-23zm248.4-.1c10.7 10.6 2.8 20.2-2 22.2s-8.2 2.1-13.6 2.8c-6.9.9-14 5-14 5s3.7-7.1 4.2-14.7c.3-4.7.6-9.1 2.4-13.6 2.2-5.7 12.8-11.8 23-1.7zm.1 276.9c-10.7 10.6-20.2 2.6-22.2-2.2-1.9-4.8-2.1-8.2-2.7-13.6-.8-6.9-4.9-14.1-4.9-14.1s7 3.8 14.7 4.3c4.7.3 9 .6 13.6 2.5 5.7 2.4 11.7 13.1 1.5 23.1zm-248.2-.1c-10.6-10.7-2.7-20.2 2.1-22.2 4.8-1.9 8.2-2.1 13.6-2.8 6.9-.9 14-4.9 14-4.9s-3.8 7.1-4.2 14.7c-.3 4.7-.6 9-2.5 13.6-2.3 5.7-12.9 11.8-23 1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#FFDA44\",\n strokeWidth: 6,\n strokeMiterlimit: 10,\n d: \"M446.9 162.4s7.5-2.6 8.4-16.1c.6-8.6-19.8-16-39-11.5-19.7 4.6-34-3.1-34-14.6 0-22.9 29.7-16.2 38.9-11.3 9.1 4.9 29.7 23.5 35.1 9.4\"\n }));\n};\nexport var LR = function LR(_ref134) {\n var title = _ref134.title,\n rest = _objectWithoutProperties(_ref134, _excluded134);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v31.1H0zm0 62.2h513v31.1H0zm0 62.3h513v31.1H0zm0 62.3h513v31.1H0zm0 62.5h513v31.1H0zm0 61.6h513V342H0z\",\n fill: \"#bf0a30\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002868\",\n d: \"M0 0h155.6v155.6H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m77.8 30.2 10.7 32.9h34.6l-28 20.4 10.7 32.9-28-20.3-28 20.3 10.7-32.9-28-20.4h34.6z\"\n }));\n};\nexport var LS = function LS(_ref135) {\n var title = _ref135.title,\n rest = _objectWithoutProperties(_ref135, _excluded135);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 227.6h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m245.2 171 7.7-23.1c2-5.9 5.1-6 7.1 0l7.7 23.1 19.4 29.1c1.7 2.6 1.3 6.3-1.2 8 0 0-6.9 8-29.5 8s-29.5-8-29.5-8c-2.4-2-2.9-5.4-1.2-8l19.5-29.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256.5 171c-12.5 0-22.6-10.1-22.6-22.6 0-12.5 10.1-22.6 22.6-22.6s22.6 10.1 22.6 22.6c0 12.5-10.2 22.6-22.6 22.6zm0 0c6.2 0 11.3-16.3 11.3-22.6 0-6.2-5.1-11.3-11.3-11.3-6.2 0-11.3 5.1-11.3 11.3 0 6.3 5 22.6 11.3 22.6z\"\n }));\n};\nexport var LT = function LT(_ref136) {\n var title = _ref136.title,\n rest = _objectWithoutProperties(_ref136, _excluded136);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 228h513v114H0z\"\n }));\n};\nexport var LU = function LU(_ref137) {\n var title = _ref137.title,\n rest = _objectWithoutProperties(_ref137, _excluded137);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 228h513v114H0z\"\n }));\n};\nexport var LV = function LV(_ref138) {\n var title = _ref138.title,\n rest = _objectWithoutProperties(_ref138, _excluded138);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"prefix__st1\",\n d: \"M0 0h513v127.6H0zm0 214.4h513V342H0z\",\n fill: \"#A2001D\"\n }));\n};\nexport var LY = function LY(_ref139) {\n var title = _ref139.title,\n rest = _objectWithoutProperties(_ref139, _excluded139);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M0 228h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m281.4 150.7 9 12.3 14.5-4.7-9 12.4 9 12.3-14.5-4.7-9 12.3v-15.2l-14.5-4.7 14.5-4.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M257 201.5c-17 0-30.9-13.8-30.9-30.9s13.8-30.9 30.9-30.9c5.3 0 10.3 1.3 14.7 3.7-6.9-6.7-16.2-10.8-26.6-10.8-21 0-38 17-38 38s17 38 38 38c10.3 0 19.7-4.1 26.6-10.8-4.4 2.4-9.4 3.7-14.7 3.7z\"\n })));\n};\nexport var MA = function MA(_ref140) {\n var title = _ref140.title,\n rest = _objectWithoutProperties(_ref140, _excluded140);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 .3V342h513V.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#20661B\",\n d: \"M359.8 148.9h-73.3l-22.7-69.7-22.7 69.7h-73.3l59.3 43.1-22.7 69.7 59.3-43.1 59.3 43.1-22.5-69.7 59.3-43.1zm-116.1 37.7 7.7-23.6h24.8l7.7 23.6-20.1 14.6-20.1-14.6zm27.9-37.7H256l7.8-24 7.8 24zm24.3 29-4.8-14.9h25.3l-20.5 14.9zM236.6 163l-4.8 14.9-20.5-14.9h25.3zm-5.3 61.8 7.8-24 12.6 9.2-20.4 14.8zm44.5-14.9 12.6-9.2 7.8 24-20.4-14.8z\"\n }));\n};\nexport var MC = function MC(_ref141) {\n var title = _ref141.title,\n rest = _objectWithoutProperties(_ref141, _excluded141);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.333h512v341.333H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#c70000\",\n d: \"M0 85.333h512V256H0z\"\n }));\n};\nexport var MD = function MD(_ref142) {\n var title = _ref142.title,\n rest = _objectWithoutProperties(_ref142, _excluded142);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M342 0h171v342H342z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h171v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#AF7F59\",\n d: \"M206.2 129.1h33.2L256 79.3l16.6 49.8h33.2v99.6L256 262l-49.8-33.2v-99.7zm33.2 33.3v49.8h33.2v-49.8h-33.2z\"\n }));\n};\nexport var ME = function ME(_ref143) {\n var title = _ref143.title,\n rest = _objectWithoutProperties(_ref143, _excluded143);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E6BE53\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E01D24\",\n d: \"M20 20h473v302H20z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E6BE53\",\n d: \"M248.5 112.9c4.4 4.4 11.6 4.4 16 0l-4.7 4.7 22.7-22.7c4.9-4.5 12.1-5.6 18.2-2.8l2.1 1c5.7 2.9 6.7 8.7 2.3 13.1l4.7-4.7-22.8 22.8c-4.5 4.9-5.6 12.1-2.8 18.2l1 2.1c2.9 5.7 5.1 15.4 5.1 21.6v-11.3c0 6.2 4.4 9.1 10.2 6.2l2.1-1c5.7-2.9 6.7-8.7 2.3-13.1l4.7 4.7c-4.4-4.4-4.4-11.6 0-16l-4.7 4.7c5.2-5.5 9.6-11.6 13.1-18.2l1-2.1c2.9-5.7 6.3-15.1 7.9-21.2l5.8-23.3c1.5-6 5.9-6.8 9.6-1.8l20.2 26.9c3.8 5.1 6.9 14 6.9 20.6v22.4c0 6.3-2.2 15.8-5.1 21.7l-1 2.1c-3.5 6.6-7.9 12.7-13.1 18.2l-6.8 6.8c-5.4 5.2-11.5 9.6-18.2 13.1l-2.1 1c-5.7 2.9-15.5 5.1-21.6 5.1-6.2 0-6.9 2.2-1.1 5.1l2.1 1c5.7 2.9 13.8 8.7 18.2 13.1l-4.7-4.7c4.4 4.4 11.6 4.4 16 0l-4.7 4.7c4.4-4.4 11.6-4.4 16 0L339 226c4.6 4.9 5.7 12.1 2.9 18.2l-1 2.1c-2.9 5.7-10.4 10.2-16.4 10.2-7.5-.3-14.8-2-21.6-5.1l-2.1-1c-6.5-3.6-11.8-8.9-15.4-15.4l-1-2.1c-2.9-5.7-8.7-6.7-13.1-2.3l4.7-4.7c-4.4 4.7-5.2 11.8-1.8 17.3l10.3 15.4c3.4 5.1 2 12.1-3.1 15.5L266 284.4c-5.7 3.4-12.8 3.4-18.6 0L232 274.1c-5.1-3.4-6.5-10.3-3.1-15.5l10.3-15.4c3.4-5.5 2.6-12.6-1.8-17.3l4.7 4.7c-4.4-4.4-10.2-3.6-13.1 2.3l-1 2.1c-2.9 5.7-9.5 12.4-15.4 15.4l-2.1 1c-5.7 2.9-15.5 5.1-21.6 5.1-6.9-.3-13.1-4.2-16.4-10.2l-1-2.1c-2.8-6.1-1.6-13.3 2.9-18.2l-4.7 4.7c4.4-4.4 11.6-4.4 16 0L181 226c4.4 4.4 11.6 4.4 16 0l-4.7 4.7c5.5-5.2 11.6-9.6 18.2-13.1l2.1-1c5.7-2.9 5-5.1-1.1-5.1-7.5-.3-14.8-2-21.6-5.1l-2.1-1c-6.6-3.5-12.7-7.9-18.2-13.1l-6.8-6.8c-5.2-5.4-9.6-11.5-13.1-18.2l-1-2.1c-3.1-6.8-4.9-14.2-5.1-21.7V121c0-6.3 3.1-15.6 6.9-20.6l20.2-26.9c3.8-5.1 8.1-4.3 9.6 1.8l5.8 23.3c2 7.3 4.6 14.4 7.9 21.2l1 2.1c2.9 5.7 8.7 13.8 13.1 18.2l-4.7-4.7c4.4 4.4 4.4 11.6 0 16l4.7-4.7c-4.4 4.4-3.6 10.2 2.3 13.1l2.1 1c5.7 2.9 10.2 0 10.2-6.2v11.3c0-6.2 2.2-15.7 5.1-21.6l1-2.1c2.8-6.1 1.7-13.2-2.8-18.2l-22.7-22.7 4.7 4.7c-4.4-4.4-3.6-10.2 2.3-13.1l2.1-1c6.1-2.8 13.2-1.7 18.2 2.8l22.7 22.7-4.8-4.5zm-18-40.7c-4.4-4.4-3.2-9.5 2.8-11.5l12.4-4.2c6-2 15.5-2 21.5 0l12.4 4.2c6 2 7.2 7.1 2.8 11.5l-6.8 6.8c-5.3 4.7-12.1 7.5-19.2 7.9-6.2 0-14.8-3.5-19.2-7.9.1 0-6.7-6.8-6.7-6.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#215F90\",\n d: \"M233.9 200.2c0 6.2 1.7 6.4 4.2.5 0 0 7.1-23.2 18.4-23.2 11.3 0 18.6 23.6 18.6 23.6 2.2 5.7 4 5.3 4-1.1v-11.2c0-18.7-10.1-33.9-22.6-33.9-12.5 0-22.6 15.2-22.6 33.9v11.4z\"\n }));\n};\nexport var MF = function MF(_ref144) {\n var title = _ref144.title,\n rest = _objectWithoutProperties(_ref144, _excluded144);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 108 72\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h108v72H0z\",\n fill: \"#003787\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h108L60 48v24H48V48z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 54,\n cy: 30,\n r: 8,\n fill: \"#f9d90f\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44 30h20L54 48z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54 48 38 33h32z\",\n fill: \"#cf142b\"\n }));\n};\nexport var MG = function MG(_ref145) {\n var title = _ref145.title,\n rest = _objectWithoutProperties(_ref145, _excluded145);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M512 426.666V85.329H0v341.337h512z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M512 85.331H0v170.666h512V85.331z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.334h181.793v341.337H0z\"\n }));\n};\nexport var MH = function MH(_ref146) {\n var title = _ref146.title,\n rest = _objectWithoutProperties(_ref146, _excluded146);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1E509C\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M513 176.1V81.3L0 342l513-165.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F18D36\",\n d: \"M513 0v81.3L0 342 513 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m126.7 99.3-7.8-54.1-7.7 54.1-20.8-23.7 10.7 31.6-31.5-10.7 23.6 20.8-54.1 7.7 54.1 7.7-23.6 20.8 31.5-10.7-10.7 31.6 20.8-23.7 7.7 54.1 7.8-54.1 20.7 23.7-10.6-31.6 31.5 10.7-23.6-20.8 54-7.7-54-7.7 23.6-20.8-31.5 10.7 10.6-31.6z\"\n }));\n};\nexport var MK = function MK(_ref147) {\n var title = _ref147.title,\n rest = _objectWithoutProperties(_ref147, _excluded147);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.333h512V426.67H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M383.875 426.662 256 252.286l26.827 174.376zM133.565 85.33 256 252.286 230.314 85.33zm95.606 341.332L256 252.286 128.124 426.662zM0 85.33V212.9l256 39.386L28.333 85.33zm0 341.332h18.212L256 252.286 0 291.67zm256-174.376L512 212.9V85.33h-28.331zM281.686 85.33 256 252.286 378.434 85.33zM512 426.662V291.671l-256-39.385 237.787 174.376z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 256,\n cy: 252.29,\n r: 59.359\n })), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFDA44\",\n cx: 256,\n cy: 252.29,\n r: 44.522\n }));\n};\nexport var ML = function ML(_ref148) {\n var title = _ref148.title,\n rest = _objectWithoutProperties(_ref148, _excluded148);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 85.331h170.663v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M341.337 85.331H512v341.337H341.337z\"\n }));\n};\nexport var MM = function MM(_ref149) {\n var title = _ref149.title,\n rest = _objectWithoutProperties(_ref149, _excluded149);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.337h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 312.888h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M384 227.261h-97.783L256 134.265l-30.217 92.997H128l79.108 57.475-30.217 92.998L256 320.925l79.108 56.81-30.217-92.998L384 227.261z\"\n }));\n};\nexport var MN = function MN(_ref150) {\n var title = _ref150.title,\n rest = _objectWithoutProperties(_ref150, _excluded150);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#095FAD\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M342 0h171v342H342zM0 0h171v342H0z\",\n fill: \"#BE1229\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFDA44\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.3 166.3h14.8v74.2h-14.8zm-59.4 0h14.8v74.2H48.9z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 86,\n cy: 203.4,\n r: 14.8\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.2 225.7h29.7v14.8H71.2zm0-59.4h29.7v14.8H71.2z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 86,\n cy: 144,\n r: 14.8\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.3 123.9h19.5L86 108.3z\"\n })));\n};\nexport var MO = function MO(_ref151) {\n var title = _ref151.title,\n rest = _objectWithoutProperties(_ref151, _excluded151);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00745a\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M285.682 248.878c-4.19 0-8.166.836-11.861 2.164 2.023-4.509 3.379-9.527 3.379-14.885 0-21.201-21.201-37.101-21.201-37.101s-21.201 15.901-21.201 37.101c0 5.357 1.356 10.375 3.379 14.885-3.693-1.328-7.671-2.164-11.861-2.164-21.201 0-37.101 21.201-37.101 21.201s15.901 21.201 37.101 21.201c12.429 0 23.031-7.286 29.682-13.315 6.65 6.03 17.251 13.315 29.682 13.315 21.201 0 37.101-21.201 37.101-21.201s-15.899-21.201-37.099-21.201z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m256 152.111 4.38 13.476h14.171l-11.464 8.332 4.376 13.476-11.463-8.33-11.463 8.33 4.376-13.476-11.464-8.332h14.171zm-53.888 23.572 8.425 7.585 9.818-5.667-4.61 10.355 8.423 7.588-11.274-1.185-4.611 10.355-2.358-11.088-11.275-1.185 9.818-5.669zm-39.45 39.449 11.09 2.358 5.668-9.818 1.186 11.274 11.089 2.358-10.357 4.61 1.186 11.274-7.587-8.423-10.357 4.61 5.669-9.818zm147.227-39.449-8.425 7.585-9.818-5.667 4.611 10.355-8.425 7.588 11.275-1.185 4.61 10.355 2.359-11.088 11.275-1.185-9.818-5.669zm39.449 39.449-11.089 2.358-5.669-9.818-1.186 11.274-11.088 2.358 10.357 4.61-1.185 11.274 7.586-8.423 10.357 4.61-5.669-9.818z\",\n fill: \"#FFDA44\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 350.642c16.84 0 32.363-5.619 44.816-15.073h-89.63c12.451 9.454 27.974 15.073 44.814 15.073zm-68.023-44.522a74.138 74.138 0 0 0 8.85 15.073h118.345a74.13 74.13 0 0 0 8.85-15.073H187.977z\",\n fill: \"#FFF\"\n }));\n};\nexport var MP = function MP(_ref152) {\n var title = _ref152.title,\n rest = _objectWithoutProperties(_ref152, _excluded152);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 750 500\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0071BC\",\n d: \"M0 0h750v500H0V0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\",\n stroke: \"#000\",\n strokeWidth: 1.9\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 375,\n cy: 245,\n r: 225,\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 375,\n cy: 245,\n r: 165,\n fill: \"#0071BC\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"#000\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#8C8A8C\",\n strokeWidth: 1.9,\n d: \"M444.7 450c.7 11-7.8 20-18.8 20H323.6c-11 0-19.5-9-19-20l16.7-325c.6-11 10-20 21-20h61.4c11 0 20.5 9 21.2 20l19.8 325z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n strokeWidth: 2,\n strokeLinejoin: \"round\",\n d: \"m373 114 30 93h97l-78 56 29 92-78-56-78 57 30-93-79-57h97l30-92z\"\n })));\n};\nexport var MQ = function MQ(_ref153) {\n var title = _ref153.title,\n rest = _objectWithoutProperties(_ref153, _excluded153);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 900 600\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231f1e\",\n d: \"M0 0h900v600H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00a650\",\n d: \"M0 0h900v300H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ef1923\",\n d: \"m0 0 450 300L0 600z\"\n }));\n};\nexport var MR = function MR(_ref154) {\n var title = _ref154.title,\n rest = _objectWithoutProperties(_ref154, _excluded154);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 100 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#006233\",\n d: \"M0 100h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#cd2a3e\",\n d: \"M0 100h513v46H0zm0 296h513v46H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffc400\",\n d: \"M256 298.851c-45.956 0-84.348-32.298-93.767-75.429A96.288 96.288 0 0 0 160 243.994c0 53.02 42.979 96 96 96s96-42.98 96-96c0-7.066-.785-13.942-2.233-20.572-9.419 43.131-47.811 75.429-93.767 75.429z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffc400\",\n d: \"m255.999 171.994 8.935 27.502h28.918l-23.394 16.996 8.936 27.503-23.395-16.998-23.394 16.998 8.937-27.503-23.394-16.996h28.915z\"\n }));\n};\nexport var MS = function MS(_ref155) {\n var title = _ref155.title,\n rest = _objectWithoutProperties(_ref155, _excluded155);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1B4991\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00A2B8\",\n stroke: \"#FFF\",\n strokeWidth: 3,\n d: \"M318.2 106.7v106.5c0 51.9 67.8 67.8 67.8 67.8s67.8-15.9 67.8-67.8V106.7H318.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A35023\",\n d: \"M319.7 212.7c0 50.8 66.3 66.3 66.3 66.3s66.3-15.6 66.3-66.3H319.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M415.1 155.1h-19.4v-19.4h-19.4v19.4H357v19.4h19.3v58.1h19.4v-58.1h19.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 0v30.6l-45.2 25.1H256V115h-59.1l59.1 32.8v22.9h-26.7l-73.5-40.9v40.9h-55.6v-48.6l-87.5 48.6H0v-30.6L45.2 115H0V55.7h59.1L0 22.8V0h26.7l73.5 40.8V0h55.6v48.6L243.3 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M144 0h-32v69.3H0v32h112v69.4h32v-69.4h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M155.8 115 256 170.7v-15.8L184.2 115z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M155.8 115 256 170.7v-15.8L184.2 115z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M155.8 115 256 170.7v-15.8L184.2 115zm-84 0L0 154.9v15.8L100.2 115z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M100.2 55.6 0 0v15.7l71.8 39.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M100.2 55.6 0 0v15.7l71.8 39.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M100.2 55.6 0 0v15.7l71.8 39.9zm84 0L256 15.7V0L155.8 55.6z\"\n }));\n};\nexport var MT = function MT(_ref156) {\n var title = _ref156.title,\n rest = _objectWithoutProperties(_ref156, _excluded156);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C31B28\",\n d: \"M256 0h256.5v342H256z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ACABB1\",\n stroke: \"#C31B28\",\n strokeWidth: 2,\n d: \"M101.2 68.2V33H66v35.2H30.8v35.2H66v35.2h35.2v-35.2h35.2V68.2z\"\n }));\n};\nexport var MU = function MU(_ref157) {\n var title = _ref157.title,\n rest = _objectWithoutProperties(_ref157, _excluded157);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#f7ce00\",\n d: \"M0 85.331h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#e32737\",\n d: \"M0 85.331h512v85.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#191f6a\",\n d: \"M0 170.657h512v85.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00a04e\",\n d: \"M0 341.331h512v85.337H0z\"\n }));\n};\nexport var MV = function MV(_ref158) {\n var title = _ref158.title,\n rest = _objectWithoutProperties(_ref158, _excluded158);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#d01920\",\n d: \"M0 85.331h512v341.333H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#017c3b\",\n d: \"M144.696 174.375h222.609v163.25H144.696z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M283.484 304.226c-26.637 0-48.232-21.594-48.232-48.232s21.594-48.232 48.232-48.232c8.306 0 16.12 2.1 22.943 5.797-10.703-10.467-25.341-16.927-41.494-16.927-32.784 0-59.362 26.577-59.362 59.362s26.578 59.362 59.362 59.362c16.154 0 30.791-6.461 41.494-16.927-6.822 3.698-14.636 5.797-22.943 5.797z\"\n }));\n};\nexport var MW = function MW(_ref159) {\n var title = _ref159.title,\n rest = _objectWithoutProperties(_ref159, _excluded159);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#272727\",\n d: \"M0 0h512v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#e40112\",\n d: \"M0 114h512v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#07893f\",\n d: \"M0 228h512v114H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#e40112\",\n cx: 256,\n cy: 125,\n r: 95\n }));\n};\nexport var MX = function MX(_ref160) {\n var title = _ref160.title,\n rest = _objectWithoutProperties(_ref160, _excluded160);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#dc2339\",\n d: \"M342 0H0v341.3h513V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#11865d\",\n d: \"M0 0h171v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M171 0h171v342H171z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#8C9157\",\n d: \"M195.8 171.2c0 21.6 11.5 41.7 30.3 52.5 5.8 3.4 13.2 1.4 16.6-4.4 3.4-5.8 1.4-13.2-4.4-16.6-11.3-6.5-18.2-18.5-18.2-31.5 0-6.7-5.4-12.1-12.1-12.1-6.7 0-12.2 5.4-12.2 12.1zm93.4 51.1c17.5-11.1 28-30.4 28-51.1 0-6.7-5.4-12.1-12.1-12.1s-12.1 5.4-12.1 12.1c0 12.4-6.3 24-16.8 30.7-5.7 3.5-7.5 10.9-4.1 16.7s10.9 7.5 16.7 4.1c0-.2.2-.3.4-.4z\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n fill: \"#C59262\",\n cx: 256.5,\n cy: 159.1,\n rx: 24.3,\n ry: 36.4\n }));\n};\nexport var MY = function MY(_ref161) {\n var title = _ref161.title,\n rest = _objectWithoutProperties(_ref161, _excluded161);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v24.4H0zm0 48.9h513v24.4H0zm0 48.8h513v24.4H0zm0 48.9h513V171H0zm0 48.8h513v24.4H0zm0 48.9h513v24.4H0zm0 48.8h513v24.4H0z\",\n fill: \"#c00\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#006\",\n d: \"M0 0h256.5v195.4H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M153.3 42.1C122.6 30.7 88.5 46.3 77.1 77s4.2 64.8 34.9 76.2c13.3 5 28 5 41.4 0-30.7 24.5-75.4 19.6-100-11.1s-19.6-75.4 11.1-100c26-20.7 62.9-20.7 88.8 0zm26.7 75-20.6 23.3 5.4-30.6-31-1.6 27.3-14.9L143 68l28.6 12 8.4-29.9 8.4 29.9L217 68l-18 25.4 27.3 14.9-31 1.6 5.4 30.6-20.7-23.4z\",\n fill: \"#fc0\"\n }));\n};\nexport var MZ = function MZ(_ref162) {\n var title = _ref162.title,\n rest = _objectWithoutProperties(_ref162, _excluded162);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.333h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#f4d900\",\n d: \"M0 323.333h513v104H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#006d66\",\n d: \"M0 85.333h513v104H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 204.333h513v104H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#cb0f31\",\n d: \"M256 256.006 0 426.668V85.331z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#f4d900\",\n d: \"m83.477 195.132 15.107 46.498h48.894l-39.554 28.739 15.107 46.499-39.554-28.738-39.555 28.738 15.11-46.499-39.554-28.739H68.37z\"\n }));\n};\nexport var NA = function NA(_ref163) {\n var title = _ref163.title,\n rest = _objectWithoutProperties(_ref163, _excluded163);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 426.663V85.337h512\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M512 152.222V85.337H411.67L0 359.778v66.885h100.33z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A2001D\",\n d: \"M512 85.337v40.125L60.193 426.663H0v-40.125L451.807 85.337z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m187.737 189.212-22.741 10.696 12.11 22.024-24.693-4.724-3.129 24.945-17.199-18.347-17.2 18.347-3.129-24.945-24.693 4.723 12.109-22.023-22.739-10.696 22.74-10.697-12.11-22.022 24.693 4.722 3.13-24.944 17.199 18.347 17.2-18.347 3.128 24.944 24.693-4.722-12.108 22.024z\"\n }));\n};\nexport var NC = function NC(_ref164) {\n var title = _ref164.title,\n rest = _objectWithoutProperties(_ref164, _excluded164);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 640 426.7\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#009543\",\n d: \"M0 293h640v133.7H0V293z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ED4135\",\n d: \"M0 132h640v161.3H0V132z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0035AD\",\n d: \"M0 0h640v133.3H0V0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FAE600\",\n stroke: \"#000\",\n strokeWidth: 5.3,\n cx: 240,\n cy: 213.3,\n r: 157.3\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m307.9 354.5-31.8 12-36.1 4.2-37.8-2.4-35.9-15.5s28.6-29.3 40.7-33.5c8.6-3 22.4-3.7 22.4-3.7V122l-.3-66H246l-.5 67.5v191.7s15.3 1.2 22.1 4.1c11.3 4.9 40.3 35.2 40.3 35.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m212.727 102.375 42.955-21.418 5.577 11.187-42.955 21.417z\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 237.8,\n cy: 280.5,\n rx: 16.8,\n ry: 26.5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 237.4,\n cy: 143.4,\n r: 20.9\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 238.4,\n cy: 211.1,\n rx: 19.9,\n ry: 12.1\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M213.8 177h47v10h-47zm0 57h47v10h-47z\"\n }));\n};\nexport var NE = function NE(_ref165) {\n var title = _ref165.title,\n rest = _objectWithoutProperties(_ref165, _excluded165);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#e05206\",\n d: \"M0 85.337h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0db02b\",\n d: \"M0 312.888h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#e05206\",\n cx: 256,\n cy: 256,\n r: 32\n }));\n};\nexport var NF = function NF(_ref166) {\n var title = _ref166.title,\n rest = _objectWithoutProperties(_ref166, _excluded166);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.5 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.5h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.5h171v342H0zm342 0h171v342H342zm-38 226.495-48-152.001-48 152.001h36v39.999h24v-39.999z\",\n fill: \"#007b23\"\n }));\n};\nexport var NG = function NG(_ref167) {\n var title = _ref167.title,\n rest = _objectWithoutProperties(_ref167, _excluded167);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.5 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.5h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.5h171v342H0zm342 0h171v342H342z\",\n fill: \"#007b23\"\n }));\n};\nexport var NI = function NI(_ref168) {\n var title = _ref168.title,\n rest = _objectWithoutProperties(_ref168, _excluded168);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.337h512v113.775H0zm0 227.551h512v113.775H0z\",\n fill: \"#338AF3\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M256 214.447c-22.949 0-41.553 18.603-41.553 41.553S233.05 297.553 256 297.553c22.949 0 41.553-18.603 41.553-41.553S278.949 214.447 256 214.447zm0 65.298c-13.114 0-23.745-10.631-23.745-23.745s10.631-23.745 23.745-23.745 23.745 10.631 23.745 23.745-10.631 23.745-23.745 23.745z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M276.563 261.936 256 256l-20.563 5.936-6.855 11.873h54.836z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"m256 226.32-13.709 23.744L256 256l13.709-5.936z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M235.437 261.936h41.126l-6.854-11.872h-27.418z\"\n }));\n};\nexport var NL = function NL(_ref169) {\n var title = _ref169.title,\n rest = _objectWithoutProperties(_ref169, _excluded169);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 114h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#cd1f2a\",\n d: \"M0 0h513v114H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1d4185\",\n d: \"M0 228h513v114H0z\"\n }));\n};\nexport var NO = function NO(_ref170) {\n var title = _ref170.title,\n rest = _objectWithoutProperties(_ref170, _excluded170);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.334h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M512 295.883H202.195v130.783h-79.76V295.883H0v-79.772h122.435V85.329h79.76v130.782H512v61.218z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M512 234.666v42.663H183.652v149.337h-42.674V277.329H0v-42.663h140.978V85.329h42.674v149.337z\"\n }));\n};\nexport var NP = function NP(_ref171) {\n var title = _ref171.title,\n rest = _objectWithoutProperties(_ref171, _excluded171);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 426.663V85.337l280.419 174.75H87.61l183.576 166.576z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M244.769 249.888 10.199 103.71v312.754h234.57L61.193 249.888z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m98.003 324.433-14.589-6.863 7.77-14.13-15.844 3.03-2.008-16.005-11.035 11.772-11.036-11.772-2.008 16.005-15.843-3.031 7.77 14.131-14.591 6.863 14.591 6.862-7.77 14.13 15.844-3.029 2.007 16.004 11.036-11.772L73.332 358.4l2.008-16.004 15.843 3.03-7.769-14.13zm-9.735-132.771-10.612-4.991 5.651-10.278-11.523 2.205-1.461-11.641-8.026 8.561-8.026-8.561-1.46 11.641-11.525-2.205 5.652 10.278-10.613 4.991 25.972 5.194z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.462 191.662c0 17.212-13.953 31.165-31.165 31.165s-31.165-13.953-31.165-31.165\"\n })));\n};\nexport var NR = function NR(_ref172) {\n var title = _ref172.title,\n rest = _objectWithoutProperties(_ref172, _excluded172);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 239.994h512v32H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m174.802 341.329-19.124 8.996 10.184 18.521-20.767-3.973-2.631 20.978L128 370.422l-14.465 15.429-2.63-20.978-20.767 3.973 10.183-18.521-19.123-8.996 19.124-8.995-10.184-18.52 20.766 3.971 2.632-20.978L128 312.236l14.465-15.429 2.63 20.978 20.767-3.971-10.183 18.521z\"\n }));\n};\nexport var NU = function NU(_ref173) {\n var title = _ref173.title,\n rest = _objectWithoutProperties(_ref173, _excluded173);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.334h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.334h256v170.663H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144 85.33h-32v69.333H0v32h112v69.334h32v-69.334h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.329v15.083l57.377 38.251H80z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 107.951v30.712h46.069zm96-22.62v48.913L22.628 85.331z\",\n fill: \"#2E52B2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M256 85.329v15.083l-57.377 38.251H176z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 107.951v30.712h-46.069zm-96-22.62v48.913l73.372-48.913z\",\n fill: \"#2E52B2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.329v15.083l57.377 38.251H80z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 107.951v30.712h46.069zm96-22.62v48.913L22.628 85.331z\",\n fill: \"#2E52B2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M256 85.329v15.083l-57.377 38.251H176z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 107.951v30.712h-46.069zm-96-22.62v48.913l73.372-48.913z\",\n fill: \"#2E52B2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 255.997v-15.082l57.377-38.252H80z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 233.376v-30.713h46.069zm96 22.618v-48.912l-73.372 48.912z\",\n fill: \"#2E52B2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M256 255.997v-15.082l-57.377-38.252H176z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#2E52B2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 233.376v-30.713h-46.069zm-96 22.618v-48.912l73.372 48.912z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 128,\n cy: 170.66,\n r: 22.627\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m128 154.663 3.97 12.222h12.854l-10.398 7.556 3.971 12.222L128 179.109l-10.398 7.554 3.972-12.222-10.398-7.556h12.853zm0 65.14 2.364 7.278h7.653l-6.19 4.498 2.364 7.278-6.191-4.498-6.191 4.498 2.364-7.278-6.19-4.498h7.652zm0-117.334 2.364 7.278h7.653l-6.19 4.498 2.364 7.278-6.191-4.498-6.191 4.498 2.364-7.278-6.19-4.498h7.652zm69.931 58.667 2.365 7.277h7.653l-6.192 4.499 2.365 7.279-6.191-4.498-6.191 4.498 2.365-7.279-6.191-4.499h7.652zm-139.862 0 2.364 7.277h7.653l-6.191 4.499 2.364 7.279-6.19-4.498-6.191 4.498 2.365-7.279-6.192-4.499h7.653z\",\n fill: \"#FFDA44\"\n }));\n};\nexport var NZ = function NZ(_ref174) {\n var title = _ref174.title,\n rest = _objectWithoutProperties(_ref174, _excluded174);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.334h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m425.301 233.745 3.388 10.428h10.963l-8.87 6.444 3.388 10.427-8.869-6.444-8.871 6.444 3.388-10.427-8.87-6.444h10.963zm-39.194 75.072 5.083 15.642h16.445l-13.305 9.667 5.082 15.64-13.305-9.667-13.305 9.667 5.083-15.64-13.305-9.667h16.445zm1.481-122.846 4.236 13.036h13.704l-11.088 8.054 4.235 13.034-11.087-8.056-11.088 8.056 4.235-13.034-11.087-8.054h13.704zm-37.712 47.32 5.082 15.641h16.446l-13.306 9.666 5.084 15.641-13.306-9.666-13.305 9.666 5.082-15.641-13.305-9.666h16.445z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256.003 85.329v30.564l-45.178 25.088h45.178v59.359H196.89l59.113 32.846v22.806h-26.69l-73.484-40.826v40.826h-55.652v-48.573l-87.429 48.573H.003v-30.553l45.168-25.099H.003v-59.359h59.103L.003 108.147V85.329h26.68l73.494 40.838V85.329h55.652v48.573l87.43-48.573z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M144 85.33h-32v69.334H0v32h112v69.334h32v-69.334h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M155.826 200.344 256 255.998v-15.739l-71.847-39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M155.826 200.344 256 255.998v-15.739l-71.847-39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.826 200.344 256 255.998v-15.739l-71.847-39.915zm-83.98 0L0 240.259v15.739l100.174-55.654z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M100.174 140.983 0 85.33v15.738l71.847 39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M100.174 140.983 0 85.33v15.738l71.847 39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.174 140.983 0 85.33v15.738l71.847 39.915zm83.98 0L256 101.068V85.33l-100.174 55.653z\",\n fill: \"#D80027\"\n }));\n};\nexport var OM = function OM(_ref175) {\n var title = _ref175.title,\n rest = _objectWithoutProperties(_ref175, _excluded175);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M138 0h377v114H138z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#4A7C3A\",\n d: \"M138 230h377v114H138z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"#FFF\",\n strokeWidth: 10,\n strokeMiterlimit: 2\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.3 35.2s37.1 48 50.8 54.5c13.7 6.5 17.1 5.7 17.1 5.7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100 35.2S62.9 80.6 53.3 87.6c-9.6 7-18.7 7.8-18.7 7.8m17.1-30.1h37.9M70.7 35.2v30.1\"\n })));\n};\nexport var PA = function PA(_ref176) {\n var title = _ref176.title,\n rest = _objectWithoutProperties(_ref176, _excluded176);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M256 256v170.663H0V256h256z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M512 85.337V256H256V85.337h256z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"m128 123.034 11.824 36.389h38.263l-30.955 22.491 11.823 36.389L128 195.813l-30.955 22.49 11.823-36.389-30.955-22.491h38.263z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"m384 293.697 11.824 36.389h38.263l-30.955 22.491 11.823 36.389L384 366.476l-30.955 22.49 11.823-36.389-30.955-22.491h38.263z\"\n }));\n};\nexport var PE = function PE(_ref177) {\n var title = _ref177.title,\n rest = _objectWithoutProperties(_ref177, _excluded177);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.331h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.331h170.663v341.337H0zm341.337 0H512v341.337H341.337z\",\n fill: \"#D80027\"\n }));\n};\nexport var PF = function PF(_ref178) {\n var title = _ref178.title,\n rest = _objectWithoutProperties(_ref178, _excluded178);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.337h512v113.775H0zm0 227.551h512v113.775H0z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M293.991 256c0 20.982-17.01 33.243-37.992 33.243S218.008 276.982 218.008 256s17.01-37.992 37.992-37.992 37.991 17.01 37.991 37.992z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M293.991 256c0 20.982-17.01 37.992-37.992 37.992s-37.992-17.01-37.992-37.992\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M232.259 246.506h9.498v19h-9.498zm37.988 0h9.498v19h-9.498zm-19-14.247h9.498v33.243h-9.498z\",\n fill: \"#D80027\"\n }));\n};\nexport var PG = function PG(_ref179) {\n var title = _ref179.title,\n rest = _objectWithoutProperties(_ref179, _excluded179);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.333h512V426.67H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A2001D\",\n d: \"M0 85.33h512v341.332\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m204.631 326.488 2.762 8.504h8.941l-7.233 5.255 2.763 8.502-7.233-5.254-7.233 5.254 2.762-8.502-7.233-5.255h8.94zm-22.834-81.622 4.605 14.172h14.901l-12.056 8.757 4.605 14.172-12.055-8.759-12.055 8.759 4.606-14.172-12.056-8.757h14.901zm0 103.883 4.604 14.173h14.902l-12.057 8.757 4.606 14.173-12.055-8.759-12.055 8.759 4.604-14.173-12.054-8.757h14.899zm43.566-66.782 4.606 14.172h14.901l-12.056 8.758 4.605 14.172-12.056-8.759-12.054 8.759 4.606-14.172-12.056-8.758h14.901zm-87.133 0 4.606 14.172h14.899l-12.054 8.758 4.603 14.172-12.054-8.759-12.055 8.759 4.605-14.172-12.055-8.758h14.9z\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M376.526 204.163c-7.628-7.628-17.538-12.133-28.189-12.908l31.88-24.795c-12.698-12.698-29.714-18.431-46.319-17.218a44.31 44.31 0 0 0-11.396-19.511l-12.593 25.186a18.47 18.47 0 0 0-3.148-4.197c-7.245-7.245-18.991-7.244-26.234 0s-7.245 18.99 0 26.234a18.536 18.536 0 0 0 4.197 3.148l-25.186 12.593a44.303 44.303 0 0 0 19.519 11.399c-1.217 16.606 4.511 33.619 17.209 46.317L324.12 214.6a11.053 11.053 0 0 1 7.807-3.202c2.973 0 5.768 1.158 7.87 3.26a11.055 11.055 0 0 1 3.26 7.87c0 2.974-1.158 5.768-3.26 7.87l10.494 10.494c4.905-4.905 7.607-11.428 7.607-18.364 0-5.675-1.81-11.071-5.153-15.534a29.492 29.492 0 0 1 13.288 7.662c11.573 11.572 11.573 30.403 0 41.975l10.494 10.494c8.409-8.409 13.039-19.59 13.039-31.481-.001-11.892-4.632-23.072-13.04-31.481z\"\n }));\n};\nexport var PH = function PH(_ref180) {\n var title = _ref180.title,\n rest = _objectWithoutProperties(_ref180, _excluded180);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M512 85.337V256H256L0 85.337z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M512 256v170.663H0L256 256z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m161.908 256-27.288-12.835 14.532-26.428-29.632 5.668-3.755-29.933-20.64 22.015-20.639-22.015-3.755 29.933-29.631-5.669 14.531 26.428L28.343 256l27.288 12.835L41.1 295.263l29.633-5.668 3.753 29.933 20.639-22.015 20.64 22.015 3.755-29.933 29.631 5.669-14.532-26.427zM21.789 117.607l9.081 12.696 14.879-4.714-9.268 12.56 9.081 12.694-14.809-4.932-9.268 12.559.117-15.608-14.809-4.934 14.88-4.712zm0 235.923 9.081 12.696 14.879-4.714-9.268 12.56 9.081 12.695-14.809-4.933-9.268 12.558.117-15.607-14.809-4.934 14.88-4.712zm188.606-117.961-9.081 12.695-14.879-4.713 9.268 12.559-9.081 12.696 14.809-4.933 9.268 12.558-.117-15.607 14.809-4.934-14.88-4.713z\",\n fill: \"#FFDA44\"\n }));\n};\nexport var PK = function PK(_ref181) {\n var title = _ref181.title,\n rest = _objectWithoutProperties(_ref181, _excluded181);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m393.508 170.516 17.512 18.875 23.363-10.821-12.541 22.487 17.513 18.876-25.263-4.978-12.539 22.488-3.073-25.564-25.263-4.978 23.363-10.82z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.343h512v341.326H0z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#01411c\",\n d: \"M128 85.331h384v341.337H128z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M361.909 298.793c-31.037 22.426-74.378 15.446-96.804-15.592-22.427-31.038-15.446-74.379 15.593-96.804 9.677-6.992 20.55-11.125 31.613-12.563-21.283-3.183-43.777 1.613-62.598 15.211-38.2 27.602-46.792 80.944-19.191 119.145 27.601 38.199 80.944 46.792 119.145 19.189 18.82-13.598 30.436-33.448 34.096-54.655-4.839 10.05-12.176 19.076-21.854 26.069zm-1.329-125.904 17.484 18.842 23.322-10.802-12.519 22.447 17.483 18.844-25.219-4.968-12.519 22.45-3.067-25.521-25.22-4.969 23.323-10.802z\",\n fill: \"#FFF\"\n }));\n};\nexport var PL = function PL(_ref182) {\n var title = _ref182.title,\n rest = _objectWithoutProperties(_ref182, _excluded182);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.337h512V256H0z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 256h512v170.663H0z\"\n }));\n};\nexport var PM = function PM(_ref183) {\n var title = _ref183.title,\n rest = _objectWithoutProperties(_ref183, _excluded183);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00318A\",\n d: \"M0 0h171v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M342 0h171v342H342z\"\n }));\n};\nexport var PN = function PN(_ref184) {\n var title = _ref184.title,\n rest = _objectWithoutProperties(_ref184, _excluded184);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.333h512V426.67H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ACABB1\",\n d: \"M400.696 219.822 384 225.387l-16.696-5.565-5.565-13.913 5.565-13.913h33.392l-5.566 13.913z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M345.043 219.822v61.217c0 29.821 38.957 38.957 38.957 38.957s38.957-9.137 38.957-38.957v-61.217h-77.914z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M348.555 295.541C358.131 313.927 384 319.996 384 319.996s25.869-6.069 35.445-24.455L384 236.518l-35.445 59.023z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M422.957 280.421 384 219.822l-38.957 60.599v.618c0 5.518 1.337 10.328 3.512 14.503L384 240.405l35.445 55.137c2.175-4.175 3.512-8.983 3.512-14.503v-.618z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 85.333v30.553l-45.167 25.099H256v59.359h-59.103L256 233.179v22.817h-26.68l-73.494-40.826v40.826h-55.652v-48.573l-87.43 48.573H0v-30.554l45.167-25.098H0v-59.359h59.103L0 108.139V85.333h26.68l73.494 40.825V85.333h55.652v48.572l87.43-48.572z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M144 85.33h-32v69.332H0v32h112v69.334h32v-69.334h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M155.826 200.344 256 255.996v-15.737l-71.847-39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M155.826 200.344 256 255.996v-15.737l-71.847-39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.826 200.344 256 255.996v-15.737l-71.847-39.915zm-83.98 0L0 240.259v15.737l100.174-55.652z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M100.174 140.982 0 85.33v15.737l71.847 39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M100.174 140.982 0 85.33v15.737l71.847 39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.174 140.982 0 85.33v15.737l71.847 39.915zm83.98 0L256 101.067V85.33l-100.174 55.652z\",\n fill: \"#D80027\"\n }));\n};\nexport var PR = function PR(_ref185) {\n var title = _ref185.title,\n rest = _objectWithoutProperties(_ref185, _excluded185);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.337h512V153.6H0zm0 136.526h512v68.263H0zM0 358.4h512v68.263H0z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M256 256.006 0 426.668V85.331z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m83.477 195.132 15.107 46.498h48.894l-39.554 28.739 15.107 46.499-39.554-28.738-39.555 28.738 15.11-46.499-39.554-28.739H68.37z\"\n }));\n};\nexport var PS = function PS(_ref186) {\n var title = _ref186.title,\n rest = _objectWithoutProperties(_ref186, _excluded186);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.337h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#268024\",\n d: \"M0 312.888h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#e4312b\",\n d: \"M256 256.006 0 426.668V85.331z\"\n }));\n};\nexport var PT = function PT(_ref187) {\n var title = _ref187.title,\n rest = _objectWithoutProperties(_ref187, _excluded187);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M196.641 85.337v341.326H0V85.337z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFDA44\",\n cx: 196.641,\n cy: 256,\n r: 64\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M160.638 224v40.001c0 19.882 16.118 36 36 36s36-16.118 36-36V224h-72z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M196.638 276c-6.617 0-12-5.383-12-12v-16h24.001v16c-.001 6.616-5.385 12-12.001 12z\"\n }));\n};\nexport var PW = function PW(_ref188) {\n var title = _ref188.title,\n rest = _objectWithoutProperties(_ref188, _excluded188);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFDA44\",\n cx: 218.902,\n cy: 255.994,\n r: 74.207\n }));\n};\nexport var PY = function PY(_ref189) {\n var title = _ref189.title,\n rest = _objectWithoutProperties(_ref189, _excluded189);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.337h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 312.888h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"m289.579 216.738-12.592 12.592c5.37 5.372 8.693 12.792 8.693 20.988 0 16.392-13.289 29.68-29.68 29.68-16.392 0-29.68-13.289-29.68-29.68 0-8.195 3.322-15.616 8.693-20.988l-12.592-12.592c-8.594 8.594-13.91 20.466-13.91 33.579 0 26.228 21.261 47.489 47.489 47.489s47.489-21.261 47.489-47.489c0-13.112-5.316-24.985-13.91-33.579z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m256 232.51 4.421 13.605h14.304l-11.573 8.408 4.421 13.604L256 259.719l-11.573 8.408 4.421-13.604-11.573-8.408h14.304z\"\n }));\n};\nexport var QA = function QA(_ref190) {\n var title = _ref190.title,\n rest = _objectWithoutProperties(_ref190, _excluded190);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#751A46\",\n d: \"M0 0h512v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0v342h150.3l37.7-19.6-37.7-18.9 37.7-19-37.7-18.9 37.7-19-37.7-19 37.7-18.9-37.7-19 37.7-19-37.7-18.9 37.7-19-37.7-18.9 37.7-19-37.7-19L188 57l-37.7-19L188 19.1 150.3 0z\"\n }));\n};\nexport var RE = function RE(_ref191) {\n var title = _ref191.title,\n rest = _objectWithoutProperties(_ref191, _excluded191);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00318A\",\n d: \"M0 0h171v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M342 0h171v342H342z\"\n }));\n};\nexport var RO = function RO(_ref192) {\n var title = _ref192.title,\n rest = _objectWithoutProperties(_ref192, _excluded192);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.331h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.331h170.663v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M341.337 85.331H512v341.337H341.337z\"\n }));\n};\nexport var RS = function RS(_ref193) {\n var title = _ref193.title,\n rest = _objectWithoutProperties(_ref193, _excluded193);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.331h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 312.882h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M129.468 181.793v85.136c0 48.429 63.267 63.267 63.267 63.267S256 315.356 256 266.929v-85.136H129.468z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.634 196.634h74.201v-29.681l-14.841 7.42-22.261-22.26-22.259 22.26-14.84-7.42zm85.526 82.148-48.231-48.231-48.231 48.231 15.741 15.74 32.49-32.49 32.49 32.49z\",\n fill: \"#FFDA44\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M241.16 233.734h-22.504a14.74 14.74 0 0 0 2.001-7.418c0-8.196-6.645-14.84-14.84-14.84-5.663 0-10.581 3.172-13.083 7.836-2.502-4.663-7.421-7.836-13.083-7.836-8.195 0-14.84 6.644-14.84 14.84 0 2.706.736 5.235 2.001 7.418h-22.114c0 8.196 7.139 14.84 15.334 14.84h-.494c0 8.196 6.644 14.84 14.84 14.84 0 7.257 5.211 13.286 12.094 14.576l-11.694 26.401a48.075 48.075 0 0 0 18.149 3.544 48.079 48.079 0 0 0 18.149-3.544l-11.694-26.401c6.883-1.29 12.094-7.319 12.094-14.576 8.196 0 14.84-6.644 14.84-14.84h-.494c8.199 0 15.338-6.644 15.338-14.84z\"\n }));\n};\nexport var RU = function RU(_ref194) {\n var title = _ref194.title,\n rest = _objectWithoutProperties(_ref194, _excluded194);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.33v341.332h512V85.33z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.333h512V426.67H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.333h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 312.884h512v113.775H0z\"\n }));\n};\nexport var RW = function RW(_ref195) {\n var title = _ref195.title,\n rest = _objectWithoutProperties(_ref195, _excluded195);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 255.994h512v81.619H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M0 337.614h512v89.043H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m278.261 185.209 20.844 9.804-11.099 20.186 22.632-4.33 2.868 22.865 15.765-16.816 15.766 16.816 2.867-22.865 22.633 4.33-11.099-20.186 20.843-9.804-20.844-9.805 11.1-20.185-22.633 4.329-2.868-22.864-15.765 16.816-15.766-16.816-2.867 22.864-22.634-4.329 11.1 20.187z\"\n }));\n};\nexport var SA = function SA(_ref196) {\n var title = _ref196.title,\n rest = _objectWithoutProperties(_ref196, _excluded196);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#055e1c\",\n d: \"M0 85.333h512v341.333H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M183.548 289.386c0 12.295 9.731 22.261 21.736 22.261h65.208c0 10.244 8.11 18.551 18.114 18.551h21.736c10.004 0 18.114-8.306 18.114-18.551v-22.261H183.548zm146.716-107.595v51.942c0 8.183-6.5 14.84-14.491 14.84v22.261c19.976 0 36.226-16.643 36.226-37.101v-51.942h-21.735zm-155.773 51.943c0 8.183-6.5 14.84-14.491 14.84v22.261c19.976 0 36.226-16.643 36.226-37.101v-51.942H174.49v51.942z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M297.661 181.788h21.736v51.942h-21.736zm-32.604 29.685c0 2.046-1.625 3.71-3.623 3.71-1.998 0-3.623-1.664-3.623-3.71v-29.682h-21.736v29.682c0 2.046-1.625 3.71-3.623 3.71s-3.623-1.664-3.623-3.71v-29.682h-21.736v29.682c0 14.32 11.376 25.971 25.358 25.971 5.385 0 10.38-1.733 14.491-4.677 4.11 2.944 9.106 4.677 14.491 4.677 1.084 0 2.15-.078 3.2-.215-1.54 6.499-7.255 11.345-14.068 11.345v22.261c19.976 0 36.226-16.643 36.226-37.101v-51.943h-21.736l.002 29.682z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.093 248.57h32.601v22.261h-32.601z\"\n })));\n};\nexport var SB = function SB(_ref197) {\n var title = _ref197.title,\n rest = _objectWithoutProperties(_ref197, _excluded197);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M0 85.334h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 426.663V85.329h512\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 396.494v30.169h45.255L512 115.499v-30.17h-45.255z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m85.688 108.787 5.12 15.756h16.566l-13.403 9.737 5.12 15.757-13.403-9.738-13.405 9.738 5.12-15.757L64 124.543h16.567zm84.624 0 5.121 15.756H192l-13.403 9.737 5.12 15.757-13.405-9.738-13.403 9.738 5.12-15.757-13.403-9.737h16.566zm-84.624 82.502 5.12 15.756h16.566l-13.403 9.738 5.12 15.757-13.403-9.739-13.405 9.739 5.12-15.757L64 207.045h16.567zm84.624 0 5.121 15.756H192l-13.403 9.738 5.12 15.757-13.405-9.739-13.403 9.739 5.12-15.757-13.403-9.738h16.566zM128 150.037l5.12 15.756h16.568l-13.405 9.738 5.12 15.758L128 181.55l-13.403 9.739 5.12-15.758-13.405-9.738h16.568z\",\n fill: \"#FFF\"\n }));\n};\nexport var SC = function SC(_ref198) {\n var title = _ref198.title,\n rest = _objectWithoutProperties(_ref198, _excluded198);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M235.454 85.337 0 426.663 427.345 85.337z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M512 329.393 0 426.663h512z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M512 85.337h-84.655L0 426.663l512-204.512z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.337v341.326L235.454 85.337z\"\n }));\n};\nexport var SD = function SD(_ref199) {\n var title = _ref199.title,\n rest = _objectWithoutProperties(_ref199, _excluded199);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.337h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 312.888h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M0 426.668V85.331l256 170.675z\"\n }));\n};\nexport var SE = function SE(_ref200) {\n var title = _ref200.title,\n rest = _objectWithoutProperties(_ref200, _excluded200);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.333h512V426.67H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M192 85.33h-64v138.666H0v64h128v138.666h64V287.996h320v-64H192z\"\n }));\n};\nexport var SG = function SG(_ref201) {\n var title = _ref201.title,\n rest = _objectWithoutProperties(_ref201, _excluded201);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.337h512V256H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.478 170.666c0-24.865 17.476-45.637 40.812-50.734a52.059 52.059 0 0 0-11.13-1.208c-28.688 0-51.942 23.254-51.942 51.941s23.255 51.942 51.942 51.942c3.822 0 7.543-.425 11.13-1.208-23.336-5.095-40.812-25.867-40.812-50.733zm66.783-48.231 3.684 11.337h11.921l-9.645 7.007 3.684 11.337-9.644-7.006-9.645 7.006 3.685-11.337-9.645-7.007h11.921z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m121.344 144.696 3.683 11.337h11.921l-9.645 7.007 3.684 11.337-9.643-7.006-9.645 7.006 3.685-11.337-9.645-7.007h11.921zm57.834 0 3.684 11.337h11.921l-9.645 7.007 3.684 11.337-9.644-7.006-9.644 7.006 3.685-11.337-9.645-7.007h11.921zm-11.131 33.391 3.684 11.337h11.921l-9.644 7.007 3.684 11.337-9.645-7.006-9.643 7.006 3.684-11.337-9.644-7.007h11.92zm-35.573 0 3.683 11.337h11.921l-9.644 7.007 3.684 11.337-9.644-7.006-9.644 7.006 3.684-11.337-9.644-7.007h11.92z\"\n })));\n};\nexport var SH = function SH(_ref202) {\n var title = _ref202.title,\n rest = _objectWithoutProperties(_ref202, _excluded202);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 341.3\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h512v341.3H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 0v117.4h-46.1l46.1 30.7v22.6h-22.6L160 121.8v48.9H96v-48.9l-73.4 48.9H0v-22.6l46.1-30.7H0v-64h46.1L0 22.7V0h22.6L96 48.9V0h64v48.9L233.4 0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144 0h-32v69.4H0v32h112v69.3h32v-69.3h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0v15.1l57.4 38.3H80zm256 0v15.1l-57.4 38.3H176z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M256 22.7v30.7h-46.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0v15.1l57.4 38.3H80zm256 0v15.1l-57.4 38.3H176z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M256 22.7v30.7h-46.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 170.7v-15.1l57.4-38.2H80zm256 0v-15.1l-57.4-38.2H176z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29DBFF\",\n d: \"M449 139.7c-.1 44.4-7.2 92.1-65 114.9-57.8-22.8-64.9-70.5-65-114.9h130z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffda44\",\n d: \"M449 139.7c0-16.7-.9-32.9-.5-47.1C426.9 83 398.4 81 383.9 81s-42.9 2-64.6 11.6c.4 14.2-.5 30.4-.5 47.1H449z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#BF521B\",\n d: \"m369.5 204.5.3 10.3-12.8.2 4.9 13.2h-17.3c-18-20.2-23.4-42.4-24.9-68.1l9.1-9.7 8.3 14.3 10.8-12.8 7 7.8.8 15.7 13.8 29.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#474747\",\n d: \"m436.6 192.5-8.6 18.3h-47l-29.2-19.5 25.7 10.5h25.1l3.7-6.5 7.2.2 2-3z\"\n }));\n};\nexport var SI = function SI(_ref203) {\n var title = _ref203.title,\n rest = _objectWithoutProperties(_ref203, _excluded203);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 199.112h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 312.888h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M233.606 196.639v14.837c0 34.081-44.522 44.522-44.522 44.522s-44.522-10.44-44.522-44.522v-14.837l-.145-44.188 89.043-.266.146 44.454z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M233.606 196.639v14.837c0 34.081-44.522 44.522-44.522 44.522s-44.522-10.44-44.522-44.522v-14.837l-.145-44.188 89.043-.266.146 44.454z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M233.606 196.639v14.837c0 34.081-44.522 44.522-44.522 44.522s-44.522-10.44-44.522-44.522v-14.837l14.848 14.837 29.674-22.261 29.685 22.261 14.837-14.837z\"\n }));\n};\nexport var SJ = function SJ(_ref204) {\n var title = _ref204.title,\n rest = _objectWithoutProperties(_ref204, _excluded204);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.334h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M512 295.883H202.195v130.783h-79.76V295.883H0v-79.772h122.435V85.329h79.76v130.782H512v61.218z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M512 234.666v42.663H183.652v149.337h-42.674V277.329H0v-42.663h140.978V85.329h42.674v149.337z\"\n }));\n};\nexport var SK = function SK(_ref205) {\n var title = _ref205.title,\n rest = _objectWithoutProperties(_ref205, _excluded205);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 196.641h512v118.717H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 315.359h512v111.304H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M129.468 181.799v85.136c0 48.429 63.267 63.267 63.267 63.267S256 315.362 256 266.935v-85.136H129.468z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M146.126 184.294v81.941c0 5.472 1.215 10.64 3.623 15.485h85.97c2.408-4.844 3.623-10.012 3.623-15.485v-81.941h-93.216z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M221.301 241.427h-21.425v-14.283h14.284v-14.283h-14.284v-14.284h-14.283v14.284h-14.282v14.283h14.282v14.283h-21.426v14.284h21.426v14.283h14.283v-14.283h21.425z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M169.232 301.658c9.204 5.783 18.66 9.143 23.502 10.636 4.842-1.494 14.298-4.852 23.502-10.636 9.282-5.833 15.79-12.506 19.484-19.939a24.878 24.878 0 0 0-14.418-4.583c-1.956 0-3.856.232-5.682.657-3.871-8.796-12.658-14.94-22.884-14.94-10.227 0-19.013 6.144-22.884 14.94a25.048 25.048 0 0 0-5.682-.657 24.88 24.88 0 0 0-14.418 4.583c3.691 7.433 10.198 14.106 19.48 19.939z\"\n }));\n};\nexport var SL = function SL(_ref206) {\n var title = _ref206.title,\n rest = _objectWithoutProperties(_ref206, _excluded206);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 85.337h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 312.888h512v113.775H0z\"\n }));\n};\nexport var SM = function SM(_ref207) {\n var title = _ref207.title,\n rest = _objectWithoutProperties(_ref207, _excluded207);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 85.34h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M512 85.334v166.69L0 256.175V85.334z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M323.744 203.099 256 270.843l-67.744-67.744a81.156 81.156 0 0 0-13.879 45.483v22.261c0 35.744 23.097 66.193 55.148 77.213-4.277 8.385-3.556 18.848 2.712 26.671l24.258-19.439 24.258 19.439c6.342-7.915 7.011-18.534 2.564-26.968 31.614-11.261 54.308-41.485 54.308-76.916v-22.261a81.174 81.174 0 0 0-13.881-45.483z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M256 330.206c-32.732 0-59.362-26.63-59.362-59.362v-22.261c0-32.733 26.63-59.363 59.362-59.363s59.362 26.63 59.362 59.362v22.261c0 32.733-26.63 59.363-59.362 59.363z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M293.101 270.843v-22.261c0-20.458-16.643-37.101-37.101-37.101s-37.101 16.643-37.101 37.101v22.261L256 278.264l37.101-7.421z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M218.899 270.843c0 20.458 16.643 37.101 37.101 37.101s37.101-16.643 37.101-37.101h-74.202z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M300.522 189.22c0-12.295-9.966-22.261-22.261-22.261a22.173 22.173 0 0 0-14.84 5.672v-13.093h7.421v-14.84h-7.421v-7.421h-14.84v7.421h-7.421v14.84h7.421v13.093a22.177 22.177 0 0 0-14.841-5.672c-12.295 0-22.261 9.966-22.261 22.261 0 6.591 2.867 12.512 7.421 16.589v13.093h74.203v-13.093c4.552-4.077 7.419-9.997 7.419-16.589z\"\n }));\n};\nexport var SN = function SN(_ref208) {\n var title = _ref208.title,\n rest = _objectWithoutProperties(_ref208, _excluded208);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.331h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M330.207 85.331H512v341.337H330.207z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.331h181.793v341.337H0zm255.999 111.301 14.733 45.347h47.685l-38.576 28.029 14.734 45.348-38.576-28.026-38.577 28.026 14.737-45.348-38.576-28.029h47.681z\",\n fill: \"#496E2D\"\n }));\n};\nexport var SO = function SO(_ref209) {\n var title = _ref209.title,\n rest = _objectWithoutProperties(_ref209, _excluded209);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m256 157.273 22.663 69.748H352l-59.332 43.106 22.664 69.749L256 296.769l-59.332 43.107 22.664-69.749L160 227.021h73.337z\"\n }));\n};\nexport var SR = function SR(_ref210) {\n var title = _ref210.title,\n rest = _objectWithoutProperties(_ref210, _excluded210);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A2001D\",\n d: \"M0 196.636h512v118.728H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 352.462h512v74.207H0zM0 85.331h512v74.207H0z\",\n fill: \"#6DA544\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m256.742 218.003 9.43 29.021h30.518L272 264.963l9.431 29.023-24.689-17.937-24.689 17.937 9.431-29.023-24.69-17.939h30.518z\"\n }));\n};\nexport var SS = function SS(_ref211) {\n var title = _ref211.title,\n rest = _objectWithoutProperties(_ref211, _excluded211);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M0 322.783h512v103.88H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.337h512v104.515H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A2001D\",\n d: \"M0 210.877h512v89.656H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M256 256.006 0 426.668V85.331z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m73.178 209.188 20.831 29.067 34.084-10.83-21.207 28.795 20.83 29.069-33.939-11.271-21.208 28.794.234-35.762-33.94-11.273 34.083-10.83z\"\n }));\n};\nexport var ST = function ST(_ref212) {\n var title = _ref212.title,\n rest = _objectWithoutProperties(_ref212, _excluded212);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.337h512v113.775H0zm0 227.551h512v113.775H0z\",\n fill: \"#6DA544\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M256 256.006 0 426.668V85.331z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m302.049 226.318 7.368 22.674h23.842l-19.288 14.016 7.366 22.674-19.288-14.015-19.287 14.015 7.366-22.674-19.288-14.016h23.842zm74.203 0 7.367 22.674h23.842l-19.288 14.016 7.367 22.674-19.288-14.015-19.288 14.015 7.367-22.674-19.288-14.016h23.842z\"\n }));\n};\nexport var SV = function SV(_ref213) {\n var title = _ref213.title,\n rest = _objectWithoutProperties(_ref213, _excluded213);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.337h512v113.775H0zm0 227.551h512v113.775H0z\",\n fill: \"#0052B4\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M228.582 261.936 256 214.447l27.418 47.489z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M291.616 277.616 256 295.425l-35.616-17.809v-23.744h71.232z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m289.579 216.485-12.592 12.592c5.37 5.372 8.693 12.791 8.693 20.988 0 16.392-13.289 29.68-29.68 29.68-16.392 0-29.68-13.289-29.68-29.68 0-8.195 3.322-15.616 8.693-20.988l-12.592-12.592c-8.594 8.594-13.91 20.466-13.91 33.579 0 26.228 21.261 47.489 47.489 47.489s47.489-21.261 47.489-47.489c0-13.114-5.316-24.987-13.91-33.579z\"\n }));\n};\nexport var SX = function SX(_ref214) {\n var title = _ref214.title,\n rest = _objectWithoutProperties(_ref214, _excluded214);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M512 85.331v166.69L0 256.173V85.331z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 256.006 0 426.668V85.331z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFDA44\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.621 256a59.546 59.546 0 0 0-.193 4.57c0 32.821 26.607 59.429 59.429 59.429s59.429-26.607 59.429-59.429c0-1.539-.078-3.061-.193-4.57H59.621z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 118.862,\n cy: 210.287,\n r: 18.286\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M77.715 205.714v59.429c0 31.494 41.144 41.143 41.144 41.143s41.144-9.649 41.144-41.143v-59.429H77.715z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M118.877 287.148c-7.632-2.746-22.876-9.767-22.876-22.006v-41.144h45.715v41.144c-.001 12.28-15.244 19.283-22.839 22.006z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F3F3F3\",\n d: \"M128.001 246.856v-9.142l-9.144-4.571-9.142 4.571v9.142l-4.571 4.573v18.285h27.428v-18.285z\"\n }));\n};\nexport var SY = function SY(_ref215) {\n var title = _ref215.title,\n rest = _objectWithoutProperties(_ref215, _excluded215);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 900,\n height: 600,\n xmlns: \"http://www.w3.org/2000/svg\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h900v600H0z\",\n fill: \"#0f0f0f\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h900v400H0z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h900v200H0z\",\n fill: \"#047a3f\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m176.26 375 48.738-150 48.738 150-127.6-92.705h157.72M626.256 375l48.738-150 48.738 150-127.6-92.705h157.72M401.252 375l48.738-150 48.738 150-127.6-92.705h157.72\",\n fill: \"#ce1126\"\n }));\n};\nexport var SZ = function SZ(_ref216) {\n var title = _ref216.title,\n rest = _objectWithoutProperties(_ref216, _excluded216);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 900 600\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2B5DEA\",\n d: \"M0 0h900v600H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDF29\",\n d: \"M0 100h900v400H0V100z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D70000\",\n d: \"M0 150h900v300H0V150z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M450 171.4v257.2c114.3 0 171.4-85.7 214.3-128.6-42.9-42.9-100-128.6-214.3-128.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M450 171.4c-100 0-171.4 85.7-214.3 128.6C278.6 342.9 350 428.6 450 428.6V171.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M346.3 254.3h21v91.3h-21zm51.9 0h21v91.3h-21z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M477.8 254.3h21v91.3h-21zm51.9 0h21v91.3h-21z\"\n }));\n};\nexport var TA = function TA(_ref217) {\n var title = _ref217.title,\n rest = _objectWithoutProperties(_ref217, _excluded217);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 341.3\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h512v341.3H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 0v117.4h-46.1l46.1 30.7v22.6h-22.6L160 121.8v48.9H96v-48.9l-73.4 48.9H0v-22.6l46.1-30.7H0v-64h46.1L0 22.7V0h22.6L96 48.9V0h64v48.9L233.4 0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144 0h-32v69.4H0v32h112v69.3h32v-69.3h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0v15.1l57.4 38.3H80zm256 0v15.1l-57.4 38.3H176z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M256 22.7v30.7h-46.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0v15.1l57.4 38.3H80zm256 0v15.1l-57.4 38.3H176z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M256 22.7v30.7h-46.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 170.7v-15.1l57.4-38.2H80zm256 0v-15.1l-57.4-38.2H176z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29DBFF\",\n d: \"M448.9 169.5c0 9.6-.3 29.6-1.4 39.2-4.1 34.9-23.5 68.8-62.1 85.9-45.3-17.9-60.8-51-64.9-85.9-1.1-9.6-1.5-19.4-1.5-29l.3-47.1h129.2l.4 36.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M447.5 208.7c-.2 1.6-.4 3.3-.6 4.9-4.8 33.1-22.9 65.4-61.5 81-43.2-17-59.4-47.9-64.2-81-.2-1.6-.4-3.2-.6-4.9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#29DBFF\",\n d: \"m385.4 251.7-22.9-43h45.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m385.4 165.8-22.9 42.9h45.8z\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n fill: \"#FFBE57\",\n cx: 474.8,\n cy: 236.8,\n rx: 16.8,\n ry: 43.3\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n fill: \"#FFBE57\",\n cx: 295.3,\n cy: 236.8,\n rx: 16.8,\n ry: 43.3\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m385.4 31.5-33.4 44h68.5zM315.5 280s33.8 29.5 69.9 29.5 67.1-29.5 67.1-29.5l8.5 14.6S439.2 326 385.4 326 307 294.6 307 294.6l8.5-14.6z\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n fill: \"#A5A5A5\",\n cx: 386.3,\n cy: 104.3,\n rx: 34.3,\n ry: 23.3\n }));\n};\nexport var TC = function TC(_ref218) {\n var title = _ref218.title,\n rest = _objectWithoutProperties(_ref218, _excluded218);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.333h512V426.67H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M332.058 191.996v78.221c0 38.103 51.942 49.779 51.942 49.779s51.942-11.675 51.942-49.779v-78.221H332.058z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9811\",\n d: \"M376.579 220.44c0 7.855-6.644 28.445-14.84 28.445s-14.84-20.589-14.84-28.445c0-7.856 14.84-14.222 14.84-14.222s14.84 6.367 14.84 14.222z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A2001D\",\n d: \"M415.961 235.93c2.394-5.6 4.257-13.785 4.257-17.86 0-6.546-8.904-11.852-8.904-11.852s-8.904 5.306-8.904 11.852c0 4.075 1.862 12.26 4.257 17.86l-5.141 11.123a26.898 26.898 0 0 0 9.788 1.831c3.463 0 6.766-.654 9.788-1.831l-5.141-11.123z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M372.87 270.217s-7.421 14.222-7.421 28.445h37.101c0-14.222-7.421-28.445-7.421-28.445l-11.13-7.111-11.129 7.111z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M395.13 270.217v-3.555c0-5.891-4.983-10.666-11.13-10.666-6.147 0-11.13 4.776-11.13 10.666v3.555h22.26z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 85.333v30.553l-45.167 25.099H256v59.359h-59.103L256 233.179v22.817h-26.68l-73.494-40.826v40.826h-55.652v-48.573l-87.43 48.573H0v-30.554l45.167-25.098H0v-59.359h59.103L0 108.139V85.333h26.68l73.494 40.825V85.333h55.652v48.572l87.43-48.572z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M144 85.33h-32v69.332H0v32h112v69.334h32v-69.334h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M155.826 200.344 256 255.996v-15.737l-71.847-39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M155.826 200.344 256 255.996v-15.737l-71.847-39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.826 200.344 256 255.996v-15.737l-71.847-39.915zm-83.98 0L0 240.259v15.737l100.174-55.652z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M100.174 140.982 0 85.33v15.737l71.847 39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M100.174 140.982 0 85.33v15.737l71.847 39.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.174 140.982 0 85.33v15.737l71.847 39.915zm83.98 0L256 101.067V85.33l-100.174 55.652z\",\n fill: \"#D80027\"\n }));\n};\nexport var TD = function TD(_ref219) {\n var title = _ref219.title,\n rest = _objectWithoutProperties(_ref219, _excluded219);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.331h170.663v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M341.337 85.331H512v341.337H341.337z\"\n }));\n};\nexport var TF = function TF(_ref220) {\n var title = _ref220.title,\n rest = _objectWithoutProperties(_ref220, _excluded220);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 22.5 15\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h21v15H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A388A\",\n d: \"M0 0h22.5v15H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h11.3v7.5H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M7.1 0h3.6v7H7.1V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A388A\",\n d: \"M0 0h3.6v7H0V0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M3.6 0h3.6v7H3.6V0zm10.9 6h5L19 7h-1.5v.5h1l-.5 1h-.5V10h-1V7H15l-.5-1zm4 2.5 1 1.5h-2l1-1.5zm-3 0 1 1.5h-2l1-1.5zm1.5 3L16 10h2l-1 1.5zM20 8c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm-6 0c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm1 4c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm4 0c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm-2 1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5z\"\n }));\n};\nexport var TG = function TG(_ref221) {\n var title = _ref221.title,\n rest = _objectWithoutProperties(_ref221, _excluded221);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.337h512V153.6H0zM0 358.4h512v68.263H0zm0-136.537h512v68.263H0z\",\n fill: \"#496E2D\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.337h204.054v204.054H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m102.026 133.938 13.26 40.812h42.916l-34.718 25.226 13.26 40.814-34.718-25.224-34.719 25.224 13.263-40.814-34.718-25.226h42.913z\"\n }));\n};\nexport var TH = function TH(_ref222) {\n var title = _ref222.title,\n rest = _objectWithoutProperties(_ref222, _excluded222);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.334h512V426.66H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 194.056h512v123.882H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.334h512v54.522H0zm0 286.809h512v54.522H0z\",\n fill: \"#D80027\"\n }));\n};\nexport var TJ = function TJ(_ref223) {\n var title = _ref223.title,\n rest = _objectWithoutProperties(_ref223, _excluded223);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.337h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 312.888h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M226.318 300.522h59.364v-25.23l-11.873 5.937L256 263.421l-17.809 17.808-11.873-5.937zm-33.963-29.682 2.763 8.504h8.94l-7.233 5.255 2.763 8.502-7.233-5.255-7.234 5.255 2.763-8.502-7.233-5.255h8.94zm8.566-29.68 2.763 8.502h8.94l-7.233 5.255 2.763 8.504-7.233-5.256-7.234 5.256 2.763-8.504-7.233-5.255h8.94zm24.488-22.261 2.763 8.502h8.94l-7.233 5.255 2.763 8.504-7.233-5.256-7.234 5.256 2.763-8.504-7.233-5.255h8.94zm94.236 51.941-2.763 8.504h-8.94l7.233 5.255-2.763 8.502 7.233-5.255 7.234 5.255-2.763-8.502 7.233-5.255h-8.94zm-8.566-29.68-2.763 8.502h-8.94l7.233 5.255-2.763 8.504 7.233-5.256 7.234 5.256-2.763-8.504 7.233-5.255h-8.94zm-24.488-22.261-2.763 8.502h-8.94l7.233 5.255-2.763 8.504 7.233-5.256 7.234 5.256-2.763-8.504 7.233-5.255h-8.94zM256 207.767l2.763 8.503h8.941l-7.234 5.256 2.763 8.502-7.233-5.254-7.233 5.254 2.763-8.502-7.234-5.256h8.941z\",\n fill: \"#FFDA44\"\n }));\n};\nexport var TK = function TK(_ref224) {\n var title = _ref224.title,\n rest = _objectWithoutProperties(_ref224, _excluded224);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m210.715 174.377 3.684 11.338h11.919l-9.643 7.006 3.684 11.337-9.644-7.007-9.644 7.007 3.684-11.337-9.645-7.006h11.921zm-93.899 107.594 4.605 14.172h14.9l-12.055 8.757 4.606 14.173-12.056-8.76-12.055 8.76 4.604-14.173-12.054-8.757h14.899zm27.88-162.292 4.604 14.172h14.901l-12.056 8.758 4.606 14.171-12.055-8.759-12.056 8.759 4.606-14.171-12.055-8.758h14.9zm-75.157 55.652 4.604 14.172h14.9l-12.055 8.758 4.606 14.171-12.055-8.758-12.056 8.758 4.606-14.171-12.055-8.758h14.9z\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M483.386 354.503H117.801s109.234-88.562 310.593-220.938c.001 0-88.443 128.935 54.992 220.938zm-365.585 11.586c-11.177 0-11.195 17.37 0 17.37h365.585c11.177 0 11.195-17.37 0-17.37H117.801z\",\n fill: \"#FFDA44\"\n }));\n};\nexport var TL = function TL(_ref225) {\n var title = _ref225.title,\n rest = _objectWithoutProperties(_ref225, _excluded225);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M256 256 0 90.691v44.242L155.826 256 0 377.067v44.242z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 90.691v330.618L189.217 256z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m44.184 213.36 24.912 23.577 30.121-16.41-14.723 30.98 24.911 23.575-34.012-4.43L60.67 301.63l-6.296-33.716-34.012-4.43 30.119-16.408z\"\n }));\n};\nexport var TM = function TM(_ref226) {\n var title = _ref226.title,\n rest = _objectWithoutProperties(_ref226, _excluded226);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M357.208 183.679c8.397-23.404-1.036-48.858-21.281-61.536a52.131 52.131 0 0 1 10.884 2.621c27.002 9.688 41.038 39.428 31.35 66.431s-39.428 41.038-66.431 31.35a52.182 52.182 0 0 1-10.069-4.895c23.686 3.084 47.15-10.566 55.547-33.971zm-46.571-67.95-7.297 9.427-11.22-4.026 6.712 9.852-7.296 9.427 11.443-3.338 6.712 9.852.361-11.914 11.444-3.339-11.221-4.025z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m330.338 146.448-7.296 9.427-11.221-4.026 6.712 9.852-7.296 9.427 11.443-3.339 6.712 9.853.36-11.915 11.445-3.34-11.221-4.024zM275.9 126.916l-7.296 9.427-11.219-4.024 6.711 9.851-7.296 9.426 11.443-3.338 6.712 9.852.361-11.915 11.444-3.337-11.221-4.027zm-.799 35.189-7.296 9.427-11.221-4.026 6.712 9.852-7.296 9.427 11.444-3.338 6.711 9.852.362-11.915 11.443-3.338-11.22-4.026zm33.484 12.013-7.296 9.427-11.22-4.026 6.712 9.853-7.297 9.426 11.444-3.338 6.712 9.852.36-11.915 11.443-3.338-11.219-4.025z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M83.478 85.337h89.043v341.326H83.478z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m117.458 175.191-14.908-11.105v-15.705l14.908-11.105h21.084l14.908 11.105v15.705l-14.908 11.105z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128 137.276h-10.542l-14.908 11.105v7.678H128zm0 37.915h10.542l14.908-11.105v-8.012H128z\",\n fill: \"#FF9811\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m117.458 374.725-14.908-11.106v-15.704l14.908-11.105h21.084l14.908 11.105v15.704l-14.908 11.106z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128 336.81h-10.542l-14.908 11.105v7.678H128zm0 37.915h10.542l14.908-11.106v-8.011H128z\",\n fill: \"#FF9811\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m117.458 274.957-14.908-11.105v-15.703l14.908-11.106h21.084l14.908 11.106v15.703l-14.908 11.105zm36.513 24.434h-6.493v-6.493h-11.411l-8.068-8.068-8.067 8.068h-11.41v6.493h-6.493v12.986h6.493v6.492h11.41l8.068 8.069 8.068-8.069h11.41v-6.492h6.493zm0-99.768h-6.493v-6.492h-11.411l-8.068-8.069-8.067 8.069h-11.41v6.492h-6.493v12.986h6.493v6.492h11.41l8.068 8.07 8.068-8.07h11.41v-6.492h6.493z\",\n fill: \"#496E2D\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.576 248.576h14.84v14.84h-14.84z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 128,\n cy: 206.113,\n r: 7.421\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 128,\n cy: 305.887,\n r: 7.421\n })));\n};\nexport var TN = function TN(_ref227) {\n var title = _ref227.title,\n rest = _objectWithoutProperties(_ref227, _excluded227);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 256,\n cy: 255.994,\n r: 96\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m267.826 219.291 16.47 22.695 26.673-8.649-16.496 22.676 16.468 22.695-26.664-8.681-16.495 22.676.017-28.04-26.664-8.682 26.674-8.648z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M277.818 312.724c-31.33 0-56.727-25.397-56.727-56.727s25.397-56.727 56.727-56.727c9.769 0 18.96 2.47 26.985 6.819-12.589-12.31-29.804-19.909-48.803-19.909-38.558 0-69.818 31.259-69.818 69.818s31.26 69.818 69.818 69.818c18.999 0 36.215-7.599 48.803-19.909-8.026 4.347-17.216 6.817-26.985 6.817z\"\n })));\n};\nexport var TO = function TO(_ref228) {\n var title = _ref228.title,\n rest = _objectWithoutProperties(_ref228, _excluded228);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.331h256v170.663H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M141.357 157.303V130.59h-26.714v26.713H87.93v26.713h26.713v26.713h26.714v-26.713h26.713v-26.713z\"\n }));\n};\nexport var TR = function TR(_ref229) {\n var title = _ref229.title,\n rest = _objectWithoutProperties(_ref229, _excluded229);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E30A17\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M259.7 118.6c-13.1-9.5-29-14.6-45.3-14.5-40.8 0-73.8 30.8-73.8 68.9s33.1 68.9 73.8 68.9c17.1 0 32.9-5.4 45.3-14.5-30 38.6-85.7 45.6-124.3 15.5s-45.6-85.7-15.5-124.3 85.7-45.6 124.3-15.5c5.8 4.5 11 9.8 15.5 15.5zm39.9 65.8-18.1 21.9 1.2-28.4-26.4-10.4 27.3-7.6 1.8-28.3 15.6 23.7 27.5-7.1-17.5 22 15.3 23.9-26.7-9.7z\"\n }));\n};\nexport var TT = function TT(_ref230) {\n var title = _ref230.title,\n rest = _objectWithoutProperties(_ref230, _excluded230);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m6.066 85.337 207.961 212.636 131.584 128.69h160.323L297.973 214.027 166.389 85.337z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.364 85.337 384.69 426.663h83.946L127.31 85.337z\"\n }));\n};\nexport var TV = function TV(_ref231) {\n var title = _ref231.title,\n rest = _objectWithoutProperties(_ref231, _excluded231);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 900 600\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h900v600H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00B2EE\",\n d: \"M0 300h450V0h450v600H0V300z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m345.3 480.9 29.4 90.6-77.1-56H393l-77.1 56 29.4-90.6zM706.4 340l29.4 90.6-77.1-56H754l-77.1 56 29.5-90.6zm106.4-78.5 29.4 90.6-77.1-56h95.3l-77.1 56 29.5-90.6zm0-224.1 29.4 90.6-77.1-56h95.3l-77.1 56 29.5-90.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M449.9 0v206.3h-81l81 54V300h-39.7l-129-85.9V300H168.7v-85.9L39.7 300H0v-39.7l81-54H0V93.8h81L0 39.9V0h39.7l129 85.9V0h112.5v85.9L410.2 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M253.1 0h-56.3v122H0v56.2h196.8V300h56.3V178.2h196.8V122H253.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M449.9 39.9v53.9h-81z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 300v-19.3l109.9-74.4h39.7L12.8 300zM12.8.1l136.8 93.7h-39.7L0 19.4V.1zm437.1.1v19.3L340 93.8h-39.7L437.1.2zM437.1 300l-136.8-93.7H340l109.9 74.4V300z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m719.9 131.6 29.4 90.6-77.1-56h95.3l-77.1 56 29.5-90.6zM584 187.7l29.4 90.6-77.1-56h95.3l-77.1 56 29.5-90.6zm30 242.9 29.4 90.6-77.1-56h95.3l-77.1 56 29.5-90.6zM488 332l29.4 90.6-77.1-56h95.3l-77.1 56L488 332zm0 132 29.4 90.6-77.1-56h95.3l-77.1 56L488 464z\"\n }));\n};\nexport var TW = function TW(_ref232) {\n var title = _ref232.title,\n rest = _objectWithoutProperties(_ref232, _excluded232);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.337h256V256H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M186.435 170.669 162.558 181.9l12.714 23.125-25.927-4.961-3.286 26.192L128 206.993l-18.06 19.263-3.285-26.192-25.927 4.96 12.714-23.125-23.877-11.23 23.877-11.231-12.714-23.125 25.927 4.96 3.286-26.192L128 134.344l18.06-19.263 3.285 26.192 25.928-4.96-12.715 23.125z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#0052B4\",\n cx: 128,\n cy: 170.674,\n r: 29.006\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M128 190.06c-10.692 0-19.391-8.7-19.391-19.391 0-10.692 8.7-19.391 19.391-19.391 10.692 0 19.391 8.7 19.391 19.391 0 10.691-8.699 19.391-19.391 19.391z\"\n }));\n};\nexport var TZ = function TZ(_ref233) {\n var title = _ref233.title,\n rest = _objectWithoutProperties(_ref233, _excluded233);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 426.663V85.337h512\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M512 152.222V85.337H411.67L0 359.778v66.885h100.33z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M512 85.337v40.125L60.193 426.663H0v-40.125L451.807 85.337z\"\n }));\n};\nexport var UA = function UA(_ref234) {\n var title = _ref234.title,\n rest = _objectWithoutProperties(_ref234, _excluded234);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 85.337h512V256H0z\"\n }));\n};\nexport var UG = function UG(_ref235) {\n var title = _ref235.title,\n rest = _objectWithoutProperties(_ref235, _excluded235);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 341.3\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#232323\",\n d: \"M0 0h512v341.3H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 56.9h512v56.9H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D32300\",\n d: \"M0 113.8h512v56.9H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 227.6h512v56.9H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D32300\",\n d: \"M0 284.4h512v56.9H0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FFF\",\n cx: 256,\n cy: 170.7,\n r: 80.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M234.5 127.5c.9-1.4-19.6-2-19.6-2 1.7-2.5 18.4-10.5 18.4-10.5s-.9-6 2.7-9.8l-4.5-9.8s7-3.4 18.4-3.4 19.9 7 21 13.1l-6.4 3.4c-.1 4.7 1.7 11.6-4.3 17.3-5.9 5.7-8.3 6.9-8.5 18.8 0 3.9 2.3 8.2 8.8 11.7 17.4 9.3 38.6 28.2 44.6 33.9 6.1 5.7 5.1 19.2 2.6 25.2s-12.1 14.3-14.3 13.6c-2.2-.6 1.2-9.2-3.5-11.6 0 0-8.9-7.6-16.8.6s-.2 25.2 3.9 28c4.1 2.8 1.7 5-1.9 5H247c-3.8 0-5.4-2.3-1.9-5 7.6-3.8 12.4-15.3 7.4-20.3-4.9-4.9-18.3 1.5-21.5 6.3-2.8 2.8-8.8 3.6-12.9-1.4s-4.1-10.4-1.1-12.5c7-4.8 0 0 .1-.1 0 0 11.9-8.6 29.9-9 3.9 0 4.8-2.2 2.2-4.8 0 0-30.9-27.4-28.1-44.2 3-18.3 20-26.3 13.4-32.5-1.3-1.8 0 0 0 0z\"\n }));\n};\nexport var UM = function UM(_ref236) {\n var title = _ref236.title,\n rest = _objectWithoutProperties(_ref236, _excluded236);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513v26.3H0zm0 52.7h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513V342H0z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M0 0h256.5v184.1H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m47.8 138.9-4-12.8-4.4 12.8H26.2l10.7 7.7-4 12.8 10.9-7.9 10.6 7.9-4.1-12.8 10.9-7.7zm56.3 0-4.1-12.8-4.2 12.8H82.6l10.7 7.7-4 12.8 10.7-7.9 10.8 7.9-4-12.8 10.7-7.7zm56.5 0-4.3-12.8-4 12.8h-13.5l11 7.7-4.2 12.8 10.7-7.9 11 7.9-4.2-12.8 10.7-7.7zm56.2 0-4-12.8-4.2 12.8h-13.3l10.8 7.7-4 12.8 10.7-7.9 10.8 7.9-4.3-12.8 11-7.7zM100 75.3l-4.2 12.8H82.6L93.3 96l-4 12.6 10.7-7.8 10.8 7.8-4-12.6 10.7-7.9h-13.4zm-56.2 0-4.4 12.8H26.2L36.9 96l-4 12.6 10.9-7.8 10.6 7.8L50.3 96l10.9-7.9H47.8zm112.5 0-4 12.8h-13.5l11 7.9-4.2 12.6 10.7-7.8 11 7.8-4.2-12.6 10.7-7.9h-13.2zm56.5 0-4.2 12.8h-13.3l10.8 7.9-4 12.6 10.7-7.8 10.8 7.8-4.3-12.6 11-7.9h-13.5zm-169-50.6-4.4 12.6H26.2l10.7 7.9-4 12.7L43.8 50l10.6 7.9-4.1-12.7 10.9-7.9H47.8zm56.2 0-4.2 12.6H82.6l10.7 7.9-4 12.7L100 50l10.8 7.9-4-12.7 10.7-7.9h-13.4zm56.3 0-4 12.6h-13.5l11 7.9-4.2 12.7 10.7-7.9 11 7.9-4.2-12.7 10.7-7.9h-13.2zm56.5 0-4.2 12.6h-13.3l10.8 7.9-4 12.7 10.7-7.9 10.8 7.9-4.3-12.7 11-7.9h-13.5z\",\n fill: \"#FFF\"\n }));\n};\nexport var US = function US(_ref237) {\n var title = _ref237.title,\n rest = _objectWithoutProperties(_ref237, _excluded237);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513v26.3H0zm0 52.7h513v26.3H0zm0 52.6h513v26.3H0zm0 52.6h513V342H0z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M0 0h256.5v184.1H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m47.8 138.9-4-12.8-4.4 12.8H26.2l10.7 7.7-4 12.8 10.9-7.9 10.6 7.9-4.1-12.8 10.9-7.7zm56.3 0-4.1-12.8-4.2 12.8H82.6l10.7 7.7-4 12.8 10.7-7.9 10.8 7.9-4-12.8 10.7-7.7zm56.5 0-4.3-12.8-4 12.8h-13.5l11 7.7-4.2 12.8 10.7-7.9 11 7.9-4.2-12.8 10.7-7.7zm56.2 0-4-12.8-4.2 12.8h-13.3l10.8 7.7-4 12.8 10.7-7.9 10.8 7.9-4.3-12.8 11-7.7zM100 75.3l-4.2 12.8H82.6L93.3 96l-4 12.6 10.7-7.8 10.8 7.8-4-12.6 10.7-7.9h-13.4zm-56.2 0-4.4 12.8H26.2L36.9 96l-4 12.6 10.9-7.8 10.6 7.8L50.3 96l10.9-7.9H47.8zm112.5 0-4 12.8h-13.5l11 7.9-4.2 12.6 10.7-7.8 11 7.8-4.2-12.6 10.7-7.9h-13.2zm56.5 0-4.2 12.8h-13.3l10.8 7.9-4 12.6 10.7-7.8 10.8 7.8-4.3-12.6 11-7.9h-13.5zm-169-50.6-4.4 12.6H26.2l10.7 7.9-4 12.7L43.8 50l10.6 7.9-4.1-12.7 10.9-7.9H47.8zm56.2 0-4.2 12.6H82.6l10.7 7.9-4 12.7L100 50l10.8 7.9-4-12.7 10.7-7.9h-13.4zm56.3 0-4 12.6h-13.5l11 7.9-4.2 12.7 10.7-7.9 11 7.9-4.2-12.7 10.7-7.9h-13.2zm56.5 0-4.2 12.6h-13.3l10.8 7.9-4 12.7 10.7-7.9 10.8 7.9-4.3-12.7 11-7.9h-13.5z\",\n fill: \"#FFF\"\n }));\n};\nexport var UY = function UY(_ref238) {\n var title = _ref238.title,\n rest = _objectWithoutProperties(_ref238, _excluded238);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 513 342\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h513v342H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 38h513v38H0zm0 76h513v38H0zm0 76h513v38H0zm0 76h513v38H0z\",\n fill: \"#0038a8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h256.5v190H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FED443\",\n d: \"m128.3 138.7-15.1 22.6-3.8-26.9L86 148.2l8.2-25.9-27.2 2.2 18.6-19.8L60.3 95l25.4-9.7L67 65.5l27.1 2.3-8.2-25.9 23.4 13.8 3.9-26.9 15.1 22.6 15.1-22.6 3.8 26.9 23.4-13.8-8.2 25.9 27.1-2.2-18.6 19.8 25.4 9.7-25.4 9.7 18.6 19.8-27.1-2.2 8.2 25.9-23.4-13.8-3.9 26.9-15-22.7zm0-.5c23.9.9 44-17.6 44.9-41.5.9-23.9-17.6-44-41.5-44.9h-3.4c-23.9.8-42.6 20.8-41.8 44.6.6 22.8 19 41.1 41.8 41.8zm0-10.6c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.3 34-34 34z\"\n }));\n};\nexport var UZ = function UZ(_ref239) {\n var title = _ref239.title,\n rest = _objectWithoutProperties(_ref239, _excluded239);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M0 322.783h512v103.88H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 85.337h512v104.515H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 210.877h512v89.656H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 85.337h512v104.515H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M188.688 137.589c0-15.984 11.234-29.339 26.236-32.614a33.531 33.531 0 0 0-7.155-.777c-18.442 0-33.391 14.949-33.391 33.391s14.949 33.391 33.391 33.391c2.458 0 4.85-.273 7.155-.777-15.002-3.275-26.236-16.63-26.236-32.614zm45.97 15.177 2.261 6.957h7.315l-5.918 4.301 2.261 6.956-5.919-4.3-5.918 4.3 2.261-6.956-5.918-4.301h7.315zm23.348 0 2.26 6.957h7.315l-5.918 4.301 2.261 6.956-5.918-4.3-5.918 4.3 2.26-6.956-5.917-4.301h7.314zm23.347 0 2.26 6.957h7.315l-5.917 4.301 2.26 6.956-5.918-4.3-5.918 4.3 2.26-6.956-5.918-4.301h7.315zm23.347 0 2.262 6.957h7.315l-5.919 4.301 2.261 6.956-5.919-4.3-5.918 4.3 2.262-6.956-5.919-4.301h7.314zm23.348 0 2.26 6.957h7.315l-5.918 4.301 2.261 6.956-5.918-4.3-5.918 4.3 2.26-6.956-5.917-4.301h7.314zm-70.042-24.284 2.26 6.956h7.315l-5.918 4.3 2.261 6.957-5.918-4.299-5.918 4.299 2.26-6.957-5.917-4.3h7.314zm23.347 0 2.26 6.956h7.315l-5.917 4.3 2.26 6.957-5.918-4.299-5.918 4.299 2.26-6.957-5.918-4.3h7.315zm23.347 0 2.262 6.956h7.315l-5.919 4.3 2.261 6.957-5.919-4.299-5.918 4.299 2.262-6.957-5.919-4.3h7.314zm23.348 0 2.26 6.956h7.315l-5.918 4.3 2.261 6.957-5.918-4.299-5.918 4.299 2.26-6.957-5.917-4.3h7.314zm-46.695-24.284 2.26 6.956h7.315l-5.917 4.3 2.26 6.957-5.918-4.3-5.918 4.3 2.26-6.957-5.918-4.3h7.315zm23.347 0 2.262 6.956h7.315l-5.919 4.3 2.261 6.957-5.919-4.3-5.918 4.3 2.262-6.957-5.919-4.3h7.314zm23.348 0 2.26 6.956h7.315l-5.918 4.3 2.261 6.957-5.918-4.3-5.918 4.3 2.26-6.957-5.917-4.3h7.314z\",\n fill: \"#FFF\"\n }));\n};\nexport var VA = function VA(_ref240) {\n var title = _ref240.title,\n rest = _objectWithoutProperties(_ref240, _excluded240);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.331h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 85.331h256v341.337H256z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ACABB1\",\n d: \"m321.353 233.837 32.073 42.43c-5.053 7.651-5.026 17.961.817 25.692 7.414 9.807 21.374 11.748 31.182 4.335 9.807-7.414 11.748-21.374 4.334-31.182-5.843-7.731-15.756-10.568-24.495-7.795l-49.988-66.129-11.838 8.949-17.759 13.424 17.899 23.677 17.775-13.401zm46.175 48.78a7.421 7.421 0 1 1 8.95 11.84 7.421 7.421 0 0 1-8.95-11.84z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m376.367 247.24 17.899-23.677-17.759-13.424-11.838-8.949-49.988 66.129c-8.74-2.775-18.651.063-24.495 7.795-7.414 9.808-5.473 23.768 4.334 31.182 9.808 7.414 23.768 5.473 31.182-4.335 5.845-7.731 5.871-18.041.817-25.692l32.073-42.43 17.775 13.401zm-62.504 45.771a7.42 7.42 0 1 1-11.84-8.95 7.42 7.42 0 0 1 11.84 8.95z\"\n }));\n};\nexport var VC = function VC(_ref241) {\n var title = _ref241.title,\n rest = _objectWithoutProperties(_ref241, _excluded241);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#338AF3\",\n d: \"M0 85.331h170.663v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M341.337 85.331H512v341.337H341.337zM214.261 283.82l-33.393-50.086 33.392-50.087 33.392 50.087zm83.478 0-33.391-50.086 33.391-50.087 33.393 50.087zM256 350.603l-33.391-50.087L256 250.429l33.391 50.087z\",\n fill: \"#6DA544\"\n }));\n};\nexport var VE = function VE(_ref242) {\n var title = _ref242.title,\n rest = _objectWithoutProperties(_ref242, _excluded242);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 22.5 15\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFCE00\",\n d: \"M0 0h22.5v5H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#203899\",\n d: \"M0 5h22.5v5H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D82B2B\",\n d: \"M0 10h22.5v5H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m12.13 5.38.14.46.45.14-.39.27.01.48-.38-.29-.45.15.15-.44-.28-.38h.47zm-1.77 0 .27.39h.47l-.28.38.15.45-.45-.16-.38.28.01-.47-.39-.28.45-.13zm3.44.56-.01.48.39.27-.46.14-.14.45-.27-.38h-.48l.29-.38-.15-.45.45.16zm-5.11.02.4.27.44-.18-.13.46.3.36-.47.02-.26.4-.16-.44-.46-.12.37-.3zm6.55 1.17-.2.44.25.4-.47-.05-.31.36-.1-.46-.43-.18.41-.24.03-.47.35.31zm.19 1.12.21.43.47.07-.34.33.08.46-.42-.22-.42.22.08-.46-.34-.33.47-.07zM7 8.2l.21.43.47.06-.34.33.08.47L7 9.27l-.42.22.08-.47-.34-.33.47-.06zm.31-1.15.45.14.38-.29v.48l.39.26-.45.15-.13.46-.28-.38-.47.01.27-.38z\"\n }));\n};\nexport var VG = function VG(_ref243) {\n var title = _ref243.title,\n rest = _objectWithoutProperties(_ref243, _excluded243);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.334h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M256 85.334V202.66h-46.069L256 233.38v22.617h-22.628L160 207.078v48.919H96v-48.919l-73.372 48.919H0V233.38l46.069-30.72H0v-64h46.069L0 107.951V85.334h22.628L96 134.241V85.334h64v48.907l73.372-48.907z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#D80027\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144 85.33h-32v69.333H0v32h112v69.334h32v-69.334h112v-32H144z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.329v15.083l57.377 38.251H80zm256 0v15.083l-57.377 38.251H176z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M256 107.951v30.712h-46.069z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.329v15.083l57.377 38.251H80zm256 0v15.083l-57.377 38.251H176z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E52B2\",\n d: \"M256 107.951v30.712h-46.069z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 255.997v-15.082l57.377-38.252H80zm256 0v-15.082l-57.377-38.252H176z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m384 259.706-46.129 46.129c8.645 16.675 26.051 28.074 46.129 28.074s37.484-11.4 46.129-28.074L384 259.706z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M332.058 178.084v81.624c.001 39.759 51.942 51.941 51.942 51.941s51.941-12.182 51.942-51.942v-81.623H332.058z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M372.87 215.181h22.261v59.359H372.87z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#A2001D\",\n cx: 384,\n cy: 215.181,\n r: 11.13\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M346.902 192.92h14.84v14.84h-14.84zm0 33.392h14.84v14.84h-14.84zm0 33.391h14.84v14.84h-14.84zm59.359-66.783h14.84v14.84h-14.84zm0 33.392h14.84v14.84h-14.84zm0 33.391h14.84v14.84h-14.84z\",\n fill: \"#FFDA44\"\n }));\n};\nexport var VI = function VI(_ref244) {\n var title = _ref244.title,\n rest = _objectWithoutProperties(_ref244, _excluded244);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 341.3\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h512v341.3H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1583C4\",\n d: \"m397.7 166.3-51 97.7c-1.1 2-.3 4.5 1.8 5.6 2 1.1 4.5.3 5.6-1.8l51-97.7c1-2.1.1-4.6-2-5.5-2-.9-4.3-.2-5.4 1.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1583C4\",\n d: \"m404.9 188-57.8 75.4c-1.3 1.9-.8 4.5 1.1 5.8 1.7 1.2 4.1.9 5.5-.7l57.8-75.4c1.4-1.8 1.1-4.4-.8-5.8-1.8-1.5-4.4-1.1-5.8.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1583C4\",\n d: \"m379 181.3-32.5 83.1c-.8 2.1.2 4.6 2.4 5.4 2.1.8 4.6-.2 5.4-2.4l32.5-83.1c.7-2.2-.4-4.5-2.6-5.3-2.1-.6-4.3.4-5.2 2.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#409347\",\n d: \"M122.1 171.9c.4 1.7 1.2 4.7 2.2 8.5 1.7 6.4 3.6 12.8 5.6 18.7 2.3 6.9 14.7 31.4 20.2 39.1 6.9 9.7 14.1 19.3 21.5 28.6 1.6 1.9 4.5 2.1 6.4.5 1.8-1.6 2.1-4.3.7-6.2-7.3-9.2-14.4-18.6-21.2-28.2-4.2-5.8-17.2-31.1-19-36.7-2.9-8.7-5.4-17.6-7.6-26.5-.5-2.4-2.9-4-5.3-3.5s-4 2.9-3.5 5.3c-.1.2 0 .3 0 .4z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFD836\",\n stroke: \"#231F20\",\n strokeMiterlimit: 10\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M297.1 114.9S279.5 42.8 261 42.8c-6.9 0-11.9-.6-15.4 6.4-.9 1.7-20.7-1.6-19.1 20.8.5 6.9 1.1-9.8 14.9-3.4 6.3 3-16.4 48.2-16.4 48.2h72.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m466.1 48.4-90.9 22c-75.3 18.3-42.1 44.4-42.1 44.4l-72.1 12-72.1-12s33.2-26.1-42.1-44.4l-90.9-22C43.1 45.3 38.1 51.8 45.3 63c0 0 106.6 104 126.8 112 20.2 8.1 40.8 0 40.8 0s-14.9 8.7-24 24c-9.2 15.3-4.6 34.7-38.9 40.2-5.5 6.6-5 14 2.9 19.9 7.9 5.8 72.1-48.1 72.1-48.1s-24 24.4-24 36.1c0 5.1 44.1 53.8 60.1 53.8s60.1-48.7 60.1-53.8c0-11.7-24-36.1-24-36.1s64.2 53.9 72.1 48.1 11.4-19.3 2.8-19.9c-28-1.8-29.7-24.9-38.9-40.2-9.2-15.3-24-24-24-24s20.6 8.1 40.8 0S476.7 63 476.7 63c7.2-11.2 2.3-17.7-10.6-14.6z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n stroke: \"#231F20\",\n strokeMiterlimit: 10,\n d: \"M201.3 111.8v80.3c0 45.7 59.7 59.7 59.7 59.7s59.7-14 59.7-59.7v-80.3H201.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M225.2 137.7V235c8.2 6 17 10.2 23.9 12.9V137.7h-23.9zm71.6 0V235c-8.2 6-17 10.2-23.9 12.9V137.7h23.9z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M201.3 111.8h119.4v37.9H201.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1583C4\",\n d: \"m60.1 210.5-21.9-58.1H15.7l31.8 80.8h25.2l31.5-80.8H81.7zm391.4-58.6h18.9v81.7h-18.9z\"\n }));\n};\nexport var VN = function VN(_ref245) {\n var title = _ref245.title,\n rest = _objectWithoutProperties(_ref245, _excluded245);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M196.641 85.337H0v341.326h512V85.337z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m256 157.279 22.663 69.747H352l-59.332 43.106 22.664 69.749L256 296.774l-59.332 43.107 22.664-69.749L160 227.026h73.337z\"\n }));\n};\nexport var VU = function VU(_ref246) {\n var title = _ref246.title,\n rest = _objectWithoutProperties(_ref246, _excluded246);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6DA544\",\n d: \"M512 256v170.663H0L215.185 256z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M512 85.337V256H215.185L0 85.337z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M221.001 239.304 26.868 85.337H8.956l208.168 165.098H512v-11.131zM8.956 426.663h17.912l194.133-153.967H512v-11.131H217.124zM0 92.44v14.206L188.317 256 0 405.354v14.205L206.229 256z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFDA44\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.956 85.337H0v7.103L206.229 256 0 419.559v7.104h8.956l208.168-165.098H512v-11.13H217.124z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.718 292.382v-14.295c14.265 0 25.87-11.606 25.87-25.869 0-10.092-8.211-18.303-18.304-18.303-6.875 0-12.469 5.593-12.469 12.469 0 4.397 3.577 7.974 7.974 7.974a4.514 4.514 0 0 0 4.508-4.508h14.295c0 10.368-8.435 18.804-18.802 18.804-12.279-.002-22.269-9.993-22.269-22.271 0-14.758 12.006-26.764 26.764-26.764 17.975 0 32.599 14.623 32.599 32.599 0 22.145-18.018 40.164-40.166 40.164z\"\n })));\n};\nexport var WF = function WF(_ref247) {\n var title = _ref247.title,\n rest = _objectWithoutProperties(_ref247, _excluded247);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 150 100\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80B30\",\n d: \"M0 0h150v100H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00318A\",\n d: \"M0 0h20v44.33H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M20 0h20v44.33H20z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#FFF\",\n strokeWidth: 3,\n d: \"M0 44.33h62.75V0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M108.08 43.29 87.96 23.17h40.25l-20.13 20.12zm-6.7 6.71L81.25 29.88v40.25L101.38 50zm6.7 6.71L87.96 76.83h40.25l-20.13-20.12zm6.71-6.71 20.13-20.13v40.25L114.79 50z\"\n }));\n};\nexport var WS = function WS(_ref248) {\n var title = _ref248.title,\n rest = _objectWithoutProperties(_ref248, _excluded248);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 85.331h256v170.663H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m165.483 181.79 2.764 8.504h8.939l-7.232 5.254 2.763 8.503-7.234-5.255-7.233 5.255 2.763-8.503-7.233-5.254h8.94zm-44.904-66.783 4.606 14.173h14.9l-12.055 8.757 4.605 14.171-12.056-8.758-12.054 8.758 4.605-14.171-12.056-8.757h14.901zm44.522 14.841 4.606 14.172h14.9l-12.055 8.757 4.604 14.173-12.055-8.76-12.054 8.76 4.604-14.173-12.055-8.757h14.9zm-35.192 59.363 4.606 14.172h14.9l-12.055 8.758 4.604 14.171-12.055-8.759-12.054 8.759 4.604-14.171-12.055-8.758h14.9zm-39.01-37.103 4.605 14.173h14.9l-12.055 8.757 4.604 14.173-12.054-8.76-12.055 8.76 4.604-14.173-12.055-8.757h14.9z\",\n fill: \"#FFF\"\n }));\n};\nexport var XK = function XK(_ref249) {\n var title = _ref249.title,\n rest = _objectWithoutProperties(_ref249, _excluded249);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 341.33\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0052B4\",\n d: \"M0 0h512v341.34H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m220.72 42.63 7.95 16.11 17.77 2.58-12.86 12.54 3.04 17.7-15.9-8.36-15.9 8.36 3.03-17.7-12.86-12.54 17.78-2.58zm70.56-.06 7.95 16.1 17.78 2.59-12.86 12.53 3.03 17.71-15.9-8.36-15.9 8.36 3.04-17.71-12.86-12.53 17.77-2.59zm62.08 11.36 7.95 16.11 17.77 2.58-12.86 12.54 3.04 17.7-15.9-8.35-15.9 8.35 3.04-17.7-12.87-12.54 17.78-2.58zm63.01 18.3 7.95 16.11 17.77 2.59-12.86 12.53 3.04 17.71-15.9-8.36-15.9 8.36 3.03-17.71-12.86-12.53 17.78-2.59zm-257.73-18.3 7.95 16.11 17.78 2.58-12.87 12.54 3.04 17.7-15.9-8.35-15.9 8.35 3.04-17.7-12.86-12.54 17.77-2.58zm-63.01 18.3 7.95 16.11 17.78 2.59-12.86 12.53 3.03 17.71-15.9-8.36-15.9 8.36 3.04-17.71-12.86-12.53 17.77-2.59z\",\n fill: \"#FFF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m217.53 259.33-27.22-13.61-27.22-54.43h27.22l27.22-27.22 13.61-27.22 27.22-13.61 13.61 13.61 27.22 13.61v13.61l13.61 13.61 40.83 27.22L340 245.73l-40.83 40.83-13.61-27.22-40.83 27.22v27.22l-13.61-13.61-13.59-40.84z\"\n }));\n};\nexport var YE = function YE(_ref250) {\n var title = _ref250.title,\n rest = _objectWithoutProperties(_ref250, _excluded250);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M0 85.337h512v113.775H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 312.888h512v113.775H0z\"\n }));\n};\nexport var YT = function YT(_ref251) {\n var title = _ref251.title,\n rest = _objectWithoutProperties(_ref251, _excluded251);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 90 60\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 0h90v60H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#7f7f7f\",\n strokeWidth: 0.25,\n fill: \"#ABABAB\",\n d: \"M75.6 39.6c-1.1.7 0 1.8-.6 1.9-.6.1-1.5-1.4-.2-2.5 1.6-1.5 5.8 0 5.9 4.3 0 2.2-.9 6.8-7.2 6.8-7.6 0-11.4-5.7-11.4-11.4 0-4.8 3.7-13.5 6.5-14.6 3.1-1.2 6.7-3.5 6.8-5 0-.5-1.4-.1-3.3.9-3.1 1.7-6.6 2.5-6.6 1.4s2.9-3.1 4-4.6c1.2-1.6.9-5.5 3-5.5 7.6 0 9.9 7.7 7 11.7-1.9 2.6 4.3 1 4.3 1s0 5.3-3.2 7.3c-3 1.8-4.8 3.9-4.8 3.9s.2-4.6-.5-3.9c-.6.7-11.1 4.5-10.3 12 .3 3 4.5 5.4 8.5 5.2s5.7-2.4 5.8-4.9c.1-3.9-3-4.4-3.7-4zm-64.9 4c.1 2.5 1.8 4.7 5.8 4.9s8.2-2.2 8.5-5.2c.8-7.5-9.7-11.3-10.3-12-.7-.7-.5 3.9-.5 3.9s-1.8-2.1-4.8-3.9c-3.2-2-3.2-7.3-3.2-7.3s6.2 1.6 4.3-1c-2.9-4-.6-11.7 7-11.7 2.1 0 1.8 3.9 3 5.5 1.1 1.5 4 3.5 4 4.6s-3.5.3-6.6-1.4c-1.9-1-3.3-1.4-3.3-.9.1 1.5 3.7 3.8 6.8 5 2.8 1.1 6.5 9.8 6.5 14.6 0 5.7-3.8 11.4-11.4 11.4-6.3 0-7.2-4.6-7.2-6.8.1-4.3 4.3-5.8 5.9-4.3 1.2 1.1.4 2.7-.2 2.5-.6-.1.6-1.2-.6-1.9-.6-.4-3.7.1-3.7 4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DE393A\",\n d: \"M31 28.8v14c0 1.9 2.1 1.6 2.1 1.6h9.3c1.2 0 2.6 2.3 2.6 2.3s1.4-2.3 2.5-2.3h9.6s2 .2 2-1.8V28.7H31z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3951A3\",\n d: \"M31 13.1h28v15.7H31z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M50.1 16.5c-.4 2.4-2.5 4.2-5.1 4.2-2.5 0-4.6-1.8-5.1-4.2-.5.9-.8 1.9-.8 3 0 3.3 2.6 5.9 5.9 5.9 3.3 0 5.9-2.6 5.9-5.9 0-1.1-.3-2.1-.8-3z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FEE05F\",\n cx: 39.1,\n cy: 36.5,\n r: 3\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#FEE05F\",\n cx: 50.9,\n cy: 36.5,\n r: 3\n }));\n};\nexport var ZA = function ZA(_ref252) {\n var title = _ref252.title,\n rest = _objectWithoutProperties(_ref252, _excluded252);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M0 85.337h512v341.326H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.024 256.001 0 141.926v228.17z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ffb915\",\n d: \"M161.192 256 0 94.7v47.226l114.024 114.075L0 370.096v47.138z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#007847\",\n d: \"M509.833 289.391c.058-.44.804-.878 2.167-1.318v-65.464H222.602L85.33 85.337H0V94.7L161.192 256 0 417.234v9.429h85.33l137.272-137.272h287.231z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000c8a\",\n d: \"M503.181 322.783H236.433l-103.881 103.88H512v-103.88z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#e1392d\",\n d: \"M503.181 189.217H512V85.337H132.552l103.881 103.88z\"\n }));\n};\nexport var ZM = function ZM(_ref253) {\n var title = _ref253.title,\n rest = _objectWithoutProperties(_ref253, _excluded253);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#496E2D\",\n d: \"M0 85.331h512v341.337H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9811\",\n d: \"M490.668 195.476h-48c0-8.836-7.164-16-16-16s-16 7.164-16 16h-48c0 8.836 7.697 16 16.533 16h-.533c0 8.836 7.162 16 16 16 0 8.836 7.162 16 16 16h32c8.836 0 16-7.164 16-16 8.836 0 16-7.164 16-16h-.533c8.837 0 16.533-7.164 16.533-16z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"M341.337 255.994h56.888v170.663h-56.888z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9811\",\n d: \"M455.112 255.994H512v170.663h-56.888z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M398.225 255.994h56.888v170.663h-56.888z\"\n }));\n};\nexport var ZW = function ZW(_ref254) {\n var title = _ref254.title,\n rest = _objectWithoutProperties(_ref254, _excluded254);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 85.333 512 341.333\"\n }, rest), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 85.333h512V426.67H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 134.196h512v48.868H0zm0 195.472h512v48.868H0z\",\n fill: \"#FFDA44\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#057f44\",\n d: \"M0 85.333h512v48.868H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 183.069h512v48.868H0zm0 97.737h512v48.868H0z\",\n fill: \"#D80027\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#057f44\",\n d: \"M0 378.542h512v48.128H0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M276.992 255.996 106.329 426.659H0V85.333h106.329z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 255.996 85.334 426.662h20.987l170.667-170.666L106.321 85.33H85.334z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D80027\",\n d: \"m102.465 202.57 13.259 40.812h42.917l-34.718 25.226 13.26 40.814-34.718-25.224-34.72 25.224 13.262-40.814-34.718-25.226h42.915z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFDA44\",\n d: \"m138.94 259.335-34.559-12.243s-2.553-23.955-2.708-24.766c-1.173-6.18-6.603-10.851-13.123-10.851-7.376 0-13.357 5.98-13.357 13.357 0 1.223.178 2.402.486 3.528l-9.689 9.755h17.229c0 17.882-13.344 17.882-13.344 35.691l7.402 17.809h44.522l7.422-17.809h-.004a17.782 17.782 0 0 0 1.381-5.231c6.397-2.589 8.342-9.24 8.342-9.24z\"\n }));\n};\nexport default {\n AC: AC,\n AD: AD,\n AE: AE,\n AF: AF,\n AG: AG,\n AI: AI,\n AL: AL,\n AM: AM,\n AO: AO,\n AQ: AQ,\n AR: AR,\n AS: AS,\n AT: AT,\n AU: AU,\n AW: AW,\n AX: AX,\n AZ: AZ,\n BA: BA,\n BB: BB,\n BD: BD,\n BE: BE,\n BF: BF,\n BG: BG,\n BH: BH,\n BI: BI,\n BJ: BJ,\n BL: BL,\n BM: BM,\n BN: BN,\n BO: BO,\n BQ: BQ,\n BR: BR,\n BS: BS,\n BT: BT,\n BV: BV,\n BW: BW,\n BY: BY,\n BZ: BZ,\n CA: CA,\n CC: CC,\n CD: CD,\n CF: CF,\n CG: CG,\n CH: CH,\n CI: CI,\n CK: CK,\n CL: CL,\n CM: CM,\n CN: CN,\n CO: CO,\n CR: CR,\n CU: CU,\n CV: CV,\n CW: CW,\n CX: CX,\n CY: CY,\n CZ: CZ,\n DE: DE,\n DJ: DJ,\n DK: DK,\n DM: DM,\n DO: DO,\n DZ: DZ,\n EC: EC,\n EE: EE,\n EG: EG,\n EH: EH,\n ER: ER,\n ES: ES,\n ET: ET,\n EU: EU,\n FI: FI,\n FJ: FJ,\n FK: FK,\n FM: FM,\n FO: FO,\n FR: FR,\n GA: GA,\n GB: GB,\n GD: GD,\n GE: GE,\n GF: GF,\n GG: GG,\n GH: GH,\n GI: GI,\n GL: GL,\n GM: GM,\n GN: GN,\n GP: GP,\n GQ: GQ,\n GR: GR,\n GS: GS,\n GT: GT,\n GU: GU,\n GW: GW,\n GY: GY,\n HK: HK,\n HM: HM,\n HN: HN,\n HR: HR,\n HT: HT,\n HU: HU,\n IC: IC,\n ID: ID,\n IE: IE,\n IL: IL,\n IM: IM,\n IN: IN,\n IO: IO,\n IQ: IQ,\n IR: IR,\n IS: IS,\n IT: IT,\n JE: JE,\n JM: JM,\n JO: JO,\n JP: JP,\n KE: KE,\n KG: KG,\n KH: KH,\n KI: KI,\n KM: KM,\n KN: KN,\n KP: KP,\n KR: KR,\n KW: KW,\n KY: KY,\n KZ: KZ,\n LA: LA,\n LB: LB,\n LC: LC,\n LI: LI,\n LK: LK,\n LR: LR,\n LS: LS,\n LT: LT,\n LU: LU,\n LV: LV,\n LY: LY,\n MA: MA,\n MC: MC,\n MD: MD,\n ME: ME,\n MF: MF,\n MG: MG,\n MH: MH,\n MK: MK,\n ML: ML,\n MM: MM,\n MN: MN,\n MO: MO,\n MP: MP,\n MQ: MQ,\n MR: MR,\n MS: MS,\n MT: MT,\n MU: MU,\n MV: MV,\n MW: MW,\n MX: MX,\n MY: MY,\n MZ: MZ,\n NA: NA,\n NC: NC,\n NE: NE,\n NF: NF,\n NG: NG,\n NI: NI,\n NL: NL,\n NO: NO,\n NP: NP,\n NR: NR,\n NU: NU,\n NZ: NZ,\n OM: OM,\n PA: PA,\n PE: PE,\n PF: PF,\n PG: PG,\n PH: PH,\n PK: PK,\n PL: PL,\n PM: PM,\n PN: PN,\n PR: PR,\n PS: PS,\n PT: PT,\n PW: PW,\n PY: PY,\n QA: QA,\n RE: RE,\n RO: RO,\n RS: RS,\n RU: RU,\n RW: RW,\n SA: SA,\n SB: SB,\n SC: SC,\n SD: SD,\n SE: SE,\n SG: SG,\n SH: SH,\n SI: SI,\n SJ: SJ,\n SK: SK,\n SL: SL,\n SM: SM,\n SN: SN,\n SO: SO,\n SR: SR,\n SS: SS,\n ST: ST,\n SV: SV,\n SX: SX,\n SY: SY,\n SZ: SZ,\n TA: TA,\n TC: TC,\n TD: TD,\n TF: TF,\n TG: TG,\n TH: TH,\n TJ: TJ,\n TK: TK,\n TL: TL,\n TM: TM,\n TN: TN,\n TO: TO,\n TR: TR,\n TT: TT,\n TV: TV,\n TW: TW,\n TZ: TZ,\n UA: UA,\n UG: UG,\n UM: UM,\n US: US,\n UY: UY,\n UZ: UZ,\n VA: VA,\n VC: VC,\n VE: VE,\n VG: VG,\n VI: VI,\n VN: VN,\n VU: VU,\n WF: WF,\n WS: WS,\n XK: XK,\n YE: YE,\n YT: YT,\n ZA: ZA,\n ZM: ZM,\n ZW: ZW\n};\n//# sourceMappingURL=index.js.map","import { __assign, __rest } from \"tslib\";\nimport { CheckIcon, ChevronsUpDown } from 'lucide-react';\nimport * as React from 'react';\nimport * as RPNInput from 'react-phone-number-input';\nimport flags from 'react-phone-number-input/flags';\nimport { Button } from './Button';\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from './Command';\nimport { Input } from './Input';\nimport { Popover, PopoverContent, PopoverTrigger } from './Popover';\nimport { cn } from './utils';\nvar PhoneInput = React.forwardRef(function (_a, ref) {\n var className = _a.className, onChange = _a.onChange, props = __rest(_a, [\"className\", \"onChange\"]);\n var handleOnChange = function (value) {\n var parsedNumber = value\n ? RPNInput.parsePhoneNumber(value)\n : undefined;\n var country = parsedNumber ? parsedNumber.country : '';\n if (onChange) {\n onChange(country, value || '');\n }\n };\n return (React.createElement(RPNInput.default, __assign({ ref: ref, className: cn('flex', className), flagComponent: FlagComponent, countrySelectComponent: CountrySelect, limitMaxLength: true, inputComponent: InputComponent, onChange: handleOnChange }, props)));\n});\nPhoneInput.displayName = 'PhoneInput';\nvar InputComponent = React.forwardRef(function (props, ref) { return (React.createElement(Input\n// @ts-ignore\n, __assign({ \n // @ts-ignore\n style: { borderRadius: '0px 8px 8px 0px', borderLeft: '0' }, className: '!rounded-l-none border-l-0' }, props, { ref: ref }))); });\nInputComponent.displayName = 'InputComponent';\nvar CountrySelect = function (_a) {\n var disabled = _a.disabled, value = _a.value, onChange = _a.onChange, options = _a.options;\n var handleSelect = React.useCallback(function (country) {\n onChange(country);\n }, [onChange]);\n return (React.createElement(Popover, null,\n React.createElement(PopoverTrigger, { asChild: true },\n React.createElement(Button, { variant: 'outline', className: cn('flex gap-1 rounded-e-none rounded-s-lg px-2 py-[26px]'), disabled: disabled },\n React.createElement(FlagComponent, { country: value, countryName: value }),\n React.createElement(ChevronsUpDown, { className: cn('-mr-2 h-4 w-4 opacity-50', disabled ? 'hidden' : 'opacity-100') }))),\n React.createElement(PopoverContent, { className: 'w-[300px] p-0' },\n React.createElement(Command, null,\n React.createElement(CommandInput, null),\n React.createElement(CommandEmpty, null, \"No country found.\"),\n React.createElement(CommandList, null,\n React.createElement(CommandGroup, null, options\n .filter(function (x) { return x.value; })\n .map(function (option) { return (React.createElement(CommandItem, { className: 'gap-2', key: option.value, onSelect: function () { return handleSelect(option.value); } },\n React.createElement(FlagComponent, { country: option.value, countryName: option.label }),\n React.createElement(\"span\", { className: 'flex-1 text-sm' }, option.label),\n option.value && (React.createElement(\"span\", { className: 'text-sm' }, \"+\".concat(RPNInput.getCountryCallingCode(option.value)))),\n React.createElement(CheckIcon, { className: cn('ml-auto h-4 w-4', option.value === value ? 'opacity-100' : 'opacity-0') }))); })))))));\n};\nvar FlagComponent = function (_a) {\n var country = _a.country, countryName = _a.countryName;\n var Flag = flags[country];\n return (React.createElement(\"span\", { className: 'flex h-4 w-6 overflow-hidden rounded-sm bg-foreground/20' }, Flag && React.createElement(Flag, { title: countryName })));\n};\nFlagComponent.displayName = 'FlagComponent';\nexport { PhoneInput };\n//# sourceMappingURL=PhoneInput.js.map","\"use client\";\n\n// packages/react/scroll-area/src/scroll-area.tsx\nimport * as React2 from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// packages/react/scroll-area/src/use-state-machine.ts\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/scroll-area/src/scroll-area.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React2.useState(null);\n const [viewport, setViewport] = React2.useState(null);\n const [content, setContent] = React2.useState(null);\n const [scrollbarX, setScrollbarX] = React2.useState(null);\n const [scrollbarY, setScrollbarY] = React2.useState(null);\n const [cornerWidth, setCornerWidth] = React2.useState(0);\n const [cornerHeight, setCornerHeight] = React2.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React2.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React2.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n const direction = useDirection(dir);\n return /* @__PURE__ */ jsx(\n ScrollAreaProvider,\n {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--radix-scroll-area-corner-width\"]: cornerWidth + \"px\",\n [\"--radix-scroll-area-corner-height\"]: cornerHeight + \"px\",\n ...props.style\n }\n }\n )\n }\n );\n }\n);\nScrollArea.displayName = SCROLL_AREA_NAME;\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ jsx(\"div\", { ref: context.onContentChange, style: { minWidth: \"100%\", display: \"table\" }, children })\n }\n )\n ] });\n }\n);\nScrollAreaViewport.displayName = VIEWPORT_NAME;\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n React2.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n return context.type === \"hover\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;\n }\n);\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\nvar ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React2.useState(false);\n React2.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarAuto,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n React2.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(() => send(\"HIDE\"), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n React2.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || state !== \"hidden\", children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => send(\"POINTER_ENTER\")),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send(\"POINTER_LEAVE\"))\n }\n ) });\n});\nvar ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React2.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React2.useRef(null);\n const pointerOffsetRef = React2.useRef(0);\n const [sizes, setSizes] = React2.useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => thumbRef.current = thumb,\n onThumbPointerUp: () => pointerOffsetRef.current = 0,\n onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarX,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n }\n );\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarY,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }\n );\n }\n return null;\n});\nvar ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n [\"--radix-scroll-area-thumb-width\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n }\n );\n});\nvar ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n [\"--radix-scroll-area-thumb-height\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n }\n );\n});\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React2.useState(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React2.useRef(null);\n const prevWebkitUserSelectRef = React2.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n React2.useEffect(() => {\n const handleWheel = (event) => {\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => document.removeEventListener(\"wheel\", handleWheel, { passive: false });\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n React2.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(\n ScrollbarProvider,\n {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...scrollbarProps,\n ref: composeRefs,\n style: { position: \"absolute\", ...scrollbarProps.style },\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, handleDragScroll),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n }\n )\n }\n );\n});\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });\n }\n);\nvar ScrollAreaThumbImpl = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(\n forwardedRef,\n (node) => scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React2.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }, 100);\n React2.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }\n );\n }\n);\nScrollAreaThumb.displayName = THUMB_NAME;\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = React2.forwardRef(\n (props, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;\n }\n);\nScrollAreaCorner.displayName = CORNER_NAME;\nvar ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React2.useState(0);\n const [height, setHeight] = React2.useState(0);\n const hasSize = Boolean(width && height);\n useResizeObserver(context.scrollbarX, () => {\n const height2 = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n });\n useResizeObserver(context.scrollbarY, () => {\n const width2 = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n });\n return hasSize ? /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }\n ) : null;\n});\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nvar addUnlinkedScrollListener = (node, handler = () => {\n}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\nfunction useDebounceCallback(callback, delay) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React2.useRef(0);\n React2.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React2.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\nexport {\n Corner,\n Root,\n ScrollArea,\n ScrollAreaCorner,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaViewport,\n Scrollbar,\n Thumb,\n Viewport,\n createScrollAreaScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport { cn } from './utils';\nvar ScrollArea = React.forwardRef(function (_a, ref) {\n var className = _a.className, children = _a.children, props = __rest(_a, [\"className\", \"children\"]);\n return (React.createElement(ScrollAreaPrimitive.Root, __assign({ ref: ref, className: cn('relative overflow-hidden', className) }, props),\n React.createElement(ScrollAreaPrimitive.Viewport, { className: 'h-full w-full rounded-[inherit]' }, children),\n React.createElement(ScrollBar, null),\n React.createElement(ScrollAreaPrimitive.Corner, null)));\n});\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\nvar ScrollBar = React.forwardRef(function (_a, ref) {\n var className = _a.className, _b = _a.orientation, orientation = _b === void 0 ? 'vertical' : _b, props = __rest(_a, [\"className\", \"orientation\"]);\n return (React.createElement(ScrollAreaPrimitive.ScrollAreaScrollbar, __assign({ ref: ref, orientation: orientation, className: cn('flex touch-none select-none transition-colors', orientation === 'vertical' &&\n 'h-full w-2.5 border-l border-l-transparent p-[1px]', orientation === 'horizontal' &&\n 'h-2.5 flex-col border-t border-t-transparent p-[1px]', className) }, props),\n React.createElement(ScrollAreaPrimitive.ScrollAreaThumb, { className: 'relative flex-1 rounded-full bg-border' })));\n});\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\nexport { ScrollArea, ScrollBar };\n//# sourceMappingURL=ScrollArea.js.map","\"use client\";\n\n// packages/react/menu/src/menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs, composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\"ArrowLeft\"],\n rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n React.useEffect(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuRootProvider,\n {\n scope: __scopeMenu,\n onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n }\n )\n }\n ) });\n};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n }\n);\nvar MenuRootContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n ),\n onDismiss: () => context.onOpenChange(false)\n }\n );\n }\n);\nvar MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }\n );\n});\nvar MenuContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef(\"\");\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef(\"right\");\n const lastPointerXRef = React.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n const handleTypeaheadSearch = (key) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n useFocusGuards();\n const isPointerMovingToSubmenu = React.useCallback((event) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentProvider,\n {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n onItemLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n ),\n onTriggerLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: { outline: \"none\", ...contentProps.style },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: composeEventHandlers(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )\n }\n )\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: composeEventHandlers(props.onClick, handleSelect),\n onPointerDown: (event) => {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n if (!isPointerDownRef.current) event.currentTarget?.click();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n const [textContent, setTextContent] = React.useState(\"\");\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? \"\").trim());\n }\n }, [itemProps.children]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeMenu,\n disabled,\n textValue: textValue ?? textContent,\n children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n ),\n onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n }\n ) })\n }\n );\n }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (props, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n checkboxItemProps.onSelect,\n () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n radioItemProps.onSelect,\n () => context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }\n )\n }\n );\n }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuSubProvider,\n {\n scope: __scopeMenu,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n }\n )\n }\n ) });\n};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\n onClick: (event) => {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n const side = context.content?.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n ),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n context.content?.focus();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align: \"start\",\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event) => {\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event) => event.preventDefault(),\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n subContext.trigger?.focus();\n event.preventDefault();\n }\n })\n }\n ) }) }) });\n }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n CheckboxItem,\n Content2 as Content,\n Group,\n Item2 as Item,\n ItemIndicator,\n Label,\n Menu,\n MenuAnchor,\n MenuArrow,\n MenuCheckboxItem,\n MenuContent,\n MenuGroup,\n MenuItem,\n MenuItemIndicator,\n MenuLabel,\n MenuPortal,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuSub,\n MenuSubContent,\n MenuSubTrigger,\n Portal,\n RadioGroup,\n RadioItem,\n Root3 as Root,\n Separator,\n Sub,\n SubContent,\n SubTrigger,\n createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dropdown-menu/src/dropdown-menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as MenuPrimitive from \"@radix-ui/react-menu\";\nimport { createMenuScope } from \"@radix-ui/react-menu\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nvar useMenuScope = createMenuScope();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = (props) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DropdownMenuProvider,\n {\n scope: __scopeDropdownMenu,\n triggerId: useId(),\n triggerRef,\n contentId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, open, onOpenChange: setOpen, dir, modal, children })\n }\n );\n};\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Anchor, { asChild: true, ...menuScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n ...triggerProps,\n ref: composeRefs(forwardedRef, context.triggerRef),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open) event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if ([\"Enter\", \" \"].includes(event.key)) context.onOpenToggle();\n if (event.key === \"ArrowDown\") context.onOpenChange(true);\n if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault();\n })\n }\n ) });\n }\n);\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n};\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.Content,\n {\n id: context.contentId,\n \"aria-labelledby\": context.triggerId,\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n }),\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n }\n);\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }\n);\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }\n);\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }\n);\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n});\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n});\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n});\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n});\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n});\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }\n);\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (props) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n};\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n});\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.SubContent,\n {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\nexport {\n Arrow2 as Arrow,\n CheckboxItem2 as CheckboxItem,\n Content2 as Content,\n DropdownMenu,\n DropdownMenuArrow,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuItemIndicator,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Group2 as Group,\n Item2 as Item,\n ItemIndicator2 as ItemIndicator,\n Label2 as Label,\n Portal2 as Portal,\n RadioGroup2 as RadioGroup,\n RadioItem2 as RadioItem,\n Root2 as Root,\n Separator2 as Separator,\n Sub2 as Sub,\n SubContent2 as SubContent,\n SubTrigger2 as SubTrigger,\n Trigger,\n createDropdownMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\nimport { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { Check, ChevronRight, Circle } from 'lucide-react';\nimport { cn } from './utils';\nvar DropdownMenu = DropdownMenuPrimitive.Root;\nvar DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\nvar DropdownMenuGroup = DropdownMenuPrimitive.Group;\nvar DropdownMenuPortal = DropdownMenuPrimitive.Portal;\nvar DropdownMenuSub = DropdownMenuPrimitive.Sub;\nvar DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\nvar DropdownMenuSubTrigger = React.forwardRef(function (_a, ref) {\n var className = _a.className, inset = _a.inset, children = _a.children, props = __rest(_a, [\"className\", \"inset\", \"children\"]);\n return (React.createElement(DropdownMenuPrimitive.SubTrigger, __assign({ ref: ref, className: cn('flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-gray-50 data-[state=open]:bg-gray-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', inset && 'pl-8', className) }, props),\n children,\n React.createElement(ChevronRight, { className: 'ml-auto' })));\n});\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\nvar DropdownMenuSubContent = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(DropdownMenuPrimitive.SubContent, __assign({ ref: ref, className: cn('z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-sm shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', className) }, props)));\n});\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\nvar DropdownMenuContent = React.forwardRef(function (_a, ref) {\n var className = _a.className, _b = _a.sideOffset, sideOffset = _b === void 0 ? 4 : _b, props = __rest(_a, [\"className\", \"sideOffset\"]);\n return (React.createElement(DropdownMenuPrimitive.Portal, null,\n React.createElement(DropdownMenuPrimitive.Content, __assign({ ref: ref, sideOffset: sideOffset, className: cn('z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-sm shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', className) }, props))));\n});\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\nvar DropdownMenuItem = React.forwardRef(function (_a, ref) {\n var className = _a.className, inset = _a.inset, props = __rest(_a, [\"className\", \"inset\"]);\n return (React.createElement(DropdownMenuPrimitive.Item, __assign({ ref: ref, className: cn('relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-gray-50 data-[state=open]:bg-gray-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', inset && 'pl-8', className) }, props)));\n});\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\nvar DropdownMenuCheckboxItem = React.forwardRef(function (_a, ref) {\n var className = _a.className, children = _a.children, checked = _a.checked, props = __rest(_a, [\"className\", \"children\", \"checked\"]);\n return (React.createElement(DropdownMenuPrimitive.CheckboxItem, __assign({ ref: ref, className: cn('relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-gray-50 data-[state=open]:bg-gray-50 data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className), checked: checked }, props),\n React.createElement(\"span\", { className: 'absolute left-2 flex h-3.5 w-3.5 items-center justify-center' },\n React.createElement(DropdownMenuPrimitive.ItemIndicator, null,\n React.createElement(Check, { className: 'h-4 w-4' }))),\n children));\n});\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\nvar DropdownMenuRadioItem = React.forwardRef(function (_a, ref) {\n var className = _a.className, children = _a.children, props = __rest(_a, [\"className\", \"children\"]);\n return (React.createElement(DropdownMenuPrimitive.RadioItem, __assign({ ref: ref, className: cn('relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-gray-50 data-[state=open]:bg-gray-50 data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className) }, props),\n React.createElement(\"span\", { className: 'absolute left-2 flex h-3.5 w-3.5 items-center justify-center' },\n React.createElement(DropdownMenuPrimitive.ItemIndicator, null,\n React.createElement(Circle, { className: 'h-2 w-2 fill-current' }))),\n children));\n});\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\nvar DropdownMenuLabel = React.forwardRef(function (_a, ref) {\n var className = _a.className, inset = _a.inset, props = __rest(_a, [\"className\", \"inset\"]);\n return (React.createElement(DropdownMenuPrimitive.Label, __assign({ ref: ref, className: cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className) }, props)));\n});\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\nvar DropdownMenuSeparator = React.forwardRef(function (_a, ref) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(DropdownMenuPrimitive.Separator, __assign({ ref: ref, className: cn('-mx-1 my-1 h-px bg-gray-200', className) }, props)));\n});\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\nvar DropdownMenuShortcut = function (_a) {\n var className = _a.className, props = __rest(_a, [\"className\"]);\n return (React.createElement(\"span\", __assign({ className: cn('ml-auto text-xs tracking-widest opacity-60', className) }, props)));\n};\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut';\nexport { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup };\n//# sourceMappingURL=DropdownMenu.js.map","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\n\nvar loadedClb = function loadedClb(i18n, cb) {\n return function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n };\n};\n\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n}\nexport function loadLanguages(i18n, lng, ns, cb) {\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { unescape } from './unescape.js';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}","var i18nInstance;\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport var I18nContext = createContext();\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace } from './utils.js';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k, optsOrDefaultValue) {\n if (typeof optsOrDefaultValue === 'string') return optsOrDefaultValue;\n if (optsOrDefaultValue && _typeof(optsOrDefaultValue) === 'object' && typeof optsOrDefaultValue.defaultValue === 'string') return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n if (props.lng) joinedNS = \"\".concat(props.lng).concat(joinedNS);\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n } else {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, function () {\n return resolve();\n });\n } else {\n loadNamespaces(i18n, namespaces, function () {\n return resolve();\n });\n }\n });\n}","/**\n * @remix-run/router v1.22.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route (<Route path=\"*\">) since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/v6/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\nfunction matchRoutesImpl(routes, locationArg, basename, allowPartial) {\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded, allowPartial);\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname, allowPartial) {\n if (allowPartial === void 0) {\n allowPartial = false;\n }\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n let route = meta.route;\n if (!match && end && allowPartial && !routesMeta[routesMeta.length - 1].route.index) {\n match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false\n }, remainingPathname);\n }\n if (!match) {\n return null;\n }\n Object.assign(matchedParams, match.params);\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/v6/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/v6/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction decodePath(value) {\n try {\n return value.split(\"/\").map(v => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/v6/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in <Link to=\\\"...\\\"> and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\" element={<Link to=\"..\"}>\n * </Route>\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\">\n * <Route element={<AccountsLayout />}> // <-- Does not contribute\n * <Route index element={<Link to=\"..\"} /> // <-- Does not contribute\n * </Route\n * </Route>\n * </Route>\n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how <a href> works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n *\n * @deprecated The `json` method is deprecated in favor of returning raw objects.\n * This method will be removed in v7.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass DataWithResponseInit {\n constructor(data, init) {\n this.type = \"DataWithResponseInit\";\n this.data = data;\n this.init = init || null;\n }\n}\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nfunction data(data, init) {\n return new DataWithResponseInit(data, typeof init === \"number\" ? {\n status: init\n } : init);\n}\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n/**\n * @deprecated The `defer` method is deprecated in favor of returning raw\n * objects. This method will be removed in v7.\n */\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst replace = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from <ScrollRestoration /> until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialMatchesIsFOW = false;\n let initialErrors = null;\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(initialMatches, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n let initialized;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(null, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatchesIsFOW = true;\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some(m => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some(m => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(m => errors[m.route.id] !== undefined);\n initialized = initialMatches.slice(0, idx + 1).every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = new Set();\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate = undefined;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise(resolve => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Remove any lingering deleted fetchers that have already been removed\n // from state.fetchers\n deletedFetchers.forEach(key => {\n if (!state.fetchers.has(key) && !fetchControllers.has(key)) {\n deletedFetchersKeys.push(key);\n }\n });\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n } else {\n // We already called deleteFetcher() on these, can remove them from this\n // Set now that we've handed the keys off to the data layer\n deletedFetchersKeys.forEach(key => deletedFetchers.delete(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = opts != null && opts.initialHydration && state.matches && state.matches.length > 0 && !initialMatchesIsFOW ?\n // `matchRoutes()` has already been called if we're in here via `router.initialize()`\n state.matches : matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial hydration will always\n // be \"same hash\". For example, on /page#hash and submit a <Form method=\"post\">\n // which will default to a navigation to /page\n if (state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionResult;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [findNearestBoundary(matches).route.id, {\n type: ResultType.error,\n error: opts.pendingError\n }];\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionResult = await handleAction(request, location, opts.submission, matches, fogOfWar.active, {\n replace: opts.replace,\n flushSync\n });\n if (actionResult.shortCircuited) {\n return;\n }\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (isErrorResult(result) && isRouteErrorResponse(result.error) && result.error.status === 404) {\n pendingNavigationController = null;\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error\n }\n });\n return;\n }\n }\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n // Create a GET request for the loaders\n request = createClientSideRequest(init.history, request.url, request.signal);\n }\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, fogOfWar.active, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionResult);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches: updatedMatches || matches\n }, getActionDataForCommit(pendingActionResult), {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, isFogOfWar, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [boundaryId, {\n type: ResultType.error,\n error: discoverResult.error\n }]\n };\n } else if (!discoverResult.matches) {\n let {\n notFoundMatches,\n error,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n pendingActionResult: [route.id, {\n type: ResultType.error,\n error\n }]\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n let results = await callDataStrategy(\"action\", state, request, [actionMatch], matches, null);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(result.response.headers.get(\"Location\"), new URL(request.url), basename);\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result]\n };\n }\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result]\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, isFogOfWar, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionResult) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState = !isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration);\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData !== undefined ? {\n actionData\n } : {}), {\n flushSync\n });\n }\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error\n }\n };\n } else if (!discoverResult.matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null\n }, getActionDataForCommit(pendingActionResult), updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n if (shouldUpdateNavigationState) {\n let updates = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n abortFetcher(rf.key);\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = _extends({}, state.errors, errors);\n }\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n matches,\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n function getUpdatedActionData(pendingActionResult) {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n function getUpdatedRevalidatingFetchers(revalidatingFetchers) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n abortFetcher(key);\n let flushSync = (opts && opts.flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, isFogOfWar, flushSync, preventScrollReset, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n function detectAndHandle405Error(m) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return true;\n }\n return false;\n }\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(requestMatches, new URL(fetchRequest.url).pathname, fetchRequest.signal);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\"action\", state, fetchRequest, [match], requestMatches, key);\n let actionResult = actionResults[match.route.id];\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, [match.route.id, actionResult]);\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, isFogOfWar, flushSync, preventScrollReset, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, new URL(fetchRequest.url).pathname, fetchRequest.signal);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\"loader\", state, fetchRequest, [match], matches, key);\n let result = results[match.route.id];\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset\n });\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(request, redirect, isNavigation, _temp2) {\n let {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(location, new URL(request.url), basename);\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true\n });\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true || redirect.response.headers.has(\"X-Remix-Replace\") ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.response.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: location\n }),\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n }\n }\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, state, request, matchesToLoad, matches, fetcherKey) {\n let results;\n let dataResults = {};\n try {\n results = await callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties);\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach(m => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e\n };\n });\n return dataResults;\n }\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, future.v7_relativeSplatPath)\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(result);\n }\n }\n return dataResults;\n }\n async function callLoadersAndMaybeResolveData(state, matches, matchesToLoad, fetchersToLoad, request) {\n let currentMatches = state.matches;\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\"loader\", state, request, matchesToLoad, matches, null);\n let fetcherResultsPromise = Promise.all(fetchersToLoad.map(async f => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\"loader\", state, createClientSideRequest(init.history, f.path, f.controller.signal), [f.match], f.matches, f.key);\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return {\n [f.key]: result\n };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n }\n });\n }\n }));\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce((acc, r) => Object.assign(acc, r), {});\n await Promise.all([resolveNavigationDeferredResults(matches, loaderResults, request.signal, currentMatches, state.loaderData), resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad)]);\n return {\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n // If we opted into the flag we can clear this now since we're calling\n // deleteFetcher() at the end of updateState() and we've already handed the\n // deleted fetcher keys off to the data layer.\n // If not, we're eagerly calling deleteFetcher() and we need to keep this\n // Set populated until the next updateState call, and we'll clear\n // `deletedFetchers` then\n if (future.v7_fetcherPersist) {\n deletedFetchers.delete(key);\n }\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n if (!future.v7_fetcherPersist) {\n deleteFetcher(key);\n }\n } else {\n activeFetchers.set(key, count);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function handleNavigational404(pathname) {\n let error = getInternalRouterError(404, {\n pathname\n });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let {\n matches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n return {\n notFoundMatches: matches,\n route,\n error\n };\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the <ScrollRestoration> component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function checkFogOfWar(matches, routesToUse, pathname) {\n if (patchRoutesOnNavigationImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: fogMatches || []\n };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: partialMatches\n };\n }\n }\n }\n return {\n active: false,\n matches: null\n };\n }\n async function discoverRoutes(matches, pathname, signal) {\n if (!patchRoutesOnNavigationImpl) {\n return {\n type: \"success\",\n matches\n };\n }\n let partialMatches = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n signal,\n path: pathname,\n matches: partialMatches,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(routeId, children, routesToUse, localManifest, mapRouteProperties);\n }\n });\n } catch (e) {\n return {\n type: \"error\",\n error: e,\n partialMatches\n };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n if (signal.aborted) {\n return {\n type: \"aborted\"\n };\n }\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return {\n type: \"success\",\n matches: newMatches\n };\n }\n let newPartialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n // Avoid loops if the second pass results in the same partial matches\n if (!newPartialMatches || partialMatches.length === newPartialMatches.length && partialMatches.every((m, i) => m.route.id === newPartialMatches[i].route.id)) {\n return {\n type: \"success\",\n matches: null\n };\n }\n partialMatches = newPartialMatches;\n }\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n function patchRoutes(routeId, children) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties);\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(request, _temp3) {\n let {\n requestContext,\n skipLoaderErrorBubbling,\n dataStrategy\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, skipLoaderErrorBubbling === true, null);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext,\n dataStrategy\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, false, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, dataStrategy, skipLoaderErrorBubbling, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n let results = await callDataStrategy(\"action\", request, [actionMatch], matches, isRouteRequest, requestContext, dataStrategy);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null, [boundaryMatch.route.id, result]);\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null);\n return _extends({}, context, {\n actionData: {\n [actionMatch.route.id]: result.data\n }\n }, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionHeaders: result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {}\n });\n }\n async function loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch, pendingActionResult) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : pendingActionResult && isErrorResult(pendingActionResult[1]) ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]) : matches;\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await callDataStrategy(\"loader\", request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy);\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy) {\n let results = await callDataStrategyImpl(dataStrategy || defaultDataStrategy, type, null, request, matchesToLoad, matches, null, manifest, mapRouteProperties, requestContext);\n let dataResults = {};\n await Promise.all(matches.map(async match => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(response, request, match.route.id, matches, basename, future.v7_relativeSplatPath);\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n dataResults[match.route.id] = await convertDataStrategyResultToDataResult(result);\n }));\n return dataResults;\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest, future) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter(v => v).forEach(v => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? \"?\" + qs : \"\";\n }\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref3) => {\n let [name, value] = _ref3;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes at/below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId, includeBoundary) {\n if (includeBoundary === void 0) {\n includeBoundary = false;\n }\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, initialHydration, skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult) {\n let actionResult = pendingActionResult ? isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : pendingActionResult[1].data : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, Object.keys(state.errors)[0], true);\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]);\n }\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult ? pendingActionResult[1].statusCode : undefined;\n let shouldSkipRevalidation = skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false :\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired || currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial hydration (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (initialHydration || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false : isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction shouldLoadRouteOnHydration(route, loaderData, errors) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\nfunction patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties) {\n var _childrenToPatch;\n let childrenToPatch;\n if (routeId) {\n let route = manifest[routeId];\n invariant(route, \"No route found to patch children into: routeId = \" + routeId);\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(newRoute => !childrenToPatch.some(existingRoute => isSameRoute(newRoute, existingRoute)));\n let newRoutes = convertRoutesToDataRoutes(uniqueChildren, mapRouteProperties, [routeId || \"_\", \"patch\", String(((_childrenToPatch = childrenToPatch) == null ? void 0 : _childrenToPatch.length) || \"0\")], manifest);\n childrenToPatch.push(...newRoutes);\n}\nfunction isSameRoute(newRoute, existingRoute) {\n // Most optimal check is by id\n if (\"id\" in newRoute && \"id\" in existingRoute && newRoute.id === existingRoute.id) {\n return true;\n }\n // Second is by pathing differences\n if (!(newRoute.index === existingRoute.index && newRoute.path === existingRoute.path && newRoute.caseSensitive === existingRoute.caseSensitive)) {\n return false;\n }\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if ((!newRoute.children || newRoute.children.length === 0) && (!existingRoute.children || existingRoute.children.length === 0)) {\n return true;\n }\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children.every((aChild, i) => {\n var _existingRoute$childr;\n return (_existingRoute$childr = existingRoute.children) == null ? void 0 : _existingRoute$childr.some(bChild => isSameRoute(aChild, bChild));\n });\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy(_ref4) {\n let {\n matches\n } = _ref4;\n let matchesToLoad = matches.filter(m => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map(m => m.resolve()));\n return results.reduce((acc, result, i) => Object.assign(acc, {\n [matchesToLoad[i].route.id]: result\n }), {});\n}\nasync function callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties, requestContext) {\n let loadRouteDefinitionsPromises = matches.map(m => m.route.lazy ? loadLazyRouteModule(m.route, mapRouteProperties, manifest) : undefined);\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some(m => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve = async handlerOverride => {\n if (handlerOverride && request.method === \"GET\" && (match.route.lazy || match.route.loader)) {\n shouldLoad = true;\n }\n return shouldLoad ? callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, requestContext) : Promise.resolve({\n type: ResultType.data,\n result: undefined\n });\n };\n return _extends({}, match, {\n shouldLoad,\n resolve\n });\n });\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext\n });\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n return results;\n}\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, staticContext) {\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n // This will never resolve so safe to type it as Promise<DataStrategyResult> to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n let actualHandler = ctx => {\n if (typeof handler !== \"function\") {\n return Promise.reject(new Error(\"You cannot call the handler for a route which defines a boolean \" + (\"\\\"\" + type + \"\\\" [routeId: \" + match.route.id + \"]\")));\n }\n return handler({\n request,\n params: match.params,\n context: staticContext\n }, ...(ctx !== undefined ? [ctx] : []));\n };\n let handlerPromise = (async () => {\n try {\n let val = await (handlerOverride ? handlerOverride(ctx => actualHandler(ctx)) : actualHandler());\n return {\n type: \"data\",\n result: val\n };\n } catch (e) {\n return {\n type: \"error\",\n result: e\n };\n }\n })();\n return Promise.race([handlerPromise, abortPromise]);\n };\n try {\n let handler = match.route[type];\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadRoutePromise]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n result: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result.result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return {\n type: ResultType.error,\n result: e\n };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n return result;\n}\nasync function convertDataStrategyResultToDataResult(dataStrategyResult) {\n let {\n result,\n type\n } = dataStrategyResult;\n if (isResponse(result)) {\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n var _result$init3, _result$init4;\n if (result.data instanceof Error) {\n var _result$init, _result$init2;\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: (_result$init2 = result.init) != null && _result$init2.headers ? new Headers(result.init.headers) : undefined\n };\n }\n // Convert thrown data() to ErrorResponse instances\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(((_result$init3 = result.init) == null ? void 0 : _result$init3.status) || 500, undefined, result.data),\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n headers: (_result$init4 = result.init) != null && _result$init4.headers ? new Headers(result.init.headers) : undefined\n };\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined\n };\n }\n if (isDeferredData(result)) {\n var _result$init5, _result$init6;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init5 = result.init) == null ? void 0 : _result$init5.status,\n headers: ((_result$init6 = result.init) == null ? void 0 : _result$init6.headers) && new Headers(result.init.headers)\n };\n }\n if (isDataWithResponseInit(result)) {\n var _result$init7, _result$init8;\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: (_result$init7 = result.init) == null ? void 0 : _result$init7.status,\n headers: (_result$init8 = result.init) != null && _result$init8.headers ? new Headers(result.init.headers) : undefined\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, v7_relativeSplatPath) {\n let location = response.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1);\n location = normalizeTo(new URL(request.url), trimmedMatches, basename, true, location, v7_relativeSplatPath);\n response.headers.set(\"Location\", location);\n }\n return response;\n}\nfunction normalizeRedirectLocation(location, currentUrl, basename) {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\") ? new URL(currentUrl.protocol + normalizedLocation) : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n let pendingError = pendingActionResult && isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : undefined;\n // Process loader results into state.loaderData/state.errors\n matches.forEach(match => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n errors = errors || {};\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = {\n [pendingActionResult[0]]: pendingError\n };\n loaderData[pendingActionResult[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, results, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, false // This method is only called client side so we always want to bubble\n );\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach(rf => {\n let {\n key,\n match,\n controller\n } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\nfunction getActionDataForCommit(pendingActionResult) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1]) ? {\n // Clear out prior actionData on errors\n actionData: {}\n } : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data\n }\n };\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type,\n message\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return {\n key,\n result\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDataStrategyResult(result) {\n return result != null && typeof result === \"object\" && \"type\" in result && \"result\" in result && (result.type === ResultType.data || result.type === ResultType.error);\n}\nfunction isRedirectDataStrategyResultResult(result) {\n return isResponse(result.result) && redirectStatusCodes.has(result.result.status);\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDataWithResponseInit(value) {\n return typeof value === \"object\" && value != null && \"type\" in value && \"data\" in value && \"init\" in value && value.type === \"DataWithResponseInit\";\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveNavigationDeferredResults(matches, results, signal, currentMatches, currentLoaderData) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then(result => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\nasync function resolveFetcherDeferredResults(matches, results, revalidatingFetchers) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n routeId,\n controller\n } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(controller, \"Expected an AbortController for revalidating fetcher deferred result\");\n await resolveDeferredData(result, controller.signal, true).then(result => {\n if (result) {\n results[key] = result;\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, decodePath as UNSAFE_decodePath, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, data, defer, generatePath, getStaticContextFromError, getToPathname, isDataWithResponseInit, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, replace, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.29.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_decodePath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, replace, resolvePath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `<Router>` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/v6/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a `<Router>`.\n *\n * @see https://reactrouter.com/v6/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/v6/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * `<NavLink>`.\n *\n * @see https://reactrouter.com/v6/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, UNSAFE_decodePath(pathname)), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by `<Link>`s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/v6/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `<Outlet>` to render child routes.\n *\n * @see https://reactrouter.com/v6/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/v6/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/v6/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `<Outlet>` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/v6/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator,\n static: isStatic\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant <Routes> (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under <Route path=\\\"\" + parentPath + \"\\\">) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent <Route path=\\\"\" + parentPath + \"\\\"> to <Route \") + (\"path=\\\"\" + (parentPath === \"/\" ? \"*\" : parentPath + \"/*\") + \"\\\">.\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `<Routes location>` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n let matches = !isStatic && dataRouterState && dataRouterState.matches && dataRouterState.matches.length > 0 ? dataRouterState.matches : matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an <Outlet /> with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _future;\n if (!dataRouterState) {\n return null;\n }\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else if ((_future = future) != null && _future.v7_partialHydration && parentMatches.length === 0 && !dataRouterState.initialized && dataRouterState.matches.length > 0) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // `<Routes>`\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState = dataRouterState) == null ? void 0 : _dataRouterState.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]) !== undefined);\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `<Route Component={...}>` in `<Routes>` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `<Await />` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `<Await />` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned$1 = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned$1[key]) {\n alreadyWarned$1[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\nconst alreadyWarned = {};\nfunction warnOnce(key, message) {\n if (process.env.NODE_ENV !== \"production\" && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\nconst logDeprecation = (flag, msg, link) => warnOnce(flag, \"\\u26A0\\uFE0F React Router Future Flag Warning: \" + msg + \". \" + (\"You can use the `\" + flag + \"` future flag to opt-in early. \") + (\"For more information, see \" + link + \".\"));\nfunction logV6DeprecationWarnings(renderFuture, routerFuture) {\n if ((renderFuture == null ? void 0 : renderFuture.v7_startTransition) === undefined) {\n logDeprecation(\"v7_startTransition\", \"React Router will begin wrapping state updates in `React.startTransition` in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_starttransition\");\n }\n if ((renderFuture == null ? void 0 : renderFuture.v7_relativeSplatPath) === undefined && (!routerFuture || !routerFuture.v7_relativeSplatPath)) {\n logDeprecation(\"v7_relativeSplatPath\", \"Relative route resolution within Splat routes is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath\");\n }\n if (routerFuture) {\n if (routerFuture.v7_fetcherPersist === undefined) {\n logDeprecation(\"v7_fetcherPersist\", \"The persistence behavior of fetchers is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist\");\n }\n if (routerFuture.v7_normalizeFormMethod === undefined) {\n logDeprecation(\"v7_normalizeFormMethod\", \"Casing of `formMethod` fields is being normalized to uppercase in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod\");\n }\n if (routerFuture.v7_partialHydration === undefined) {\n logDeprecation(\"v7_partialHydration\", \"`RouterProvider` hydration behavior is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_partialhydration\");\n }\n if (routerFuture.v7_skipActionErrorRevalidation === undefined) {\n logDeprecation(\"v7_skipActionErrorRevalidation\", \"The revalidation behavior after 4xx/5xx `action` responses is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation\");\n }\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`<RouterProvider fallbackElement>` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n React.useEffect(() => logV6DeprecationWarnings(future, router.future), [router, future]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React.createElement(DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: navigator,\n future: {\n v7_relativeSplatPath: router.future.v7_relativeSplatPath\n }\n }, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(DataRoutes, {\n routes: router.routes,\n future: router.future,\n state: state\n }) : fallbackElement))), null);\n}\nfunction DataRoutes(_ref2) {\n let {\n routes,\n future,\n state\n } = _ref2;\n return useRoutesImpl(routes, undefined, state, future);\n}\n/**\n * A `<Router>` that stores all entries in memory.\n *\n * @see https://reactrouter.com/v6/router-components/memory-router\n */\nfunction MemoryRouter(_ref3) {\n let {\n basename,\n children,\n initialEntries,\n initialIndex,\n future\n } = _ref3;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/v6/components/navigate\n */\nfunction Navigate(_ref4) {\n let {\n to,\n replace,\n state,\n relative\n } = _ref4;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n \"<Navigate> may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n future,\n static: isStatic\n } = React.useContext(NavigationContext);\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(!isStatic, \"<Navigate> must not be used on the initial render in a <StaticRouter>. \" + \"This is a no-op, but you should modify your code so the <Navigate> is \" + \"only ever rendered in response to some user interaction or state change.\") : void 0;\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let navigate = useNavigate();\n\n // Resolve the path outside of the effect so that when effects run twice in\n // StrictMode they navigate to the same place\n let path = resolveTo(to, UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath), locationPathname, relative === \"path\");\n let jsonPath = JSON.stringify(path);\n React.useEffect(() => navigate(JSON.parse(jsonPath), {\n replace,\n state,\n relative\n }), [navigate, jsonPath, relative, replace, state]);\n return null;\n}\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/v6/components/outlet\n */\nfunction Outlet(props) {\n return useOutlet(props.context);\n}\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/v6/components/route\n */\nfunction Route(_props) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"A <Route> is only ever to be used as the child of <Routes> element, \" + \"never rendered directly. Please wrap your <Route> in a <Routes>.\") : UNSAFE_invariant(false) ;\n}\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a `<Router>` directly. Instead, you'll render a\n * router that is more specific to your environment such as a `<BrowserRouter>`\n * in web browsers or a `<StaticRouter>` for server rendering.\n *\n * @see https://reactrouter.com/v6/router-components/router\n */\nfunction Router(_ref5) {\n let {\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = Action.Pop,\n navigator,\n static: staticProp = false,\n future\n } = _ref5;\n !!useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"You cannot render a <Router> inside another <Router>.\" + \" You should never have more than one in your app.\") : UNSAFE_invariant(false) : void 0;\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(() => ({\n basename,\n navigator,\n static: staticProp,\n future: _extends({\n v7_relativeSplatPath: false\n }, future)\n }), [basename, future, navigator, staticProp]);\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n let locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n if (trailingPathname == null) {\n return null;\n }\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n },\n navigationType\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(locationContext != null, \"<Router basename=\\\"\" + basename + \"\\\"> is not able to match the URL \" + (\"\\\"\" + pathname + search + hash + \"\\\" because it does not start with the \") + \"basename, so the <Router> won't render anything.\") : void 0;\n if (locationContext == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: navigationContext\n }, /*#__PURE__*/React.createElement(LocationContext.Provider, {\n children: children,\n value: locationContext\n }));\n}\n/**\n * A container for a nested tree of `<Route>` elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/v6/components/routes\n */\nfunction Routes(_ref6) {\n let {\n children,\n location\n } = _ref6;\n return useRoutes(createRoutesFromChildren(children), location);\n}\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nfunction Await(_ref7) {\n let {\n children,\n errorElement,\n resolve\n } = _ref7;\n return /*#__PURE__*/React.createElement(AwaitErrorBoundary, {\n resolve: resolve,\n errorElement: errorElement\n }, /*#__PURE__*/React.createElement(ResolveAwait, null, children));\n}\nvar AwaitRenderStatus = /*#__PURE__*/function (AwaitRenderStatus) {\n AwaitRenderStatus[AwaitRenderStatus[\"pending\"] = 0] = \"pending\";\n AwaitRenderStatus[AwaitRenderStatus[\"success\"] = 1] = \"success\";\n AwaitRenderStatus[AwaitRenderStatus[\"error\"] = 2] = \"error\";\n return AwaitRenderStatus;\n}(AwaitRenderStatus || {});\nconst neverSettledPromise = new Promise(() => {});\nclass AwaitErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n error: null\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"<Await> caught the following error during render\", error, errorInfo);\n }\n render() {\n let {\n children,\n errorElement,\n resolve\n } = this.props;\n let promise = null;\n let status = AwaitRenderStatus.pending;\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_data\", {\n get: () => resolve\n });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_error\", {\n get: () => renderError\n });\n } else if (resolve._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status = \"_error\" in promise ? AwaitRenderStatus.error : \"_data\" in promise ? AwaitRenderStatus.success : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", {\n get: () => true\n });\n promise = resolve.then(data => Object.defineProperty(resolve, \"_data\", {\n get: () => data\n }), error => Object.defineProperty(resolve, \"_error\", {\n get: () => error\n }));\n }\n if (status === AwaitRenderStatus.error && promise._error instanceof AbortedDeferredError) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: errorElement\n });\n }\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: children\n });\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on `<Await>`\n */\nfunction ResolveAwait(_ref8) {\n let {\n children\n } = _ref8;\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, toRender);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/v6/utils/create-routes-from-children\n */\nfunction createRoutesFromChildren(children, parentPath) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n let routes = [];\n React.Children.forEach(children, (element, index) => {\n if (! /*#__PURE__*/React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n let treePath = [...parentPath, index];\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(routes, createRoutesFromChildren(element.props.children, treePath));\n return;\n }\n !(element.type === Route) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"[\" + (typeof element.type === \"string\" ? element.type : element.type.name) + \"] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>\") : UNSAFE_invariant(false) : void 0;\n !(!element.props.index || !element.props.children) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"An index route cannot have child routes.\") : UNSAFE_invariant(false) : void 0;\n let route = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary: element.props.ErrorBoundary != null || element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy\n };\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children, treePath);\n }\n routes.push(route);\n });\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nfunction renderMatches(matches) {\n return _renderMatches(matches);\n}\n\nfunction mapRouteProperties(route) {\n let updates = {\n // Note: this check also occurs in createRoutesFromChildren so update\n // there if you change this -- please and thank you!\n hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null\n };\n if (route.Component) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.element) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `Component` and `element` on your route - \" + \"`Component` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n element: /*#__PURE__*/React.createElement(route.Component),\n Component: undefined\n });\n }\n if (route.HydrateFallback) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.hydrateFallbackElement) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - \" + \"`HydrateFallback` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n hydrateFallbackElement: /*#__PURE__*/React.createElement(route.HydrateFallback),\n HydrateFallback: undefined\n });\n }\n if (route.ErrorBoundary) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.errorElement) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" + \"`ErrorBoundary` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n errorElement: /*#__PURE__*/React.createElement(route.ErrorBoundary),\n ErrorBoundary: undefined\n });\n }\n return updates;\n}\nfunction createMemoryRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createMemoryHistory({\n initialEntries: opts == null ? void 0 : opts.initialEntries,\n initialIndex: opts == null ? void 0 : opts.initialIndex\n }),\n hydrationData: opts == null ? void 0 : opts.hydrationData,\n routes,\n mapRouteProperties,\n dataStrategy: opts == null ? void 0 : opts.dataStrategy,\n patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation\n }).initialize();\n}\n\nexport { Await, MemoryRouter, Navigate, Outlet, Route, Router, RouterProvider, Routes, DataRouterContext as UNSAFE_DataRouterContext, DataRouterStateContext as UNSAFE_DataRouterStateContext, LocationContext as UNSAFE_LocationContext, NavigationContext as UNSAFE_NavigationContext, RouteContext as UNSAFE_RouteContext, logV6DeprecationWarnings as UNSAFE_logV6DeprecationWarnings, mapRouteProperties as UNSAFE_mapRouteProperties, useRouteId as UNSAFE_useRouteId, useRoutesImpl as UNSAFE_useRoutesImpl, createMemoryRouter, createRoutesFromChildren, createRoutesFromChildren as createRoutesFromElements, renderMatches, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };\n//# sourceMappingURL=index.js.map\n","/**\n * React Router DOM v6.29.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { UNSAFE_mapRouteProperties, UNSAFE_logV6DeprecationWarnings, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Router, UNSAFE_useRoutesImpl, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, useBlocker } from 'react-router';\nexport { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, replace, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';\nimport { stripBasename, UNSAFE_warning, createRouter, createBrowserHistory, createHashHistory, UNSAFE_ErrorResponseImpl, UNSAFE_invariant, joinPaths, IDLE_FETCHER, matchPath } from '@remix-run/router';\nexport { UNSAFE_ErrorResponseImpl } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nconst defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n return object != null && typeof object.tagName === \"string\";\n}\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n return event.button === 0 && (\n // Ignore everything but left clicks\n !target || target === \"_self\") &&\n // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ;\n}\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]);\n }, []));\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n let searchParams = createSearchParams(locationSearch);\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n });\n }\n return searchParams;\n}\n// One-time check for submitter support\nlet _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0);\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\nconst supportedFormEncTypes = new Set([\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"]);\nfunction getFormEncType(encType) {\n if (encType != null && !supportedFormEncTypes.has(encType)) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"\\\"\" + encType + \"\\\" is not a valid `encType` for `<Form>`/`<fetcher.Form>` \" + (\"and will default to \\\"\" + defaultEncType + \"\\\"\")) : void 0;\n return null;\n }\n return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n let method;\n let action;\n let encType;\n let formData;\n let body;\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(target);\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n if (form == null) {\n throw new Error(\"Cannot submit a <button> or <input type=\\\"submit\\\"> without a <form>\");\n }\n // <button>/<input type=\"submit\"> may override attributes of <form>\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"formmethod\") || form.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"formenctype\")) || getFormEncType(form.getAttribute(\"enctype\")) || defaultEncType;\n // Build a FormData object populated from a form and submitter\n formData = new FormData(form, target);\n // If this browser doesn't support the `FormData(el, submitter)` format,\n // then tack on the submitter value at the end. This is a lightweight\n // solution that is not 100% spec compliant. For complete support in older\n // browsers, consider using the `formdata-submitter-polyfill` package\n if (!isFormDataSubmitterSupported()) {\n let {\n name,\n type,\n value\n } = target;\n if (type === \"image\") {\n let prefix = name ? name + \".\" : \"\";\n formData.append(prefix + \"x\", \"0\");\n formData.append(prefix + \"y\", \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\"Cannot submit element that is not <form>, <button>, or \" + \"<input type=\\\"submit|image\\\">\");\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n // Send body for <Form encType=\"text/plain\" so we encode it into text\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = undefined;\n }\n return {\n action,\n method: method.toLowerCase(),\n encType,\n formData,\n body\n };\n}\n\nconst _excluded = [\"onClick\", \"relative\", \"reloadDocument\", \"replace\", \"state\", \"target\", \"to\", \"preventScrollReset\", \"viewTransition\"],\n _excluded2 = [\"aria-current\", \"caseSensitive\", \"className\", \"end\", \"style\", \"to\", \"viewTransition\", \"children\"],\n _excluded3 = [\"fetcherKey\", \"navigate\", \"reloadDocument\", \"replace\", \"state\", \"method\", \"action\", \"onSubmit\", \"relative\", \"preventScrollReset\", \"viewTransition\"];\n// HEY YOU! DON'T TOUCH THIS VARIABLE!\n//\n// It is replaced with the proper version at build time via a babel plugin in\n// the rollup config.\n//\n// Export a global property onto the window for React Router detection by the\n// Core Web Vitals Technology Report. This way they can configure the `wappalyzer`\n// to detect and properly classify live websites as being built with React Router:\n// https://github.com/HTTPArchive/wappalyzer/blob/main/src/technologies/r.json\nconst REACT_ROUTER_VERSION = \"6\";\ntry {\n window.__reactRouterVersion = REACT_ROUTER_VERSION;\n} catch (e) {\n // no-op\n}\nfunction createBrowserRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createBrowserHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n dataStrategy: opts == null ? void 0 : opts.dataStrategy,\n patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction createHashRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createHashHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n dataStrategy: opts == null ? void 0 : opts.dataStrategy,\n patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction parseHydrationData() {\n var _window;\n let state = (_window = window) == null ? void 0 : _window.__staticRouterHydrationData;\n if (state && state.errors) {\n state = _extends({}, state, {\n errors: deserializeErrors(state.errors)\n });\n }\n return state;\n}\nfunction deserializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new UNSAFE_ErrorResponseImpl(val.status, val.statusText, val.data, val.internal === true);\n } else if (val && val.__type === \"Error\") {\n // Attempt to reconstruct the right type of Error (i.e., ReferenceError)\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n // @ts-expect-error\n let error = new ErrorConstructor(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } catch (e) {\n // no-op - fall through and create a normal Error\n }\n }\n }\n if (serialized[key] == null) {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\nconst ViewTransitionContext = /*#__PURE__*/React.createContext({\n isTransitioning: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n ViewTransitionContext.displayName = \"ViewTransition\";\n}\nconst FetchersContext = /*#__PURE__*/React.createContext(new Map());\nif (process.env.NODE_ENV !== \"production\") {\n FetchersContext.displayName = \"Fetchers\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\nconst FLUSH_SYNC = \"flushSync\";\nconst flushSyncImpl = ReactDOM[FLUSH_SYNC];\nconst USE_ID = \"useId\";\nconst useIdImpl = React[USE_ID];\nfunction startTransitionSafe(cb) {\n if (startTransitionImpl) {\n startTransitionImpl(cb);\n } else {\n cb();\n }\n}\nfunction flushSyncSafe(cb) {\n if (flushSyncImpl) {\n flushSyncImpl(cb);\n } else {\n cb();\n }\n}\nclass Deferred {\n constructor() {\n this.status = \"pending\";\n this.promise = new Promise((resolve, reject) => {\n this.resolve = value => {\n if (this.status === \"pending\") {\n this.status = \"resolved\";\n resolve(value);\n }\n };\n this.reject = reason => {\n if (this.status === \"pending\") {\n this.status = \"rejected\";\n reject(reason);\n }\n };\n });\n }\n}\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let [pendingState, setPendingState] = React.useState();\n let [vtContext, setVtContext] = React.useState({\n isTransitioning: false\n });\n let [renderDfd, setRenderDfd] = React.useState();\n let [transition, setTransition] = React.useState();\n let [interruption, setInterruption] = React.useState();\n let fetcherData = React.useRef(new Map());\n let {\n v7_startTransition\n } = future || {};\n let optInStartTransition = React.useCallback(cb => {\n if (v7_startTransition) {\n startTransitionSafe(cb);\n } else {\n cb();\n }\n }, [v7_startTransition]);\n let setState = React.useCallback((newState, _ref2) => {\n let {\n deletedFetchers,\n flushSync: flushSync,\n viewTransitionOpts: viewTransitionOpts\n } = _ref2;\n newState.fetchers.forEach((fetcher, key) => {\n if (fetcher.data !== undefined) {\n fetcherData.current.set(key, fetcher.data);\n }\n });\n deletedFetchers.forEach(key => fetcherData.current.delete(key));\n let isViewTransitionUnavailable = router.window == null || router.window.document == null || typeof router.window.document.startViewTransition !== \"function\";\n // If this isn't a view transition or it's not available in this browser,\n // just update and be done with it\n if (!viewTransitionOpts || isViewTransitionUnavailable) {\n if (flushSync) {\n flushSyncSafe(() => setStateImpl(newState));\n } else {\n optInStartTransition(() => setStateImpl(newState));\n }\n return;\n }\n // flushSync + startViewTransition\n if (flushSync) {\n // Flush through the context to mark DOM elements as transition=ing\n flushSyncSafe(() => {\n // Cancel any pending transitions\n if (transition) {\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n }\n setVtContext({\n isTransitioning: true,\n flushSync: true,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n });\n // Update the DOM\n let t = router.window.document.startViewTransition(() => {\n flushSyncSafe(() => setStateImpl(newState));\n });\n // Clean up after the animation completes\n t.finished.finally(() => {\n flushSyncSafe(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n });\n flushSyncSafe(() => setTransition(t));\n return;\n }\n // startTransition + startViewTransition\n if (transition) {\n // Interrupting an in-progress transition, cancel and let everything flush\n // out, and then kick off a new transition from the interruption state\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n setInterruption({\n state: newState,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n } else {\n // Completed navigation update with opted-in view transitions, let 'er rip\n setPendingState(newState);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n }\n }, [router.window, transition, renderDfd, fetcherData, optInStartTransition]);\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n // When we start a view transition, create a Deferred we can use for the\n // eventual \"completed\" render\n React.useEffect(() => {\n if (vtContext.isTransitioning && !vtContext.flushSync) {\n setRenderDfd(new Deferred());\n }\n }, [vtContext]);\n // Once the deferred is created, kick off startViewTransition() to update the\n // DOM and then wait on the Deferred to resolve (indicating the DOM update has\n // happened)\n React.useEffect(() => {\n if (renderDfd && pendingState && router.window) {\n let newState = pendingState;\n let renderPromise = renderDfd.promise;\n let transition = router.window.document.startViewTransition(async () => {\n optInStartTransition(() => setStateImpl(newState));\n await renderPromise;\n });\n transition.finished.finally(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n setTransition(transition);\n }\n }, [optInStartTransition, pendingState, renderDfd, router.window]);\n // When the new location finally renders and is committed to the DOM, this\n // effect will run to resolve the transition\n React.useEffect(() => {\n if (renderDfd && pendingState && state.location.key === pendingState.location.key) {\n renderDfd.resolve();\n }\n }, [renderDfd, transition, state.location, pendingState]);\n // If we get interrupted with a new navigation during a transition, we skip\n // the active transition, let it cleanup, then kick it off again here\n React.useEffect(() => {\n if (!vtContext.isTransitioning && interruption) {\n setPendingState(interruption.state);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: interruption.currentLocation,\n nextLocation: interruption.nextLocation\n });\n setInterruption(undefined);\n }\n }, [vtContext.isTransitioning, interruption]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`<RouterProvider fallbackElement>` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n let routerFuture = React.useMemo(() => ({\n v7_relativeSplatPath: router.future.v7_relativeSplatPath\n }), [router.future.v7_relativeSplatPath]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future, router.future), [future, router.future]);\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UNSAFE_DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React.createElement(UNSAFE_DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React.createElement(FetchersContext.Provider, {\n value: fetcherData.current\n }, /*#__PURE__*/React.createElement(ViewTransitionContext.Provider, {\n value: vtContext\n }, /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: navigator,\n future: routerFuture\n }, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(MemoizedDataRoutes, {\n routes: router.routes,\n future: router.future,\n state: state\n }) : fallbackElement))))), null);\n}\n// Memoize to avoid re-renders when updating `ViewTransitionContext`\nconst MemoizedDataRoutes = /*#__PURE__*/React.memo(DataRoutes);\nfunction DataRoutes(_ref3) {\n let {\n routes,\n future,\n state\n } = _ref3;\n return UNSAFE_useRoutesImpl(routes, undefined, state, future);\n}\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nfunction BrowserRouter(_ref4) {\n let {\n basename,\n children,\n future,\n window\n } = _ref4;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nfunction HashRouter(_ref5) {\n let {\n basename,\n children,\n future,\n window\n } = _ref5;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter(_ref6) {\n let {\n basename,\n children,\n future,\n history\n } = _ref6;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\nif (process.env.NODE_ENV !== \"production\") {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\nconst isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n/**\n * The public API for rendering a history-aware `<a>`.\n */\nconst Link = /*#__PURE__*/React.forwardRef(function LinkWithRef(_ref7, ref) {\n let {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n viewTransition\n } = _ref7,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n // Only check for external origins client-side\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\") ? new URL(currentUrl.protocol + to) : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n // We can't do external URL detection without a valid URL\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"<Link to=\\\"\" + to + \"\\\"> contains an invalid URL which will probably break \" + \"when clicked - please update to a valid URL path.\") : void 0;\n }\n }\n }\n // Rendered into <a href> for relative URLs\n let href = useHref(to, {\n relative\n });\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n viewTransition\n });\n function handleClick(event) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n React.createElement(\"a\", _extends({}, rest, {\n href: absoluteHref || href,\n onClick: isExternal || reloadDocument ? onClick : handleClick,\n ref: ref,\n target: target\n }))\n );\n});\nif (process.env.NODE_ENV !== \"production\") {\n Link.displayName = \"Link\";\n}\n/**\n * A `<Link>` wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = /*#__PURE__*/React.forwardRef(function NavLinkWithRef(_ref8, ref) {\n let {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n viewTransition,\n children\n } = _ref8,\n rest = _objectWithoutPropertiesLoose(_ref8, _excluded2);\n let path = useResolvedPath(to, {\n relative: rest.relative\n });\n let location = useLocation();\n let routerState = React.useContext(UNSAFE_DataRouterStateContext);\n let {\n navigator,\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let isTransitioning = routerState != null &&\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useViewTransitionState(path) && viewTransition === true;\n let toPathname = navigator.encodeLocation ? navigator.encodeLocation(path).pathname : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname = routerState && routerState.navigation && routerState.navigation.location ? routerState.navigation.location.pathname : null;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname ? nextLocationPathname.toLowerCase() : null;\n toPathname = toPathname.toLowerCase();\n }\n if (nextLocationPathname && basename) {\n nextLocationPathname = stripBasename(nextLocationPathname, basename) || nextLocationPathname;\n }\n // If the `to` has a trailing slash, look at that exact spot. Otherwise,\n // we're looking for a slash _after_ what's in `to`. For example:\n //\n // <NavLink to=\"/users\"> and <NavLink to=\"/users/\">\n // both want to look for a / at index 6 to match URL `/users/matt`\n const endSlashPosition = toPathname !== \"/\" && toPathname.endsWith(\"/\") ? toPathname.length - 1 : toPathname.length;\n let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(endSlashPosition) === \"/\";\n let isPending = nextLocationPathname != null && (nextLocationPathname === toPathname || !end && nextLocationPathname.startsWith(toPathname) && nextLocationPathname.charAt(toPathname.length) === \"/\");\n let renderProps = {\n isActive,\n isPending,\n isTransitioning\n };\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n let className;\n if (typeof classNameProp === \"function\") {\n className = classNameProp(renderProps);\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null, isPending ? \"pending\" : null, isTransitioning ? \"transitioning\" : null].filter(Boolean).join(\" \");\n }\n let style = typeof styleProp === \"function\" ? styleProp(renderProps) : styleProp;\n return /*#__PURE__*/React.createElement(Link, _extends({}, rest, {\n \"aria-current\": ariaCurrent,\n className: className,\n ref: ref,\n style: style,\n to: to,\n viewTransition: viewTransition\n }), typeof children === \"function\" ? children(renderProps) : children);\n});\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n}\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nconst Form = /*#__PURE__*/React.forwardRef((_ref9, forwardedRef) => {\n let {\n fetcherKey,\n navigate,\n reloadDocument,\n replace,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n relative,\n preventScrollReset,\n viewTransition\n } = _ref9,\n props = _objectWithoutPropertiesLoose(_ref9, _excluded3);\n let submit = useSubmit();\n let formAction = useFormAction(action, {\n relative\n });\n let formMethod = method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let submitHandler = event => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n let submitter = event.nativeEvent.submitter;\n let submitMethod = (submitter == null ? void 0 : submitter.getAttribute(\"formmethod\")) || method;\n submit(submitter || event.currentTarget, {\n fetcherKey,\n method: submitMethod,\n navigate,\n replace,\n state,\n relative,\n preventScrollReset,\n viewTransition\n });\n };\n return /*#__PURE__*/React.createElement(\"form\", _extends({\n ref: forwardedRef,\n method: formMethod,\n action: formAction,\n onSubmit: reloadDocument ? onSubmit : submitHandler\n }, props));\n});\nif (process.env.NODE_ENV !== \"production\") {\n Form.displayName = \"Form\";\n}\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nfunction ScrollRestoration(_ref10) {\n let {\n getKey,\n storageKey\n } = _ref10;\n useScrollRestoration({\n getKey,\n storageKey\n });\n return null;\n}\nif (process.env.NODE_ENV !== \"production\") {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\nvar DataRouterHook;\n(function (DataRouterHook) {\n DataRouterHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n DataRouterHook[\"UseSubmit\"] = \"useSubmit\";\n DataRouterHook[\"UseSubmitFetcher\"] = \"useSubmitFetcher\";\n DataRouterHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterHook[\"useViewTransitionState\"] = \"useViewTransitionState\";\n})(DataRouterHook || (DataRouterHook = {}));\nvar DataRouterStateHook;\n(function (DataRouterStateHook) {\n DataRouterStateHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterStateHook[\"UseFetchers\"] = \"useFetchers\";\n DataRouterStateHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\n// Internal hooks\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(UNSAFE_DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(UNSAFE_DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\n// External hooks\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nfunction useLinkClickHandler(to, _temp) {\n let {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n viewTransition\n } = _temp === void 0 ? {} : _temp;\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, {\n relative\n });\n return React.useCallback(event => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace = replaceProp !== undefined ? replaceProp : createPath(location) === createPath(path);\n navigate(to, {\n replace,\n state,\n preventScrollReset,\n relative,\n viewTransition\n });\n }\n }, [location, navigate, path, replaceProp, state, target, to, preventScrollReset, relative, viewTransition]);\n}\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nfunction useSearchParams(defaultInit) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(typeof URLSearchParams !== \"undefined\", \"You cannot use the `useSearchParams` hook in a browser that does not \" + \"support the URLSearchParams API. If you need to support Internet \" + \"Explorer 11, we recommend you load a polyfill such as \" + \"https://github.com/ungap/url-search-params.\") : void 0;\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React.useRef(false);\n let location = useLocation();\n let searchParams = React.useMemo(() =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(location.search, hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current), [location.search]);\n let navigate = useNavigate();\n let setSearchParams = React.useCallback((nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit);\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n }, [navigate, searchParams]);\n return [searchParams, setSearchParams];\n}\nfunction validateClientSideSubmission() {\n if (typeof document === \"undefined\") {\n throw new Error(\"You are calling submit during the server render. \" + \"Try calling submit within a `useEffect` or callback instead.\");\n }\n}\nlet fetcherId = 0;\nlet getUniqueFetcherId = () => \"__\" + String(++fetcherId) + \"__\";\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nfunction useSubmit() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseSubmit);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let currentRouteId = UNSAFE_useRouteId();\n return React.useCallback(function (target, options) {\n if (options === void 0) {\n options = {};\n }\n validateClientSideSubmission();\n let {\n action,\n method,\n encType,\n formData,\n body\n } = getFormSubmissionInfo(target, basename);\n if (options.navigate === false) {\n let key = options.fetcherKey || getUniqueFetcherId();\n router.fetch(key, currentRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n flushSync: options.flushSync\n });\n } else {\n router.navigate(options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n replace: options.replace,\n state: options.state,\n fromRouteId: currentRouteId,\n flushSync: options.flushSync,\n viewTransition: options.viewTransition\n });\n }\n }, [router, basename, currentRouteId]);\n}\n// v7: Eventually we should deprecate this entirely in favor of using the\n// router method directly?\nfunction useFormAction(action, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let routeContext = React.useContext(UNSAFE_RouteContext);\n !routeContext ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFormAction must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = _extends({}, useResolvedPath(action ? action : \".\", {\n relative\n }));\n // If no action was specified, browsers will persist current search params\n // when determining the path, so match that behavior\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to this directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n path.search = location.search;\n // When grabbing search params from the URL, remove any included ?index param\n // since it might not apply to our contextual route. We add it back based\n // on match.route.index below\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n let hasNakedIndexParam = indexValues.some(v => v === \"\");\n if (hasNakedIndexParam) {\n params.delete(\"index\");\n indexValues.filter(v => v).forEach(v => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? \"?\" + qs : \"\";\n }\n }\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// TODO: (v7) Change the useFetcher generic default from `any` to `unknown`\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nfunction useFetcher(_temp3) {\n var _route$matches;\n let {\n key\n } = _temp3 === void 0 ? {} : _temp3;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseFetcher);\n let state = useDataRouterState(DataRouterStateHook.UseFetcher);\n let fetcherData = React.useContext(FetchersContext);\n let route = React.useContext(UNSAFE_RouteContext);\n let routeId = (_route$matches = route.matches[route.matches.length - 1]) == null ? void 0 : _route$matches.route.id;\n !fetcherData ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a FetchersContext\") : UNSAFE_invariant(false) : void 0;\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n !(routeId != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n // Fetcher key handling\n // OK to call conditionally to feature detect `useId`\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let defaultKey = useIdImpl ? useIdImpl() : \"\";\n let [fetcherKey, setFetcherKey] = React.useState(key || defaultKey);\n if (key && key !== fetcherKey) {\n setFetcherKey(key);\n } else if (!fetcherKey) {\n // We will only fall through here when `useId` is not available\n setFetcherKey(getUniqueFetcherId());\n }\n // Registration/cleanup\n React.useEffect(() => {\n router.getFetcher(fetcherKey);\n return () => {\n // Tell the router we've unmounted - if v7_fetcherPersist is enabled this\n // will not delete immediately but instead queue up a delete after the\n // fetcher returns to an `idle` state\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n // Fetcher additions\n let load = React.useCallback((href, opts) => {\n !routeId ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"No routeId available for fetcher.load()\") : UNSAFE_invariant(false) : void 0;\n router.fetch(fetcherKey, routeId, href, opts);\n }, [fetcherKey, routeId, router]);\n let submitImpl = useSubmit();\n let submit = React.useCallback((target, opts) => {\n submitImpl(target, _extends({}, opts, {\n navigate: false,\n fetcherKey\n }));\n }, [fetcherKey, submitImpl]);\n let FetcherForm = React.useMemo(() => {\n let FetcherForm = /*#__PURE__*/React.forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(Form, _extends({}, props, {\n navigate: false,\n fetcherKey: fetcherKey,\n ref: ref\n }));\n });\n if (process.env.NODE_ENV !== \"production\") {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n }, [fetcherKey]);\n // Exposed FetcherWithComponents\n let fetcher = state.fetchers.get(fetcherKey) || IDLE_FETCHER;\n let data = fetcherData.get(fetcherKey);\n let fetcherWithComponents = React.useMemo(() => _extends({\n Form: FetcherForm,\n submit,\n load\n }, fetcher, {\n data\n }), [FetcherForm, submit, load, fetcher, data]);\n return fetcherWithComponents;\n}\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nfunction useFetchers() {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return Array.from(state.fetchers.entries()).map(_ref11 => {\n let [key, fetcher] = _ref11;\n return _extends({}, fetcher, {\n key\n });\n });\n}\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions = {};\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration(_temp4) {\n let {\n getKey,\n storageKey\n } = _temp4 === void 0 ? {} : _temp4;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let {\n restoreScrollPosition,\n preventScrollReset\n } = useDataRouterState(DataRouterStateHook.UseScrollRestoration);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n // Save positions on pagehide\n usePageHide(React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n try {\n sessionStorage.setItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY, JSON.stringify(savedScrollPositions));\n } catch (error) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (\" + error + \").\") : void 0;\n }\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches]));\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY);\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let getKeyWithoutBasename = getKey && basename !== \"/\" ? (location, matches) => getKey( // Strip the basename to match useLocation()\n _extends({}, location, {\n pathname: stripBasename(location.pathname, basename) || location.pathname\n }), matches) : getKey;\n let disableScrollRestoration = router == null ? void 0 : router.enableScrollRestoration(savedScrollPositions, () => window.scrollY, getKeyWithoutBasename);\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(decodeURIComponent(location.hash.slice(1)));\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction useBeforeUnload(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt(_ref12) {\n let {\n when,\n message\n } = _ref12;\n let blocker = useBlocker(when);\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n // This timeout is needed to avoid a weird \"race\" on POP navigations\n // between the `window.history` revert navigation and the result of\n // `window.confirm`\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n}\n/**\n * Return a boolean indicating if there is an active view transition to the\n * given href. You can use this value to render CSS classes or viewTransitionName\n * styles onto your elements\n *\n * @param href The destination href\n * @param [opts.relative] Relative routing type (\"route\" | \"path\")\n */\nfunction useViewTransitionState(to, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let vtContext = React.useContext(ViewTransitionContext);\n !(vtContext != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. \" + \"Did you accidentally import `RouterProvider` from `react-router`?\") : UNSAFE_invariant(false) : void 0;\n let {\n basename\n } = useDataRouterContext(DataRouterHook.useViewTransitionState);\n let path = useResolvedPath(to, {\n relative: opts.relative\n });\n if (!vtContext.isTransitioning) {\n return false;\n }\n let currentPath = stripBasename(vtContext.currentLocation.pathname, basename) || vtContext.currentLocation.pathname;\n let nextPath = stripBasename(vtContext.nextLocation.pathname, basename) || vtContext.nextLocation.pathname;\n // Transition is active if we're going to or coming from the indicated\n // destination. This ensures that other PUSH navigations that reverse\n // an indicated transition apply. I.e., on the list view you have:\n //\n // <NavLink to=\"/details/1\" viewTransition>\n //\n // If you click the breadcrumb back to the list view:\n //\n // <NavLink to=\"/list\" viewTransition>\n //\n // We should apply the transition because it's indicated as active going\n // from /list -> /details/1 and therefore should be active on the reverse\n // (even though this isn't strictly a POP reverse)\n return matchPath(path.pathname, nextPath) != null || matchPath(path.pathname, currentPath) != null;\n}\n//#endregion\n\nexport { BrowserRouter, Form, HashRouter, Link, NavLink, RouterProvider, ScrollRestoration, FetchersContext as UNSAFE_FetchersContext, ViewTransitionContext as UNSAFE_ViewTransitionContext, useScrollRestoration as UNSAFE_useScrollRestoration, createBrowserRouter, createHashRouter, createSearchParams, HistoryRouter as unstable_HistoryRouter, usePrompt as unstable_usePrompt, useBeforeUnload, useFetcher, useFetchers, useFormAction, useLinkClickHandler, useSearchParams, useSubmit, useViewTransitionState };\n//# sourceMappingURL=index.js.map\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n === null || n === void 0 ? void 0 : n.host;\r\n return Boolean((host === null || host === void 0 ? void 0 : host.shadowRoot) === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n const id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction maskInputValue({ element, maskInputOptions, tagName, type, value, maskInputFn, }) {\r\n let text = value || '';\r\n const actualType = type && toLowerCase(type);\r\n if (maskInputOptions[tagName.toLowerCase()] ||\r\n (actualType && maskInputOptions[actualType])) {\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n else {\r\n text = '*'.repeat(text.length);\r\n }\r\n }\r\n return text;\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction extractFileExtension(path, baseURL) {\r\n var _a;\r\n let url;\r\n try {\r\n url = new URL(path, baseURL !== null && baseURL !== void 0 ? baseURL : window.location.href);\r\n }\r\n catch (err) {\r\n return null;\r\n }\r\n const regex = /\\.([0-9a-z]+)(?:$)/i;\r\n const match = url.pathname.match(regex);\r\n return (_a = match === null || match === void 0 ? void 0 : match[1]) !== null && _a !== void 0 ? _a : null;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector) {\r\n try {\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (node.nodeType !== node.ELEMENT_NODE) {\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n }\r\n for (let eIndex = node.classList.length; eIndex--;) {\r\n const className = node.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, checkAncestors) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (typeof maskTextClass === 'string') {\r\n if (checkAncestors) {\r\n if (el.closest(`.${maskTextClass}`))\r\n return true;\r\n }\r\n else {\r\n if (el.classList.contains(maskTextClass))\r\n return true;\r\n }\r\n }\r\n else {\r\n if (classMatchesRegex(el, maskTextClass, checkAncestors))\r\n return true;\r\n }\r\n if (maskTextSelector) {\r\n if (checkAncestors) {\r\n if (el.closest(maskTextSelector))\r\n return true;\r\n }\r\n else {\r\n if (el.matches(maskTextSelector))\r\n return true;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, needsMask, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n needsMask,\r\n maskTextFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n var _a;\r\n const { needsMask, maskTextFn, rootId } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n if (!isStyle && !isScript && textContent && needsMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent, n.parentElement)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, inlineStylesheet, maskInputOptions = {}, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {\r\n const value = n.value;\r\n const checked = n.checked;\r\n if (attributes.type !== 'radio' &&\r\n attributes.type !== 'checkbox' &&\r\n attributes.type !== 'submit' &&\r\n attributes.type !== 'button' &&\r\n value) {\r\n attributes.value = maskInputValue({\r\n element: n,\r\n type: getInputType(n),\r\n tagName,\r\n value,\r\n maskInputOptions,\r\n maskInputFn,\r\n });\r\n }\r\n else if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n const mediaAttributes = attributes;\r\n mediaAttributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n mediaAttributes.rr_mediaCurrentTime = n.currentTime;\r\n mediaAttributes.rr_mediaPlaybackRate = n.playbackRate;\r\n mediaAttributes.rr_mediaMuted = n.muted;\r\n mediaAttributes.rr_mediaLoop = n.loop;\r\n mediaAttributes.rr_mediaVolume = n.volume;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n extractFileExtension(sn.attributes.href) === 'js'))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, maskTextClass, maskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { needsMask } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n if (!needsMask &&\r\n n.childNodes) {\r\n const checkAncestors = needsMask === undefined;\r\n needsMask = needMaskingText(n, maskTextClass, maskTextSelector, checkAncestors);\r\n }\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'textarea' &&\r\n serializedNode.attributes.value !== undefined) ;\r\n else {\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n typeof serializedNode.attributes.rel === 'string' &&\r\n (serializedNode.attributes.rel === 'stylesheet' ||\r\n (serializedNode.attributes.rel === 'preload' &&\r\n typeof serializedNode.attributes.href === 'string' &&\r\n extractFileExtension(serializedNode.attributes.href) === 'css'))) {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : maskAllInputs === false\r\n ? {\r\n password: true,\r\n }\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\n\nfunction on(type, fn, target = document) {\r\n const options = { capture: true, passive: true };\r\n target.addEventListener(type, fn, options);\r\n return () => target.removeEventListener(type, fn, options);\r\n}\r\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\r\n '\\r\\n' +\r\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\r\n '\\r\\n' +\r\n 'or you can use record.mirror to access the mirror instance during recording.';\r\nlet _mirror = {\r\n map: {},\r\n getId() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return -1;\r\n },\r\n getNode() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return null;\r\n },\r\n removeNodeFromMap() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n has() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return false;\r\n },\r\n reset() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n};\r\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\r\n _mirror = new Proxy(_mirror, {\r\n get(target, prop, receiver) {\r\n if (prop === 'map') {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n }\r\n return Reflect.get(target, prop, receiver);\r\n },\r\n });\r\n}\r\nfunction throttle(func, wait, options = {}) {\r\n let timeout = null;\r\n let previous = 0;\r\n return function (...args) {\r\n const now = Date.now();\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n const remaining = wait - (now - previous);\r\n const context = this;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n func.apply(context, args);\r\n }\r\n else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(() => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n func.apply(context, args);\r\n }, remaining);\r\n }\r\n };\r\n}\r\nfunction hookSetter(target, key, d, isRevoked, win = window) {\r\n const original = win.Object.getOwnPropertyDescriptor(target, key);\r\n win.Object.defineProperty(target, key, isRevoked\r\n ? d\r\n : {\r\n set(value) {\r\n setTimeout(() => {\r\n d.set.call(this, value);\r\n }, 0);\r\n if (original && original.set) {\r\n original.set.call(this, value);\r\n }\r\n },\r\n });\r\n return () => hookSetter(target, key, original || {}, true);\r\n}\r\nfunction patch(source, name, replacement) {\r\n try {\r\n if (!(name in source)) {\r\n return () => {\r\n };\r\n }\r\n const original = source[name];\r\n const wrapped = replacement(original);\r\n if (typeof wrapped === 'function') {\r\n wrapped.prototype = wrapped.prototype || {};\r\n Object.defineProperties(wrapped, {\r\n __rrweb_original__: {\r\n enumerable: false,\r\n value: original,\r\n },\r\n });\r\n }\r\n source[name] = wrapped;\r\n return () => {\r\n source[name] = original;\r\n };\r\n }\r\n catch (_a) {\r\n return () => {\r\n };\r\n }\r\n}\r\nlet nowTimestamp = Date.now;\r\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\r\n nowTimestamp = () => new Date().getTime();\r\n}\r\nfunction getWindowScroll(win) {\r\n var _a, _b, _c, _d, _e, _f;\r\n const doc = win.document;\r\n return {\r\n left: doc.scrollingElement\r\n ? doc.scrollingElement.scrollLeft\r\n : win.pageXOffset !== undefined\r\n ? win.pageXOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollLeft) ||\r\n ((_b = (_a = doc === null || doc === void 0 ? void 0 : doc.body) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.scrollLeft) ||\r\n ((_c = doc === null || doc === void 0 ? void 0 : doc.body) === null || _c === void 0 ? void 0 : _c.scrollLeft) ||\r\n 0,\r\n top: doc.scrollingElement\r\n ? doc.scrollingElement.scrollTop\r\n : win.pageYOffset !== undefined\r\n ? win.pageYOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollTop) ||\r\n ((_e = (_d = doc === null || doc === void 0 ? void 0 : doc.body) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.scrollTop) ||\r\n ((_f = doc === null || doc === void 0 ? void 0 : doc.body) === null || _f === void 0 ? void 0 : _f.scrollTop) ||\r\n 0,\r\n };\r\n}\r\nfunction getWindowHeight() {\r\n return (window.innerHeight ||\r\n (document.documentElement && document.documentElement.clientHeight) ||\r\n (document.body && document.body.clientHeight));\r\n}\r\nfunction getWindowWidth() {\r\n return (window.innerWidth ||\r\n (document.documentElement && document.documentElement.clientWidth) ||\r\n (document.body && document.body.clientWidth));\r\n}\r\nfunction closestElementOfNode(node) {\r\n if (!node) {\r\n return null;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n return el;\r\n}\r\nfunction isBlocked(node, blockClass, blockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = closestElementOfNode(node);\r\n if (!el) {\r\n return false;\r\n }\r\n try {\r\n if (typeof blockClass === 'string') {\r\n if (el.classList.contains(blockClass))\r\n return true;\r\n if (checkAncestors && el.closest('.' + blockClass) !== null)\r\n return true;\r\n }\r\n else {\r\n if (classMatchesRegex(el, blockClass, checkAncestors))\r\n return true;\r\n }\r\n }\r\n catch (e) {\r\n }\r\n if (blockSelector) {\r\n if (el.matches(blockSelector))\r\n return true;\r\n if (checkAncestors && el.closest(blockSelector) !== null)\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSerialized(n, mirror) {\r\n return mirror.getId(n) !== -1;\r\n}\r\nfunction isIgnored(n, mirror) {\r\n return mirror.getId(n) === IGNORED_NODE;\r\n}\r\nfunction isAncestorRemoved(target, mirror) {\r\n if (isShadowRoot(target)) {\r\n return false;\r\n }\r\n const id = mirror.getId(target);\r\n if (!mirror.has(id)) {\r\n return true;\r\n }\r\n if (target.parentNode &&\r\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n if (!target.parentNode) {\r\n return true;\r\n }\r\n return isAncestorRemoved(target.parentNode, mirror);\r\n}\r\nfunction legacy_isTouchEvent(event) {\r\n return Boolean(event.changedTouches);\r\n}\r\nfunction polyfill(win = window) {\r\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\r\n win.NodeList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\r\n win.DOMTokenList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if (!Node.prototype.contains) {\r\n Node.prototype.contains = (...args) => {\r\n let node = args[0];\r\n if (!(0 in args)) {\r\n throw new TypeError('1 argument is required');\r\n }\r\n do {\r\n if (this === node) {\r\n return true;\r\n }\r\n } while ((node = node && node.parentNode));\r\n return false;\r\n };\r\n }\r\n}\r\nfunction isSerializedIframe(n, mirror) {\r\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\r\n}\r\nfunction isSerializedStylesheet(n, mirror) {\r\n return Boolean(n.nodeName === 'LINK' &&\r\n n.nodeType === n.ELEMENT_NODE &&\r\n n.getAttribute &&\r\n n.getAttribute('rel') === 'stylesheet' &&\r\n mirror.getMeta(n));\r\n}\r\nfunction hasShadowRoot(n) {\r\n return Boolean(n === null || n === void 0 ? void 0 : n.shadowRoot);\r\n}\r\nclass StyleSheetMirror {\r\n constructor() {\r\n this.id = 1;\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n }\r\n getId(stylesheet) {\r\n var _a;\r\n return (_a = this.styleIDMap.get(stylesheet)) !== null && _a !== void 0 ? _a : -1;\r\n }\r\n has(stylesheet) {\r\n return this.styleIDMap.has(stylesheet);\r\n }\r\n add(stylesheet, id) {\r\n if (this.has(stylesheet))\r\n return this.getId(stylesheet);\r\n let newId;\r\n if (id === undefined) {\r\n newId = this.id++;\r\n }\r\n else\r\n newId = id;\r\n this.styleIDMap.set(stylesheet, newId);\r\n this.idStyleMap.set(newId, stylesheet);\r\n return newId;\r\n }\r\n getStyle(id) {\r\n return this.idStyleMap.get(id) || null;\r\n }\r\n reset() {\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n this.id = 1;\r\n }\r\n generateId() {\r\n return this.id++;\r\n }\r\n}\r\nfunction getShadowHost(n) {\r\n var _a, _b;\r\n let shadowHost = null;\r\n if (((_b = (_a = n.getRootNode) === null || _a === void 0 ? void 0 : _a.call(n)) === null || _b === void 0 ? void 0 : _b.nodeType) === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n return shadowHost;\r\n}\r\nfunction getRootShadowHost(n) {\r\n let rootShadowHost = n;\r\n let shadowHost;\r\n while ((shadowHost = getShadowHost(rootShadowHost)))\r\n rootShadowHost = shadowHost;\r\n return rootShadowHost;\r\n}\r\nfunction shadowHostInDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n const shadowHost = getRootShadowHost(n);\r\n return doc.contains(shadowHost);\r\n}\r\nfunction inDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n return doc.contains(n) || shadowHostInDom(n);\r\n}\n\nvar EventType$1 = /* @__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$1 || {});\nvar IncrementalSource$1 = /* @__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$1 || {});\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 CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n this.tail = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = (current === null || current === void 0 ? void 0 : current.next) || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n if (node.next === null) {\r\n this.tail = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n else {\r\n this.tail = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n else {\r\n this.tail = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addedIds = new Set();\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n if (!n.parentNode ||\r\n !inDom(n) ||\r\n n.parentNode.tagName === 'TEXTAREA') {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(getShadowHost(n))\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskTextClass: this.maskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n addedIds.add(sn.id);\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of this.movedSet) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of this.addedSet) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n let tailNode = addList.tail;\r\n while (tailNode) {\r\n const _node = tailNode;\r\n tailNode = tailNode.previous;\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => {\r\n const n = text.node;\r\n if (n.parentNode &&\r\n n.parentNode.tagName === 'TEXTAREA') {\r\n this.genTextAreaValueMutation(n.parentNode);\r\n }\r\n return {\r\n id: this.mirror.getId(n),\r\n value: text.value,\r\n };\r\n })\r\n .filter((text) => !addedIds.has(text.id))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => {\r\n const { attributes } = attribute;\r\n if (typeof attributes.style === 'string') {\r\n const diffAsStr = JSON.stringify(attribute.styleDiff);\r\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\r\n if (diffAsStr.length < attributes.style.length) {\r\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\r\n attributes.style.split('var(').length) {\r\n attributes.style = attribute.styleDiff;\r\n }\r\n }\r\n }\r\n return {\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attributes,\r\n };\r\n })\r\n .filter((attribute) => !addedIds.has(attribute.id))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.genTextAreaValueMutation = (textarea) => {\r\n let item = this.attributeMap.get(textarea);\r\n if (!item) {\r\n item = {\r\n node: textarea,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(textarea, item);\r\n }\r\n item.attributes.value = Array.from(textarea.childNodes, (cn) => cn.textContent || '').join('');\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, true) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value, closestElementOfNode(m.target))\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let attributeName = m.attributeName;\r\n let value = m.target.getAttribute(attributeName);\r\n if (attributeName === 'value') {\r\n const type = getInputType(target);\r\n value = maskInputValue({\r\n element: target,\r\n maskInputOptions: this.maskInputOptions,\r\n tagName: target.tagName,\r\n type,\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributeMap.get(m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(m.target, item);\r\n }\r\n if (attributeName === 'type' &&\r\n target.tagName === 'INPUT' &&\r\n (m.oldValue || '').toLowerCase() === 'password') {\r\n target.setAttribute('data-rr-is-password', 'true');\r\n }\r\n if (!ignoreAttribute(target.tagName, attributeName)) {\r\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value);\r\n if (attributeName === 'style') {\r\n if (!this.unattachedDoc) {\r\n try {\r\n this.unattachedDoc =\r\n document.implementation.createHTMLDocument();\r\n }\r\n catch (e) {\r\n this.unattachedDoc = this.doc;\r\n }\r\n }\r\n const old = this.unattachedDoc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n item.styleDiff[pname] = newValue;\r\n }\r\n else {\r\n item.styleDiff[pname] = [newValue, newPriority];\r\n }\r\n }\r\n else {\r\n item._unchangedStyles[pname] = [newValue, newPriority];\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n item.styleDiff[pname] = false;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\r\n return;\r\n if (m.target.tagName === 'TEXTAREA') {\r\n this.genTextAreaValueMutation(m.target);\r\n return;\r\n }\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.processedNodeManager.inOtherBuffer(n, this))\r\n return;\r\n if (this.addedSet.has(n) || this.movedSet.has(n))\r\n return;\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, false)) {\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n if (hasShadowRoot(n)) {\r\n n.shadowRoot.childNodes.forEach((childN) => {\r\n this.processedNodeManager.add(childN, this);\r\n this.genAdds(childN, n);\r\n });\r\n }\r\n }\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'maskTextClass',\r\n 'maskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n 'processedNodeManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nlet errorHandler;\r\nfunction registerErrorHandler(handler) {\r\n errorHandler = handler;\r\n}\r\nfunction unregisterErrorHandler() {\r\n errorHandler = undefined;\r\n}\r\nconst callbackWrapper = (cb) => {\r\n if (!errorHandler) {\r\n return cb;\r\n }\r\n const rrwebWrapped = ((...rest) => {\r\n try {\r\n return cb(...rest);\r\n }\r\n catch (error) {\r\n if (errorHandler && errorHandler(error) === true) {\r\n return;\r\n }\r\n throw error;\r\n }\r\n });\r\n return rrwebWrapped;\r\n};\n\nconst mutationBuffers = [];\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n }\r\n catch (_a) {\r\n }\r\n return event && event.target;\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n var _a, _b;\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = (_b = (_a = window === null || window === void 0 ? void 0 : window.Zone) === null || _a === void 0 ? void 0 : _a.__symbol__) === null || _b === void 0 ? void 0 : _b.call(_a, 'MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer)));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle(callbackWrapper((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }), callbackThreshold);\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = legacy_isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = nowTimestamp();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: nowTimestamp() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource$1.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource$1.MouseMove\r\n : IncrementalSource$1.TouchMove);\r\n }), threshold, {\r\n trailing: false,\r\n }));\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n let currentPointerType = null;\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n let pointerType = null;\r\n let thisEventKey = eventKey;\r\n if ('pointerType' in event) {\r\n switch (event.pointerType) {\r\n case 'mouse':\r\n pointerType = PointerTypes.Mouse;\r\n break;\r\n case 'touch':\r\n pointerType = PointerTypes.Touch;\r\n break;\r\n case 'pen':\r\n pointerType = PointerTypes.Pen;\r\n break;\r\n }\r\n if (pointerType === PointerTypes.Touch) {\r\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\r\n thisEventKey = 'TouchStart';\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\r\n thisEventKey = 'TouchEnd';\r\n }\r\n }\r\n else if (pointerType === PointerTypes.Pen) ;\r\n }\r\n else if (legacy_isTouchEvent(event)) {\r\n pointerType = PointerTypes.Touch;\r\n }\r\n if (pointerType !== null) {\r\n currentPointerType = pointerType;\r\n if ((thisEventKey.startsWith('Touch') &&\r\n pointerType === PointerTypes.Touch) ||\r\n (thisEventKey.startsWith('Mouse') &&\r\n pointerType === PointerTypes.Mouse)) {\r\n pointerType = null;\r\n }\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\r\n pointerType = currentPointerType;\r\n currentPointerType = null;\r\n }\r\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n callbackWrapper(mouseInteractionCb)(Object.assign({ type: MouseInteractions[thisEventKey], id, x: clientX, y: clientY }, (pointerType !== null && { pointerType })));\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n let eventName = toLowerCase(eventKey);\r\n const handler = getHandler(eventKey);\r\n if (window.PointerEvent) {\r\n switch (MouseInteractions[eventKey]) {\r\n case MouseInteractions.MouseDown:\r\n case MouseInteractions.MouseUp:\r\n eventName = eventName.replace('mouse', 'pointer');\r\n break;\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n return;\r\n }\r\n }\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc && doc.defaultView) {\r\n const scrollLeftTop = getWindowScroll(doc.defaultView);\r\n scrollCb({\r\n id,\r\n x: scrollLeftTop.left,\r\n y: scrollLeftTop.top,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }), sampling.scroll || 100));\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = callbackWrapper(throttle(callbackWrapper(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }), 200));\r\n return on('resize', updateDimension, win);\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n const tagName = target && target.tagName;\r\n if (target && tagName === 'OPTION') {\r\n target = target.parentElement;\r\n }\r\n if (!target ||\r\n !tagName ||\r\n INPUT_TAGS.indexOf(tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n if (target.classList.contains(ignoreClass) ||\r\n (ignoreSelector && target.matches(ignoreSelector))) {\r\n return;\r\n }\r\n let text = target.value;\r\n let isChecked = false;\r\n const type = getInputType(target) || '';\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n else if (maskInputOptions[tagName.toLowerCase()] ||\r\n maskInputOptions[type]) {\r\n text = maskInputValue({\r\n element: target,\r\n maskInputOptions,\r\n tagName,\r\n type,\r\n value: text,\r\n maskInputFn,\r\n });\r\n }\r\n cbWithDedup(target, userTriggeredOnInput\r\n ? { text, isChecked, userTriggered }\r\n : { text, isChecked });\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n const text = el.value;\r\n cbWithDedup(el, userTriggeredOnInput\r\n ? { text, isChecked: !isChecked, userTriggered: false }\r\n : { text, isChecked: !isChecked });\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n callbackWrapper(inputCb)(Object.assign(Object.assign({}, v), { id }));\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n callbackWrapper(eventHandler)({\r\n target: this,\r\n isTrusted: false,\r\n });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((hasNestedCSSRule('CSSGroupingRule') &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (hasNestedCSSRule('CSSMediaRule') &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (hasNestedCSSRule('CSSSupportsRule') &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (hasNestedCSSRule('CSSConditionRule') &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\r\n return () => {\r\n };\r\n }\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(thisArg),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(thisArg), index] },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n });\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n var _a, _b, _c;\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? (_a = host.defaultView) === null || _a === void 0 ? void 0 : _a.Document\r\n : (_c = (_b = host.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) === null || _c === void 0 ? void 0 : _c.ShadowRoot;\r\n const originalPropertyDescriptor = (patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype)\r\n ? Object.getOwnPropertyDescriptor(patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype, 'adoptedStyleSheets')\r\n : undefined;\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n var _a;\r\n return (_a = originalPropertyDescriptor.get) === null || _a === void 0 ? void 0 : _a.call(this);\r\n },\r\n set(sheets) {\r\n var _a;\r\n const result = (_a = originalPropertyDescriptor.set) === null || _a === void 0 ? void 0 : _a.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return callbackWrapper(() => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n });\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property, value, priority] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(thisArg, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(thisArg, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n });\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, mirror, sampling, doc, }) {\r\n const handler = callbackWrapper((type) => throttle(callbackWrapper((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate, loop } = target;\r\n mediaInteractionCb({\r\n type,\r\n id: mirror.getId(target),\r\n currentTime,\r\n volume,\r\n muted,\r\n playbackRate,\r\n loop,\r\n });\r\n }), sampling.media || 500));\r\n const handlers = [\r\n on('play', handler(0), doc),\r\n on('pause', handler(1), doc),\r\n on('seeked', handler(2), doc),\r\n on('volumechange', handler(3), doc),\r\n on('ratechange', handler(4), doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(callbackWrapper(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }), 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, selectionCb } = param;\r\n let collapsed = true;\r\n const updateSelection = callbackWrapper(() => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && (selection === null || selection === void 0 ? void 0 : selection.isCollapsed)))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n });\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction initCustomElementObserver({ doc, customElementCb, }) {\r\n const win = doc.defaultView;\r\n if (!win || !win.customElements)\r\n return () => { };\r\n const restoreHandler = patch(win.customElements, 'define', function (original) {\r\n return function (name, constructor, options) {\r\n try {\r\n customElementCb({\r\n define: {\r\n name,\r\n },\r\n });\r\n }\r\n catch (e) {\r\n console.warn(`Custom element callback failed for ${name}`);\r\n }\r\n return original.apply(this, [name, constructor, options]);\r\n };\r\n });\r\n return restoreHandler;\r\n}\r\nfunction mergeHooks(o, hooks) {\r\n const { mutationCb, mousemoveCb, mouseInteractionCb, scrollCb, viewportResizeCb, inputCb, mediaInteractionCb, styleSheetRuleCb, styleDeclarationCb, canvasMutationCb, fontCb, selectionCb, customElementCb, } = o;\r\n o.mutationCb = (...p) => {\r\n if (hooks.mutation) {\r\n hooks.mutation(...p);\r\n }\r\n mutationCb(...p);\r\n };\r\n o.mousemoveCb = (...p) => {\r\n if (hooks.mousemove) {\r\n hooks.mousemove(...p);\r\n }\r\n mousemoveCb(...p);\r\n };\r\n o.mouseInteractionCb = (...p) => {\r\n if (hooks.mouseInteraction) {\r\n hooks.mouseInteraction(...p);\r\n }\r\n mouseInteractionCb(...p);\r\n };\r\n o.scrollCb = (...p) => {\r\n if (hooks.scroll) {\r\n hooks.scroll(...p);\r\n }\r\n scrollCb(...p);\r\n };\r\n o.viewportResizeCb = (...p) => {\r\n if (hooks.viewportResize) {\r\n hooks.viewportResize(...p);\r\n }\r\n viewportResizeCb(...p);\r\n };\r\n o.inputCb = (...p) => {\r\n if (hooks.input) {\r\n hooks.input(...p);\r\n }\r\n inputCb(...p);\r\n };\r\n o.mediaInteractionCb = (...p) => {\r\n if (hooks.mediaInteaction) {\r\n hooks.mediaInteaction(...p);\r\n }\r\n mediaInteractionCb(...p);\r\n };\r\n o.styleSheetRuleCb = (...p) => {\r\n if (hooks.styleSheetRule) {\r\n hooks.styleSheetRule(...p);\r\n }\r\n styleSheetRuleCb(...p);\r\n };\r\n o.styleDeclarationCb = (...p) => {\r\n if (hooks.styleDeclaration) {\r\n hooks.styleDeclaration(...p);\r\n }\r\n styleDeclarationCb(...p);\r\n };\r\n o.canvasMutationCb = (...p) => {\r\n if (hooks.canvasMutation) {\r\n hooks.canvasMutation(...p);\r\n }\r\n canvasMutationCb(...p);\r\n };\r\n o.fontCb = (...p) => {\r\n if (hooks.font) {\r\n hooks.font(...p);\r\n }\r\n fontCb(...p);\r\n };\r\n o.selectionCb = (...p) => {\r\n if (hooks.selection) {\r\n hooks.selection(...p);\r\n }\r\n selectionCb(...p);\r\n };\r\n o.customElementCb = (...c) => {\r\n if (hooks.customElement) {\r\n hooks.customElement(...c);\r\n }\r\n customElementCb(...c);\r\n };\r\n}\r\nfunction initObservers(o, hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n mergeHooks(o, hooks);\r\n let mutationObserver;\r\n if (o.recordDOM) {\r\n mutationObserver = initMutationObserver(o, o.doc);\r\n }\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o, {\r\n win: currentWindow,\r\n });\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n let styleSheetObserver = () => { };\r\n let adoptedStyleSheetObserver = () => { };\r\n let styleDeclarationObserver = () => { };\r\n let fontObserver = () => { };\r\n if (o.recordDOM) {\r\n styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n if (o.collectFonts) {\r\n fontObserver = initFontObserver(o);\r\n }\r\n }\r\n const selectionObserver = initSelectionObserver(o);\r\n const customElementObserver = initCustomElementObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return callbackWrapper(() => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver === null || mutationObserver === void 0 ? void 0 : mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n customElementObserver();\r\n pluginHandlers.forEach((h) => h());\r\n });\r\n}\r\nfunction hasNestedCSSRule(prop) {\r\n return typeof window[prop] !== 'undefined';\r\n}\r\nfunction canMonkeyPatchNestedCSSRule(prop) {\r\n return Boolean(typeof window[prop] !== 'undefined' &&\r\n window[prop].prototype &&\r\n 'insertRule' in window[prop].prototype &&\r\n 'deleteRule' in window[prop].prototype);\r\n}\n\nclass CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n var _a;\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n const crossOriginMessageEvent = message;\r\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\r\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\r\n return;\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n var _a;\r\n switch (e.type) {\r\n case EventType$1.FullSnapshot: {\r\n this.crossOriginIframeMirror.reset(iframeEl);\r\n this.crossOriginIframeStyleMirror.reset(iframeEl);\r\n this.replaceIdOnNode(e.data.node, iframeEl);\r\n const rootId = e.data.node.id;\r\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\r\n this.patchRootIdOnNode(e.data.node, rootId);\r\n return {\r\n timestamp: e.timestamp,\r\n type: EventType$1.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource$1.Mutation,\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: e.data.node,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n },\r\n };\r\n }\r\n case EventType$1.Meta:\r\n case EventType$1.Load:\r\n case EventType$1.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType$1.Plugin: {\r\n return e;\r\n }\r\n case EventType$1.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType$1.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource$1.Mutation: {\r\n e.data.adds.forEach((n) => {\r\n this.replaceIds(n, iframeEl, [\r\n 'parentId',\r\n 'nextId',\r\n 'previousId',\r\n ]);\r\n this.replaceIdOnNode(n.node, iframeEl);\r\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\r\n rootId && this.patchRootIdOnNode(n.node, rootId);\r\n });\r\n e.data.removes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\r\n });\r\n e.data.attributes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n e.data.texts.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource$1.Drag:\r\n case IncrementalSource$1.TouchMove:\r\n case IncrementalSource$1.MouseMove: {\r\n e.data.positions.forEach((p) => {\r\n this.replaceIds(p, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource$1.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource$1.MediaInteraction:\r\n case IncrementalSource$1.MouseInteraction:\r\n case IncrementalSource$1.Scroll:\r\n case IncrementalSource$1.CanvasMutation:\r\n case IncrementalSource$1.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource$1.StyleSheetRule:\r\n case IncrementalSource$1.StyleDeclaration: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\r\n return e;\r\n }\r\n case IncrementalSource$1.Font: {\r\n return e;\r\n }\r\n case IncrementalSource$1.Selection: {\r\n e.data.ranges.forEach((range) => {\r\n this.replaceIds(range, iframeEl, ['start', 'end']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource$1.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n (_a = e.data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n patchRootIdOnNode(node, rootId) {\r\n if (node.type !== NodeType.Document && !node.rootId)\r\n node.rootId = rootId;\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.patchRootIdOnNode(child, rootId);\r\n });\r\n }\r\n }\r\n}\n\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restoreHandlers = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n this.init();\r\n }\r\n init() {\r\n this.reset();\r\n this.patchAttachShadow(Element, document);\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n const observer = initMutationObserver(Object.assign(Object.assign({}, this.bypassOptions), { doc, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), shadowRoot);\r\n this.restoreHandlers.push(() => observer.disconnect());\r\n this.restoreHandlers.push(initScrollObserver(Object.assign(Object.assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: shadowRoot, mirror: this.mirror })));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot));\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\r\n return;\r\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\r\n }\r\n patchAttachShadow(element, doc) {\r\n const manager = this;\r\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot && inDom(this))\r\n manager.addShadowRoot(this.shadowRoot, doc);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n reset() {\r\n this.restoreHandlers.forEach((handler) => {\r\n try {\r\n handler();\r\n }\r\n catch (e) {\r\n }\r\n });\r\n this.restoreHandlers = [];\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\n/*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\n\nconst canvasVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = canvasVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n canvasVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nconst saveWebGLVar = (value, win, ctx) => {\r\n if (!value ||\r\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\r\n return;\r\n const name = value.constructor.name;\r\n const list = variableListFor(ctx, name);\r\n let index = list.indexOf(value);\r\n if (index === -1) {\r\n index = list.length;\r\n list.push(value);\r\n }\r\n return index;\r\n};\r\nfunction serializeArg(value, win, ctx) {\r\n if (value instanceof Array) {\r\n return value.map((arg) => serializeArg(arg, win, ctx));\r\n }\r\n else if (value === null) {\r\n return value;\r\n }\r\n else if (value instanceof Float32Array ||\r\n value instanceof Float64Array ||\r\n value instanceof Int32Array ||\r\n value instanceof Uint32Array ||\r\n value instanceof Uint8Array ||\r\n value instanceof Uint16Array ||\r\n value instanceof Int16Array ||\r\n value instanceof Int8Array ||\r\n value instanceof Uint8ClampedArray) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [Object.values(value)],\r\n };\r\n }\r\n else if (value instanceof ArrayBuffer) {\r\n const name = value.constructor.name;\r\n const base64 = encode(value);\r\n return {\r\n rr_type: name,\r\n base64,\r\n };\r\n }\r\n else if (value instanceof DataView) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [\r\n serializeArg(value.buffer, win, ctx),\r\n value.byteOffset,\r\n value.byteLength,\r\n ],\r\n };\r\n }\r\n else if (value instanceof HTMLImageElement) {\r\n const name = value.constructor.name;\r\n const { src } = value;\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof HTMLCanvasElement) {\r\n const name = 'HTMLImageElement';\r\n const src = value.toDataURL();\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof ImageData) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\r\n };\r\n }\r\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\r\n const name = value.constructor.name;\r\n const index = saveWebGLVar(value, win, ctx);\r\n return {\r\n rr_type: name,\r\n index: index,\r\n };\r\n }\r\n return value;\r\n}\r\nconst serializeArgs = (args, win, ctx) => {\r\n return args.map((arg) => serializeArg(arg, win, ctx));\r\n};\r\nconst isInstanceOfWebGLObject = (value, win) => {\r\n const webGLConstructorNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n 'WebGLVertexArrayObjectOES',\r\n ];\r\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\r\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\r\n};\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\r\n const handlers = [];\r\n const props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\r\n for (const prop of props2D) {\r\n try {\r\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\r\n return function (...args) {\r\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n setTimeout(() => {\r\n const recordArgs = serializeArgs(args, win, this);\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: recordArgs,\r\n });\r\n }, 0);\r\n }\r\n return original.apply(this, args);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction getNormalizedContextName(contextType) {\r\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\r\n}\r\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\r\n const handlers = [];\r\n try {\r\n const restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\r\n return function (contextType, ...args) {\r\n if (!isBlocked(this, blockClass, blockSelector, true)) {\r\n const ctxName = getNormalizedContextName(contextType);\r\n if (!('__context' in this))\r\n this.__context = ctxName;\r\n if (setPreserveDrawingBufferToTrue &&\r\n ['webgl', 'webgl2'].includes(ctxName)) {\r\n if (args[0] && typeof args[0] === 'object') {\r\n const contextAttributes = args[0];\r\n if (!contextAttributes.preserveDrawingBuffer) {\r\n contextAttributes.preserveDrawingBuffer = true;\r\n }\r\n }\r\n else {\r\n args.splice(0, 1, {\r\n preserveDrawingBuffer: true,\r\n });\r\n }\r\n }\r\n }\r\n return original.apply(this, [contextType, ...args]);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, mirror, win) {\r\n const handlers = [];\r\n const props = Object.getOwnPropertyNames(prototype);\r\n for (const prop of props) {\r\n if ([\r\n 'isContextLost',\r\n 'canvas',\r\n 'drawingBufferWidth',\r\n 'drawingBufferHeight',\r\n ].includes(prop)) {\r\n continue;\r\n }\r\n try {\r\n if (typeof prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(prototype, prop, function (original) {\r\n return function (...args) {\r\n const result = original.apply(this, args);\r\n saveWebGLVar(result, win, this);\r\n if ('tagName' in this.canvas &&\r\n !isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n const recordArgs = serializeArgs(args, win, this);\r\n const mutation = {\r\n type,\r\n property: prop,\r\n args: recordArgs,\r\n };\r\n cb(this.canvas, mutation);\r\n }\r\n return result;\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type,\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return handlers;\r\n}\r\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, mirror) {\r\n const handlers = [];\r\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, mirror, win));\r\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\r\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, mirror, win));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction funcToSource(fn, sourcemapArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var source = fn.toString();\n var lines = source.split('\\n');\n lines.pop();\n lines.shift();\n var blankPrefixLength = lines[0].search(/\\S/);\n var regex = /(['\"])__worker_loader_strict__(['\"])/g;\n for (var i = 0, n = lines.length; i < n; ++i) {\n lines[i] = lines[i].substring(blankPrefixLength).replace(regex, '$1use strict$2') + '\\n';\n }\n if (sourcemap) {\n lines.push('\\/\\/# sourceMappingURL=' + sourcemap + '\\n');\n }\n return lines;\n}\n\nfunction createURL(fn, sourcemapArg) {\n var lines = funcToSource(fn, sourcemapArg);\n var blob = new Blob(lines, { type: 'application/javascript' });\n return URL.createObjectURL(blob);\n}\n\nfunction createInlineWorkerFactory(fn, sourcemapArg) {\n var url;\n return function WorkerFactory(options) {\n url = url || createURL(fn, sourcemapArg);\n return new Worker(url, options);\n };\n}\n\nvar WorkerFactory = createInlineWorkerFactory(/* rollup-plugin-web-worker-loader */function () {\n(function () {\n '__worker_loader_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 function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\n\n /*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n var encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n };\n\n const lastBlobMap = new Map();\r\n const transparentBlobMap = new Map();\r\n function getTransparentBlobFor(width, height, dataURLOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const id = `${width}-${height}`;\r\n if ('OffscreenCanvas' in globalThis) {\r\n if (transparentBlobMap.has(id))\r\n return transparentBlobMap.get(id);\r\n const offscreen = new OffscreenCanvas(width, height);\r\n offscreen.getContext('2d');\r\n const blob = yield offscreen.convertToBlob(dataURLOptions);\r\n const arrayBuffer = yield blob.arrayBuffer();\r\n const base64 = encode(arrayBuffer);\r\n transparentBlobMap.set(id, base64);\r\n return base64;\r\n }\r\n else {\r\n return '';\r\n }\r\n });\r\n }\r\n const worker = self;\r\n worker.onmessage = function (e) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if ('OffscreenCanvas' in globalThis) {\r\n const { id, bitmap, width, height, dataURLOptions } = e.data;\r\n const transparentBase64 = getTransparentBlobFor(width, height, dataURLOptions);\r\n const offscreen = new OffscreenCanvas(width, height);\r\n const ctx = offscreen.getContext('2d');\r\n ctx.drawImage(bitmap, 0, 0);\r\n bitmap.close();\r\n const blob = yield offscreen.convertToBlob(dataURLOptions);\r\n const type = blob.type;\r\n const arrayBuffer = yield blob.arrayBuffer();\r\n const base64 = encode(arrayBuffer);\r\n if (!lastBlobMap.has(id) && (yield transparentBase64) === base64) {\r\n lastBlobMap.set(id, base64);\r\n return worker.postMessage({ id });\r\n }\r\n if (lastBlobMap.get(id) === base64)\r\n return worker.postMessage({ id });\r\n worker.postMessage({\r\n id,\r\n type,\r\n base64,\r\n width,\r\n height,\r\n });\r\n lastBlobMap.set(id, base64);\r\n }\r\n else {\r\n return worker.postMessage({ id: e.data.id });\r\n }\r\n });\r\n };\n\n})();\n}, null);\n\nclass CanvasManager {\r\n reset() {\r\n this.pendingCanvasMutations.clear();\r\n this.resetObservers && this.resetObservers();\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n }\r\n lock() {\r\n this.locked = true;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n }\r\n constructor(options) {\r\n this.pendingCanvasMutations = new Map();\r\n this.rafStamps = { latestId: 0, invokeId: null };\r\n this.frozen = false;\r\n this.locked = false;\r\n this.processMutation = (target, mutation) => {\r\n const newFrame = this.rafStamps.invokeId &&\r\n this.rafStamps.latestId !== this.rafStamps.invokeId;\r\n if (newFrame || !this.rafStamps.invokeId)\r\n this.rafStamps.invokeId = this.rafStamps.latestId;\r\n if (!this.pendingCanvasMutations.has(target)) {\r\n this.pendingCanvasMutations.set(target, []);\r\n }\r\n this.pendingCanvasMutations.get(target).push(mutation);\r\n };\r\n const { sampling = 'all', win, blockClass, blockSelector, recordCanvas, dataURLOptions, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\r\n dataURLOptions,\r\n });\r\n }\r\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, true);\r\n const snapshotInProgressMap = new Map();\r\n const worker = new WorkerFactory();\r\n worker.onmessage = (e) => {\r\n const { id } = e.data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in e.data))\r\n return;\r\n const { base64, type, width, height } = e.data;\r\n this.mutationCb({\r\n id,\r\n type: CanvasContext['2D'],\r\n commands: [\r\n {\r\n property: 'clearRect',\r\n args: [0, 0, width, height],\r\n },\r\n {\r\n property: 'drawImage',\r\n args: [\r\n {\r\n rr_type: 'ImageBitmap',\r\n args: [\r\n {\r\n rr_type: 'Blob',\r\n data: [{ rr_type: 'ArrayBuffer', base64 }],\r\n type,\r\n },\r\n ],\r\n },\r\n 0,\r\n 0,\r\n ],\r\n },\r\n ],\r\n });\r\n };\r\n const timeBetweenSnapshots = 1000 / fps;\r\n let lastSnapshotTime = 0;\r\n let rafId;\r\n const getCanvas = () => {\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\r\n matchedCanvas.push(canvas);\r\n }\r\n });\r\n return matchedCanvas;\r\n };\r\n const takeCanvasSnapshots = (timestamp) => {\r\n if (lastSnapshotTime &&\r\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas()\r\n .forEach((canvas) => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n if (canvas.width === 0 || canvas.height === 0)\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (((_a = context === null || context === void 0 ? void 0 : context.getContextAttributes()) === null || _a === void 0 ? void 0 : _a.preserveDrawingBuffer) === false) {\r\n context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n const bitmap = yield createImageBitmap(canvas);\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions: options.dataURLOptions,\r\n }, [bitmap]);\r\n }));\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, false);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n }\r\n flushPendingCanvasMutations() {\r\n this.pendingCanvasMutations.forEach((values, canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n this.flushPendingCanvasMutationFor(canvas, id);\r\n });\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n flushPendingCanvasMutationFor(canvas, id) {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\r\n if (!valuesWithType || id === -1)\r\n return;\r\n const values = valuesWithType.map((value) => {\r\n const rest = __rest(value, [\"type\"]);\r\n return rest;\r\n });\r\n const { type } = valuesWithType[0];\r\n this.mutationCb({ id, type, commands: values });\r\n this.pendingCanvasMutations.delete(canvas);\r\n }\r\n}\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n styles.push({\r\n styleId,\r\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\r\n rule: stringifyRule(r),\r\n index,\r\n })),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nclass ProcessedNodeManager {\r\n constructor() {\r\n this.nodeMap = new WeakMap();\r\n this.loop = true;\r\n this.periodicallyClear();\r\n }\r\n periodicallyClear() {\r\n requestAnimationFrame(() => {\r\n this.clear();\r\n if (this.loop)\r\n this.periodicallyClear();\r\n });\r\n }\r\n inOtherBuffer(node, thisBuffer) {\r\n const buffers = this.nodeMap.get(node);\r\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\r\n }\r\n add(node, buffer) {\r\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\r\n }\r\n clear() {\r\n this.nodeMap = new WeakMap();\r\n }\r\n destroy() {\r\n this.loop = false;\r\n }\r\n}\n\nfunction wrapEvent(e) {\r\n return Object.assign(Object.assign({}, e), { timestamp: nowTimestamp() });\r\n}\r\nlet wrappedEmit;\r\nlet takeFullSnapshot;\r\nlet canvasManager;\r\nlet recording = false;\r\nconst mirror = createMirror();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskInputFn, maskTextFn, hooks, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordDOM = true, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\r\n ? options.recordAfter\r\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, } = options;\r\n registerErrorHandler(errorHandler);\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n if (window.parent.document) {\r\n passEmitsToParent = false;\r\n }\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : { password: true };\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn &&\r\n !passEmitsToParent) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (e, isCheckout) => {\r\n var _a;\r\n if (((_a = mutationBuffers[0]) === null || _a === void 0 ? void 0 : _a.isFrozen()) &&\r\n e.type !== EventType$1.FullSnapshot &&\r\n !(e.type === EventType$1.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource$1.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit === null || emit === void 0 ? void 0 : emit(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n origin: window.location.origin,\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType$1.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType$1.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource$1.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Mutation }, m),\r\n }));\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Scroll }, p),\r\n }));\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.CanvasMutation }, p),\r\n }));\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.AdoptedStyleSheet }, a),\r\n }));\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n const processedNodeManager = new ProcessedNodeManager();\r\n canvasManager = new CanvasManager({\r\n recordCanvas,\r\n mutationCb: wrappedCanvasMutationEmit,\r\n win: window,\r\n blockClass,\r\n blockSelector,\r\n mirror,\r\n sampling: sampling.canvas,\r\n dataURLOptions,\r\n });\r\n const shadowDomManager = new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n processedNodeManager,\r\n },\r\n mirror,\r\n });\r\n takeFullSnapshot = (isCheckout = false) => {\r\n if (!recordDOM) {\r\n return;\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }), isCheckout);\r\n stylesheetManager.reset();\r\n shadowDomManager.init();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: getWindowScroll(window),\r\n },\r\n }), isCheckout);\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n try {\r\n const handlers = [];\r\n const observe = (doc) => {\r\n var _a;\r\n return callbackWrapper(initObservers)({\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n })),\r\n mouseInteractionCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.MouseInteraction }, d),\r\n })),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.ViewportResize }, d),\r\n })),\r\n inputCb: (v) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Input }, v),\r\n })),\r\n mediaInteractionCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.MediaInteraction }, p),\r\n })),\r\n styleSheetRuleCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.StyleSheetRule }, r),\r\n })),\r\n styleDeclarationCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.StyleDeclaration }, r),\r\n })),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Font }, p),\r\n })),\r\n selectionCb: (p) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Selection }, p),\r\n }));\r\n },\r\n customElementCb: (c) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.CustomElement }, c),\r\n }));\r\n },\r\n blockClass,\r\n ignoreClass,\r\n ignoreSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordDOM,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n processedNodeManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.filter((p) => p.observer)) === null || _a === void 0 ? void 0 : _a.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit(wrapEvent({\r\n type: EventType$1.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n })),\r\n }))) || [],\r\n }, hooks);\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n try {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n recording = true;\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.DomContentLoaded,\r\n data: {},\r\n }));\r\n if (recordAfter === 'DOMContentLoaded')\r\n init();\r\n }));\r\n handlers.push(on('load', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.Load,\r\n data: {},\r\n }));\r\n if (recordAfter === 'load')\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n processedNodeManager.destroy();\r\n recording = false;\r\n unregisterErrorHandler();\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nrecord.addCustomEvent = (tag, payload) => {\r\n if (!recording) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n }));\r\n};\r\nrecord.freezePage = () => {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n};\r\nrecord.takeFullSnapshot = (isCheckout) => {\r\n if (!recording) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n takeFullSnapshot(isCheckout);\r\n};\r\nrecord.mirror = mirror;\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 || {});\n\nvar Config = {\n DEBUG: false,\n LIB_VERSION: '2.60.0'\n};\n\n// since es6 imports are static and we run unit tests from the console, window won't be defined when importing this file\nvar win;\nif (typeof(window) === 'undefined') {\n var loc = {\n hostname: ''\n };\n win = {\n navigator: { userAgent: '', onLine: true },\n document: {\n createElement: function() { return {}; },\n location: loc,\n referrer: ''\n },\n screen: { width: 0, height: 0 },\n location: loc,\n addEventListener: function() {},\n removeEventListener: function() {}\n };\n} else {\n win = window;\n}\n\nvar setImmediate = win['setImmediate'];\nvar builtInProp, cycle, schedulingQueue,\n ToString = Object.prototype.toString,\n timer = (typeof setImmediate !== 'undefined') ?\n function timer(fn) { return setImmediate(fn); } :\n setTimeout;\n\n// dammit, IE8.\ntry {\n Object.defineProperty({},'x',{});\n builtInProp = function builtInProp(obj,name,val,config) {\n return Object.defineProperty(obj,name,{\n value: val,\n writable: true,\n configurable: config !== false\n });\n };\n}\ncatch (err) {\n builtInProp = function builtInProp(obj,name,val) {\n obj[name] = val;\n return obj;\n };\n}\n\n// Note: using a queue instead of array for efficiency\nschedulingQueue = (function Queue() {\n var first, last, item;\n\n function Item(fn,self) {\n this.fn = fn;\n this.self = self;\n this.next = void 0;\n }\n\n return {\n add: function add(fn,self) {\n item = new Item(fn,self);\n if (last) {\n last.next = item;\n }\n else {\n first = item;\n }\n last = item;\n item = void 0;\n },\n drain: function drain() {\n var f = first;\n first = last = cycle = void 0;\n\n while (f) {\n f.fn.call(f.self);\n f = f.next;\n }\n }\n };\n})();\n\nfunction schedule(fn,self) {\n schedulingQueue.add(fn,self);\n if (!cycle) {\n cycle = timer(schedulingQueue.drain);\n }\n}\n\n// promise duck typing\nfunction isThenable(o) {\n var _then, oType = typeof o;\n\n if (o !== null && (oType === 'object' || oType === 'function')) {\n _then = o.then;\n }\n return typeof _then === 'function' ? _then : false;\n}\n\nfunction notify() {\n for (var i=0; i<this.chain.length; i++) {\n notifyIsolated(\n this,\n (this.state === 1) ? this.chain[i].success : this.chain[i].failure,\n this.chain[i]\n );\n }\n this.chain.length = 0;\n}\n\n// NOTE: This is a separate function to isolate\n// the `try..catch` so that other code can be\n// optimized better\nfunction notifyIsolated(self,cb,chain) {\n var ret, _then;\n try {\n if (cb === false) {\n chain.reject(self.msg);\n }\n else {\n if (cb === true) {\n ret = self.msg;\n }\n else {\n ret = cb.call(void 0,self.msg);\n }\n\n if (ret === chain.promise) {\n chain.reject(TypeError('Promise-chain cycle'));\n }\n // eslint-disable-next-line no-cond-assign\n else if (_then = isThenable(ret)) {\n _then.call(ret,chain.resolve,chain.reject);\n }\n else {\n chain.resolve(ret);\n }\n }\n }\n catch (err) {\n chain.reject(err);\n }\n}\n\nfunction resolve(msg) {\n var _then, self = this;\n\n // already triggered?\n if (self.triggered) { return; }\n\n self.triggered = true;\n\n // unwrap\n if (self.def) {\n self = self.def;\n }\n\n try {\n // eslint-disable-next-line no-cond-assign\n if (_then = isThenable(msg)) {\n schedule(function(){\n var defWrapper = new MakeDefWrapper(self);\n try {\n _then.call(msg,\n function $resolve$(){ resolve.apply(defWrapper,arguments); },\n function $reject$(){ reject.apply(defWrapper,arguments); }\n );\n }\n catch (err) {\n reject.call(defWrapper,err);\n }\n });\n }\n else {\n self.msg = msg;\n self.state = 1;\n if (self.chain.length > 0) {\n schedule(notify,self);\n }\n }\n }\n catch (err) {\n reject.call(new MakeDefWrapper(self),err);\n }\n}\n\nfunction reject(msg) {\n var self = this;\n\n // already triggered?\n if (self.triggered) { return; }\n\n self.triggered = true;\n\n // unwrap\n if (self.def) {\n self = self.def;\n }\n\n self.msg = msg;\n self.state = 2;\n if (self.chain.length > 0) {\n schedule(notify,self);\n }\n}\n\nfunction iteratePromises(Constructor,arr,resolver,rejecter) {\n for (var idx=0; idx<arr.length; idx++) {\n (function IIFE(idx){\n Constructor.resolve(arr[idx])\n .then(\n function $resolver$(msg){\n resolver(idx,msg);\n },\n rejecter\n );\n })(idx);\n }\n}\n\nfunction MakeDefWrapper(self) {\n this.def = self;\n this.triggered = false;\n}\n\nfunction MakeDef(self) {\n this.promise = self;\n this.state = 0;\n this.triggered = false;\n this.chain = [];\n this.msg = void 0;\n}\n\nfunction NpoPromise(executor) {\n if (typeof executor !== 'function') {\n throw TypeError('Not a function');\n }\n\n if (this['__NPO__'] !== 0) {\n throw TypeError('Not a promise');\n }\n\n // instance shadowing the inherited \"brand\"\n // to signal an already \"initialized\" promise\n this['__NPO__'] = 1;\n\n var def = new MakeDef(this);\n\n this['then'] = function then(success,failure) {\n var o = {\n success: typeof success === 'function' ? success : true,\n failure: typeof failure === 'function' ? failure : false\n };\n // Note: `then(..)` itself can be borrowed to be used against\n // a different promise constructor for making the chained promise,\n // by substituting a different `this` binding.\n o.promise = new this.constructor(function extractChain(resolve,reject) {\n if (typeof resolve !== 'function' || typeof reject !== 'function') {\n throw TypeError('Not a function');\n }\n\n o.resolve = resolve;\n o.reject = reject;\n });\n def.chain.push(o);\n\n if (def.state !== 0) {\n schedule(notify,def);\n }\n\n return o.promise;\n };\n this['catch'] = function $catch$(failure) {\n return this.then(void 0,failure);\n };\n\n try {\n executor.call(\n void 0,\n function publicResolve(msg){\n resolve.call(def,msg);\n },\n function publicReject(msg) {\n reject.call(def,msg);\n }\n );\n }\n catch (err) {\n reject.call(def,err);\n }\n}\n\nvar PromisePrototype = builtInProp({},'constructor',NpoPromise,\n /*configurable=*/false\n);\n\n // Note: Android 4 cannot use `Object.defineProperty(..)` here\nNpoPromise.prototype = PromisePrototype;\n\n// built-in \"brand\" to signal an \"uninitialized\" promise\nbuiltInProp(PromisePrototype,'__NPO__',0,\n /*configurable=*/false\n);\n\nbuiltInProp(NpoPromise,'resolve',function Promise$resolve(msg) {\n var Constructor = this;\n\n // spec mandated checks\n // note: best \"isPromise\" check that's practical for now\n if (msg && typeof msg === 'object' && msg['__NPO__'] === 1) {\n return msg;\n }\n\n return new Constructor(function executor(resolve,reject){\n if (typeof resolve !== 'function' || typeof reject !== 'function') {\n throw TypeError('Not a function');\n }\n\n resolve(msg);\n });\n});\n\nbuiltInProp(NpoPromise,'reject',function Promise$reject(msg) {\n return new this(function executor(resolve,reject){\n if (typeof resolve !== 'function' || typeof reject !== 'function') {\n throw TypeError('Not a function');\n }\n\n reject(msg);\n });\n});\n\nbuiltInProp(NpoPromise,'all',function Promise$all(arr) {\n var Constructor = this;\n\n // spec mandated checks\n if (ToString.call(arr) !== '[object Array]') {\n return Constructor.reject(TypeError('Not an array'));\n }\n if (arr.length === 0) {\n return Constructor.resolve([]);\n }\n\n return new Constructor(function executor(resolve,reject){\n if (typeof resolve !== 'function' || typeof reject !== 'function') {\n throw TypeError('Not a function');\n }\n\n var len = arr.length, msgs = Array(len), count = 0;\n\n iteratePromises(Constructor,arr,function resolver(idx,msg) {\n msgs[idx] = msg;\n if (++count === len) {\n resolve(msgs);\n }\n },reject);\n });\n});\n\nbuiltInProp(NpoPromise,'race',function Promise$race(arr) {\n var Constructor = this;\n\n // spec mandated checks\n if (ToString.call(arr) !== '[object Array]') {\n return Constructor.reject(TypeError('Not an array'));\n }\n\n return new Constructor(function executor(resolve,reject){\n if (typeof resolve !== 'function' || typeof reject !== 'function') {\n throw TypeError('Not a function');\n }\n\n iteratePromises(Constructor,arr,function resolver(idx,msg){\n resolve(msg);\n },reject);\n });\n});\n\nvar PromisePolyfill;\nif (typeof Promise !== 'undefined' && Promise.toString().indexOf('[native code]') !== -1) {\n PromisePolyfill = Promise;\n} else {\n PromisePolyfill = NpoPromise;\n}\n\n/* eslint camelcase: \"off\", eqeqeq: \"off\" */\n\n// Maximum allowed session recording length\nvar MAX_RECORDING_MS = 24 * 60 * 60 * 1000; // 24 hours\n// Maximum allowed value for minimum session recording length\nvar MAX_VALUE_FOR_MIN_RECORDING_MS = 8 * 1000; // 8 seconds\n\n/*\n * Saved references to long variable names, so that closure compiler can\n * minimize file size.\n */\n\nvar ArrayProto = Array.prototype,\n FuncProto = Function.prototype,\n ObjProto = Object.prototype,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty,\n windowConsole = win.console,\n navigator = win.navigator,\n document$1 = win.document,\n windowOpera = win.opera,\n screen = win.screen,\n userAgent = navigator.userAgent;\n\nvar nativeBind = FuncProto.bind,\n nativeForEach = ArrayProto.forEach,\n nativeIndexOf = ArrayProto.indexOf,\n nativeMap = ArrayProto.map,\n nativeIsArray = Array.isArray,\n breaker = {};\n\nvar _ = {\n trim: function(str) {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n};\n\n// Console override\nvar console$1 = {\n /** @type {function(...*)} */\n log: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n try {\n windowConsole.log.apply(windowConsole, arguments);\n } catch (err) {\n _.each(arguments, function(arg) {\n windowConsole.log(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n warn: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel warning:'].concat(_.toArray(arguments));\n try {\n windowConsole.warn.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.warn(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n error: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel error:'].concat(_.toArray(arguments));\n try {\n windowConsole.error.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.error(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n critical: function() {\n if (!_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel error:'].concat(_.toArray(arguments));\n try {\n windowConsole.error.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.error(arg);\n });\n }\n }\n }\n};\n\nvar log_func_with_prefix = function(func, prefix) {\n return function() {\n arguments[0] = '[' + prefix + '] ' + arguments[0];\n return func.apply(console$1, arguments);\n };\n};\nvar console_with_prefix = function(prefix) {\n return {\n log: log_func_with_prefix(console$1.log, prefix),\n error: log_func_with_prefix(console$1.error, prefix),\n critical: log_func_with_prefix(console$1.critical, prefix)\n };\n};\n\n\nvar safewrap = function(f) {\n return function() {\n try {\n return f.apply(this, arguments);\n } catch (e) {\n console$1.critical('Implementation error. Please turn on debug and contact support@mixpanel.com.');\n if (Config.DEBUG){\n console$1.critical(e);\n }\n }\n };\n};\n\nvar safewrapClass = function(klass) {\n var proto = klass.prototype;\n for (var func in proto) {\n if (typeof(proto[func]) === 'function') {\n proto[func] = safewrap(proto[func]);\n }\n }\n};\n\n\n// UNDERSCORE\n// Embed part of the Underscore Library\n_.bind = function(func, context) {\n var args, bound;\n if (nativeBind && func.bind === nativeBind) {\n return nativeBind.apply(func, slice.call(arguments, 1));\n }\n if (!_.isFunction(func)) {\n throw new TypeError();\n }\n args = slice.call(arguments, 2);\n bound = function() {\n if (!(this instanceof bound)) {\n return func.apply(context, args.concat(slice.call(arguments)));\n }\n var ctor = {};\n ctor.prototype = func.prototype;\n var self = new ctor();\n ctor.prototype = null;\n var result = func.apply(self, args.concat(slice.call(arguments)));\n if (Object(result) === result) {\n return result;\n }\n return self;\n };\n return bound;\n};\n\n/**\n * @param {*=} obj\n * @param {function(...*)=} iterator\n * @param {Object=} context\n */\n_.each = function(obj, iterator, context) {\n if (obj === null || obj === undefined) {\n return;\n }\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, context);\n } else if (obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) {\n return;\n }\n }\n } else {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n if (iterator.call(context, obj[key], key, obj) === breaker) {\n return;\n }\n }\n }\n }\n};\n\n_.extend = function(obj) {\n _.each(slice.call(arguments, 1), function(source) {\n for (var prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop];\n }\n }\n });\n return obj;\n};\n\n_.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n};\n\n// from a comment on http://dbj.org/dbj/?p=286\n// fails on only one very rare and deliberate custom object:\n// var bomb = { toString : undefined, valueOf: function(o) { return \"function BOMBA!\"; }};\n_.isFunction = function(f) {\n try {\n return /^\\s*\\bfunction\\b/.test(f);\n } catch (x) {\n return false;\n }\n};\n\n_.isArguments = function(obj) {\n return !!(obj && hasOwnProperty.call(obj, 'callee'));\n};\n\n_.toArray = function(iterable) {\n if (!iterable) {\n return [];\n }\n if (iterable.toArray) {\n return iterable.toArray();\n }\n if (_.isArray(iterable)) {\n return slice.call(iterable);\n }\n if (_.isArguments(iterable)) {\n return slice.call(iterable);\n }\n return _.values(iterable);\n};\n\n_.map = function(arr, callback, context) {\n if (nativeMap && arr.map === nativeMap) {\n return arr.map(callback, context);\n } else {\n var results = [];\n _.each(arr, function(item) {\n results.push(callback.call(context, item));\n });\n return results;\n }\n};\n\n_.keys = function(obj) {\n var results = [];\n if (obj === null) {\n return results;\n }\n _.each(obj, function(value, key) {\n results[results.length] = key;\n });\n return results;\n};\n\n_.values = function(obj) {\n var results = [];\n if (obj === null) {\n return results;\n }\n _.each(obj, function(value) {\n results[results.length] = value;\n });\n return results;\n};\n\n_.include = function(obj, target) {\n var found = false;\n if (obj === null) {\n return found;\n }\n if (nativeIndexOf && obj.indexOf === nativeIndexOf) {\n return obj.indexOf(target) != -1;\n }\n _.each(obj, function(value) {\n if (found || (found = (value === target))) {\n return breaker;\n }\n });\n return found;\n};\n\n_.includes = function(str, needle) {\n return str.indexOf(needle) !== -1;\n};\n\n// Underscore Addons\n_.inherit = function(subclass, superclass) {\n subclass.prototype = new superclass();\n subclass.prototype.constructor = subclass;\n subclass.superclass = superclass.prototype;\n return subclass;\n};\n\n_.isObject = function(obj) {\n return (obj === Object(obj) && !_.isArray(obj));\n};\n\n_.isEmptyObject = function(obj) {\n if (_.isObject(obj)) {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n\n_.isUndefined = function(obj) {\n return obj === void 0;\n};\n\n_.isString = function(obj) {\n return toString.call(obj) == '[object String]';\n};\n\n_.isDate = function(obj) {\n return toString.call(obj) == '[object Date]';\n};\n\n_.isNumber = function(obj) {\n return toString.call(obj) == '[object Number]';\n};\n\n_.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n};\n\n_.encodeDates = function(obj) {\n _.each(obj, function(v, k) {\n if (_.isDate(v)) {\n obj[k] = _.formatDate(v);\n } else if (_.isObject(v)) {\n obj[k] = _.encodeDates(v); // recurse\n }\n });\n return obj;\n};\n\n_.timestamp = function() {\n Date.now = Date.now || function() {\n return +new Date;\n };\n return Date.now();\n};\n\n_.formatDate = function(d) {\n // YYYY-MM-DDTHH:MM:SS in UTC\n function pad(n) {\n return n < 10 ? '0' + n : n;\n }\n return d.getUTCFullYear() + '-' +\n pad(d.getUTCMonth() + 1) + '-' +\n pad(d.getUTCDate()) + 'T' +\n pad(d.getUTCHours()) + ':' +\n pad(d.getUTCMinutes()) + ':' +\n pad(d.getUTCSeconds());\n};\n\n_.strip_empty_properties = function(p) {\n var ret = {};\n _.each(p, function(v, k) {\n if (_.isString(v) && v.length > 0) {\n ret[k] = v;\n }\n });\n return ret;\n};\n\n/*\n * this function returns a copy of object after truncating it. If\n * passed an Array or Object it will iterate through obj and\n * truncate all the values recursively.\n */\n_.truncate = function(obj, length) {\n var ret;\n\n if (typeof(obj) === 'string') {\n ret = obj.slice(0, length);\n } else if (_.isArray(obj)) {\n ret = [];\n _.each(obj, function(val) {\n ret.push(_.truncate(val, length));\n });\n } else if (_.isObject(obj)) {\n ret = {};\n _.each(obj, function(val, key) {\n ret[key] = _.truncate(val, length);\n });\n } else {\n ret = obj;\n }\n\n return ret;\n};\n\n_.JSONEncode = (function() {\n return function(mixed_val) {\n var value = mixed_val;\n var quote = function(string) {\n var escapable = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g; // eslint-disable-line no-control-regex\n var meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n };\n\n escapable.lastIndex = 0;\n return escapable.test(string) ?\n '\"' + string.replace(escapable, function(a) {\n var c = meta[a];\n return typeof c === 'string' ? c :\n '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' :\n '\"' + string + '\"';\n };\n\n var str = function(key, holder) {\n var gap = '';\n var indent = ' ';\n var i = 0; // The loop counter.\n var k = ''; // The member key.\n var v = ''; // The member value.\n var length = 0;\n var mind = gap;\n var partial = [];\n var value = holder[key];\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n // What happens next depends on the value's type.\n switch (typeof value) {\n case 'string':\n return quote(value);\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n // If the value is a boolean or null, convert it to a string. Note:\n // typeof null does not produce 'null'. The case is included here in\n // the remote chance that this gets fixed someday.\n\n return String(value);\n\n case 'object':\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null';\n }\n\n // Make an array to hold the partial results of stringifying this object value.\n gap += indent;\n partial = [];\n\n // Is the value an array?\n if (toString.apply(value) === '[object Array]') {\n // The value is an array. Stringify every element. Use null as a placeholder\n // for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n // Join all of the elements together, separated with commas, and wrap them in\n // brackets.\n v = partial.length === 0 ? '[]' :\n gap ? '[\\n' + gap +\n partial.join(',\\n' + gap) + '\\n' +\n mind + ']' :\n '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n // Iterate through all of the keys in the object.\n for (k in value) {\n if (hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n\n // Join all of the member texts together, separated with commas,\n // and wrap them in braces.\n v = partial.length === 0 ? '{}' :\n gap ? '{' + partial.join(',') + '' +\n mind + '}' : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n };\n\n // Make a fake root object containing our value under the key of ''.\n // Return the result of stringifying the value.\n return str('', {\n '': value\n });\n };\n})();\n\n/**\n * From https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js\n * Slightly modified to throw a real Error rather than a POJO\n */\n_.JSONDecode = (function() {\n var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n 'b': '\\b',\n 'f': '\\f',\n 'n': '\\n',\n 'r': '\\r',\n 't': '\\t'\n },\n text,\n error = function(m) {\n var e = new SyntaxError(m);\n e.at = at;\n e.text = text;\n throw e;\n },\n next = function(c) {\n // If a c parameter is provided, verify that it matches the current character.\n if (c && c !== ch) {\n error('Expected \\'' + c + '\\' instead of \\'' + ch + '\\'');\n }\n // Get the next character. When there are no more characters,\n // return the empty string.\n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n number = function() {\n // Parse a number value.\n var number,\n string = '';\n\n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error('Bad number');\n } else {\n return number;\n }\n },\n\n string = function() {\n // Parse a string value.\n var hex,\n i,\n string = '',\n uffff;\n // When parsing for string values, we must look for \" and \\ characters.\n if (ch === '\"') {\n while (next()) {\n if (ch === '\"') {\n next();\n return string;\n }\n if (ch === '\\\\') {\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n } else {\n string += ch;\n }\n }\n }\n error('Bad string');\n },\n white = function() {\n // Skip whitespace.\n while (ch && ch <= ' ') {\n next();\n }\n },\n word = function() {\n // true, false, or null.\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error('Unexpected \"' + ch + '\"');\n },\n value, // Placeholder for the value function.\n array = function() {\n // Parse an array value.\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error('Bad array');\n },\n object = function() {\n // Parse an object value.\n var key,\n object = {};\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (Object.hasOwnProperty.call(object, key)) {\n error('Duplicate key \"' + key + '\"');\n }\n object[key] = value();\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error('Bad object');\n };\n\n value = function() {\n // Parse a JSON value. It could be an object, an array, a string,\n // a number, or a word.\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n };\n\n // Return the json_parse function. It will have access to all of the\n // above functions and variables.\n return function(source) {\n var result;\n\n text = source;\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error('Syntax error');\n }\n\n return result;\n };\n})();\n\n_.base64Encode = function(data) {\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n enc = '',\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n data = _.utf8Encode(data);\n\n do { // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = o1 << 16 | o2 << 8 | o3;\n\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmp_arr.join('');\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '==';\n break;\n case 2:\n enc = enc.slice(0, -1) + '=';\n break;\n }\n\n return enc;\n};\n\n_.utf8Encode = function(string) {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n\n var utftext = '',\n start,\n end;\n var stringl = 0,\n n;\n\n start = end = 0;\n stringl = string.length;\n\n for (n = 0; n < stringl; n++) {\n var c1 = string.charCodeAt(n);\n var enc = null;\n\n if (c1 < 128) {\n end++;\n } else if ((c1 > 127) && (c1 < 2048)) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128);\n } else {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.substring(start, end);\n }\n utftext += enc;\n start = end = n + 1;\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length);\n }\n\n return utftext;\n};\n\n_.UUID = (function() {\n\n // Time-based entropy\n var T = function() {\n var time = 1 * new Date(); // cross-browser version of Date.now()\n var ticks;\n if (win.performance && win.performance.now) {\n ticks = win.performance.now();\n } else {\n // fall back to busy loop\n ticks = 0;\n\n // this while loop figures how many browser ticks go by\n // before 1*new Date() returns a new number, ie the amount\n // of ticks that go by per millisecond\n while (time == 1 * new Date()) {\n ticks++;\n }\n }\n return time.toString(16) + Math.floor(ticks).toString(16);\n };\n\n // Math.Random entropy\n var R = function() {\n return Math.random().toString(16).replace('.', '');\n };\n\n // User agent entropy\n // This function takes the user agent string, and then xors\n // together each sequence of 8 bytes. This produces a final\n // sequence of 8 bytes which it returns as hex.\n var UA = function() {\n var ua = userAgent,\n i, ch, buffer = [],\n ret = 0;\n\n function xor(result, byte_array) {\n var j, tmp = 0;\n for (j = 0; j < byte_array.length; j++) {\n tmp |= (buffer[j] << j * 8);\n }\n return result ^ tmp;\n }\n\n for (i = 0; i < ua.length; i++) {\n ch = ua.charCodeAt(i);\n buffer.unshift(ch & 0xFF);\n if (buffer.length >= 4) {\n ret = xor(ret, buffer);\n buffer = [];\n }\n }\n\n if (buffer.length > 0) {\n ret = xor(ret, buffer);\n }\n\n return ret.toString(16);\n };\n\n return function() {\n var se = (screen.height * screen.width).toString(16);\n return (T() + '-' + R() + '-' + UA() + '-' + se + '-' + T());\n };\n})();\n\n// _.isBlockedUA()\n// This is to block various web spiders from executing our JS and\n// sending false tracking data\nvar BLOCKED_UA_STRS = [\n 'ahrefsbot',\n 'ahrefssiteaudit',\n 'amazonbot',\n 'baiduspider',\n 'bingbot',\n 'bingpreview',\n 'chrome-lighthouse',\n 'facebookexternal',\n 'petalbot',\n 'pinterest',\n 'screaming frog',\n 'yahoo! slurp',\n 'yandex',\n\n // a whole bunch of goog-specific crawlers\n // https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers\n 'adsbot-google',\n 'apis-google',\n 'duplexweb-google',\n 'feedfetcher-google',\n 'google favicon',\n 'google web preview',\n 'google-read-aloud',\n 'googlebot',\n 'googleweblight',\n 'mediapartners-google',\n 'storebot-google'\n];\n_.isBlockedUA = function(ua) {\n var i;\n ua = ua.toLowerCase();\n for (i = 0; i < BLOCKED_UA_STRS.length; i++) {\n if (ua.indexOf(BLOCKED_UA_STRS[i]) !== -1) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * @param {Object=} formdata\n * @param {string=} arg_separator\n */\n_.HTTPBuildQuery = function(formdata, arg_separator) {\n var use_val, use_key, tmp_arr = [];\n\n if (_.isUndefined(arg_separator)) {\n arg_separator = '&';\n }\n\n _.each(formdata, function(val, key) {\n use_val = encodeURIComponent(val.toString());\n use_key = encodeURIComponent(key);\n tmp_arr[tmp_arr.length] = use_key + '=' + use_val;\n });\n\n return tmp_arr.join(arg_separator);\n};\n\n_.getQueryParam = function(url, param) {\n // Expects a raw URL\n\n param = param.replace(/[[]/g, '\\\\[').replace(/[\\]]/g, '\\\\]');\n var regexS = '[\\\\?&]' + param + '=([^&#]*)',\n regex = new RegExp(regexS),\n results = regex.exec(url);\n if (results === null || (results && typeof(results[1]) !== 'string' && results[1].length)) {\n return '';\n } else {\n var result = results[1];\n try {\n result = decodeURIComponent(result);\n } catch(err) {\n console$1.error('Skipping decoding for malformed query param: ' + result);\n }\n return result.replace(/\\+/g, ' ');\n }\n};\n\n\n// _.cookie\n// Methods partially borrowed from quirksmode.org/js/cookies.html\n_.cookie = {\n get: function(name) {\n var nameEQ = name + '=';\n var ca = document$1.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length));\n }\n }\n return null;\n },\n\n parse: function(name) {\n var cookie;\n try {\n cookie = _.JSONDecode(_.cookie.get(name)) || {};\n } catch (err) {\n // noop\n }\n return cookie;\n },\n\n set_seconds: function(name, value, seconds, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '',\n expires = '',\n secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (seconds) {\n var date = new Date();\n date.setTime(date.getTime() + (seconds * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n document$1.cookie = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n },\n\n set: function(name, value, days, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '', expires = '', secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n var new_cookie_val = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n document$1.cookie = new_cookie_val;\n return new_cookie_val;\n },\n\n remove: function(name, is_cross_subdomain, domain_override) {\n _.cookie.set(name, '', -1, is_cross_subdomain, false, false, domain_override);\n }\n};\n\nvar _localStorageSupported = null;\nvar localStorageSupported = function(storage, forceCheck) {\n if (_localStorageSupported !== null && !forceCheck) {\n return _localStorageSupported;\n }\n\n var supported = true;\n try {\n storage = storage || win.localStorage;\n var key = '__mplss_' + cheap_guid(8),\n val = 'xyz';\n storage.setItem(key, val);\n if (storage.getItem(key) !== val) {\n supported = false;\n }\n storage.removeItem(key);\n } catch (err) {\n supported = false;\n }\n\n _localStorageSupported = supported;\n return supported;\n};\n\n// _.localStorage\n_.localStorage = {\n is_supported: function(force_check) {\n var supported = localStorageSupported(null, force_check);\n if (!supported) {\n console$1.error('localStorage unsupported; falling back to cookie store');\n }\n return supported;\n },\n\n error: function(msg) {\n console$1.error('localStorage error: ' + msg);\n },\n\n get: function(name) {\n try {\n return win.localStorage.getItem(name);\n } catch (err) {\n _.localStorage.error(err);\n }\n return null;\n },\n\n parse: function(name) {\n try {\n return _.JSONDecode(_.localStorage.get(name)) || {};\n } catch (err) {\n // noop\n }\n return null;\n },\n\n set: function(name, value) {\n try {\n win.localStorage.setItem(name, value);\n } catch (err) {\n _.localStorage.error(err);\n }\n },\n\n remove: function(name) {\n try {\n win.localStorage.removeItem(name);\n } catch (err) {\n _.localStorage.error(err);\n }\n }\n};\n\n_.register_event = (function() {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from Mixpanel\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n var register_event = function(element, type, handler, oldSchool, useCapture) {\n if (!element) {\n console$1.error('No valid element provided to register_event');\n return;\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture);\n } else {\n var ontype = 'on' + type;\n var old_handler = element[ontype]; // can be undefined\n element[ontype] = makeHandler(element, handler, old_handler);\n }\n };\n\n function makeHandler(element, new_handler, old_handlers) {\n var handler = function(event) {\n event = event || fixEvent(win.event);\n\n // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n if (!event) {\n return undefined;\n }\n\n var ret = true;\n var old_result, new_result;\n\n if (_.isFunction(old_handlers)) {\n old_result = old_handlers(event);\n }\n new_result = new_handler.call(element, event);\n\n if ((false === old_result) || (false === new_result)) {\n ret = false;\n }\n\n return ret;\n };\n\n return handler;\n }\n\n function fixEvent(event) {\n if (event) {\n event.preventDefault = fixEvent.preventDefault;\n event.stopPropagation = fixEvent.stopPropagation;\n }\n return event;\n }\n fixEvent.preventDefault = function() {\n this.returnValue = false;\n };\n fixEvent.stopPropagation = function() {\n this.cancelBubble = true;\n };\n\n return register_event;\n})();\n\n\nvar TOKEN_MATCH_REGEX = new RegExp('^(\\\\w*)\\\\[(\\\\w+)([=~\\\\|\\\\^\\\\$\\\\*]?)=?\"?([^\\\\]\"]*)\"?\\\\]$');\n\n_.dom_query = (function() {\n /* document.getElementsBySelector(selector)\n - returns an array of element objects from the current document\n matching the CSS selector. Selectors can contain element names,\n class names and ids and can be nested. For example:\n\n elements = document.getElementsBySelector('div#main p a.external')\n\n Will return an array of all 'a' elements with 'external' in their\n class attribute that are contained inside 'p' elements that are\n contained inside the 'div' element which has id=\"main\"\n\n New in version 0.4: Support for CSS2 and CSS3 attribute selectors:\n See http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\n Version 0.4 - Simon Willison, March 25th 2003\n -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows\n -- Opera 7 fails\n\n Version 0.5 - Carl Sverre, Jan 7th 2013\n -- Now uses jQuery-esque `hasClass` for testing class name\n equality. This fixes a bug related to '-' characters being\n considered not part of a 'word' in regex.\n */\n\n function getAllChildren(e) {\n // Returns all children of element. Workaround required for IE5/Windows. Ugh.\n return e.all ? e.all : e.getElementsByTagName('*');\n }\n\n var bad_whitespace = /[\\t\\r\\n]/g;\n\n function hasClass(elem, selector) {\n var className = ' ' + selector + ' ';\n return ((' ' + elem.className + ' ').replace(bad_whitespace, ' ').indexOf(className) >= 0);\n }\n\n function getElementsBySelector(selector) {\n // Attempt to fail gracefully in lesser browsers\n if (!document$1.getElementsByTagName) {\n return [];\n }\n // Split selector in to tokens\n var tokens = selector.split(' ');\n var token, bits, tagName, found, foundCount, i, j, k, elements, currentContextIndex;\n var currentContext = [document$1];\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i].replace(/^\\s+/, '').replace(/\\s+$/, '');\n if (token.indexOf('#') > -1) {\n // Token is an ID selector\n bits = token.split('#');\n tagName = bits[0];\n var id = bits[1];\n var element = document$1.getElementById(id);\n if (!element || (tagName && element.nodeName.toLowerCase() != tagName)) {\n // element not found or tag with that ID not found, return false\n return [];\n }\n // Set currentContext to contain just this element\n currentContext = [element];\n continue; // Skip to next token\n }\n if (token.indexOf('.') > -1) {\n // Token contains a class selector\n bits = token.split('.');\n tagName = bits[0];\n var className = bits[1];\n if (!tagName) {\n tagName = '*';\n }\n // Get elements matching tag, filter them for class selector\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (found[j].className &&\n _.isString(found[j].className) && // some SVG elements have classNames which are not strings\n hasClass(found[j], className)\n ) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n continue; // Skip to next token\n }\n // Code to deal with attribute selectors\n var token_match = token.match(TOKEN_MATCH_REGEX);\n if (token_match) {\n tagName = token_match[1];\n var attrName = token_match[2];\n var attrOperator = token_match[3];\n var attrValue = token_match[4];\n if (!tagName) {\n tagName = '*';\n }\n // Grab all of the tagName elements within current context\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n var checkFunction; // This function will be used to filter the elements\n switch (attrOperator) {\n case '=': // Equality\n checkFunction = function(e) {\n return (e.getAttribute(attrName) == attrValue);\n };\n break;\n case '~': // Match one of space seperated words\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('\\\\b' + attrValue + '\\\\b')));\n };\n break;\n case '|': // Match start with value followed by optional hyphen\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('^' + attrValue + '-?')));\n };\n break;\n case '^': // Match starts with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) === 0);\n };\n break;\n case '$': // Match ends with value - fails with \"Warning\" in Opera 7\n checkFunction = function(e) {\n return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length);\n };\n break;\n case '*': // Match ends with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) > -1);\n };\n break;\n default:\n // Just test for existence of attribute\n checkFunction = function(e) {\n return e.getAttribute(attrName);\n };\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (checkFunction(found[j])) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue);\n continue; // Skip to next token\n }\n // If we get here, token is JUST an element (not a class or ID selector)\n tagName = token;\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n elements = currentContext[j].getElementsByTagName(tagName);\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = found;\n }\n return currentContext;\n }\n\n return function(query) {\n if (_.isElement(query)) {\n return [query];\n } else if (_.isObject(query) && !_.isUndefined(query.length)) {\n return query;\n } else {\n return getElementsBySelector.call(this, query);\n }\n };\n})();\n\nvar CAMPAIGN_KEYWORDS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term', 'utm_id', 'utm_source_platform','utm_campaign_id', 'utm_creative_format', 'utm_marketing_tactic'];\nvar CLICK_IDS = ['dclid', 'fbclid', 'gclid', 'ko_click_id', 'li_fat_id', 'msclkid', 'sccid', 'ttclid', 'twclid', 'wbraid'];\n\n_.info = {\n campaignParams: function(default_value) {\n var kw = '',\n params = {};\n _.each(CAMPAIGN_KEYWORDS, function(kwkey) {\n kw = _.getQueryParam(document$1.URL, kwkey);\n if (kw.length) {\n params[kwkey] = kw;\n } else if (default_value !== undefined) {\n params[kwkey] = default_value;\n }\n });\n\n return params;\n },\n\n clickParams: function() {\n var id = '',\n params = {};\n _.each(CLICK_IDS, function(idkey) {\n id = _.getQueryParam(document$1.URL, idkey);\n if (id.length) {\n params[idkey] = id;\n }\n });\n\n return params;\n },\n\n marketingParams: function() {\n return _.extend(_.info.campaignParams(), _.info.clickParams());\n },\n\n searchEngine: function(referrer) {\n if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\n return 'google';\n } else if (referrer.search('https?://(.*)bing.com') === 0) {\n return 'bing';\n } else if (referrer.search('https?://(.*)yahoo.com') === 0) {\n return 'yahoo';\n } else if (referrer.search('https?://(.*)duckduckgo.com') === 0) {\n return 'duckduckgo';\n } else {\n return null;\n }\n },\n\n searchInfo: function(referrer) {\n var search = _.info.searchEngine(referrer),\n param = (search != 'yahoo') ? 'q' : 'p',\n ret = {};\n\n if (search !== null) {\n ret['$search_engine'] = search;\n\n var keyword = _.getQueryParam(referrer, param);\n if (keyword.length) {\n ret['mp_keyword'] = keyword;\n }\n }\n\n return ret;\n },\n\n /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include key words used in later checks.\n */\n browser: function(user_agent, vendor, opera) {\n vendor = vendor || ''; // vendor is undefined for at least IE9\n if (opera || _.includes(user_agent, ' OPR/')) {\n if (_.includes(user_agent, 'Mini')) {\n return 'Opera Mini';\n }\n return 'Opera';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (_.includes(user_agent, 'IEMobile') || _.includes(user_agent, 'WPDesktop')) {\n return 'Internet Explorer Mobile';\n } else if (_.includes(user_agent, 'SamsungBrowser/')) {\n // https://developer.samsung.com/internet/user-agent-string-format\n return 'Samsung Internet';\n } else if (_.includes(user_agent, 'Edge') || _.includes(user_agent, 'Edg/')) {\n return 'Microsoft Edge';\n } else if (_.includes(user_agent, 'FBIOS')) {\n return 'Facebook Mobile';\n } else if (_.includes(user_agent, 'Chrome')) {\n return 'Chrome';\n } else if (_.includes(user_agent, 'CriOS')) {\n return 'Chrome iOS';\n } else if (_.includes(user_agent, 'UCWEB') || _.includes(user_agent, 'UCBrowser')) {\n return 'UC Browser';\n } else if (_.includes(user_agent, 'FxiOS')) {\n return 'Firefox iOS';\n } else if (_.includes(vendor, 'Apple')) {\n if (_.includes(user_agent, 'Mobile')) {\n return 'Mobile Safari';\n }\n return 'Safari';\n } else if (_.includes(user_agent, 'Android')) {\n return 'Android Mobile';\n } else if (_.includes(user_agent, 'Konqueror')) {\n return 'Konqueror';\n } else if (_.includes(user_agent, 'Firefox')) {\n return 'Firefox';\n } else if (_.includes(user_agent, 'MSIE') || _.includes(user_agent, 'Trident/')) {\n return 'Internet Explorer';\n } else if (_.includes(user_agent, 'Gecko')) {\n return 'Mozilla';\n } else {\n return '';\n }\n },\n\n /**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n */\n browserVersion: function(userAgent, vendor, opera) {\n var browser = _.info.browser(userAgent, vendor, opera);\n var versionRegexs = {\n 'Internet Explorer Mobile': /rv:(\\d+(\\.\\d+)?)/,\n 'Microsoft Edge': /Edge?\\/(\\d+(\\.\\d+)?)/,\n 'Chrome': /Chrome\\/(\\d+(\\.\\d+)?)/,\n 'Chrome iOS': /CriOS\\/(\\d+(\\.\\d+)?)/,\n 'UC Browser' : /(UCBrowser|UCWEB)\\/(\\d+(\\.\\d+)?)/,\n 'Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Mobile Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Opera': /(Opera|OPR)\\/(\\d+(\\.\\d+)?)/,\n 'Firefox': /Firefox\\/(\\d+(\\.\\d+)?)/,\n 'Firefox iOS': /FxiOS\\/(\\d+(\\.\\d+)?)/,\n 'Konqueror': /Konqueror:(\\d+(\\.\\d+)?)/,\n 'BlackBerry': /BlackBerry (\\d+(\\.\\d+)?)/,\n 'Android Mobile': /android\\s(\\d+(\\.\\d+)?)/,\n 'Samsung Internet': /SamsungBrowser\\/(\\d+(\\.\\d+)?)/,\n 'Internet Explorer': /(rv:|MSIE )(\\d+(\\.\\d+)?)/,\n 'Mozilla': /rv:(\\d+(\\.\\d+)?)/\n };\n var regex = versionRegexs[browser];\n if (regex === undefined) {\n return null;\n }\n var matches = userAgent.match(regex);\n if (!matches) {\n return null;\n }\n return parseFloat(matches[matches.length - 2]);\n },\n\n os: function() {\n var a = userAgent;\n if (/Windows/i.test(a)) {\n if (/Phone/.test(a) || /WPDesktop/.test(a)) {\n return 'Windows Phone';\n }\n return 'Windows';\n } else if (/(iPhone|iPad|iPod)/.test(a)) {\n return 'iOS';\n } else if (/Android/.test(a)) {\n return 'Android';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(a)) {\n return 'BlackBerry';\n } else if (/Mac/i.test(a)) {\n return 'Mac OS X';\n } else if (/Linux/.test(a)) {\n return 'Linux';\n } else if (/CrOS/.test(a)) {\n return 'Chrome OS';\n } else {\n return '';\n }\n },\n\n device: function(user_agent) {\n if (/Windows Phone/i.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return 'Windows Phone';\n } else if (/iPad/.test(user_agent)) {\n return 'iPad';\n } else if (/iPod/.test(user_agent)) {\n return 'iPod Touch';\n } else if (/iPhone/.test(user_agent)) {\n return 'iPhone';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (/Android/.test(user_agent)) {\n return 'Android';\n } else {\n return '';\n }\n },\n\n referringDomain: function(referrer) {\n var split = referrer.split('/');\n if (split.length >= 3) {\n return split[2];\n }\n return '';\n },\n\n currentUrl: function() {\n return win.location.href;\n },\n\n properties: function(extra_props) {\n if (typeof extra_props !== 'object') {\n extra_props = {};\n }\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera),\n '$referrer': document$1.referrer,\n '$referring_domain': _.info.referringDomain(document$1.referrer),\n '$device': _.info.device(userAgent)\n }), {\n '$current_url': _.info.currentUrl(),\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera),\n '$screen_height': screen.height,\n '$screen_width': screen.width,\n 'mp_lib': 'web',\n '$lib_version': Config.LIB_VERSION,\n '$insert_id': cheap_guid(),\n 'time': _.timestamp() / 1000 // epoch time in seconds\n }, _.strip_empty_properties(extra_props));\n },\n\n people_properties: function() {\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera)\n }), {\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera)\n });\n },\n\n mpPageViewProperties: function() {\n return _.strip_empty_properties({\n 'current_page_title': document$1.title,\n 'current_domain': win.location.hostname,\n 'current_url_path': win.location.pathname,\n 'current_url_protocol': win.location.protocol,\n 'current_url_search': win.location.search\n });\n }\n};\n\nvar cheap_guid = function(maxlen) {\n var guid = Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10);\n return maxlen ? guid.substring(0, maxlen) : guid;\n};\n\n// naive way to extract domain name (example.com) from full hostname (my.sub.example.com)\nvar SIMPLE_DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]*\\.[a-z]+$/i;\n// this next one attempts to account for some ccSLDs, e.g. extracting oxford.ac.uk from www.oxford.ac.uk\nvar DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]+\\.[a-z.]{2,6}$/i;\n/**\n * Attempts to extract main domain name from full hostname, using a few blunt heuristics. For\n * common TLDs like .com/.org that always have a simple SLD.TLD structure (example.com), we\n * simply extract the last two .-separated parts of the hostname (SIMPLE_DOMAIN_MATCH_REGEX).\n * For others, we attempt to account for short ccSLD+TLD combos (.ac.uk) with the legacy\n * DOMAIN_MATCH_REGEX (kept to maintain backwards compatibility with existing Mixpanel\n * integrations). The only _reliable_ way to extract domain from hostname is with an up-to-date\n * list like at https://publicsuffix.org/ so for cases that this helper fails at, the SDK\n * offers the 'cookie_domain' config option to set it explicitly.\n * @example\n * extract_domain('my.sub.example.com')\n * // 'example.com'\n */\nvar extract_domain = function(hostname) {\n var domain_regex = DOMAIN_MATCH_REGEX;\n var parts = hostname.split('.');\n var tld = parts[parts.length - 1];\n if (tld.length > 4 || tld === 'com' || tld === 'org') {\n domain_regex = SIMPLE_DOMAIN_MATCH_REGEX;\n }\n var matches = hostname.match(domain_regex);\n return matches ? matches[0] : '';\n};\n\n/**\n * Check whether we have network connection. default to true for browsers that don't support navigator.onLine (IE)\n * @returns {boolean}\n */\nvar isOnline = function() {\n var onLine = win.navigator['onLine'];\n return _.isUndefined(onLine) || onLine;\n};\n\nvar JSONStringify = null, JSONParse = null;\nif (typeof JSON !== 'undefined') {\n JSONStringify = JSON.stringify;\n JSONParse = JSON.parse;\n}\nJSONStringify = JSONStringify || _.JSONEncode;\nJSONParse = JSONParse || _.JSONDecode;\n\n// EXPORTS (for closure compiler)\n_['toArray'] = _.toArray;\n_['isObject'] = _.isObject;\n_['JSONEncode'] = _.JSONEncode;\n_['JSONDecode'] = _.JSONDecode;\n_['isBlockedUA'] = _.isBlockedUA;\n_['isEmptyObject'] = _.isEmptyObject;\n_['info'] = _.info;\n_['info']['device'] = _.info.device;\n_['info']['browser'] = _.info.browser;\n_['info']['browserVersion'] = _.info.browserVersion;\n_['info']['properties'] = _.info.properties;\n_['NPO'] = NpoPromise;\n\n/**\n * GDPR utils\n *\n * The General Data Protection Regulation (GDPR) is a regulation in EU law on data protection\n * and privacy for all individuals within the European Union. It addresses the export of personal\n * data outside the EU. The GDPR aims primarily to give control back to citizens and residents\n * over their personal data and to simplify the regulatory environment for international business\n * by unifying the regulation within the EU.\n *\n * This set of utilities is intended to enable opt in/out functionality in the Mixpanel JS SDK.\n * These functions are used internally by the SDK and are not intended to be publicly exposed.\n */\n\n/**\n * A function used to track a Mixpanel event (e.g. MixpanelLib.track)\n * @callback trackFunction\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n */\n\n/** Public **/\n\nvar GDPR_DEFAULT_PERSISTENCE_PREFIX = '__mp_opt_in_out_';\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction optIn(token, options) {\n _optInOut(true, token, options);\n}\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-out cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-out cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-out cookie is set as secure or not\n */\nfunction optOut(token, options) {\n _optInOut(false, token, options);\n}\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} whether the user has opted in to the given opt type\n */\nfunction hasOptedIn(token, options) {\n return _getStorageValue(token, options) === '1';\n}\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the user has opted out of the given opt type\n */\nfunction hasOptedOut(token, options) {\n if (_hasDoNotTrackFlagOn(options)) {\n console$1.warn('This browser has \"Do Not Track\" enabled. This will prevent the Mixpanel SDK from sending any data. To ignore the \"Do Not Track\" browser setting, initialize the Mixpanel instance with the config \"ignore_dnt: true\"');\n return true;\n }\n var optedOut = _getStorageValue(token, options) === '0';\n if (optedOut) {\n console$1.warn('You are opted out of Mixpanel tracking. This will prevent the Mixpanel SDK from sending any data.');\n }\n return optedOut;\n}\n\n/**\n * Wrap a MixpanelLib method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelLib(method) {\n return _addOptOutCheck(method, function(name) {\n return this.get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelPeople method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelPeople(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelGroup method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelGroup(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction clearOptInOut(token, options) {\n options = options || {};\n _getStorage(options).remove(\n _getStorageKey(token, options), !!options.crossSubdomainCookie, options.cookieDomain\n );\n}\n\n/** Private **/\n\n/**\n * Get storage util\n * @param {Object} [options]\n * @param {string} [options.persistenceType]\n * @returns {object} either _.cookie or _.localstorage\n */\nfunction _getStorage(options) {\n options = options || {};\n return options.persistenceType === 'localStorage' ? _.localStorage : _.cookie;\n}\n\n/**\n * Get the name of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the name of the cookie for the given opt type\n */\nfunction _getStorageKey(token, options) {\n options = options || {};\n return (options.persistencePrefix || GDPR_DEFAULT_PERSISTENCE_PREFIX) + token;\n}\n\n/**\n * Get the value of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the value of the cookie for the given opt type\n */\nfunction _getStorageValue(token, options) {\n return _getStorage(options).get(_getStorageKey(token, options));\n}\n\n/**\n * Check whether the user has set the DNT/doNotTrack setting to true in their browser\n * @param {Object} [options]\n * @param {string} [options.window] - alternate window object to check; used to force various DNT settings in browser tests\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the DNT setting is true\n */\nfunction _hasDoNotTrackFlagOn(options) {\n if (options && options.ignoreDnt) {\n return false;\n }\n var win$1 = (options && options.window) || win;\n var nav = win$1['navigator'] || {};\n var hasDntOn = false;\n\n _.each([\n nav['doNotTrack'], // standard\n nav['msDoNotTrack'],\n win$1['doNotTrack']\n ], function(dntValue) {\n if (_.includes([true, 1, '1', 'yes'], dntValue)) {\n hasDntOn = true;\n }\n });\n\n return hasDntOn;\n}\n\n/**\n * Set cookie/localstorage for the user indicating that they are opted in or out for the given opt type\n * @param {boolean} optValue - whether to opt the user in or out for the given opt type\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction _optInOut(optValue, token, options) {\n if (!_.isString(token) || !token.length) {\n console$1.error('gdpr.' + (optValue ? 'optIn' : 'optOut') + ' called with an invalid token');\n return;\n }\n\n options = options || {};\n\n _getStorage(options).set(\n _getStorageKey(token, options),\n optValue ? 1 : 0,\n _.isNumber(options.cookieExpiration) ? options.cookieExpiration : null,\n !!options.crossSubdomainCookie,\n !!options.secureCookie,\n !!options.crossSiteCookie,\n options.cookieDomain\n );\n\n if (options.track && optValue) { // only track event if opting in (optValue=true)\n options.track(options.trackEventName || '$opt_in', options.trackProperties, {\n 'send_immediately': true\n });\n }\n}\n\n/**\n * Wrap a method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @param {function} getConfigValue - getter function for the Mixpanel API token and other options to be used with opt-out check\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction _addOptOutCheck(method, getConfigValue) {\n return function() {\n var optedOut = false;\n\n try {\n var token = getConfigValue.call(this, 'token');\n var ignoreDnt = getConfigValue.call(this, 'ignore_dnt');\n var persistenceType = getConfigValue.call(this, 'opt_out_tracking_persistence_type');\n var persistencePrefix = getConfigValue.call(this, 'opt_out_tracking_cookie_prefix');\n var win = getConfigValue.call(this, 'window'); // used to override window during browser tests\n\n if (token) { // if there was an issue getting the token, continue method execution as normal\n optedOut = hasOptedOut(token, {\n ignoreDnt: ignoreDnt,\n persistenceType: persistenceType,\n persistencePrefix: persistencePrefix,\n window: win\n });\n }\n } catch(err) {\n console$1.error('Unexpected error when checking tracking opt-out status: ' + err);\n }\n\n if (!optedOut) {\n return method.apply(this, arguments);\n }\n\n var callback = arguments[arguments.length - 1];\n if (typeof(callback) === 'function') {\n callback(0);\n }\n\n return;\n };\n}\n\nvar logger$5 = console_with_prefix('lock');\n\n/**\n * SharedLock: a mutex built on HTML5 localStorage, to ensure that only one browser\n * window/tab at a time will be able to access shared resources.\n *\n * Based on the Alur and Taubenfeld fast lock\n * (http://www.cs.rochester.edu/research/synchronization/pseudocode/fastlock.html)\n * with an added timeout to ensure there will be eventual progress in the event\n * that a window is closed in the middle of the callback.\n *\n * Implementation based on the original version by David Wolever (https://github.com/wolever)\n * at https://gist.github.com/wolever/5fd7573d1ef6166e8f8c4af286a69432.\n *\n * @example\n * const myLock = new SharedLock('some-key');\n * myLock.withLock(function() {\n * console.log('I hold the mutex!');\n * });\n *\n * @constructor\n */\nvar SharedLock = function(key, options) {\n options = options || {};\n\n this.storageKey = key;\n this.storage = options.storage || window.localStorage;\n this.pollIntervalMS = options.pollIntervalMS || 100;\n this.timeoutMS = options.timeoutMS || 2000;\n\n // dependency-inject promise implementation for testing purposes\n this.promiseImpl = options.promiseImpl || PromisePolyfill;\n};\n\n// pass in a specific pid to test contention scenarios; otherwise\n// it is chosen randomly for each acquisition attempt\nSharedLock.prototype.withLock = function(lockedCB, pid) {\n var Promise = this.promiseImpl;\n return new Promise(_.bind(function (resolve, reject) {\n var i = pid || (new Date().getTime() + '|' + Math.random());\n var startTime = new Date().getTime();\n\n var key = this.storageKey;\n var pollIntervalMS = this.pollIntervalMS;\n var timeoutMS = this.timeoutMS;\n var storage = this.storage;\n\n var keyX = key + ':X';\n var keyY = key + ':Y';\n var keyZ = key + ':Z';\n\n var delay = function(cb) {\n if (new Date().getTime() - startTime > timeoutMS) {\n logger$5.error('Timeout waiting for mutex on ' + key + '; clearing lock. [' + i + ']');\n storage.removeItem(keyZ);\n storage.removeItem(keyY);\n loop();\n return;\n }\n setTimeout(function() {\n try {\n cb();\n } catch(err) {\n reject(err);\n }\n }, pollIntervalMS * (Math.random() + 0.1));\n };\n\n var waitFor = function(predicate, cb) {\n if (predicate()) {\n cb();\n } else {\n delay(function() {\n waitFor(predicate, cb);\n });\n }\n };\n\n var getSetY = function() {\n var valY = storage.getItem(keyY);\n if (valY && valY !== i) { // if Y == i then this process already has the lock (useful for test cases)\n return false;\n } else {\n storage.setItem(keyY, i);\n if (storage.getItem(keyY) === i) {\n return true;\n } else {\n if (!localStorageSupported(storage, true)) {\n reject(new Error('localStorage support dropped while acquiring lock'));\n }\n return false;\n }\n }\n };\n\n var loop = function() {\n storage.setItem(keyX, i);\n\n waitFor(getSetY, function() {\n if (storage.getItem(keyX) === i) {\n criticalSection();\n return;\n }\n\n delay(function() {\n if (storage.getItem(keyY) !== i) {\n loop();\n return;\n }\n waitFor(function() {\n return !storage.getItem(keyZ);\n }, criticalSection);\n });\n });\n };\n\n var criticalSection = function() {\n storage.setItem(keyZ, '1');\n var removeLock = function () {\n storage.removeItem(keyZ);\n if (storage.getItem(keyY) === i) {\n storage.removeItem(keyY);\n }\n if (storage.getItem(keyX) === i) {\n storage.removeItem(keyX);\n }\n };\n\n lockedCB()\n .then(function (ret) {\n removeLock();\n resolve(ret);\n })\n .catch(function (err) {\n removeLock();\n reject(err);\n });\n };\n\n try {\n if (localStorageSupported(storage, true)) {\n loop();\n } else {\n throw new Error('localStorage support check failed');\n }\n } catch(err) {\n reject(err);\n }\n }, this));\n};\n\n/**\n * @typedef {import('./wrapper').StorageWrapper}\n */\n\n/**\n * @type {StorageWrapper}\n */\nvar LocalStorageWrapper = function (storageOverride) {\n this.storage = storageOverride || localStorage;\n};\n\nLocalStorageWrapper.prototype.init = function () {\n return PromisePolyfill.resolve();\n};\n\nLocalStorageWrapper.prototype.setItem = function (key, value) {\n return new PromisePolyfill(_.bind(function (resolve, reject) {\n try {\n this.storage.setItem(key, value);\n } catch (e) {\n reject(e);\n }\n resolve();\n }, this));\n};\n\nLocalStorageWrapper.prototype.getItem = function (key) {\n return new PromisePolyfill(_.bind(function (resolve, reject) {\n var item;\n try {\n item = this.storage.getItem(key);\n } catch (e) {\n reject(e);\n }\n resolve(item);\n }, this));\n};\n\nLocalStorageWrapper.prototype.removeItem = function (key) {\n return new PromisePolyfill(_.bind(function (resolve, reject) {\n try {\n this.storage.removeItem(key);\n } catch (e) {\n reject(e);\n }\n resolve();\n }, this));\n};\n\nvar logger$4 = console_with_prefix('batch');\n\n/**\n * RequestQueue: queue for batching API requests with localStorage backup for retries.\n * Maintains an in-memory queue which represents the source of truth for the current\n * page, but also writes all items out to a copy in the browser's localStorage, which\n * can be read on subsequent pageloads and retried. For batchability, all the request\n * items in the queue should be of the same type (events, people updates, group updates)\n * so they can be sent in a single request to the same API endpoint.\n *\n * LocalStorage keying and locking: In order for reloads and subsequent pageloads of\n * the same site to access the same persisted data, they must share the same localStorage\n * key (for instance based on project token and queue type). Therefore access to the\n * localStorage entry is guarded by an asynchronous mutex (SharedLock) to prevent\n * simultaneously open windows/tabs from overwriting each other's data (which would lead\n * to data loss in some situations).\n * @constructor\n */\nvar RequestQueue = function (storageKey, options) {\n options = options || {};\n this.storageKey = storageKey;\n this.usePersistence = options.usePersistence;\n if (this.usePersistence) {\n this.queueStorage = options.queueStorage || new LocalStorageWrapper();\n this.lock = new SharedLock(storageKey, { storage: options.sharedLockStorage || window.localStorage });\n this.queueStorage.init();\n }\n this.reportError = options.errorReporter || _.bind(logger$4.error, logger$4);\n\n this.pid = options.pid || null; // pass pid to test out storage lock contention scenarios\n\n this.memQueue = [];\n this.initialized = false;\n};\n\nRequestQueue.prototype.ensureInit = function () {\n if (this.initialized) {\n return PromisePolyfill.resolve();\n }\n\n return this.queueStorage\n .init()\n .then(_.bind(function () {\n this.initialized = true;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error initializing queue persistence. Disabling persistence', err);\n this.initialized = true;\n this.usePersistence = false;\n }, this));\n};\n\n/**\n * Add one item to queues (memory and localStorage). The queued entry includes\n * the given item along with an auto-generated ID and a \"flush-after\" timestamp.\n * It is expected that the item will be sent over the network and dequeued\n * before the flush-after time; if this doesn't happen it is considered orphaned\n * (e.g., the original tab where it was enqueued got closed before it could be\n * sent) and the item can be sent by any tab that finds it in localStorage.\n *\n * The final callback param is called with a param indicating success or\n * failure of the enqueue operation; it is asynchronous because the localStorage\n * lock is asynchronous.\n */\nRequestQueue.prototype.enqueue = function (item, flushInterval) {\n var queueEntry = {\n 'id': cheap_guid(),\n 'flushAfter': new Date().getTime() + flushInterval * 2,\n 'payload': item\n };\n\n if (!this.usePersistence) {\n this.memQueue.push(queueEntry);\n return PromisePolyfill.resolve(true);\n } else {\n\n var enqueueItem = _.bind(function () {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n storedQueue.push(queueEntry);\n return this.saveToStorage(storedQueue);\n }, this))\n .then(_.bind(function (succeeded) {\n // only add to in-memory queue when storage succeeds\n if (succeeded) {\n this.memQueue.push(queueEntry);\n }\n return succeeded;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error enqueueing item', err, item);\n return false;\n }, this));\n }, this);\n\n return this.lock\n .withLock(enqueueItem, this.pid)\n .catch(_.bind(function (err) {\n this.reportError('Error acquiring storage lock', err);\n return false;\n }, this));\n }\n};\n\n/**\n * Read out the given number of queue entries. If this.memQueue\n * has fewer than batchSize items, then look for \"orphaned\" items\n * in the persisted queue (items where the 'flushAfter' time has\n * already passed).\n */\nRequestQueue.prototype.fillBatch = function (batchSize) {\n var batch = this.memQueue.slice(0, batchSize);\n if (this.usePersistence && batch.length < batchSize) {\n // don't need lock just to read events; localStorage is thread-safe\n // and the worst that could happen is a duplicate send of some\n // orphaned events, which will be deduplicated on the server side\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n if (storedQueue.length) {\n // item IDs already in batch; don't duplicate out of storage\n var idsInBatch = {}; // poor man's Set\n _.each(batch, function (item) {\n idsInBatch[item['id']] = true;\n });\n\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (new Date().getTime() > item['flushAfter'] && !idsInBatch[item['id']]) {\n item.orphaned = true;\n batch.push(item);\n if (batch.length >= batchSize) {\n break;\n }\n }\n }\n }\n\n return batch;\n }, this));\n } else {\n return PromisePolyfill.resolve(batch);\n }\n};\n\n/**\n * Remove items with matching 'id' from array (immutably)\n * also remove any item without a valid id (e.g., malformed\n * storage entries).\n */\nvar filterOutIDsAndInvalid = function (items, idSet) {\n var filteredItems = [];\n _.each(items, function (item) {\n if (item['id'] && !idSet[item['id']]) {\n filteredItems.push(item);\n }\n });\n return filteredItems;\n};\n\n/**\n * Remove items with matching IDs from both in-memory queue\n * and persisted queue\n */\nRequestQueue.prototype.removeItemsByID = function (ids) {\n var idSet = {}; // poor man's Set\n _.each(ids, function (id) {\n idSet[id] = true;\n });\n\n this.memQueue = filterOutIDsAndInvalid(this.memQueue, idSet);\n if (!this.usePersistence) {\n return PromisePolyfill.resolve(true);\n } else {\n var removeFromStorage = _.bind(function () {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n storedQueue = filterOutIDsAndInvalid(storedQueue, idSet);\n return this.saveToStorage(storedQueue);\n }, this))\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n // an extra check: did storage report success but somehow\n // the items are still there?\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (item['id'] && !!idSet[item['id']]) {\n throw new Error('Item not removed from storage');\n }\n }\n return true;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error removing items', err, ids);\n return false;\n }, this));\n }, this);\n\n return this.lock\n .withLock(removeFromStorage, this.pid)\n .catch(_.bind(function (err) {\n this.reportError('Error acquiring storage lock', err);\n if (!localStorageSupported(this.queueStorage.storage, true)) {\n // Looks like localStorage writes have stopped working sometime after\n // initialization (probably full), and so nobody can acquire locks\n // anymore. Consider it temporarily safe to remove items without the\n // lock, since nobody's writing successfully anyway.\n return removeFromStorage()\n .then(_.bind(function (success) {\n if (!success) {\n // OK, we couldn't even write out the smaller queue. Try clearing it\n // entirely.\n return this.queueStorage.removeItem(this.storageKey).then(function () {\n return success;\n });\n }\n return success;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error clearing queue', err);\n return false;\n }, this));\n } else {\n return false;\n }\n }, this));\n }\n};\n\n// internal helper for RequestQueue.updatePayloads\nvar updatePayloads = function (existingItems, itemsToUpdate) {\n var newItems = [];\n _.each(existingItems, function (item) {\n var id = item['id'];\n if (id in itemsToUpdate) {\n var newPayload = itemsToUpdate[id];\n if (newPayload !== null) {\n item['payload'] = newPayload;\n newItems.push(item);\n }\n } else {\n // no update\n newItems.push(item);\n }\n });\n return newItems;\n};\n\n/**\n * Update payloads of given items in both in-memory queue and\n * persisted queue. Items set to null are removed from queues.\n */\nRequestQueue.prototype.updatePayloads = function (itemsToUpdate) {\n this.memQueue = updatePayloads(this.memQueue, itemsToUpdate);\n if (!this.usePersistence) {\n return PromisePolyfill.resolve(true);\n } else {\n return this.lock\n .withLock(_.bind(function lockAcquired() {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n storedQueue = updatePayloads(storedQueue, itemsToUpdate);\n return this.saveToStorage(storedQueue);\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error updating items', itemsToUpdate, err);\n return false;\n }, this));\n }, this), this.pid)\n .catch(_.bind(function (err) {\n this.reportError('Error acquiring storage lock', err);\n return false;\n }, this));\n }\n};\n\n/**\n * Read and parse items array from localStorage entry, handling\n * malformed/missing data if necessary.\n */\nRequestQueue.prototype.readFromStorage = function () {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.queueStorage.getItem(this.storageKey);\n }, this))\n .then(_.bind(function (storageEntry) {\n if (storageEntry) {\n storageEntry = JSONParse(storageEntry);\n if (!_.isArray(storageEntry)) {\n this.reportError('Invalid storage entry:', storageEntry);\n storageEntry = null;\n }\n }\n return storageEntry || [];\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error retrieving queue', err);\n return [];\n }, this));\n};\n\n/**\n * Serialize the given items array to localStorage.\n */\nRequestQueue.prototype.saveToStorage = function (queue) {\n try {\n var serialized = JSONStringify(queue);\n } catch (err) {\n this.reportError('Error serializing queue', err);\n return PromisePolyfill.resolve(false);\n }\n\n return this.ensureInit()\n .then(_.bind(function () {\n return this.queueStorage.setItem(this.storageKey, serialized);\n }, this))\n .then(function () {\n return true;\n })\n .catch(_.bind(function (err) {\n this.reportError('Error saving queue', err);\n return false;\n }, this));\n};\n\n/**\n * Clear out queues (memory and localStorage).\n */\nRequestQueue.prototype.clear = function () {\n this.memQueue = [];\n\n if (this.usePersistence) {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.queueStorage.removeItem(this.storageKey);\n }, this));\n } else {\n return PromisePolyfill.resolve();\n }\n};\n\n// maximum interval between request retries after exponential backoff\nvar MAX_RETRY_INTERVAL_MS = 10 * 60 * 1000; // 10 minutes\n\nvar logger$3 = console_with_prefix('batch');\n\n/**\n * RequestBatcher: manages the queueing, flushing, retry etc of requests of one\n * type (events, people, groups).\n * Uses RequestQueue to manage the backing store.\n * @constructor\n */\nvar RequestBatcher = function(storageKey, options) {\n this.errorReporter = options.errorReporter;\n this.queue = new RequestQueue(storageKey, {\n errorReporter: _.bind(this.reportError, this),\n queueStorage: options.queueStorage,\n sharedLockStorage: options.sharedLockStorage,\n usePersistence: options.usePersistence\n });\n\n this.libConfig = options.libConfig;\n this.sendRequest = options.sendRequestFunc;\n this.beforeSendHook = options.beforeSendHook;\n this.stopAllBatching = options.stopAllBatchingFunc;\n\n // seed variable batch size + flush interval with configured values\n this.batchSize = this.libConfig['batch_size'];\n this.flushInterval = this.libConfig['batch_flush_interval_ms'];\n\n this.stopped = !this.libConfig['batch_autostart'];\n this.consecutiveRemovalFailures = 0;\n\n // extra client-side dedupe\n this.itemIdsSentSuccessfully = {};\n\n // Make the flush occur at the interval specified by flushIntervalMs, default behavior will attempt consecutive flushes\n // as long as the queue is not empty. This is useful for high-frequency events like Session Replay where we might end up\n // in a request loop and get ratelimited by the server.\n this.flushOnlyOnInterval = options.flushOnlyOnInterval || false;\n};\n\n/**\n * Add one item to queue.\n */\nRequestBatcher.prototype.enqueue = function(item) {\n return this.queue.enqueue(item, this.flushInterval);\n};\n\n/**\n * Start flushing batches at the configured time interval. Must call\n * this method upon SDK init in order to send anything over the network.\n */\nRequestBatcher.prototype.start = function() {\n this.stopped = false;\n this.consecutiveRemovalFailures = 0;\n return this.flush();\n};\n\n/**\n * Stop flushing batches. Can be restarted by calling start().\n */\nRequestBatcher.prototype.stop = function() {\n this.stopped = true;\n if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n this.timeoutID = null;\n }\n};\n\n/**\n * Clear out queue.\n */\nRequestBatcher.prototype.clear = function() {\n return this.queue.clear();\n};\n\n/**\n * Restore batch size configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetBatchSize = function() {\n this.batchSize = this.libConfig['batch_size'];\n};\n\n/**\n * Restore flush interval time configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetFlush = function() {\n this.scheduleFlush(this.libConfig['batch_flush_interval_ms']);\n};\n\n/**\n * Schedule the next flush in the given number of milliseconds.\n */\nRequestBatcher.prototype.scheduleFlush = function(flushMS) {\n this.flushInterval = flushMS;\n if (!this.stopped) { // don't schedule anymore if batching has been stopped\n this.timeoutID = setTimeout(_.bind(function() {\n if (!this.stopped) {\n this.flush();\n }\n }, this), this.flushInterval);\n }\n};\n\n/**\n * Send a request using the sendRequest callback, but promisified.\n * TODO: sendRequest should be promisified in the first place.\n */\nRequestBatcher.prototype.sendRequestPromise = function(data, options) {\n return new PromisePolyfill(_.bind(function(resolve) {\n this.sendRequest(data, options, resolve);\n }, this));\n};\n\n\n/**\n * Flush one batch to network. Depending on success/failure modes, it will either\n * remove the batch from the queue or leave it in for retry, and schedule the next\n * flush. In cases of most network or API failures, it will back off exponentially\n * when retrying.\n * @param {Object} [options]\n * @param {boolean} [options.sendBeacon] - whether to send batch with\n * navigator.sendBeacon (only useful for sending batches before page unloads, as\n * sendBeacon offers no callbacks or status indications)\n */\nRequestBatcher.prototype.flush = function(options) {\n if (this.requestInProgress) {\n logger$3.log('Flush: Request already in progress');\n return PromisePolyfill.resolve();\n }\n\n this.requestInProgress = true;\n\n options = options || {};\n var timeoutMS = this.libConfig['batch_request_timeout_ms'];\n var startTime = new Date().getTime();\n var currentBatchSize = this.batchSize;\n\n return this.queue.fillBatch(currentBatchSize)\n .then(_.bind(function(batch) {\n\n // if there's more items in the queue than the batch size, attempt\n // to flush again after the current batch is done.\n var attemptSecondaryFlush = batch.length === currentBatchSize;\n var dataForRequest = [];\n var transformedItems = {};\n _.each(batch, function(item) {\n var payload = item['payload'];\n if (this.beforeSendHook && !item.orphaned) {\n payload = this.beforeSendHook(payload);\n }\n if (payload) {\n // mp_sent_by_lib_version prop captures which lib version actually\n // sends each event (regardless of which version originally queued\n // it for sending)\n if (payload['event'] && payload['properties']) {\n payload['properties'] = _.extend(\n {},\n payload['properties'],\n {'mp_sent_by_lib_version': Config.LIB_VERSION}\n );\n }\n var addPayload = true;\n var itemId = item['id'];\n if (itemId) {\n if ((this.itemIdsSentSuccessfully[itemId] || 0) > 5) {\n this.reportError('[dupe] item ID sent too many times, not sending', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n addPayload = false;\n }\n } else {\n this.reportError('[dupe] found item with no ID', {item: item});\n }\n\n if (addPayload) {\n dataForRequest.push(payload);\n }\n }\n transformedItems[item['id']] = payload;\n }, this);\n\n if (dataForRequest.length < 1) {\n this.requestInProgress = false;\n this.resetFlush();\n return PromisePolyfill.resolve(); // nothing to do\n }\n\n var removeItemsFromQueue = _.bind(function () {\n return this.queue\n .removeItemsByID(\n _.map(batch, function (item) {\n return item['id'];\n })\n )\n .then(_.bind(function (succeeded) {\n // client-side dedupe\n _.each(batch, _.bind(function(item) {\n var itemId = item['id'];\n if (itemId) {\n this.itemIdsSentSuccessfully[itemId] = this.itemIdsSentSuccessfully[itemId] || 0;\n this.itemIdsSentSuccessfully[itemId]++;\n if (this.itemIdsSentSuccessfully[itemId] > 5) {\n this.reportError('[dupe] item ID sent too many times', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n }\n } else {\n this.reportError('[dupe] found item with no ID while removing', {item: item});\n }\n }, this));\n\n if (succeeded) {\n this.consecutiveRemovalFailures = 0;\n if (this.flushOnlyOnInterval && !attemptSecondaryFlush) {\n this.resetFlush(); // schedule next batch with a delay\n return PromisePolyfill.resolve();\n } else {\n return this.flush(); // handle next batch if the queue isn't empty\n }\n } else {\n if (++this.consecutiveRemovalFailures > 5) {\n this.reportError('Too many queue failures; disabling batching system.');\n this.stopAllBatching();\n } else {\n this.resetFlush();\n }\n return PromisePolyfill.resolve();\n }\n }, this));\n }, this);\n\n var batchSendCallback = _.bind(function(res) {\n this.requestInProgress = false;\n\n try {\n\n // handle API response in a try-catch to make sure we can reset the\n // flush operation if something goes wrong\n\n if (options.unloading) {\n // update persisted data to include hook transformations\n return this.queue.updatePayloads(transformedItems);\n } else if (\n _.isObject(res) &&\n res.error === 'timeout' &&\n new Date().getTime() - startTime >= timeoutMS\n ) {\n this.reportError('Network timeout; retrying');\n return this.flush();\n } else if (\n _.isObject(res) &&\n (\n res.httpStatusCode >= 500\n || res.httpStatusCode === 429\n || (res.httpStatusCode <= 0 && !isOnline())\n || res.error === 'timeout'\n )\n ) {\n // network or API error, or 429 Too Many Requests, retry\n var retryMS = this.flushInterval * 2;\n if (res.retryAfter) {\n retryMS = (parseInt(res.retryAfter, 10) * 1000) || retryMS;\n }\n retryMS = Math.min(MAX_RETRY_INTERVAL_MS, retryMS);\n this.reportError('Error; retry in ' + retryMS + ' ms');\n this.scheduleFlush(retryMS);\n return PromisePolyfill.resolve();\n } else if (_.isObject(res) && res.httpStatusCode === 413) {\n // 413 Payload Too Large\n if (batch.length > 1) {\n var halvedBatchSize = Math.max(1, Math.floor(currentBatchSize / 2));\n this.batchSize = Math.min(this.batchSize, halvedBatchSize, batch.length - 1);\n this.reportError('413 response; reducing batch size to ' + this.batchSize);\n this.resetFlush();\n return PromisePolyfill.resolve();\n } else {\n this.reportError('Single-event request too large; dropping', batch);\n this.resetBatchSize();\n return removeItemsFromQueue();\n }\n } else {\n // successful network request+response; remove each item in batch from queue\n // (even if it was e.g. a 400, in which case retrying won't help)\n return removeItemsFromQueue();\n }\n } catch(err) {\n this.reportError('Error handling API response', err);\n this.resetFlush();\n }\n }, this);\n var requestOptions = {\n method: 'POST',\n verbose: true,\n ignore_json_errors: true, // eslint-disable-line camelcase\n timeout_ms: timeoutMS // eslint-disable-line camelcase\n };\n if (options.unloading) {\n requestOptions.transport = 'sendBeacon';\n }\n logger$3.log('MIXPANEL REQUEST:', dataForRequest);\n return this.sendRequestPromise(dataForRequest, requestOptions).then(batchSendCallback);\n }, this))\n .catch(_.bind(function(err) {\n this.reportError('Error flushing request queue', err);\n this.resetFlush();\n }, this));\n};\n\n/**\n * Log error to global logger and optional user-defined logger.\n */\nRequestBatcher.prototype.reportError = function(msg, err) {\n logger$3.error.apply(logger$3.error, arguments);\n if (this.errorReporter) {\n try {\n if (!(err instanceof Error)) {\n err = new Error(msg);\n }\n this.errorReporter(msg, err);\n } catch(err) {\n logger$3.error(err);\n }\n }\n};\n\nvar logger$2 = console_with_prefix('recorder');\nvar CompressionStream = win['CompressionStream'];\n\nvar RECORDER_BATCHER_LIB_CONFIG = {\n 'batch_size': 1000,\n 'batch_flush_interval_ms': 10 * 1000,\n 'batch_request_timeout_ms': 90 * 1000,\n 'batch_autostart': true\n};\n\nvar ACTIVE_SOURCES = new Set([\n IncrementalSource.MouseMove,\n IncrementalSource.MouseInteraction,\n IncrementalSource.Scroll,\n IncrementalSource.ViewportResize,\n IncrementalSource.Input,\n IncrementalSource.TouchMove,\n IncrementalSource.MediaInteraction,\n IncrementalSource.Drag,\n IncrementalSource.Selection,\n]);\n\nfunction isUserEvent(ev) {\n return ev.type === EventType.IncrementalSnapshot && ACTIVE_SOURCES.has(ev.data.source);\n}\n\n/**\n * This class encapsulates a single session recording and its lifecycle.\n * @param {Object} [options.mixpanelInstance] - reference to the core MixpanelLib\n * @param {String} [options.replayId] - unique uuid for a single replay\n * @param {Function} [options.onIdleTimeout] - callback when a recording reaches idle timeout\n * @param {Function} [options.onMaxLengthReached] - callback when a recording reaches its maximum length\n * @param {Function} [options.rrwebRecord] - rrweb's `record` function\n */\nvar SessionRecording = function(options) {\n this._mixpanel = options.mixpanelInstance;\n this._onIdleTimeout = options.onIdleTimeout;\n this._onMaxLengthReached = options.onMaxLengthReached;\n this._rrwebRecord = options.rrwebRecord;\n\n this.replayId = options.replayId;\n\n // internal rrweb stopRecording function\n this._stopRecording = null;\n\n this.seqNo = 0;\n this.replayStartTime = null;\n this.replayStartUrl = null;\n this.batchStartUrl = null;\n\n this.idleTimeoutId = null;\n this.maxTimeoutId = null;\n\n this.recordMaxMs = MAX_RECORDING_MS;\n this.recordMinMs = 0;\n\n // each replay has its own batcher key to avoid conflicts between rrweb events of different recordings\n // this will be important when persistence is introduced\n var batcherKey = '__mprec_' + this.getConfig('token') + '_' + this.replayId;\n this.batcher = new RequestBatcher(batcherKey, {\n errorReporter: _.bind(this.reportError, this),\n flushOnlyOnInterval: true,\n libConfig: RECORDER_BATCHER_LIB_CONFIG,\n sendRequestFunc: _.bind(this.flushEventsWithOptOut, this),\n usePersistence: false\n });\n};\n\nSessionRecording.prototype.getConfig = function(configVar) {\n return this._mixpanel.get_config(configVar);\n};\n\n// Alias for getConfig, used by the common addOptOutCheckMixpanelLib function which\n// reaches into this class instance and expects the snake case version of the function.\n// eslint-disable-next-line camelcase\nSessionRecording.prototype.get_config = function(configVar) {\n return this.getConfig(configVar);\n};\n\nSessionRecording.prototype.startRecording = function (shouldStopBatcher) {\n if (this._stopRecording !== null) {\n logger$2.log('Recording already in progress, skipping startRecording.');\n return;\n }\n\n this.recordMaxMs = this.getConfig('record_max_ms');\n if (this.recordMaxMs > MAX_RECORDING_MS) {\n this.recordMaxMs = MAX_RECORDING_MS;\n logger$2.critical('record_max_ms cannot be greater than ' + MAX_RECORDING_MS + 'ms. Capping value.');\n }\n\n this.recordMinMs = this.getConfig('record_min_ms');\n if (this.recordMinMs > MAX_VALUE_FOR_MIN_RECORDING_MS) {\n this.recordMinMs = MAX_VALUE_FOR_MIN_RECORDING_MS;\n logger$2.critical('record_min_ms cannot be greater than ' + MAX_VALUE_FOR_MIN_RECORDING_MS + 'ms. Capping value.');\n }\n\n this.replayStartTime = new Date().getTime();\n this.batchStartUrl = _.info.currentUrl();\n this.replayStartUrl = _.info.currentUrl();\n\n if (shouldStopBatcher || this.recordMinMs > 0) {\n // the primary case for shouldStopBatcher is when we're starting recording after a reset\n // and don't want to send anything over the network until there's\n // actual user activity\n // this also applies if the minimum recording length has not been hit yet\n // so that we don't send data until we know the recording will be long enough\n this.batcher.stop();\n } else {\n this.batcher.start();\n }\n\n var resetIdleTimeout = _.bind(function () {\n clearTimeout(this.idleTimeoutId);\n this.idleTimeoutId = setTimeout(this._onIdleTimeout, this.getConfig('record_idle_timeout_ms'));\n }, this);\n\n var blockSelector = this.getConfig('record_block_selector');\n if (blockSelector === '' || blockSelector === null) {\n blockSelector = undefined;\n }\n\n this._stopRecording = this._rrwebRecord({\n 'emit': _.bind(function (ev) {\n this.batcher.enqueue(ev);\n if (isUserEvent(ev)) {\n if (this.batcher.stopped && new Date().getTime() - this.replayStartTime >= this.recordMinMs) {\n // start flushing again after user activity\n this.batcher.start();\n }\n resetIdleTimeout();\n }\n }, this),\n 'blockClass': this.getConfig('record_block_class'),\n 'blockSelector': blockSelector,\n 'collectFonts': this.getConfig('record_collect_fonts'),\n 'dataURLOptions': { // canvas image options (https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL)\n 'type': 'image/webp',\n 'quality': 0.6\n },\n 'maskAllInputs': true,\n 'maskTextClass': this.getConfig('record_mask_text_class'),\n 'maskTextSelector': this.getConfig('record_mask_text_selector'),\n 'recordCanvas': this.getConfig('record_canvas'),\n 'sampling': {\n 'canvas': 15\n }\n });\n\n if (typeof this._stopRecording !== 'function') {\n this.reportError('rrweb failed to start, skipping this recording.');\n this._stopRecording = null;\n this.stopRecording(); // stop batcher looping and any timeouts\n return;\n }\n\n resetIdleTimeout();\n\n this.maxTimeoutId = setTimeout(_.bind(this._onMaxLengthReached, this), this.recordMaxMs);\n};\n\nSessionRecording.prototype.stopRecording = function () {\n if (!this.isRrwebStopped()) {\n try {\n this._stopRecording();\n } catch (err) {\n this.reportError('Error with rrweb stopRecording', err);\n }\n this._stopRecording = null;\n }\n\n if (this.batcher.stopped) {\n // never got user activity to flush after reset, so just clear the batcher\n this.batcher.clear();\n } else {\n // flush any remaining events from running batcher\n this.batcher.flush();\n this.batcher.stop();\n }\n\n clearTimeout(this.idleTimeoutId);\n clearTimeout(this.maxTimeoutId);\n};\n\nSessionRecording.prototype.isRrwebStopped = function () {\n return this._stopRecording === null;\n};\n\n/**\n * Flushes the current batch of events to the server, but passes an opt-out callback to make sure\n * we stop recording and dump any queued events if the user has opted out.\n */\nSessionRecording.prototype.flushEventsWithOptOut = function (data, options, cb) {\n this._flushEvents(data, options, cb, _.bind(this._onOptOut, this));\n};\n\nSessionRecording.prototype._onOptOut = function (code) {\n // addOptOutCheckMixpanelLib invokes this function with code=0 when the user has opted out\n if (code === 0) {\n this.stopRecording();\n }\n};\n\nSessionRecording.prototype._sendRequest = function(currentReplayId, reqParams, reqBody, callback) {\n var onSuccess = _.bind(function (response, responseBody) {\n // Update batch specific props only if the request was successful to guarantee ordering.\n // RequestBatcher will always flush the next batch after the previous one succeeds.\n // extra check to see if the replay ID has changed so that we don't increment the seqNo on the wrong replay\n if (response.status === 200 && this.replayId === currentReplayId) {\n this.seqNo++;\n this.batchStartUrl = _.info.currentUrl();\n }\n callback({\n status: 0,\n httpStatusCode: response.status,\n responseBody: responseBody,\n retryAfter: response.headers.get('Retry-After')\n });\n }, this);\n\n win['fetch'](this.getConfig('api_host') + '/' + this.getConfig('api_routes')['record'] + '?' + new URLSearchParams(reqParams), {\n 'method': 'POST',\n 'headers': {\n 'Authorization': 'Basic ' + btoa(this.getConfig('token') + ':'),\n 'Content-Type': 'application/octet-stream'\n },\n 'body': reqBody,\n }).then(function (response) {\n response.json().then(function (responseBody) {\n onSuccess(response, responseBody);\n }).catch(function (error) {\n callback({error: error});\n });\n }).catch(function (error) {\n callback({error: error, httpStatusCode: 0});\n });\n};\n\nSessionRecording.prototype._flushEvents = addOptOutCheckMixpanelLib(function (data, options, callback) {\n const numEvents = data.length;\n\n if (numEvents > 0) {\n var replayId = this.replayId;\n // each rrweb event has a timestamp - leverage those to get time properties\n var batchStartTime = data[0].timestamp;\n if (this.seqNo === 0 || !this.replayStartTime) {\n // extra safety net so that we don't send a null replay start time\n if (this.seqNo !== 0) {\n this.reportError('Replay start time not set but seqNo is not 0. Using current batch start time as a fallback.');\n }\n\n this.replayStartTime = batchStartTime;\n }\n var replayLengthMs = data[numEvents - 1].timestamp - this.replayStartTime;\n\n var reqParams = {\n '$current_url': this.batchStartUrl,\n '$lib_version': Config.LIB_VERSION,\n 'batch_start_time': batchStartTime / 1000,\n 'distinct_id': String(this._mixpanel.get_distinct_id()),\n 'mp_lib': 'web',\n 'replay_id': replayId,\n 'replay_length_ms': replayLengthMs,\n 'replay_start_time': this.replayStartTime / 1000,\n 'replay_start_url': this.replayStartUrl,\n 'seq': this.seqNo\n };\n var eventsJson = _.JSONEncode(data);\n\n // send ID management props if they exist\n var deviceId = this._mixpanel.get_property('$device_id');\n if (deviceId) {\n reqParams['$device_id'] = deviceId;\n }\n var userId = this._mixpanel.get_property('$user_id');\n if (userId) {\n reqParams['$user_id'] = userId;\n }\n\n if (CompressionStream) {\n var jsonStream = new Blob([eventsJson], {type: 'application/json'}).stream();\n var gzipStream = jsonStream.pipeThrough(new CompressionStream('gzip'));\n new Response(gzipStream)\n .blob()\n .then(_.bind(function(compressedBlob) {\n reqParams['format'] = 'gzip';\n this._sendRequest(replayId, reqParams, compressedBlob, callback);\n }, this));\n } else {\n reqParams['format'] = 'body';\n this._sendRequest(replayId, reqParams, eventsJson, callback);\n }\n }\n});\n\n\nSessionRecording.prototype.reportError = function(msg, err) {\n logger$2.error.apply(logger$2.error, arguments);\n try {\n if (!err && !(msg instanceof Error)) {\n msg = new Error(msg);\n }\n this.getConfig('error_reporter')(msg, err);\n } catch(err) {\n logger$2.error(err);\n }\n};\n\nvar logger$1 = console_with_prefix('recorder');\n\n/**\n * Recorder API: manages recordings and exposes methods public to the core Mixpanel library.\n * @param {Object} [options.mixpanelInstance] - reference to the core MixpanelLib\n */\nvar MixpanelRecorder = function(mixpanelInstance) {\n this._mixpanel = mixpanelInstance;\n this.activeRecording = null;\n};\n\nMixpanelRecorder.prototype.startRecording = function(shouldStopBatcher) {\n if (this.activeRecording && !this.activeRecording.isRrwebStopped()) {\n logger$1.log('Recording already in progress, skipping startRecording.');\n return;\n }\n\n var onIdleTimeout = _.bind(function () {\n logger$1.log('Idle timeout reached, restarting recording.');\n this.resetRecording();\n }, this);\n\n var onMaxLengthReached = _.bind(function () {\n logger$1.log('Max recording length reached, stopping recording.');\n this.resetRecording();\n }, this);\n\n this.activeRecording = new SessionRecording({\n mixpanelInstance: this._mixpanel,\n onIdleTimeout: onIdleTimeout,\n onMaxLengthReached: onMaxLengthReached,\n replayId: _.UUID(),\n rrwebRecord: record\n });\n\n this.activeRecording.startRecording(shouldStopBatcher);\n};\n\nMixpanelRecorder.prototype.stopRecording = function() {\n if (this.activeRecording) {\n this.activeRecording.stopRecording();\n this.activeRecording = null;\n }\n};\n\nMixpanelRecorder.prototype.resetRecording = function () {\n this.stopRecording();\n this.startRecording(true);\n};\n\nMixpanelRecorder.prototype.getActiveReplayId = function () {\n if (this.activeRecording && !this.activeRecording.isRrwebStopped()) {\n return this.activeRecording.replayId;\n } else {\n return null;\n }\n};\n\n// getter so that older mixpanel-core versions can still retrieve the replay ID\n// when pulling the latest recorder bundle from the CDN\nObject.defineProperty(MixpanelRecorder.prototype, 'replayId', {\n get: function () {\n return this.getActiveReplayId();\n }\n});\n\nwin['__mp_recorder'] = MixpanelRecorder;\n\n// stateless utils\n\nvar EV_CHANGE = 'change';\nvar EV_CLICK = 'click';\nvar EV_HASHCHANGE = 'hashchange';\nvar EV_MP_LOCATION_CHANGE = 'mp_locationchange';\nvar EV_POPSTATE = 'popstate';\n// TODO scrollend isn't available in Safari: document or polyfill?\nvar EV_SCROLLEND = 'scrollend';\nvar EV_SUBMIT = 'submit';\n\nvar CLICK_EVENT_PROPS = [\n 'clientX', 'clientY',\n 'offsetX', 'offsetY',\n 'pageX', 'pageY',\n 'screenX', 'screenY',\n 'x', 'y'\n];\nvar OPT_IN_CLASSES = ['mp-include'];\nvar OPT_OUT_CLASSES = ['mp-no-track'];\nvar SENSITIVE_DATA_CLASSES = OPT_OUT_CLASSES.concat(['mp-sensitive']);\nvar TRACKED_ATTRS = [\n 'aria-label', 'aria-labelledby', 'aria-describedby',\n 'href', 'name', 'role', 'title', 'type'\n];\n\nvar logger = console_with_prefix('autocapture');\n\n\nfunction getClasses(el) {\n var classes = {};\n var classList = getClassName(el).split(' ');\n for (var i = 0; i < classList.length; i++) {\n var cls = classList[i];\n if (cls) {\n classes[cls] = true;\n }\n }\n return classes;\n}\n\n/*\n * Get the className of an element, accounting for edge cases where element.className is an object\n * @param {Element} el - element to get the className of\n * @returns {string} the element's class\n */\nfunction getClassName(el) {\n switch(typeof el.className) {\n case 'string':\n return el.className;\n case 'object': // handle cases where className might be SVGAnimatedString or some other type\n return el.className.baseVal || el.getAttribute('class') || '';\n default: // future proof\n return '';\n }\n}\n\nfunction getPreviousElementSibling(el) {\n if (el.previousElementSibling) {\n return el.previousElementSibling;\n } else {\n do {\n el = el.previousSibling;\n } while (el && !isElementNode(el));\n return el;\n }\n}\n\nfunction getPropertiesFromElement(el, ev, blockAttrsSet, extraAttrs, allowElementCallback, allowSelectors) {\n var props = {\n '$classes': getClassName(el).split(' '),\n '$tag_name': el.tagName.toLowerCase()\n };\n var elId = el.id;\n if (elId) {\n props['$id'] = elId;\n }\n\n if (shouldTrackElementDetails(el, ev, allowElementCallback, allowSelectors)) {\n _.each(TRACKED_ATTRS.concat(extraAttrs), function(attr) {\n if (el.hasAttribute(attr) && !blockAttrsSet[attr]) {\n var attrVal = el.getAttribute(attr);\n if (shouldTrackValue(attrVal)) {\n props['$attr-' + attr] = attrVal;\n }\n }\n });\n }\n\n var nthChild = 1;\n var nthOfType = 1;\n var currentElem = el;\n while (currentElem = getPreviousElementSibling(currentElem)) { // eslint-disable-line no-cond-assign\n nthChild++;\n if (currentElem.tagName === el.tagName) {\n nthOfType++;\n }\n }\n props['$nth_child'] = nthChild;\n props['$nth_of_type'] = nthOfType;\n\n return props;\n}\n\nfunction getPropsForDOMEvent(ev, config) {\n var allowElementCallback = config.allowElementCallback;\n var allowSelectors = config.allowSelectors || [];\n var blockAttrs = config.blockAttrs || [];\n var blockElementCallback = config.blockElementCallback;\n var blockSelectors = config.blockSelectors || [];\n var captureTextContent = config.captureTextContent || false;\n var captureExtraAttrs = config.captureExtraAttrs || [];\n\n // convert array to set every time, as the config may have changed\n var blockAttrsSet = {};\n _.each(blockAttrs, function(attr) {\n blockAttrsSet[attr] = true;\n });\n\n var props = null;\n\n var target = typeof ev.target === 'undefined' ? ev.srcElement : ev.target;\n if (isTextNode(target)) { // defeat Safari bug (see: http://www.quirksmode.org/js/events_properties.html)\n target = target.parentNode;\n }\n\n if (\n shouldTrackDomEvent(target, ev) &&\n isElementAllowed(target, ev, allowElementCallback, allowSelectors) &&\n !isElementBlocked(target, ev, blockElementCallback, blockSelectors)\n ) {\n var targetElementList = [target];\n var curEl = target;\n while (curEl.parentNode && !isTag(curEl, 'body')) {\n targetElementList.push(curEl.parentNode);\n curEl = curEl.parentNode;\n }\n\n var elementsJson = [];\n var href, explicitNoTrack = false;\n _.each(targetElementList, function(el) {\n var shouldTrackDetails = shouldTrackElementDetails(el, ev, allowElementCallback, allowSelectors);\n\n // if the element or a parent element is an anchor tag\n // include the href as a property\n if (!blockAttrsSet['href'] && el.tagName.toLowerCase() === 'a') {\n href = el.getAttribute('href');\n href = shouldTrackDetails && shouldTrackValue(href) && href;\n }\n\n if (isElementBlocked(el, ev, blockElementCallback, blockSelectors)) {\n explicitNoTrack = true;\n }\n\n elementsJson.push(getPropertiesFromElement(el, ev, blockAttrsSet, captureExtraAttrs, allowElementCallback, allowSelectors));\n }, this);\n\n if (!explicitNoTrack) {\n var docElement = document$1['documentElement'];\n props = {\n '$event_type': ev.type,\n '$host': win.location.host,\n '$pathname': win.location.pathname,\n '$elements': elementsJson,\n '$el_attr__href': href,\n '$viewportHeight': Math.max(docElement['clientHeight'], win['innerHeight'] || 0),\n '$viewportWidth': Math.max(docElement['clientWidth'], win['innerWidth'] || 0)\n };\n _.each(captureExtraAttrs, function(attr) {\n if (!blockAttrsSet[attr] && target.hasAttribute(attr)) {\n var attrVal = target.getAttribute(attr);\n if (shouldTrackValue(attrVal)) {\n props['$el_attr__' + attr] = attrVal;\n }\n }\n });\n\n if (captureTextContent) {\n elementText = getSafeText(target, ev, allowElementCallback, allowSelectors);\n if (elementText && elementText.length) {\n props['$el_text'] = elementText;\n }\n }\n\n if (ev.type === EV_CLICK) {\n _.each(CLICK_EVENT_PROPS, function(prop) {\n if (prop in ev) {\n props['$' + prop] = ev[prop];\n }\n });\n target = guessRealClickTarget(ev);\n }\n // prioritize text content from \"real\" click target if different from original target\n if (captureTextContent) {\n var elementText = getSafeText(target, ev, allowElementCallback, allowSelectors);\n if (elementText && elementText.length) {\n props['$el_text'] = elementText;\n }\n }\n\n if (target) {\n // target may have been recalculated; check allowlists and blocklists again\n if (\n !isElementAllowed(target, ev, allowElementCallback, allowSelectors) ||\n isElementBlocked(target, ev, blockElementCallback, blockSelectors)\n ) {\n return null;\n }\n\n var targetProps = getPropertiesFromElement(target, ev, blockAttrsSet, captureExtraAttrs, allowElementCallback, allowSelectors);\n props['$target'] = targetProps;\n // pull up more props onto main event props\n props['$el_classes'] = targetProps['$classes'];\n _.extend(props, _.strip_empty_properties({\n '$el_id': targetProps['$id'],\n '$el_tag_name': targetProps['$tag_name']\n }));\n }\n }\n }\n\n return props;\n}\n\n\n/**\n * Get the direct text content of an element, protecting against sensitive data collection.\n * Concats textContent of each of the element's text node children; this avoids potential\n * collection of sensitive data that could happen if we used element.textContent and the\n * element had sensitive child elements, since element.textContent includes child content.\n * Scrubs values that look like they could be sensitive (i.e. cc or ssn number).\n * @param {Element} el - element to get the text of\n * @param {Array<string>} allowSelectors - CSS selectors for elements that should be included\n * @returns {string} the element's direct text content\n */\nfunction getSafeText(el, ev, allowElementCallback, allowSelectors) {\n var elText = '';\n\n if (shouldTrackElementDetails(el, ev, allowElementCallback, allowSelectors) && el.childNodes && el.childNodes.length) {\n _.each(el.childNodes, function(child) {\n if (isTextNode(child) && child.textContent) {\n elText += _.trim(child.textContent)\n // scrub potentially sensitive values\n .split(/(\\s+)/).filter(shouldTrackValue).join('')\n // normalize whitespace\n .replace(/[\\r\\n]/g, ' ').replace(/[ ]+/g, ' ')\n // truncate\n .substring(0, 255);\n }\n });\n }\n\n return _.trim(elText);\n}\n\nfunction guessRealClickTarget(ev) {\n var target = ev.target;\n var composedPath = ev['composedPath']();\n for (var i = 0; i < composedPath.length; i++) {\n var node = composedPath[i];\n if (\n isTag(node, 'a') ||\n isTag(node, 'button') ||\n isTag(node, 'input') ||\n isTag(node, 'select') ||\n (node.getAttribute && node.getAttribute('role') === 'button')\n ) {\n target = node;\n break;\n }\n if (node === target) {\n break;\n }\n }\n return target;\n}\n\nfunction isElementAllowed(el, ev, allowElementCallback, allowSelectors) {\n if (allowElementCallback) {\n try {\n if (!allowElementCallback(el, ev)) {\n return false;\n }\n } catch (err) {\n logger.critical('Error while checking element in allowElementCallback', err);\n return false;\n }\n }\n\n if (!allowSelectors.length) {\n // no allowlist; all elements are fair game\n return true;\n }\n\n for (var i = 0; i < allowSelectors.length; i++) {\n var sel = allowSelectors[i];\n try {\n if (el['matches'](sel)) {\n return true;\n }\n } catch (err) {\n logger.critical('Error while checking selector: ' + sel, err);\n }\n }\n return false;\n}\n\nfunction isElementBlocked(el, ev, blockElementCallback, blockSelectors) {\n var i;\n\n if (blockElementCallback) {\n try {\n if (blockElementCallback(el, ev)) {\n return true;\n }\n } catch (err) {\n logger.critical('Error while checking element in blockElementCallback', err);\n return true;\n }\n }\n\n if (blockSelectors && blockSelectors.length) {\n // programmatically prevent tracking of elements that match CSS selectors\n for (i = 0; i < blockSelectors.length; i++) {\n var sel = blockSelectors[i];\n try {\n if (el['matches'](sel)) {\n return true;\n }\n } catch (err) {\n logger.critical('Error while checking selector: ' + sel, err);\n }\n }\n }\n\n // allow users to programmatically prevent tracking of elements by adding default classes such as 'mp-no-track'\n var classes = getClasses(el);\n for (i = 0; i < OPT_OUT_CLASSES.length; i++) {\n if (classes[OPT_OUT_CLASSES[i]]) {\n return true;\n }\n }\n\n return false;\n}\n\n/*\n * Check whether a DOM node has nodeType Node.ELEMENT_NODE\n * @param {Node} node - node to check\n * @returns {boolean} whether node is of the correct nodeType\n */\nfunction isElementNode(node) {\n return node && node.nodeType === 1; // Node.ELEMENT_NODE - use integer constant for browser portability\n}\n\n/*\n * Check whether an element is of a given tag type.\n * Due to potential reference discrepancies (such as the webcomponents.js polyfill),\n * we want to match tagNames instead of specific references because something like\n * element === document.body won't always work because element might not be a native\n * element.\n * @param {Element} el - element to check\n * @param {string} tag - tag name (e.g., \"div\")\n * @returns {boolean} whether el is of the given tag type\n */\nfunction isTag(el, tag) {\n return el && el.tagName && el.tagName.toLowerCase() === tag.toLowerCase();\n}\n\n/*\n * Check whether a DOM node is a TEXT_NODE\n * @param {Node} node - node to check\n * @returns {boolean} whether node is of type Node.TEXT_NODE\n */\nfunction isTextNode(node) {\n return node && node.nodeType === 3; // Node.TEXT_NODE - use integer constant for browser portability\n}\n\nfunction minDOMApisSupported() {\n try {\n var testEl = document$1.createElement('div');\n return !!testEl['matches'];\n } catch (err) {\n return false;\n }\n}\n\n/*\n * Check whether a DOM event should be \"tracked\" or if it may contain sensitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @param {Event} ev - event to check\n * @returns {boolean} whether the event should be tracked\n */\nfunction shouldTrackDomEvent(el, ev) {\n if (!el || isTag(el, 'html') || !isElementNode(el)) {\n return false;\n }\n var tag = el.tagName.toLowerCase();\n switch (tag) {\n case 'form':\n return ev.type === EV_SUBMIT;\n case 'input':\n if (['button', 'submit'].indexOf(el.getAttribute('type')) === -1) {\n return ev.type === EV_CHANGE;\n } else {\n return ev.type === EV_CLICK;\n }\n case 'select':\n case 'textarea':\n return ev.type === EV_CHANGE;\n default:\n return ev.type === EV_CLICK;\n }\n}\n\n/*\n * Check whether a DOM element should be \"tracked\" or if it may contain sensitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @param {Array<string>} allowSelectors - CSS selectors for elements that should be included\n * @returns {boolean} whether the element should be tracked\n */\nfunction shouldTrackElementDetails(el, ev, allowElementCallback, allowSelectors) {\n var i;\n\n if (!isElementAllowed(el, ev, allowElementCallback, allowSelectors)) {\n return false;\n }\n\n for (var curEl = el; curEl.parentNode && !isTag(curEl, 'body'); curEl = curEl.parentNode) {\n var classes = getClasses(curEl);\n for (i = 0; i < SENSITIVE_DATA_CLASSES.length; i++) {\n if (classes[SENSITIVE_DATA_CLASSES[i]]) {\n return false;\n }\n }\n }\n\n var elClasses = getClasses(el);\n for (i = 0; i < OPT_IN_CLASSES.length; i++) {\n if (elClasses[OPT_IN_CLASSES[i]]) {\n return true;\n }\n }\n\n // don't send data from inputs or similar elements since there will always be\n // a risk of clientside javascript placing sensitive data in attributes\n if (\n isTag(el, 'input') ||\n isTag(el, 'select') ||\n isTag(el, 'textarea') ||\n el.getAttribute('contenteditable') === 'true'\n ) {\n return false;\n }\n\n // don't include hidden or password fields\n var type = el.type || '';\n if (typeof type === 'string') { // it's possible for el.type to be a DOM element if el is a form with a child input[name=\"type\"]\n switch(type.toLowerCase()) {\n case 'hidden':\n return false;\n case 'password':\n return false;\n }\n }\n\n // filter out data from fields that look like sensitive fields\n var name = el.name || el.id || '';\n if (typeof name === 'string') { // it's possible for el.name or el.id to be a DOM element if el is a form with a child input[name=\"name\"]\n var sensitiveNameRegex = /^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i;\n if (sensitiveNameRegex.test(name.replace(/[^a-zA-Z0-9]/g, ''))) {\n return false;\n }\n }\n\n return true;\n}\n\n\n/*\n * Check whether a string value should be \"tracked\" or if it may contain sensitive data\n * using a variety of heuristics.\n * @param {string} value - string value to check\n * @returns {boolean} whether the element should be tracked\n */\nfunction shouldTrackValue(value) {\n if (value === null || _.isUndefined(value)) {\n return false;\n }\n\n if (typeof value === 'string') {\n value = _.trim(value);\n\n // check to see if input value looks like a credit card number\n // see: https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9781449327453/ch04s20.html\n var ccRegex = /^(?:(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11}))$/;\n if (ccRegex.test((value || '').replace(/[- ]/g, ''))) {\n return false;\n }\n\n // check to see if input value looks like a social security number\n var ssnRegex = /(^\\d{3}-?\\d{2}-?\\d{4}$)/;\n if (ssnRegex.test(value)) {\n return false;\n }\n }\n\n return true;\n}\n\nvar AUTOCAPTURE_CONFIG_KEY = 'autocapture';\nvar LEGACY_PAGEVIEW_CONFIG_KEY = 'track_pageview';\n\nvar PAGEVIEW_OPTION_FULL_URL = 'full-url';\nvar PAGEVIEW_OPTION_URL_WITH_PATH_AND_QUERY_STRING = 'url-with-path-and-query-string';\nvar PAGEVIEW_OPTION_URL_WITH_PATH = 'url-with-path';\n\nvar CONFIG_ALLOW_ELEMENT_CALLBACK = 'allow_element_callback';\nvar CONFIG_ALLOW_SELECTORS = 'allow_selectors';\nvar CONFIG_ALLOW_URL_REGEXES = 'allow_url_regexes';\nvar CONFIG_BLOCK_ATTRS = 'block_attrs';\nvar CONFIG_BLOCK_ELEMENT_CALLBACK = 'block_element_callback';\nvar CONFIG_BLOCK_SELECTORS = 'block_selectors';\nvar CONFIG_BLOCK_URL_REGEXES = 'block_url_regexes';\nvar CONFIG_CAPTURE_EXTRA_ATTRS = 'capture_extra_attrs';\nvar CONFIG_CAPTURE_TEXT_CONTENT = 'capture_text_content';\nvar CONFIG_SCROLL_CAPTURE_ALL = 'scroll_capture_all';\nvar CONFIG_SCROLL_CHECKPOINTS = 'scroll_depth_percent_checkpoints';\nvar CONFIG_TRACK_CLICK = 'click';\nvar CONFIG_TRACK_INPUT = 'input';\nvar CONFIG_TRACK_PAGEVIEW = 'pageview';\nvar CONFIG_TRACK_SCROLL = 'scroll';\nvar CONFIG_TRACK_SUBMIT = 'submit';\n\nvar CONFIG_DEFAULTS = {};\nCONFIG_DEFAULTS[CONFIG_ALLOW_SELECTORS] = [];\nCONFIG_DEFAULTS[CONFIG_ALLOW_URL_REGEXES] = [];\nCONFIG_DEFAULTS[CONFIG_BLOCK_ATTRS] = [];\nCONFIG_DEFAULTS[CONFIG_BLOCK_ELEMENT_CALLBACK] = null;\nCONFIG_DEFAULTS[CONFIG_BLOCK_SELECTORS] = [];\nCONFIG_DEFAULTS[CONFIG_BLOCK_URL_REGEXES] = [];\nCONFIG_DEFAULTS[CONFIG_CAPTURE_EXTRA_ATTRS] = [];\nCONFIG_DEFAULTS[CONFIG_CAPTURE_TEXT_CONTENT] = false;\nCONFIG_DEFAULTS[CONFIG_SCROLL_CAPTURE_ALL] = false;\nCONFIG_DEFAULTS[CONFIG_SCROLL_CHECKPOINTS] = [25, 50, 75, 100];\nCONFIG_DEFAULTS[CONFIG_TRACK_CLICK] = true;\nCONFIG_DEFAULTS[CONFIG_TRACK_INPUT] = true;\nCONFIG_DEFAULTS[CONFIG_TRACK_PAGEVIEW] = PAGEVIEW_OPTION_FULL_URL;\nCONFIG_DEFAULTS[CONFIG_TRACK_SCROLL] = true;\nCONFIG_DEFAULTS[CONFIG_TRACK_SUBMIT] = true;\n\nvar DEFAULT_PROPS = {\n '$mp_autocapture': true\n};\n\nvar MP_EV_CLICK = '$mp_click';\nvar MP_EV_INPUT = '$mp_input_change';\nvar MP_EV_SCROLL = '$mp_scroll';\nvar MP_EV_SUBMIT = '$mp_submit';\n\n/**\n * Autocapture: manages automatic event tracking\n * @constructor\n */\nvar Autocapture = function(mp) {\n this.mp = mp;\n};\n\nAutocapture.prototype.init = function() {\n if (!minDOMApisSupported()) {\n logger.critical('Autocapture unavailable: missing required DOM APIs');\n return;\n }\n\n this.initPageviewTracking();\n this.initClickTracking();\n this.initInputTracking();\n this.initScrollTracking();\n this.initSubmitTracking();\n};\n\nAutocapture.prototype.getFullConfig = function() {\n var autocaptureConfig = this.mp.get_config(AUTOCAPTURE_CONFIG_KEY);\n if (!autocaptureConfig) {\n // Autocapture is completely off\n return {};\n } else if (_.isObject(autocaptureConfig)) {\n return _.extend({}, CONFIG_DEFAULTS, autocaptureConfig);\n } else {\n // Autocapture config is non-object truthy value, return default\n return CONFIG_DEFAULTS;\n }\n};\n\nAutocapture.prototype.getConfig = function(key) {\n return this.getFullConfig()[key];\n};\n\nAutocapture.prototype.currentUrlBlocked = function() {\n var i;\n var currentUrl = _.info.currentUrl();\n\n var allowUrlRegexes = this.getConfig(CONFIG_ALLOW_URL_REGEXES) || [];\n if (allowUrlRegexes.length) {\n // we're using an allowlist, only track if current URL matches\n var allowed = false;\n for (i = 0; i < allowUrlRegexes.length; i++) {\n var allowRegex = allowUrlRegexes[i];\n try {\n if (currentUrl.match(allowRegex)) {\n allowed = true;\n break;\n }\n } catch (err) {\n logger.critical('Error while checking block URL regex: ' + allowRegex, err);\n return true;\n }\n }\n if (!allowed) {\n // wasn't allowed by any regex\n return true;\n }\n }\n\n var blockUrlRegexes = this.getConfig(CONFIG_BLOCK_URL_REGEXES) || [];\n if (!blockUrlRegexes || !blockUrlRegexes.length) {\n return false;\n }\n\n for (i = 0; i < blockUrlRegexes.length; i++) {\n try {\n if (currentUrl.match(blockUrlRegexes[i])) {\n return true;\n }\n } catch (err) {\n logger.critical('Error while checking block URL regex: ' + blockUrlRegexes[i], err);\n return true;\n }\n }\n return false;\n};\n\nAutocapture.prototype.pageviewTrackingConfig = function() {\n // supports both autocapture config and old track_pageview config\n if (this.mp.get_config(AUTOCAPTURE_CONFIG_KEY)) {\n return this.getConfig(CONFIG_TRACK_PAGEVIEW);\n } else {\n return this.mp.get_config(LEGACY_PAGEVIEW_CONFIG_KEY);\n }\n};\n\n// helper for event handlers\nAutocapture.prototype.trackDomEvent = function(ev, mpEventName) {\n if (this.currentUrlBlocked()) {\n return;\n }\n\n var props = getPropsForDOMEvent(ev, {\n allowElementCallback: this.getConfig(CONFIG_ALLOW_ELEMENT_CALLBACK),\n allowSelectors: this.getConfig(CONFIG_ALLOW_SELECTORS),\n blockAttrs: this.getConfig(CONFIG_BLOCK_ATTRS),\n blockElementCallback: this.getConfig(CONFIG_BLOCK_ELEMENT_CALLBACK),\n blockSelectors: this.getConfig(CONFIG_BLOCK_SELECTORS),\n captureExtraAttrs: this.getConfig(CONFIG_CAPTURE_EXTRA_ATTRS),\n captureTextContent: this.getConfig(CONFIG_CAPTURE_TEXT_CONTENT)\n });\n if (props) {\n _.extend(props, DEFAULT_PROPS);\n this.mp.track(mpEventName, props);\n }\n};\n\nAutocapture.prototype.initClickTracking = function() {\n win.removeEventListener(EV_CLICK, this.listenerClick);\n\n if (!this.getConfig(CONFIG_TRACK_CLICK)) {\n return;\n }\n logger.log('Initializing click tracking');\n\n this.listenerClick = win.addEventListener(EV_CLICK, function(ev) {\n if (!this.getConfig(CONFIG_TRACK_CLICK)) {\n return;\n }\n this.trackDomEvent(ev, MP_EV_CLICK);\n }.bind(this));\n};\n\nAutocapture.prototype.initInputTracking = function() {\n win.removeEventListener(EV_CHANGE, this.listenerChange);\n\n if (!this.getConfig(CONFIG_TRACK_INPUT)) {\n return;\n }\n logger.log('Initializing input tracking');\n\n this.listenerChange = win.addEventListener(EV_CHANGE, function(ev) {\n if (!this.getConfig(CONFIG_TRACK_INPUT)) {\n return;\n }\n this.trackDomEvent(ev, MP_EV_INPUT);\n }.bind(this));\n};\n\nAutocapture.prototype.initPageviewTracking = function() {\n win.removeEventListener(EV_POPSTATE, this.listenerPopstate);\n win.removeEventListener(EV_HASHCHANGE, this.listenerHashchange);\n win.removeEventListener(EV_MP_LOCATION_CHANGE, this.listenerLocationchange);\n\n if (!this.pageviewTrackingConfig()) {\n return;\n }\n logger.log('Initializing pageview tracking');\n\n var previousTrackedUrl = '';\n var tracked = false;\n if (!this.currentUrlBlocked()) {\n tracked = this.mp.track_pageview(DEFAULT_PROPS);\n }\n if (tracked) {\n previousTrackedUrl = _.info.currentUrl();\n }\n\n this.listenerPopstate = win.addEventListener(EV_POPSTATE, function() {\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n });\n this.listenerHashchange = win.addEventListener(EV_HASHCHANGE, function() {\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n });\n var nativePushState = win.history.pushState;\n if (typeof nativePushState === 'function') {\n win.history.pushState = function(state, unused, url) {\n nativePushState.call(win.history, state, unused, url);\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n };\n }\n var nativeReplaceState = win.history.replaceState;\n if (typeof nativeReplaceState === 'function') {\n win.history.replaceState = function(state, unused, url) {\n nativeReplaceState.call(win.history, state, unused, url);\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n };\n }\n this.listenerLocationchange = win.addEventListener(EV_MP_LOCATION_CHANGE, safewrap(function() {\n if (this.currentUrlBlocked()) {\n return;\n }\n\n var currentUrl = _.info.currentUrl();\n var shouldTrack = false;\n var didPathChange = currentUrl.split('#')[0].split('?')[0] !== previousTrackedUrl.split('#')[0].split('?')[0];\n var trackPageviewOption = this.pageviewTrackingConfig();\n if (trackPageviewOption === PAGEVIEW_OPTION_FULL_URL) {\n shouldTrack = currentUrl !== previousTrackedUrl;\n } else if (trackPageviewOption === PAGEVIEW_OPTION_URL_WITH_PATH_AND_QUERY_STRING) {\n shouldTrack = currentUrl.split('#')[0] !== previousTrackedUrl.split('#')[0];\n } else if (trackPageviewOption === PAGEVIEW_OPTION_URL_WITH_PATH) {\n shouldTrack = didPathChange;\n }\n\n if (shouldTrack) {\n var tracked = this.mp.track_pageview(DEFAULT_PROPS);\n if (tracked) {\n previousTrackedUrl = currentUrl;\n }\n if (didPathChange) {\n this.lastScrollCheckpoint = 0;\n logger.log('Path change: re-initializing scroll depth checkpoints');\n }\n }\n }.bind(this)));\n};\n\nAutocapture.prototype.initScrollTracking = function() {\n win.removeEventListener(EV_SCROLLEND, this.listenerScroll);\n\n if (!this.getConfig(CONFIG_TRACK_SCROLL)) {\n return;\n }\n logger.log('Initializing scroll tracking');\n this.lastScrollCheckpoint = 0;\n\n this.listenerScroll = win.addEventListener(EV_SCROLLEND, safewrap(function() {\n if (!this.getConfig(CONFIG_TRACK_SCROLL)) {\n return;\n }\n if (this.currentUrlBlocked()) {\n return;\n }\n\n var shouldTrack = this.getConfig(CONFIG_SCROLL_CAPTURE_ALL);\n var scrollCheckpoints = (this.getConfig(CONFIG_SCROLL_CHECKPOINTS) || [])\n .slice()\n .sort(function(a, b) { return a - b; });\n\n var scrollTop = win.scrollY;\n var props = _.extend({'$scroll_top': scrollTop}, DEFAULT_PROPS);\n try {\n var scrollHeight = document$1.body.scrollHeight;\n var scrollPercentage = Math.round((scrollTop / (scrollHeight - win.innerHeight)) * 100);\n props['$scroll_height'] = scrollHeight;\n props['$scroll_percentage'] = scrollPercentage;\n if (scrollPercentage > this.lastScrollCheckpoint) {\n for (var i = 0; i < scrollCheckpoints.length; i++) {\n var checkpoint = scrollCheckpoints[i];\n if (\n scrollPercentage >= checkpoint &&\n this.lastScrollCheckpoint < checkpoint\n ) {\n props['$scroll_checkpoint'] = checkpoint;\n this.lastScrollCheckpoint = checkpoint;\n shouldTrack = true;\n }\n }\n }\n } catch (err) {\n logger.critical('Error while calculating scroll percentage', err);\n }\n if (shouldTrack) {\n this.mp.track(MP_EV_SCROLL, props);\n }\n }.bind(this)));\n};\n\nAutocapture.prototype.initSubmitTracking = function() {\n win.removeEventListener(EV_SUBMIT, this.listenerSubmit);\n\n if (!this.getConfig(CONFIG_TRACK_SUBMIT)) {\n return;\n }\n logger.log('Initializing submit tracking');\n\n this.listenerSubmit = win.addEventListener(EV_SUBMIT, function(ev) {\n if (!this.getConfig(CONFIG_TRACK_SUBMIT)) {\n return;\n }\n this.trackDomEvent(ev, MP_EV_SUBMIT);\n }.bind(this));\n};\n\n// TODO integrate error_reporter from mixpanel instance\nsafewrapClass(Autocapture);\n\n/* eslint camelcase: \"off\" */\n\n/**\n * DomTracker Object\n * @constructor\n */\nvar DomTracker = function() {};\n\n\n// interface\nDomTracker.prototype.create_properties = function() {};\nDomTracker.prototype.event_handler = function() {};\nDomTracker.prototype.after_track_handler = function() {};\n\nDomTracker.prototype.init = function(mixpanel_instance) {\n this.mp = mixpanel_instance;\n return this;\n};\n\n/**\n * @param {Object|string} query\n * @param {string} event_name\n * @param {Object=} properties\n * @param {function=} user_callback\n */\nDomTracker.prototype.track = function(query, event_name, properties, user_callback) {\n var that = this;\n var elements = _.dom_query(query);\n\n if (elements.length === 0) {\n console$1.error('The DOM query (' + query + ') returned 0 elements');\n return;\n }\n\n _.each(elements, function(element) {\n _.register_event(element, this.override_event, function(e) {\n var options = {};\n var props = that.create_properties(properties, this);\n var timeout = that.mp.get_config('track_links_timeout');\n\n that.event_handler(e, this, options);\n\n // in case the mixpanel servers don't get back to us in time\n window.setTimeout(that.track_callback(user_callback, props, options, true), timeout);\n\n // fire the tracking event\n that.mp.track(event_name, props, that.track_callback(user_callback, props, options));\n });\n }, this);\n\n return true;\n};\n\n/**\n * @param {function} user_callback\n * @param {Object} props\n * @param {boolean=} timeout_occured\n */\nDomTracker.prototype.track_callback = function(user_callback, props, options, timeout_occured) {\n timeout_occured = timeout_occured || false;\n var that = this;\n\n return function() {\n // options is referenced from both callbacks, so we can have\n // a 'lock' of sorts to ensure only one fires\n if (options.callback_fired) { return; }\n options.callback_fired = true;\n\n if (user_callback && user_callback(timeout_occured, props) === false) {\n // user can prevent the default functionality by\n // returning false from their callback\n return;\n }\n\n that.after_track_handler(props, options, timeout_occured);\n };\n};\n\nDomTracker.prototype.create_properties = function(properties, element) {\n var props;\n\n if (typeof(properties) === 'function') {\n props = properties(element);\n } else {\n props = _.extend({}, properties);\n }\n\n return props;\n};\n\n/**\n * LinkTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar LinkTracker = function() {\n this.override_event = 'click';\n};\n_.inherit(LinkTracker, DomTracker);\n\nLinkTracker.prototype.create_properties = function(properties, element) {\n var props = LinkTracker.superclass.create_properties.apply(this, arguments);\n\n if (element.href) { props['url'] = element.href; }\n\n return props;\n};\n\nLinkTracker.prototype.event_handler = function(evt, element, options) {\n options.new_tab = (\n evt.which === 2 ||\n evt.metaKey ||\n evt.ctrlKey ||\n element.target === '_blank'\n );\n options.href = element.href;\n\n if (!options.new_tab) {\n evt.preventDefault();\n }\n};\n\nLinkTracker.prototype.after_track_handler = function(props, options) {\n if (options.new_tab) { return; }\n\n setTimeout(function() {\n window.location = options.href;\n }, 0);\n};\n\n/**\n * FormTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar FormTracker = function() {\n this.override_event = 'submit';\n};\n_.inherit(FormTracker, DomTracker);\n\nFormTracker.prototype.event_handler = function(evt, element, options) {\n options.element = element;\n evt.preventDefault();\n};\n\nFormTracker.prototype.after_track_handler = function(props, options) {\n setTimeout(function() {\n options.element.submit();\n }, 0);\n};\n\n/* eslint camelcase: \"off\" */\n\n/** @const */ var SET_ACTION = '$set';\n/** @const */ var SET_ONCE_ACTION = '$set_once';\n/** @const */ var UNSET_ACTION = '$unset';\n/** @const */ var ADD_ACTION = '$add';\n/** @const */ var APPEND_ACTION = '$append';\n/** @const */ var UNION_ACTION = '$union';\n/** @const */ var REMOVE_ACTION = '$remove';\n/** @const */ var DELETE_ACTION = '$delete';\n\n// Common internal methods for mixpanel.people and mixpanel.group APIs.\n// These methods shouldn't involve network I/O.\nvar apiActions = {\n set_action: function(prop, to) {\n var data = {};\n var $set = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set[k] = v;\n }\n }, this);\n } else {\n $set[prop] = to;\n }\n\n data[SET_ACTION] = $set;\n return data;\n },\n\n unset_action: function(prop) {\n var data = {};\n var $unset = [];\n if (!_.isArray(prop)) {\n prop = [prop];\n }\n\n _.each(prop, function(k) {\n if (!this._is_reserved_property(k)) {\n $unset.push(k);\n }\n }, this);\n\n data[UNSET_ACTION] = $unset;\n return data;\n },\n\n set_once_action: function(prop, to) {\n var data = {};\n var $set_once = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set_once[k] = v;\n }\n }, this);\n } else {\n $set_once[prop] = to;\n }\n data[SET_ONCE_ACTION] = $set_once;\n return data;\n },\n\n union_action: function(list_name, values) {\n var data = {};\n var $union = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $union[k] = _.isArray(v) ? v : [v];\n }\n }, this);\n } else {\n $union[list_name] = _.isArray(values) ? values : [values];\n }\n data[UNION_ACTION] = $union;\n return data;\n },\n\n append_action: function(list_name, value) {\n var data = {};\n var $append = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $append[k] = v;\n }\n }, this);\n } else {\n $append[list_name] = value;\n }\n data[APPEND_ACTION] = $append;\n return data;\n },\n\n remove_action: function(list_name, value) {\n var data = {};\n var $remove = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $remove[k] = v;\n }\n }, this);\n } else {\n $remove[list_name] = value;\n }\n data[REMOVE_ACTION] = $remove;\n return data;\n },\n\n delete_action: function() {\n var data = {};\n data[DELETE_ACTION] = '';\n return data;\n }\n};\n\n/* eslint camelcase: \"off\" */\n\n/**\n * Mixpanel Group Object\n * @constructor\n */\nvar MixpanelGroup = function() {};\n\n_.extend(MixpanelGroup.prototype, apiActions);\n\nMixpanelGroup.prototype._init = function(mixpanel_instance, group_key, group_id) {\n this._mixpanel = mixpanel_instance;\n this._group_key = group_key;\n this._group_id = group_id;\n};\n\n/**\n * Set properties on a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, dates, or lists\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Set properties on a group, only if they do not yet exist.\n * This will not overwrite previous group property values, unlike\n * group.set().\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set_once('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set_once({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, lists or dates\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set_once = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Unset properties on a group permanently.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').unset('Founded');\n *\n * @param {String} prop The name of the property.\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.unset = addOptOutCheckMixpanelGroup(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/**\n * Merge a given list with a list-valued group property, excluding duplicate values.\n *\n * ### Usage:\n *\n * // merge a value to a list, creating it if needed\n * mixpanel.get_group('company', 'mixpanel').union('Location', ['San Francisco', 'London']);\n *\n * @param {String} list_name Name of the property.\n * @param {Array} values Values to merge with the given property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.union = addOptOutCheckMixpanelGroup(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/**\n * Permanently delete a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').delete();\n *\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype['delete'] = addOptOutCheckMixpanelGroup(function(callback) {\n // bracket notation above prevents a minification error related to reserved words\n var data = this.delete_action();\n return this._send_request(data, callback);\n});\n\n/**\n * Remove a property from a group. The value will be ignored if doesn't exist.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').remove('Location', 'London');\n *\n * @param {String} list_name Name of the property.\n * @param {Object} value Value to remove from the given group property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.remove = addOptOutCheckMixpanelGroup(function(list_name, value, callback) {\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\nMixpanelGroup.prototype._send_request = function(data, callback) {\n data['$group_key'] = this._group_key;\n data['$group_id'] = this._group_id;\n data['$token'] = this._get_config('token');\n\n var date_encoded_data = _.encodeDates(data);\n return this._mixpanel._track_or_batch({\n type: 'groups',\n data: date_encoded_data,\n endpoint: this._get_config('api_host') + '/' + this._get_config('api_routes')['groups'],\n batcher: this._mixpanel.request_batchers.groups\n }, callback);\n};\n\nMixpanelGroup.prototype._is_reserved_property = function(prop) {\n return prop === '$group_key' || prop === '$group_id';\n};\n\nMixpanelGroup.prototype._get_config = function(conf) {\n return this._mixpanel.get_config(conf);\n};\n\nMixpanelGroup.prototype.toString = function() {\n return this._mixpanel.toString() + '.group.' + this._group_key + '.' + this._group_id;\n};\n\n// MixpanelGroup Exports\nMixpanelGroup.prototype['remove'] = MixpanelGroup.prototype.remove;\nMixpanelGroup.prototype['set'] = MixpanelGroup.prototype.set;\nMixpanelGroup.prototype['set_once'] = MixpanelGroup.prototype.set_once;\nMixpanelGroup.prototype['union'] = MixpanelGroup.prototype.union;\nMixpanelGroup.prototype['unset'] = MixpanelGroup.prototype.unset;\nMixpanelGroup.prototype['toString'] = MixpanelGroup.prototype.toString;\n\n/* eslint camelcase: \"off\" */\n\n/**\n * Mixpanel People Object\n * @constructor\n */\nvar MixpanelPeople = function() {};\n\n_.extend(MixpanelPeople.prototype, apiActions);\n\nMixpanelPeople.prototype._init = function(mixpanel_instance) {\n this._mixpanel = mixpanel_instance;\n};\n\n/*\n* Set properties on a user record.\n*\n* ### Usage:\n*\n* mixpanel.people.set('gender', 'm');\n*\n* // or set multiple properties at once\n* mixpanel.people.set({\n* 'Company': 'Acme',\n* 'Plan': 'Premium',\n* 'Upgrade date': new Date()\n* });\n* // properties can be strings, integers, dates, or lists\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n // make sure that the referrer info has been updated and saved\n if (this._get_config('save_referrer')) {\n this._mixpanel['persistence'].update_referrer_info(document.referrer);\n }\n\n // update $set object with default people properties\n data[SET_ACTION] = _.extend(\n {},\n _.info.people_properties(),\n data[SET_ACTION]\n );\n return this._send_request(data, callback);\n});\n\n/*\n* Set properties on a user record, only if they do not yet exist.\n* This will not overwrite previous people property values, unlike\n* people.set().\n*\n* ### Usage:\n*\n* mixpanel.people.set_once('First Login Date', new Date());\n*\n* // or set multiple properties at once\n* mixpanel.people.set_once({\n* 'First Login Date': new Date(),\n* 'Starting Plan': 'Premium'\n* });\n*\n* // properties can be strings, integers or dates\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set_once = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/*\n* Unset properties on a user record (permanently removes the properties and their values from a profile).\n*\n* ### Usage:\n*\n* mixpanel.people.unset('gender');\n*\n* // or unset multiple properties at once\n* mixpanel.people.unset(['gender', 'Company']);\n*\n* @param {Array|String} prop If a string, this is the name of the property. If an array, this is a list of property names.\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.unset = addOptOutCheckMixpanelPeople(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/*\n* Increment/decrement numeric people analytics properties.\n*\n* ### Usage:\n*\n* mixpanel.people.increment('page_views', 1);\n*\n* // or, for convenience, if you're just incrementing a counter by\n* // 1, you can simply do\n* mixpanel.people.increment('page_views');\n*\n* // to decrement a counter, pass a negative number\n* mixpanel.people.increment('credits_left', -1);\n*\n* // like mixpanel.people.set(), you can increment multiple\n* // properties at once:\n* mixpanel.people.increment({\n* counter1: 1,\n* counter2: 6\n* });\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and numeric values.\n* @param {Number} [by] An amount to increment the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.increment = addOptOutCheckMixpanelPeople(function(prop, by, callback) {\n var data = {};\n var $add = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n if (isNaN(parseFloat(v))) {\n console$1.error('Invalid increment value passed to mixpanel.people.increment - must be a number');\n return;\n } else {\n $add[k] = v;\n }\n }\n }, this);\n callback = by;\n } else {\n // convenience: mixpanel.people.increment('property'); will\n // increment 'property' by 1\n if (_.isUndefined(by)) {\n by = 1;\n }\n $add[prop] = by;\n }\n data[ADD_ACTION] = $add;\n\n return this._send_request(data, callback);\n});\n\n/*\n* Append a value to a list-valued people analytics property.\n*\n* ### Usage:\n*\n* // append a value to a list, creating it if needed\n* mixpanel.people.append('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.append({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value An item to append to the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.append = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.append_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Remove a value from a list-valued people analytics property.\n*\n* ### Usage:\n*\n* mixpanel.people.remove('School', 'UCB');\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value Item to remove from the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.remove = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Merge a given list with a list-valued people analytics property,\n* excluding duplicate values.\n*\n* ### Usage:\n*\n* // merge a value to a list, creating it if needed\n* mixpanel.people.union('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.union({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* // like mixpanel.people.append(), you can append multiple\n* // values to the same list:\n* mixpanel.people.union({\n* list1: ['bob', 'billy']\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] Value / values to merge with the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.union = addOptOutCheckMixpanelPeople(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/*\n * Record that you have charged the current user a certain amount\n * of money. Charges recorded with track_charge() will appear in the\n * Mixpanel revenue report.\n *\n * ### Usage:\n *\n * // charge a user $50\n * mixpanel.people.track_charge(50);\n *\n * // charge a user $30.50 on the 2nd of january\n * mixpanel.people.track_charge(30.50, {\n * '$time': new Date('jan 1 2012')\n * });\n *\n * @param {Number} amount The amount of money charged to the current user\n * @param {Object} [properties] An associative array of properties associated with the charge\n * @param {Function} [callback] If provided, the callback will be called when the server responds\n * @deprecated\n */\nMixpanelPeople.prototype.track_charge = addOptOutCheckMixpanelPeople(function(amount, properties, callback) {\n if (!_.isNumber(amount)) {\n amount = parseFloat(amount);\n if (isNaN(amount)) {\n console$1.error('Invalid value passed to mixpanel.people.track_charge - must be a number');\n return;\n }\n }\n\n return this.append('$transactions', _.extend({\n '$amount': amount\n }, properties), callback);\n});\n\n/*\n * Permanently clear all revenue report transactions from the\n * current user's people analytics profile.\n *\n * ### Usage:\n *\n * mixpanel.people.clear_charges();\n *\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n * @deprecated\n */\nMixpanelPeople.prototype.clear_charges = function(callback) {\n return this.set('$transactions', [], callback);\n};\n\n/*\n* Permanently deletes the current people analytics profile from\n* Mixpanel (using the current distinct_id).\n*\n* ### Usage:\n*\n* // remove the all data you have stored about the current user\n* mixpanel.people.delete_user();\n*\n*/\nMixpanelPeople.prototype.delete_user = function() {\n if (!this._identify_called()) {\n console$1.error('mixpanel.people.delete_user() requires you to call identify() first');\n return;\n }\n var data = {'$delete': this._mixpanel.get_distinct_id()};\n return this._send_request(data);\n};\n\nMixpanelPeople.prototype.toString = function() {\n return this._mixpanel.toString() + '.people';\n};\n\nMixpanelPeople.prototype._send_request = function(data, callback) {\n data['$token'] = this._get_config('token');\n data['$distinct_id'] = this._mixpanel.get_distinct_id();\n var device_id = this._mixpanel.get_property('$device_id');\n var user_id = this._mixpanel.get_property('$user_id');\n var had_persisted_distinct_id = this._mixpanel.get_property('$had_persisted_distinct_id');\n if (device_id) {\n data['$device_id'] = device_id;\n }\n if (user_id) {\n data['$user_id'] = user_id;\n }\n if (had_persisted_distinct_id) {\n data['$had_persisted_distinct_id'] = had_persisted_distinct_id;\n }\n\n var date_encoded_data = _.encodeDates(data);\n\n if (!this._identify_called()) {\n this._enqueue(data);\n if (!_.isUndefined(callback)) {\n if (this._get_config('verbose')) {\n callback({status: -1, error: null});\n } else {\n callback(-1);\n }\n }\n return _.truncate(date_encoded_data, 255);\n }\n\n return this._mixpanel._track_or_batch({\n type: 'people',\n data: date_encoded_data,\n endpoint: this._get_config('api_host') + '/' + this._get_config('api_routes')['engage'],\n batcher: this._mixpanel.request_batchers.people\n }, callback);\n};\n\nMixpanelPeople.prototype._get_config = function(conf_var) {\n return this._mixpanel.get_config(conf_var);\n};\n\nMixpanelPeople.prototype._identify_called = function() {\n return this._mixpanel._flags.identify_called === true;\n};\n\n// Queue up engage operations if identify hasn't been called yet.\nMixpanelPeople.prototype._enqueue = function(data) {\n if (SET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ACTION, data);\n } else if (SET_ONCE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ONCE_ACTION, data);\n } else if (UNSET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNSET_ACTION, data);\n } else if (ADD_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(ADD_ACTION, data);\n } else if (APPEND_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, data);\n } else if (REMOVE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, data);\n } else if (UNION_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNION_ACTION, data);\n } else {\n console$1.error('Invalid call to _enqueue():', data);\n }\n};\n\nMixpanelPeople.prototype._flush_one_queue = function(action, action_method, callback, queue_to_params_fn) {\n var _this = this;\n var queued_data = _.extend({}, this._mixpanel['persistence'].load_queue(action));\n var action_params = queued_data;\n\n if (!_.isUndefined(queued_data) && _.isObject(queued_data) && !_.isEmptyObject(queued_data)) {\n _this._mixpanel['persistence']._pop_from_people_queue(action, queued_data);\n _this._mixpanel['persistence'].save();\n if (queue_to_params_fn) {\n action_params = queue_to_params_fn(queued_data);\n }\n action_method.call(_this, action_params, function(response, data) {\n // on bad response, we want to add it back to the queue\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(action, queued_data);\n }\n if (!_.isUndefined(callback)) {\n callback(response, data);\n }\n });\n }\n};\n\n// Flush queued engage operations - order does not matter,\n// and there are network level race conditions anyway\nMixpanelPeople.prototype._flush = function(\n _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n var _this = this;\n\n this._flush_one_queue(SET_ACTION, this.set, _set_callback);\n this._flush_one_queue(SET_ONCE_ACTION, this.set_once, _set_once_callback);\n this._flush_one_queue(UNSET_ACTION, this.unset, _unset_callback, function(queue) { return _.keys(queue); });\n this._flush_one_queue(ADD_ACTION, this.increment, _add_callback);\n this._flush_one_queue(UNION_ACTION, this.union, _union_callback);\n\n // we have to fire off each $append individually since there is\n // no concat method server side\n var $append_queue = this._mixpanel['persistence'].load_queue(APPEND_ACTION);\n if (!_.isUndefined($append_queue) && _.isArray($append_queue) && $append_queue.length) {\n var $append_item;\n var append_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, $append_item);\n }\n if (!_.isUndefined(_append_callback)) {\n _append_callback(response, data);\n }\n };\n for (var i = $append_queue.length - 1; i >= 0; i--) {\n $append_queue = this._mixpanel['persistence'].load_queue(APPEND_ACTION);\n $append_item = $append_queue.pop();\n _this._mixpanel['persistence'].save();\n if (!_.isEmptyObject($append_item)) {\n _this.append($append_item, append_callback);\n }\n }\n }\n\n // same for $remove\n var $remove_queue = this._mixpanel['persistence'].load_queue(REMOVE_ACTION);\n if (!_.isUndefined($remove_queue) && _.isArray($remove_queue) && $remove_queue.length) {\n var $remove_item;\n var remove_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, $remove_item);\n }\n if (!_.isUndefined(_remove_callback)) {\n _remove_callback(response, data);\n }\n };\n for (var j = $remove_queue.length - 1; j >= 0; j--) {\n $remove_queue = this._mixpanel['persistence'].load_queue(REMOVE_ACTION);\n $remove_item = $remove_queue.pop();\n _this._mixpanel['persistence'].save();\n if (!_.isEmptyObject($remove_item)) {\n _this.remove($remove_item, remove_callback);\n }\n }\n }\n};\n\nMixpanelPeople.prototype._is_reserved_property = function(prop) {\n return prop === '$distinct_id' || prop === '$token' || prop === '$device_id' || prop === '$user_id' || prop === '$had_persisted_distinct_id';\n};\n\n// MixpanelPeople Exports\nMixpanelPeople.prototype['set'] = MixpanelPeople.prototype.set;\nMixpanelPeople.prototype['set_once'] = MixpanelPeople.prototype.set_once;\nMixpanelPeople.prototype['unset'] = MixpanelPeople.prototype.unset;\nMixpanelPeople.prototype['increment'] = MixpanelPeople.prototype.increment;\nMixpanelPeople.prototype['append'] = MixpanelPeople.prototype.append;\nMixpanelPeople.prototype['remove'] = MixpanelPeople.prototype.remove;\nMixpanelPeople.prototype['union'] = MixpanelPeople.prototype.union;\nMixpanelPeople.prototype['track_charge'] = MixpanelPeople.prototype.track_charge;\nMixpanelPeople.prototype['clear_charges'] = MixpanelPeople.prototype.clear_charges;\nMixpanelPeople.prototype['delete_user'] = MixpanelPeople.prototype.delete_user;\nMixpanelPeople.prototype['toString'] = MixpanelPeople.prototype.toString;\n\n/* eslint camelcase: \"off\" */\n\n/*\n * Constants\n */\n/** @const */ var SET_QUEUE_KEY = '__mps';\n/** @const */ var SET_ONCE_QUEUE_KEY = '__mpso';\n/** @const */ var UNSET_QUEUE_KEY = '__mpus';\n/** @const */ var ADD_QUEUE_KEY = '__mpa';\n/** @const */ var APPEND_QUEUE_KEY = '__mpap';\n/** @const */ var REMOVE_QUEUE_KEY = '__mpr';\n/** @const */ var UNION_QUEUE_KEY = '__mpu';\n// This key is deprecated, but we want to check for it to see whether aliasing is allowed.\n/** @const */ var PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id';\n/** @const */ var ALIAS_ID_KEY = '__alias';\n/** @const */ var EVENT_TIMERS_KEY = '__timers';\n/** @const */ var RESERVED_PROPERTIES = [\n SET_QUEUE_KEY,\n SET_ONCE_QUEUE_KEY,\n UNSET_QUEUE_KEY,\n ADD_QUEUE_KEY,\n APPEND_QUEUE_KEY,\n REMOVE_QUEUE_KEY,\n UNION_QUEUE_KEY,\n PEOPLE_DISTINCT_ID_KEY,\n ALIAS_ID_KEY,\n EVENT_TIMERS_KEY\n];\n\n/**\n * Mixpanel Persistence Object\n * @constructor\n */\nvar MixpanelPersistence = function(config) {\n this['props'] = {};\n this.campaign_params_saved = false;\n\n if (config['persistence_name']) {\n this.name = 'mp_' + config['persistence_name'];\n } else {\n this.name = 'mp_' + config['token'] + '_mixpanel';\n }\n\n var storage_type = config['persistence'];\n if (storage_type !== 'cookie' && storage_type !== 'localStorage') {\n console$1.critical('Unknown persistence type ' + storage_type + '; falling back to cookie');\n storage_type = config['persistence'] = 'cookie';\n }\n\n if (storage_type === 'localStorage' && _.localStorage.is_supported()) {\n this.storage = _.localStorage;\n } else {\n this.storage = _.cookie;\n }\n\n this.load();\n this.update_config(config);\n this.upgrade();\n this.save();\n};\n\nMixpanelPersistence.prototype.properties = function() {\n var p = {};\n\n this.load();\n\n // Filter out reserved properties\n _.each(this['props'], function(v, k) {\n if (!_.include(RESERVED_PROPERTIES, k)) {\n p[k] = v;\n }\n });\n return p;\n};\n\nMixpanelPersistence.prototype.load = function() {\n if (this.disabled) { return; }\n\n var entry = this.storage.parse(this.name);\n\n if (entry) {\n this['props'] = _.extend({}, entry);\n }\n};\n\nMixpanelPersistence.prototype.upgrade = function() {\n var old_cookie,\n old_localstorage;\n\n // if transferring from cookie to localStorage or vice-versa, copy existing\n // super properties over to new storage mode\n if (this.storage === _.localStorage) {\n old_cookie = _.cookie.parse(this.name);\n\n _.cookie.remove(this.name);\n _.cookie.remove(this.name, true);\n\n if (old_cookie) {\n this.register_once(old_cookie);\n }\n } else if (this.storage === _.cookie) {\n old_localstorage = _.localStorage.parse(this.name);\n\n _.localStorage.remove(this.name);\n\n if (old_localstorage) {\n this.register_once(old_localstorage);\n }\n }\n};\n\nMixpanelPersistence.prototype.save = function() {\n if (this.disabled) { return; }\n\n this.storage.set(\n this.name,\n _.JSONEncode(this['props']),\n this.expire_days,\n this.cross_subdomain,\n this.secure,\n this.cross_site,\n this.cookie_domain\n );\n};\n\nMixpanelPersistence.prototype.load_prop = function(key) {\n this.load();\n return this['props'][key];\n};\n\nMixpanelPersistence.prototype.remove = function() {\n // remove both domain and subdomain cookies\n this.storage.remove(this.name, false, this.cookie_domain);\n this.storage.remove(this.name, true, this.cookie_domain);\n};\n\n// removes the storage entry and deletes all loaded data\n// forced name for tests\nMixpanelPersistence.prototype.clear = function() {\n this.remove();\n this['props'] = {};\n};\n\n/**\n* @param {Object} props\n* @param {*=} default_value\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register_once = function(props, default_value, days) {\n if (_.isObject(props)) {\n if (typeof(default_value) === 'undefined') { default_value = 'None'; }\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n this.load();\n\n _.each(props, function(val, prop) {\n if (!this['props'].hasOwnProperty(prop) || this['props'][prop] === default_value) {\n this['props'][prop] = val;\n }\n }, this);\n\n this.save();\n\n return true;\n }\n return false;\n};\n\n/**\n* @param {Object} props\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register = function(props, days) {\n if (_.isObject(props)) {\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n this.load();\n _.extend(this['props'], props);\n this.save();\n\n return true;\n }\n return false;\n};\n\nMixpanelPersistence.prototype.unregister = function(prop) {\n this.load();\n if (prop in this['props']) {\n delete this['props'][prop];\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.update_search_keyword = function(referrer) {\n this.register(_.info.searchInfo(referrer));\n};\n\n// EXPORTED METHOD, we test this directly.\nMixpanelPersistence.prototype.update_referrer_info = function(referrer) {\n // If referrer doesn't exist, we want to note the fact that it was type-in traffic.\n this.register_once({\n '$initial_referrer': referrer || '$direct',\n '$initial_referring_domain': _.info.referringDomain(referrer) || '$direct'\n }, '');\n};\n\nMixpanelPersistence.prototype.get_referrer_info = function() {\n return _.strip_empty_properties({\n '$initial_referrer': this['props']['$initial_referrer'],\n '$initial_referring_domain': this['props']['$initial_referring_domain']\n });\n};\n\nMixpanelPersistence.prototype.update_config = function(config) {\n this.default_expiry = this.expire_days = config['cookie_expiration'];\n this.set_disabled(config['disable_persistence']);\n this.set_cookie_domain(config['cookie_domain']);\n this.set_cross_site(config['cross_site_cookie']);\n this.set_cross_subdomain(config['cross_subdomain_cookie']);\n this.set_secure(config['secure_cookie']);\n};\n\nMixpanelPersistence.prototype.set_disabled = function(disabled) {\n this.disabled = disabled;\n if (this.disabled) {\n this.remove();\n } else {\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cookie_domain = function(cookie_domain) {\n if (cookie_domain !== this.cookie_domain) {\n this.remove();\n this.cookie_domain = cookie_domain;\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_site = function(cross_site) {\n if (cross_site !== this.cross_site) {\n this.cross_site = cross_site;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_subdomain = function(cross_subdomain) {\n if (cross_subdomain !== this.cross_subdomain) {\n this.cross_subdomain = cross_subdomain;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.get_cross_subdomain = function() {\n return this.cross_subdomain;\n};\n\nMixpanelPersistence.prototype.set_secure = function(secure) {\n if (secure !== this.secure) {\n this.secure = secure ? true : false;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype._add_to_people_queue = function(queue, data) {\n var q_key = this._get_queue_key(queue),\n q_data = data[queue],\n set_q = this._get_or_create_queue(SET_ACTION),\n set_once_q = this._get_or_create_queue(SET_ONCE_ACTION),\n unset_q = this._get_or_create_queue(UNSET_ACTION),\n add_q = this._get_or_create_queue(ADD_ACTION),\n union_q = this._get_or_create_queue(UNION_ACTION),\n remove_q = this._get_or_create_queue(REMOVE_ACTION, []),\n append_q = this._get_or_create_queue(APPEND_ACTION, []);\n\n if (q_key === SET_QUEUE_KEY) {\n // Update the set queue - we can override any existing values\n _.extend(set_q, q_data);\n // if there was a pending increment, override it\n // with the set.\n this._pop_from_people_queue(ADD_ACTION, q_data);\n // if there was a pending union, override it\n // with the set.\n this._pop_from_people_queue(UNION_ACTION, q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === SET_ONCE_QUEUE_KEY) {\n // only queue the data if there is not already a set_once call for it.\n _.each(q_data, function(v, k) {\n if (!(k in set_once_q)) {\n set_once_q[k] = v;\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNSET_QUEUE_KEY) {\n _.each(q_data, function(prop) {\n\n // undo previously-queued actions on this key\n _.each([set_q, set_once_q, add_q, union_q], function(enqueued_obj) {\n if (prop in enqueued_obj) {\n delete enqueued_obj[prop];\n }\n });\n _.each(append_q, function(append_obj) {\n if (prop in append_obj) {\n delete append_obj[prop];\n }\n });\n\n unset_q[prop] = true;\n\n });\n } else if (q_key === ADD_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n // If it exists in the set queue, increment\n // the value\n if (k in set_q) {\n set_q[k] += v;\n } else {\n // If it doesn't exist, update the add\n // queue\n if (!(k in add_q)) {\n add_q[k] = 0;\n }\n add_q[k] += v;\n }\n }, this);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNION_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n if (_.isArray(v)) {\n if (!(k in union_q)) {\n union_q[k] = [];\n }\n // Prevent duplicate values\n _.each(v, function(item) {\n if (!_.include(union_q[k], item)) {\n union_q[k].push(item);\n }\n });\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === REMOVE_QUEUE_KEY) {\n remove_q.push(q_data);\n this._pop_from_people_queue(APPEND_ACTION, q_data);\n } else if (q_key === APPEND_QUEUE_KEY) {\n append_q.push(q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n }\n\n console$1.log('MIXPANEL PEOPLE REQUEST (QUEUED, PENDING IDENTIFY):');\n console$1.log(data);\n\n this.save();\n};\n\nMixpanelPersistence.prototype._pop_from_people_queue = function(queue, data) {\n var q = this['props'][this._get_queue_key(queue)];\n if (!_.isUndefined(q)) {\n _.each(data, function(v, k) {\n if (queue === APPEND_ACTION || queue === REMOVE_ACTION) {\n // list actions: only remove if both k+v match\n // e.g. remove should not override append in a case like\n // append({foo: 'bar'}); remove({foo: 'qux'})\n _.each(q, function(queued_action) {\n if (queued_action[k] === v) {\n delete queued_action[k];\n }\n });\n } else {\n delete q[k];\n }\n }, this);\n }\n};\n\nMixpanelPersistence.prototype.load_queue = function(queue) {\n return this.load_prop(this._get_queue_key(queue));\n};\n\nMixpanelPersistence.prototype._get_queue_key = function(queue) {\n if (queue === SET_ACTION) {\n return SET_QUEUE_KEY;\n } else if (queue === SET_ONCE_ACTION) {\n return SET_ONCE_QUEUE_KEY;\n } else if (queue === UNSET_ACTION) {\n return UNSET_QUEUE_KEY;\n } else if (queue === ADD_ACTION) {\n return ADD_QUEUE_KEY;\n } else if (queue === APPEND_ACTION) {\n return APPEND_QUEUE_KEY;\n } else if (queue === REMOVE_ACTION) {\n return REMOVE_QUEUE_KEY;\n } else if (queue === UNION_ACTION) {\n return UNION_QUEUE_KEY;\n } else {\n console$1.error('Invalid queue:', queue);\n }\n};\n\nMixpanelPersistence.prototype._get_or_create_queue = function(queue, default_val) {\n var key = this._get_queue_key(queue);\n default_val = _.isUndefined(default_val) ? {} : default_val;\n return this['props'][key] || (this['props'][key] = default_val);\n};\n\nMixpanelPersistence.prototype.set_event_timer = function(event_name, timestamp) {\n var timers = this.load_prop(EVENT_TIMERS_KEY) || {};\n timers[event_name] = timestamp;\n this['props'][EVENT_TIMERS_KEY] = timers;\n this.save();\n};\n\nMixpanelPersistence.prototype.remove_event_timer = function(event_name) {\n var timers = this.load_prop(EVENT_TIMERS_KEY) || {};\n var timestamp = timers[event_name];\n if (!_.isUndefined(timestamp)) {\n delete this['props'][EVENT_TIMERS_KEY][event_name];\n this.save();\n }\n return timestamp;\n};\n\n/* eslint camelcase: \"off\" */\n\n/*\n * Mixpanel JS Library\n *\n * Copyright 2012, Mixpanel, Inc. All Rights Reserved\n * http://mixpanel.com/\n *\n * Includes portions of Underscore.js\n * http://documentcloud.github.com/underscore/\n * (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.\n * Released under the MIT License.\n */\n\n// ==ClosureCompiler==\n// @compilation_level ADVANCED_OPTIMIZATIONS\n// @output_file_name mixpanel-2.8.min.js\n// ==/ClosureCompiler==\n\n/*\nSIMPLE STYLE GUIDE:\n\nthis.x === public function\nthis._x === internal - only use within this file\nthis.__x === private - only use within the class\n\nGlobals should be all caps\n*/\n\nvar init_type; // MODULE or SNIPPET loader\n// allow bundlers to specify how extra code (recorder bundle) should be loaded\n// eslint-disable-next-line no-unused-vars\nvar load_extra_bundle = function(src, _onload) {\n throw new Error(src + ' not available in this build.');\n};\n\nvar mixpanel_master; // main mixpanel instance / object\nvar INIT_MODULE = 0;\nvar INIT_SNIPPET = 1;\n\nvar IDENTITY_FUNC = function(x) {return x;};\nvar NOOP_FUNC = function() {};\n\n/** @const */ var PRIMARY_INSTANCE_NAME = 'mixpanel';\n/** @const */ var PAYLOAD_TYPE_BASE64 = 'base64';\n/** @const */ var PAYLOAD_TYPE_JSON = 'json';\n/** @const */ var DEVICE_ID_PREFIX = '$device:';\n\n\n/*\n * Dynamic... constants? Is that an oxymoron?\n */\n// http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n// https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#withCredentials\nvar USE_XHR = (win.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest());\n\n// IE<10 does not support cross-origin XHR's but script tags\n// with defer won't block window.onload; ENQUEUE_REQUESTS\n// should only be true for Opera<12\nvar ENQUEUE_REQUESTS = !USE_XHR && (userAgent.indexOf('MSIE') === -1) && (userAgent.indexOf('Mozilla') === -1);\n\n// save reference to navigator.sendBeacon so it can be minified\nvar sendBeacon = null;\nif (navigator['sendBeacon']) {\n sendBeacon = function() {\n // late reference to navigator.sendBeacon to allow patching/spying\n return navigator['sendBeacon'].apply(navigator, arguments);\n };\n}\n\nvar DEFAULT_API_ROUTES = {\n 'track': 'track/',\n 'engage': 'engage/',\n 'groups': 'groups/',\n 'record': 'record/'\n};\n\n/*\n * Module-level globals\n */\nvar DEFAULT_CONFIG = {\n 'api_host': 'https://api-js.mixpanel.com',\n 'api_routes': DEFAULT_API_ROUTES,\n 'api_method': 'POST',\n 'api_transport': 'XHR',\n 'api_payload_format': PAYLOAD_TYPE_BASE64,\n 'app_host': 'https://mixpanel.com',\n 'autocapture': false,\n 'cdn': 'https://cdn.mxpnl.com',\n 'cross_site_cookie': false,\n 'cross_subdomain_cookie': true,\n 'error_reporter': NOOP_FUNC,\n 'persistence': 'cookie',\n 'persistence_name': '',\n 'cookie_domain': '',\n 'cookie_name': '',\n 'loaded': NOOP_FUNC,\n 'mp_loader': null,\n 'track_marketing': true,\n 'track_pageview': false,\n 'skip_first_touch_marketing': false,\n 'store_google': true,\n 'stop_utm_persistence': false,\n 'save_referrer': true,\n 'test': false,\n 'verbose': false,\n 'img': false,\n 'debug': false,\n 'track_links_timeout': 300,\n 'cookie_expiration': 365,\n 'upgrade': false,\n 'disable_persistence': false,\n 'disable_cookie': false,\n 'secure_cookie': false,\n 'ip': true,\n 'opt_out_tracking_by_default': false,\n 'opt_out_persistence_by_default': false,\n 'opt_out_tracking_persistence_type': 'localStorage',\n 'opt_out_tracking_cookie_prefix': null,\n 'property_blacklist': [],\n 'xhr_headers': {}, // { header: value, header2: value }\n 'ignore_dnt': false,\n 'batch_requests': true,\n 'batch_size': 50,\n 'batch_flush_interval_ms': 5000,\n 'batch_request_timeout_ms': 90000,\n 'batch_autostart': true,\n 'hooks': {},\n 'record_block_class': new RegExp('^(mp-block|fs-exclude|amp-block|rr-block|ph-no-capture)$'),\n 'record_block_selector': 'img, video',\n 'record_canvas': false,\n 'record_collect_fonts': false,\n 'record_idle_timeout_ms': 30 * 60 * 1000, // 30 minutes\n 'record_mask_text_class': new RegExp('^(mp-mask|fs-mask|amp-mask|rr-mask|ph-mask)$'),\n 'record_mask_text_selector': '*',\n 'record_max_ms': MAX_RECORDING_MS,\n 'record_min_ms': 0,\n 'record_sessions_percent': 0,\n 'recorder_src': 'https://cdn.mxpnl.com/libs/mixpanel-recorder.min.js'\n};\n\nvar DOM_LOADED = false;\n\n/**\n * Mixpanel Library Object\n * @constructor\n */\nvar MixpanelLib = function() {};\n\n\n/**\n * create_mplib(token:string, config:object, name:string)\n *\n * This function is used by the init method of MixpanelLib objects\n * as well as the main initializer at the end of the JSLib (that\n * initializes document.mixpanel as well as any additional instances\n * declared before this file has loaded).\n */\nvar create_mplib = function(token, config, name) {\n var instance,\n target = (name === PRIMARY_INSTANCE_NAME) ? mixpanel_master : mixpanel_master[name];\n\n if (target && init_type === INIT_MODULE) {\n instance = target;\n } else {\n if (target && !_.isArray(target)) {\n console$1.error('You have already initialized ' + name);\n return;\n }\n instance = new MixpanelLib();\n }\n\n instance._cached_groups = {}; // cache groups in a pool\n\n instance._init(token, config, name);\n\n instance['people'] = new MixpanelPeople();\n instance['people']._init(instance);\n\n if (!instance.get_config('skip_first_touch_marketing')) {\n // We need null UTM params in the object because\n // UTM parameters act as a tuple. If any UTM param\n // is present, then we set all UTM params including\n // empty ones together\n var utm_params = _.info.campaignParams(null);\n var initial_utm_params = {};\n var has_utm = false;\n _.each(utm_params, function(utm_value, utm_key) {\n initial_utm_params['initial_' + utm_key] = utm_value;\n if (utm_value) {\n has_utm = true;\n }\n });\n if (has_utm) {\n instance['people'].set_once(initial_utm_params);\n }\n }\n\n // if any instance on the page has debug = true, we set the\n // global debug to be true\n Config.DEBUG = Config.DEBUG || instance.get_config('debug');\n\n // if target is not defined, we called init after the lib already\n // loaded, so there won't be an array of things to execute\n if (!_.isUndefined(target) && _.isArray(target)) {\n // Crunch through the people queue first - we queue this data up &\n // flush on identify, so it's better to do all these operations first\n instance._execute_array.call(instance['people'], target['people']);\n instance._execute_array(target);\n }\n\n return instance;\n};\n\n// Initialization methods\n\n/**\n * This function initializes a new instance of the Mixpanel tracking object.\n * All new instances are added to the main mixpanel object as sub properties (such as\n * mixpanel.library_name) and also returned by this function. To define a\n * second instance on the page, you would call:\n *\n * mixpanel.init('new token', { your: 'config' }, 'library_name');\n *\n * and use it like so:\n *\n * mixpanel.library_name.track(...);\n *\n * @param {String} token Your Mixpanel API token\n * @param {Object} [config] A dictionary of config options to override. <a href=\"https://github.com/mixpanel/mixpanel-js/blob/v2.46.0/src/mixpanel-core.js#L88-L127\">See a list of default config options</a>.\n * @param {String} [name] The name for the new mixpanel instance that you want created\n */\nMixpanelLib.prototype.init = function (token, config, name) {\n if (_.isUndefined(name)) {\n this.report_error('You must name your new library: init(token, config, name)');\n return;\n }\n if (name === PRIMARY_INSTANCE_NAME) {\n this.report_error('You must initialize the main mixpanel object right after you include the Mixpanel js snippet');\n return;\n }\n\n var instance = create_mplib(token, config, name);\n mixpanel_master[name] = instance;\n instance._loaded();\n\n return instance;\n};\n\n// mixpanel._init(token:string, config:object, name:string)\n//\n// This function sets up the current instance of the mixpanel\n// library. The difference between this method and the init(...)\n// method is this one initializes the actual instance, whereas the\n// init(...) method sets up a new library and calls _init on it.\n//\nMixpanelLib.prototype._init = function(token, config, name) {\n config = config || {};\n\n this['__loaded'] = true;\n this['config'] = {};\n\n var variable_features = {};\n\n // default to JSON payload for standard mixpanel.com API hosts\n if (!('api_payload_format' in config)) {\n var api_host = config['api_host'] || DEFAULT_CONFIG['api_host'];\n if (api_host.match(/\\.mixpanel\\.com/)) {\n variable_features['api_payload_format'] = PAYLOAD_TYPE_JSON;\n }\n }\n\n this.set_config(_.extend({}, DEFAULT_CONFIG, variable_features, config, {\n 'name': name,\n 'token': token,\n 'callback_fn': ((name === PRIMARY_INSTANCE_NAME) ? name : PRIMARY_INSTANCE_NAME + '.' + name) + '._jsc'\n }));\n\n this['_jsc'] = NOOP_FUNC;\n\n this.__dom_loaded_queue = [];\n this.__request_queue = [];\n this.__disabled_events = [];\n this._flags = {\n 'disable_all_events': false,\n 'identify_called': false\n };\n\n // set up request queueing/batching\n this.request_batchers = {};\n this._batch_requests = this.get_config('batch_requests');\n if (this._batch_requests) {\n if (!_.localStorage.is_supported(true) || !USE_XHR) {\n this._batch_requests = false;\n console$1.log('Turning off Mixpanel request-queueing; needs XHR and localStorage support');\n _.each(this.get_batcher_configs(), function(batcher_config) {\n console$1.log('Clearing batch queue ' + batcher_config.queue_key);\n _.localStorage.remove(batcher_config.queue_key);\n });\n } else {\n this.init_batchers();\n if (sendBeacon && win.addEventListener) {\n // Before page closes or hides (user tabs away etc), attempt to flush any events\n // queued up via navigator.sendBeacon. Since sendBeacon doesn't report success/failure,\n // events will not be removed from the persistent store; if the site is loaded again,\n // the events will be flushed again on startup and deduplicated on the Mixpanel server\n // side.\n // There is no reliable way to capture only page close events, so we lean on the\n // visibilitychange and pagehide events as recommended at\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/unload_event#usage_notes.\n // These events fire when the user clicks away from the current page/tab, so will occur\n // more frequently than page unload, but are the only mechanism currently for capturing\n // this scenario somewhat reliably.\n var flush_on_unload = _.bind(function() {\n if (!this.request_batchers.events.stopped) {\n this.request_batchers.events.flush({unloading: true});\n }\n }, this);\n win.addEventListener('pagehide', function(ev) {\n if (ev['persisted']) {\n flush_on_unload();\n }\n });\n win.addEventListener('visibilitychange', function() {\n if (document$1['visibilityState'] === 'hidden') {\n flush_on_unload();\n }\n });\n }\n }\n }\n\n this['persistence'] = this['cookie'] = new MixpanelPersistence(this['config']);\n this.unpersisted_superprops = {};\n this._gdpr_init();\n\n var uuid = _.UUID();\n if (!this.get_distinct_id()) {\n // There is no need to set the distinct id\n // or the device id if something was already stored\n // in the persitence\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n }\n\n this.autocapture = new Autocapture(this);\n this.autocapture.init();\n\n if (this.get_config('record_sessions_percent') > 0 && Math.random() * 100 <= this.get_config('record_sessions_percent')) {\n this.start_session_recording();\n }\n};\n\nMixpanelLib.prototype.start_session_recording = addOptOutCheckMixpanelLib(function () {\n if (!win['MutationObserver']) {\n console$1.critical('Browser does not support MutationObserver; skipping session recording');\n return;\n }\n\n var handleLoadedRecorder = _.bind(function() {\n this._recorder = this._recorder || new win['__mp_recorder'](this);\n this._recorder['startRecording']();\n }, this);\n\n if (_.isUndefined(win['__mp_recorder'])) {\n load_extra_bundle(this.get_config('recorder_src'), handleLoadedRecorder);\n } else {\n handleLoadedRecorder();\n }\n});\n\nMixpanelLib.prototype.stop_session_recording = function () {\n if (this._recorder) {\n this._recorder['stopRecording']();\n } else {\n console$1.critical('Session recorder module not loaded');\n }\n};\n\nMixpanelLib.prototype.get_session_recording_properties = function () {\n var props = {};\n var replay_id = this._get_session_replay_id();\n if (replay_id) {\n props['$mp_replay_id'] = replay_id;\n }\n return props;\n};\n\nMixpanelLib.prototype.get_session_replay_url = function () {\n var replay_url = null;\n var replay_id = this._get_session_replay_id();\n if (replay_id) {\n var query_params = _.HTTPBuildQuery({\n 'replay_id': replay_id,\n 'distinct_id': this.get_distinct_id(),\n 'token': this.get_config('token')\n });\n replay_url = 'https://mixpanel.com/projects/replay-redirect?' + query_params;\n }\n return replay_url;\n};\n\nMixpanelLib.prototype._get_session_replay_id = function () {\n var replay_id = null;\n if (this._recorder) {\n replay_id = this._recorder['replayId'];\n }\n return replay_id || null;\n};\n\n// Private methods\n\nMixpanelLib.prototype._loaded = function() {\n this.get_config('loaded')(this);\n this._set_default_superprops();\n this['people'].set_once(this['persistence'].get_referrer_info());\n\n // `store_google` is now deprecated and previously stored UTM parameters are cleared\n // from persistence by default.\n if (this.get_config('store_google') && this.get_config('stop_utm_persistence')) {\n var utm_params = _.info.campaignParams(null);\n _.each(utm_params, function(_utm_value, utm_key) {\n // We need to unregister persisted UTM parameters so old values\n // are not mixed with the new UTM parameters\n this.unregister(utm_key);\n }.bind(this));\n }\n};\n\n// update persistence with info on referrer, UTM params, etc\nMixpanelLib.prototype._set_default_superprops = function() {\n this['persistence'].update_search_keyword(document$1.referrer);\n // Registering super properties for UTM persistence by 'store_google' is deprecated.\n if (this.get_config('store_google') && !this.get_config('stop_utm_persistence')) {\n this.register(_.info.campaignParams());\n }\n if (this.get_config('save_referrer')) {\n this['persistence'].update_referrer_info(document$1.referrer);\n }\n};\n\nMixpanelLib.prototype._dom_loaded = function() {\n _.each(this.__dom_loaded_queue, function(item) {\n this._track_dom.apply(this, item);\n }, this);\n\n if (!this.has_opted_out_tracking()) {\n _.each(this.__request_queue, function(item) {\n this._send_request.apply(this, item);\n }, this);\n }\n\n delete this.__dom_loaded_queue;\n delete this.__request_queue;\n};\n\nMixpanelLib.prototype._track_dom = function(DomClass, args) {\n if (this.get_config('img')) {\n this.report_error('You can\\'t use DOM tracking functions with img = true.');\n return false;\n }\n\n if (!DOM_LOADED) {\n this.__dom_loaded_queue.push([DomClass, args]);\n return false;\n }\n\n var dt = new DomClass().init(this);\n return dt.track.apply(dt, args);\n};\n\n/**\n * _prepare_callback() should be called by callers of _send_request for use\n * as the callback argument.\n *\n * If there is no callback, this returns null.\n * If we are going to make XHR/XDR requests, this returns a function.\n * If we are going to use script tags, this returns a string to use as the\n * callback GET param.\n */\nMixpanelLib.prototype._prepare_callback = function(callback, data) {\n if (_.isUndefined(callback)) {\n return null;\n }\n\n if (USE_XHR) {\n var callback_function = function(response) {\n callback(response, data);\n };\n return callback_function;\n } else {\n // if the user gives us a callback, we store as a random\n // property on this instances jsc function and update our\n // callback string to reflect that.\n var jsc = this['_jsc'];\n var randomized_cb = '' + Math.floor(Math.random() * 100000000);\n var callback_string = this.get_config('callback_fn') + '[' + randomized_cb + ']';\n jsc[randomized_cb] = function(response) {\n delete jsc[randomized_cb];\n callback(response, data);\n };\n return callback_string;\n }\n};\n\nMixpanelLib.prototype._send_request = function(url, data, options, callback) {\n var succeeded = true;\n\n if (ENQUEUE_REQUESTS) {\n this.__request_queue.push(arguments);\n return succeeded;\n }\n\n var DEFAULT_OPTIONS = {\n method: this.get_config('api_method'),\n transport: this.get_config('api_transport'),\n verbose: this.get_config('verbose')\n };\n var body_data = null;\n\n if (!callback && (_.isFunction(options) || typeof options === 'string')) {\n callback = options;\n options = null;\n }\n options = _.extend(DEFAULT_OPTIONS, options || {});\n if (!USE_XHR) {\n options.method = 'GET';\n }\n var use_post = options.method === 'POST';\n var use_sendBeacon = sendBeacon && use_post && options.transport.toLowerCase() === 'sendbeacon';\n\n // needed to correctly format responses\n var verbose_mode = options.verbose;\n if (data['verbose']) { verbose_mode = true; }\n\n if (this.get_config('test')) { data['test'] = 1; }\n if (verbose_mode) { data['verbose'] = 1; }\n if (this.get_config('img')) { data['img'] = 1; }\n if (!USE_XHR) {\n if (callback) {\n data['callback'] = callback;\n } else if (verbose_mode || this.get_config('test')) {\n // Verbose output (from verbose mode, or an error in test mode) is a json blob,\n // which by itself is not valid javascript. Without a callback, this verbose output will\n // cause an error when returned via jsonp, so we force a no-op callback param.\n // See the ECMA script spec: http://www.ecma-international.org/ecma-262/5.1/#sec-12.4\n data['callback'] = '(function(){})';\n }\n }\n\n data['ip'] = this.get_config('ip')?1:0;\n data['_'] = new Date().getTime().toString();\n\n if (use_post) {\n body_data = 'data=' + encodeURIComponent(data['data']);\n delete data['data'];\n }\n\n url += '?' + _.HTTPBuildQuery(data);\n\n var lib = this;\n if ('img' in data) {\n var img = document$1.createElement('img');\n img.src = url;\n document$1.body.appendChild(img);\n } else if (use_sendBeacon) {\n try {\n succeeded = sendBeacon(url, body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n try {\n if (callback) {\n callback(succeeded ? 1 : 0);\n }\n } catch (e) {\n lib.report_error(e);\n }\n } else if (USE_XHR) {\n try {\n var req = new XMLHttpRequest();\n req.open(options.method, url, true);\n\n var headers = this.get_config('xhr_headers');\n if (use_post) {\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\n }\n _.each(headers, function(headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue);\n });\n\n if (options.timeout_ms && typeof req.timeout !== 'undefined') {\n req.timeout = options.timeout_ms;\n var start_time = new Date().getTime();\n }\n\n // send the mp_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n req.withCredentials = true;\n req.onreadystatechange = function () {\n if (req.readyState === 4) { // XMLHttpRequest.DONE == 4, except in safari 4\n if (req.status === 200) {\n if (callback) {\n if (verbose_mode) {\n var response;\n try {\n response = _.JSONDecode(req.responseText);\n } catch (e) {\n lib.report_error(e);\n if (options.ignore_json_errors) {\n response = req.responseText;\n } else {\n return;\n }\n }\n callback(response);\n } else {\n callback(Number(req.responseText));\n }\n }\n } else {\n var error;\n if (\n req.timeout &&\n !req.status &&\n new Date().getTime() - start_time >= req.timeout\n ) {\n error = 'timeout';\n } else {\n error = 'Bad HTTP status: ' + req.status + ' ' + req.statusText;\n }\n lib.report_error(error);\n if (callback) {\n if (verbose_mode) {\n var response_headers = req['responseHeaders'] || {};\n callback({status: 0, httpStatusCode: req['status'], error: error, retryAfter: response_headers['Retry-After']});\n } else {\n callback(0);\n }\n }\n }\n }\n };\n req.send(body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n } else {\n var script = document$1.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n var s = document$1.getElementsByTagName('script')[0];\n s.parentNode.insertBefore(script, s);\n }\n\n return succeeded;\n};\n\n/**\n * _execute_array() deals with processing any mixpanel function\n * calls that were called before the Mixpanel library were loaded\n * (and are thus stored in an array so they can be called later)\n *\n * Note: we fire off all the mixpanel function calls && user defined\n * functions BEFORE we fire off mixpanel tracking calls. This is so\n * identify/register/set_config calls can properly modify early\n * tracking calls.\n *\n * @param {Array} array\n */\nMixpanelLib.prototype._execute_array = function(array) {\n var fn_name, alias_calls = [], other_calls = [], tracking_calls = [];\n _.each(array, function(item) {\n if (item) {\n fn_name = item[0];\n if (_.isArray(fn_name)) {\n tracking_calls.push(item); // chained call e.g. mixpanel.get_group().set()\n } else if (typeof(item) === 'function') {\n item.call(this);\n } else if (_.isArray(item) && fn_name === 'alias') {\n alias_calls.push(item);\n } else if (_.isArray(item) && fn_name.indexOf('track') !== -1 && typeof(this[fn_name]) === 'function') {\n tracking_calls.push(item);\n } else {\n other_calls.push(item);\n }\n }\n }, this);\n\n var execute = function(calls, context) {\n _.each(calls, function(item) {\n if (_.isArray(item[0])) {\n // chained call\n var caller = context;\n _.each(item, function(call) {\n caller = caller[call[0]].apply(caller, call.slice(1));\n });\n } else {\n this[item[0]].apply(this, item.slice(1));\n }\n }, context);\n };\n\n execute(alias_calls, this);\n execute(other_calls, this);\n execute(tracking_calls, this);\n};\n\n// request queueing utils\n\nMixpanelLib.prototype.are_batchers_initialized = function() {\n return !!this.request_batchers.events;\n};\n\nMixpanelLib.prototype.get_batcher_configs = function() {\n var queue_prefix = '__mpq_' + this.get_config('token');\n var api_routes = this.get_config('api_routes');\n this._batcher_configs = this._batcher_configs || {\n events: {type: 'events', endpoint: '/' + api_routes['track'], queue_key: queue_prefix + '_ev'},\n people: {type: 'people', endpoint: '/' + api_routes['engage'], queue_key: queue_prefix + '_pp'},\n groups: {type: 'groups', endpoint: '/' + api_routes['groups'], queue_key: queue_prefix + '_gr'}\n };\n return this._batcher_configs;\n};\n\nMixpanelLib.prototype.init_batchers = function() {\n if (!this.are_batchers_initialized()) {\n var batcher_for = _.bind(function(attrs) {\n return new RequestBatcher(\n attrs.queue_key,\n {\n libConfig: this['config'],\n errorReporter: this.get_config('error_reporter'),\n sendRequestFunc: _.bind(function(data, options, cb) {\n this._send_request(\n this.get_config('api_host') + attrs.endpoint,\n this._encode_data_for_request(data),\n options,\n this._prepare_callback(cb, data)\n );\n }, this),\n beforeSendHook: _.bind(function(item) {\n return this._run_hook('before_send_' + attrs.type, item);\n }, this),\n stopAllBatchingFunc: _.bind(this.stop_batch_senders, this),\n usePersistence: true\n }\n );\n }, this);\n var batcher_configs = this.get_batcher_configs();\n this.request_batchers = {\n events: batcher_for(batcher_configs.events),\n people: batcher_for(batcher_configs.people),\n groups: batcher_for(batcher_configs.groups)\n };\n }\n if (this.get_config('batch_autostart')) {\n this.start_batch_senders();\n }\n};\n\nMixpanelLib.prototype.start_batch_senders = function() {\n this._batchers_were_started = true;\n if (this.are_batchers_initialized()) {\n this._batch_requests = true;\n _.each(this.request_batchers, function(batcher) {\n batcher.start();\n });\n }\n};\n\nMixpanelLib.prototype.stop_batch_senders = function() {\n this._batch_requests = false;\n _.each(this.request_batchers, function(batcher) {\n batcher.stop();\n batcher.clear();\n });\n};\n\n/**\n * push() keeps the standard async-array-push\n * behavior around after the lib is loaded.\n * This is only useful for external integrations that\n * do not wish to rely on our convenience methods\n * (created in the snippet).\n *\n * ### Usage:\n * mixpanel.push(['register', { a: 'b' }]);\n *\n * @param {Array} item A [function_name, args...] array to be executed\n */\nMixpanelLib.prototype.push = function(item) {\n this._execute_array([item]);\n};\n\n/**\n * Disable events on the Mixpanel object. If passed no arguments,\n * this function disables tracking of any event. If passed an\n * array of event names, those events will be disabled, but other\n * events will continue to be tracked.\n *\n * Note: this function does not stop other mixpanel functions from\n * firing, such as register() or people.set().\n *\n * @param {Array} [events] An array of event names to disable\n */\nMixpanelLib.prototype.disable = function(events) {\n if (typeof(events) === 'undefined') {\n this._flags.disable_all_events = true;\n } else {\n this.__disabled_events = this.__disabled_events.concat(events);\n }\n};\n\nMixpanelLib.prototype._encode_data_for_request = function(data) {\n var encoded_data = _.JSONEncode(data);\n if (this.get_config('api_payload_format') === PAYLOAD_TYPE_BASE64) {\n encoded_data = _.base64Encode(encoded_data);\n }\n return {'data': encoded_data};\n};\n\n// internal method for handling track vs batch-enqueue logic\nMixpanelLib.prototype._track_or_batch = function(options, callback) {\n var truncated_data = _.truncate(options.data, 255);\n var endpoint = options.endpoint;\n var batcher = options.batcher;\n var should_send_immediately = options.should_send_immediately;\n var send_request_options = options.send_request_options || {};\n callback = callback || NOOP_FUNC;\n\n var request_enqueued_or_initiated = true;\n var send_request_immediately = _.bind(function() {\n if (!send_request_options.skip_hooks) {\n truncated_data = this._run_hook('before_send_' + options.type, truncated_data);\n }\n if (truncated_data) {\n console$1.log('MIXPANEL REQUEST:');\n console$1.log(truncated_data);\n return this._send_request(\n endpoint,\n this._encode_data_for_request(truncated_data),\n send_request_options,\n this._prepare_callback(callback, truncated_data)\n );\n } else {\n return null;\n }\n }, this);\n\n if (this._batch_requests && !should_send_immediately) {\n batcher.enqueue(truncated_data).then(function(succeeded) {\n if (succeeded) {\n callback(1, truncated_data);\n } else {\n send_request_immediately();\n }\n });\n } else {\n request_enqueued_or_initiated = send_request_immediately();\n }\n\n return request_enqueued_or_initiated && truncated_data;\n};\n\n/**\n * Track an event. This is the most important and\n * frequently used Mixpanel function.\n *\n * ### Usage:\n *\n * // track an event named 'Registered'\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * // track an event using navigator.sendBeacon\n * mixpanel.track('Left page', {'duration_seconds': 35}, {transport: 'sendBeacon'});\n *\n * To track link clicks or form submissions, see track_links() or track_forms().\n *\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Object} [options] Optional configuration for this track request.\n * @param {String} [options.transport] Transport method for network request ('xhr' or 'sendBeacon').\n * @param {Boolean} [options.send_immediately] Whether to bypass batching/queueing and send track request immediately.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track = addOptOutCheckMixpanelLib(function(event_name, properties, options, callback) {\n if (!callback && typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n var transport = options['transport']; // external API, don't minify 'transport' prop\n if (transport) {\n options.transport = transport; // 'transport' prop name can be minified internally\n }\n var should_send_immediately = options['send_immediately'];\n if (typeof callback !== 'function') {\n callback = NOOP_FUNC;\n }\n\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.track');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n callback(0);\n return;\n }\n\n // set defaults\n properties = _.extend({}, properties);\n properties['token'] = this.get_config('token');\n\n // set $duration if time_event was previously called for this event\n var start_timestamp = this['persistence'].remove_event_timer(event_name);\n if (!_.isUndefined(start_timestamp)) {\n var duration_in_ms = new Date().getTime() - start_timestamp;\n properties['$duration'] = parseFloat((duration_in_ms / 1000).toFixed(3));\n }\n\n this._set_default_superprops();\n\n var marketing_properties = this.get_config('track_marketing')\n ? _.info.marketingParams()\n : {};\n\n // note: extend writes to the first object, so lets make sure we\n // don't write to the persistence properties object and info\n // properties object by passing in a new object\n\n // update properties with pageview info and super-properties\n properties = _.extend(\n {},\n _.info.properties({'mp_loader': this.get_config('mp_loader')}),\n marketing_properties,\n this['persistence'].properties(),\n this.unpersisted_superprops,\n this.get_session_recording_properties(),\n properties\n );\n\n var property_blacklist = this.get_config('property_blacklist');\n if (_.isArray(property_blacklist)) {\n _.each(property_blacklist, function(blacklisted_prop) {\n delete properties[blacklisted_prop];\n });\n } else {\n this.report_error('Invalid value for property_blacklist config: ' + property_blacklist);\n }\n\n var data = {\n 'event': event_name,\n 'properties': properties\n };\n var ret = this._track_or_batch({\n type: 'events',\n data: data,\n endpoint: this.get_config('api_host') + '/' + this.get_config('api_routes')['track'],\n batcher: this.request_batchers.events,\n should_send_immediately: should_send_immediately,\n send_request_options: options\n }, callback);\n\n return ret;\n});\n\n/**\n * Register the current user into one/many groups.\n *\n * ### Usage:\n *\n * mixpanel.set_group('company', ['mixpanel', 'google']) // an array of IDs\n * mixpanel.set_group('company', 'mixpanel')\n * mixpanel.set_group('company', 128746312)\n *\n * @param {String} group_key Group key\n * @param {Array|String|Number} group_ids An array of group IDs, or a singular group ID\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n *\n */\nMixpanelLib.prototype.set_group = addOptOutCheckMixpanelLib(function(group_key, group_ids, callback) {\n if (!_.isArray(group_ids)) {\n group_ids = [group_ids];\n }\n var prop = {};\n prop[group_key] = group_ids;\n this.register(prop);\n return this['people'].set(group_key, group_ids, callback);\n});\n\n/**\n * Add a new group for this user.\n *\n * ### Usage:\n *\n * mixpanel.add_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.add_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_values = this.get_property(group_key);\n var prop = {};\n if (old_values === undefined) {\n prop[group_key] = [group_id];\n this.register(prop);\n } else {\n if (old_values.indexOf(group_id) === -1) {\n old_values.push(group_id);\n prop[group_key] = old_values;\n this.register(prop);\n }\n }\n return this['people'].union(group_key, group_id, callback);\n});\n\n/**\n * Remove a group from this user.\n *\n * ### Usage:\n *\n * mixpanel.remove_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.remove_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_value = this.get_property(group_key);\n // if the value doesn't exist, the persistent store is unchanged\n if (old_value !== undefined) {\n var idx = old_value.indexOf(group_id);\n if (idx > -1) {\n old_value.splice(idx, 1);\n this.register({group_key: old_value});\n }\n if (old_value.length === 0) {\n this.unregister(group_key);\n }\n }\n return this['people'].remove(group_key, group_id, callback);\n});\n\n/**\n * Track an event with specific groups.\n *\n * ### Usage:\n *\n * mixpanel.track_with_groups('purchase', {'product': 'iphone'}, {'University': ['UCB', 'UCLA']})\n *\n * @param {String} event_name The name of the event (see `mixpanel.track()`)\n * @param {Object=} properties A set of properties to include with the event you're sending (see `mixpanel.track()`)\n * @param {Object=} groups An object mapping group name keys to one or more values\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.track_with_groups = addOptOutCheckMixpanelLib(function(event_name, properties, groups, callback) {\n var tracking_props = _.extend({}, properties || {});\n _.each(groups, function(v, k) {\n if (v !== null && v !== undefined) {\n tracking_props[k] = v;\n }\n });\n return this.track(event_name, tracking_props, callback);\n});\n\nMixpanelLib.prototype._create_map_key = function (group_key, group_id) {\n return group_key + '_' + JSON.stringify(group_id);\n};\n\nMixpanelLib.prototype._remove_group_from_cache = function (group_key, group_id) {\n delete this._cached_groups[this._create_map_key(group_key, group_id)];\n};\n\n/**\n * Look up reference to a Mixpanel group\n *\n * ### Usage:\n *\n * mixpanel.get_group(group_key, group_id)\n *\n * @param {String} group_key Group key\n * @param {Object} group_id A valid Mixpanel property type\n * @returns {Object} A MixpanelGroup identifier\n */\nMixpanelLib.prototype.get_group = function (group_key, group_id) {\n var map_key = this._create_map_key(group_key, group_id);\n var group = this._cached_groups[map_key];\n if (group === undefined || group._group_key !== group_key || group._group_id !== group_id) {\n group = new MixpanelGroup();\n group._init(this, group_key, group_id);\n this._cached_groups[map_key] = group;\n }\n return group;\n};\n\n/**\n * Track a default Mixpanel page view event, which includes extra default event properties to\n * improve page view data.\n *\n * ### Usage:\n *\n * // track a default $mp_web_page_view event\n * mixpanel.track_pageview();\n *\n * // track a page view event with additional event properties\n * mixpanel.track_pageview({'ab_test_variant': 'card-layout-b'});\n *\n * // example approach to track page views on different page types as event properties\n * mixpanel.track_pageview({'page': 'pricing'});\n * mixpanel.track_pageview({'page': 'homepage'});\n *\n * // UNCOMMON: Tracking a page view event with a custom event_name option. NOT expected to be used for\n * // individual pages on the same site or product. Use cases for custom event_name may be page\n * // views on different products or internal applications that are considered completely separate\n * mixpanel.track_pageview({'page': 'customer-search'}, {'event_name': '[internal] Admin Page View'});\n *\n * ### Notes:\n *\n * The `config.track_pageview` option for <a href=\"#mixpanelinit\">mixpanel.init()</a>\n * may be turned on for tracking page loads automatically.\n *\n * // track only page loads\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: true});\n *\n * // track when the URL changes in any manner\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'full-url'});\n *\n * // track when the URL changes, ignoring any changes in the hash part\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'url-with-path-and-query-string'});\n *\n * // track when the path changes, ignoring any query parameter or hash changes\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'url-with-path'});\n *\n * @param {Object} [properties] An optional set of additional properties to send with the page view event\n * @param {Object} [options] Page view tracking options\n * @param {String} [options.event_name] - Alternate name for the tracking event\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track_pageview = addOptOutCheckMixpanelLib(function(properties, options) {\n if (typeof properties !== 'object') {\n properties = {};\n }\n options = options || {};\n var event_name = options['event_name'] || '$mp_web_page_view';\n\n var default_page_properties = _.extend(\n _.info.mpPageViewProperties(),\n _.info.campaignParams(),\n _.info.clickParams()\n );\n\n var event_properties = _.extend(\n {},\n default_page_properties,\n properties\n );\n\n return this.track(event_name, event_properties);\n});\n\n/**\n * Track clicks on a set of document elements. Selector must be a\n * valid query. Elements must exist on the page at the time track_links is called.\n *\n * ### Usage:\n *\n * // track click for link id #nav\n * mixpanel.track_links('#nav', 'Clicked Nav Link');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the Mixpanel\n * servers to respond. If they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] A properties object or function that returns a dictionary of properties when passed a DOMElement\n */\nMixpanelLib.prototype.track_links = function() {\n return this._track_dom.call(this, LinkTracker, arguments);\n};\n\n/**\n * Track form submissions. Selector must be a valid query.\n *\n * ### Usage:\n *\n * // track submission for form id 'register'\n * mixpanel.track_forms('#register', 'Created Account');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the mixpanel\n * servers to respond, if they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] This can be a set of properties, or a function that returns a set of properties after being passed a DOMElement\n */\nMixpanelLib.prototype.track_forms = function() {\n return this._track_dom.call(this, FormTracker, arguments);\n};\n\n/**\n * Time an event by including the time between this call and a\n * later 'track' call for the same event in the properties sent\n * with the event.\n *\n * ### Usage:\n *\n * // time an event named 'Registered'\n * mixpanel.time_event('Registered');\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * When called for a particular event name, the next track call for that event\n * name will include the elapsed time between the 'time_event' and 'track'\n * calls. This value is stored as seconds in the '$duration' property.\n *\n * @param {String} event_name The name of the event.\n */\nMixpanelLib.prototype.time_event = function(event_name) {\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.time_event');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n return;\n }\n\n this['persistence'].set_event_timer(event_name, new Date().getTime());\n};\n\nvar REGISTER_DEFAULTS = {\n 'persistent': true\n};\n/**\n * Helper to parse options param for register methods, maintaining\n * legacy support for plain \"days\" param instead of options object\n * @param {Number|Object} [days_or_options] 'days' option (Number), or Options object for register methods\n * @returns {Object} options object\n */\nvar options_for_register = function(days_or_options) {\n var options;\n if (_.isObject(days_or_options)) {\n options = days_or_options;\n } else if (!_.isUndefined(days_or_options)) {\n options = {'days': days_or_options};\n } else {\n options = {};\n }\n return _.extend({}, REGISTER_DEFAULTS, options);\n};\n\n/**\n * Register a set of super properties, which are included with all\n * events. This will overwrite previous super property values.\n *\n * ### Usage:\n *\n * // register 'Gender' as a super property\n * mixpanel.register({'Gender': 'Female'});\n *\n * // register several super properties when a user signs up\n * mixpanel.register({\n * 'Email': 'jdoe@example.com',\n * 'Account Type': 'Free'\n * });\n *\n * // register only for the current pageload\n * mixpanel.register({'Name': 'Pat'}, {persistent: false});\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register = function(props, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register(props, options['days']);\n } else {\n _.extend(this.unpersisted_superprops, props);\n }\n};\n\n/**\n * Register a set of super properties only once. This will not\n * overwrite previous super property values, unlike register().\n *\n * ### Usage:\n *\n * // register a super property for the first time only\n * mixpanel.register_once({\n * 'First Login Date': new Date().toISOString()\n * });\n *\n * // register once, only for the current pageload\n * mixpanel.register_once({\n * 'First interaction time': new Date().toISOString()\n * }, 'None', {persistent: false});\n *\n * ### Notes:\n *\n * If default_value is specified, current super properties\n * with that value will be overwritten.\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {*} [default_value] Value to override if already set in super properties (ex: 'False') Default: 'None'\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register_once = function(props, default_value, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register_once(props, default_value, options['days']);\n } else {\n if (typeof(default_value) === 'undefined') {\n default_value = 'None';\n }\n _.each(props, function(val, prop) {\n if (!this.unpersisted_superprops.hasOwnProperty(prop) || this.unpersisted_superprops[prop] === default_value) {\n this.unpersisted_superprops[prop] = val;\n }\n }, this);\n }\n};\n\n/**\n * Delete a super property stored with the current user.\n *\n * @param {String} property The name of the super property to remove\n * @param {Object} [options]\n * @param {boolean} [options.persistent=true] - whether to look in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.unregister = function(property, options) {\n options = options_for_register(options);\n if (options['persistent']) {\n this['persistence'].unregister(property);\n } else {\n delete this.unpersisted_superprops[property];\n }\n};\n\nMixpanelLib.prototype._register_single = function(prop, value) {\n var props = {};\n props[prop] = value;\n this.register(props);\n};\n\n/**\n * Identify a user with a unique ID to track user activity across\n * devices, tie a user to their events, and create a user profile.\n * If you never call this method, unique visitors are tracked using\n * a UUID generated the first time they visit the site.\n *\n * Call identify when you know the identity of the current user,\n * typically after login or signup. We recommend against using\n * identify for anonymous visitors to your site.\n *\n * ### Notes:\n * If your project has\n * <a href=\"https://help.mixpanel.com/hc/en-us/articles/360039133851\">ID Merge</a>\n * enabled, the identify method will connect pre- and\n * post-authentication events when appropriate.\n *\n * If your project does not have ID Merge enabled, identify will\n * change the user's local distinct_id to the unique ID you pass.\n * Events tracked prior to authentication will not be connected\n * to the same user identity. If ID Merge is disabled, alias can\n * be used to connect pre- and post-registration events.\n *\n * @param {String} [unique_id] A string that uniquely identifies a user. If not provided, the distinct_id currently in the persistent store (cookie or localStorage) will be used.\n */\nMixpanelLib.prototype.identify = function(\n new_distinct_id, _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n // Optional Parameters\n // _set_callback:function A callback to be run if and when the People set queue is flushed\n // _add_callback:function A callback to be run if and when the People add queue is flushed\n // _append_callback:function A callback to be run if and when the People append queue is flushed\n // _set_once_callback:function A callback to be run if and when the People set_once queue is flushed\n // _union_callback:function A callback to be run if and when the People union queue is flushed\n // _unset_callback:function A callback to be run if and when the People unset queue is flushed\n\n var previous_distinct_id = this.get_distinct_id();\n if (new_distinct_id && previous_distinct_id !== new_distinct_id) {\n // we allow the following condition if previous distinct_id is same as new_distinct_id\n // so that you can force flush people updates for anonymous profiles.\n if (typeof new_distinct_id === 'string' && new_distinct_id.indexOf(DEVICE_ID_PREFIX) === 0) {\n this.report_error('distinct_id cannot have $device: prefix');\n return -1;\n }\n this.register({'$user_id': new_distinct_id});\n }\n\n if (!this.get_property('$device_id')) {\n // The persisted distinct id might not actually be a device id at all\n // it might be a distinct id of the user from before\n var device_id = previous_distinct_id;\n this.register_once({\n '$had_persisted_distinct_id': true,\n '$device_id': device_id\n }, '');\n }\n\n // identify only changes the distinct id if it doesn't match either the existing or the alias;\n // if it's new, blow away the alias as well.\n if (new_distinct_id !== previous_distinct_id && new_distinct_id !== this.get_property(ALIAS_ID_KEY)) {\n this.unregister(ALIAS_ID_KEY);\n this.register({'distinct_id': new_distinct_id});\n }\n this._flags.identify_called = true;\n // Flush any queued up people requests\n this['people']._flush(_set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback);\n\n // send an $identify event any time the distinct_id is changing - logic on the server\n // will determine whether or not to do anything with it.\n if (new_distinct_id !== previous_distinct_id) {\n this.track('$identify', {\n 'distinct_id': new_distinct_id,\n '$anon_distinct_id': previous_distinct_id\n }, {skip_hooks: true});\n }\n};\n\n/**\n * Clears super properties and generates a new random distinct_id for this instance.\n * Useful for clearing data when a user logs out.\n */\nMixpanelLib.prototype.reset = function() {\n this['persistence'].clear();\n this._flags.identify_called = false;\n var uuid = _.UUID();\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n};\n\n/**\n * Returns the current distinct id of the user. This is either the id automatically\n * generated by the library or the id that has been passed by a call to identify().\n *\n * ### Notes:\n *\n * get_distinct_id() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // set distinct_id after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * distinct_id = mixpanel.get_distinct_id();\n * }\n * });\n */\nMixpanelLib.prototype.get_distinct_id = function() {\n return this.get_property('distinct_id');\n};\n\n/**\n * The alias method creates an alias which Mixpanel will use to\n * remap one id to another. Multiple aliases can point to the\n * same identifier.\n *\n * The following is a valid use of alias:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // You can add multiple id aliases to the existing ID\n * mixpanel.alias('newer_id', 'existing_id');\n *\n * Aliases can also be chained - the following is a valid example:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // chain newer_id - new_id - existing_id\n * mixpanel.alias('newer_id', 'new_id');\n *\n * Aliases cannot point to multiple identifiers - the following\n * example will not work:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // this is invalid as 'new_id' already points to 'existing_id'\n * mixpanel.alias('new_id', 'newer_id');\n *\n * ### Notes:\n *\n * If your project does not have\n * <a href=\"https://help.mixpanel.com/hc/en-us/articles/360039133851\">ID Merge</a>\n * enabled, the best practice is to call alias once when a unique\n * ID is first created for a user (e.g., when a user first registers\n * for an account). Do not use alias multiple times for a single\n * user without ID Merge enabled.\n *\n * @param {String} alias A unique identifier that you want to use for this user in the future.\n * @param {String} [original] The current identifier being used for this user.\n */\nMixpanelLib.prototype.alias = function(alias, original) {\n // If the $people_distinct_id key exists in persistence, there has been a previous\n // mixpanel.people.identify() call made for this user. It is VERY BAD to make an alias with\n // this ID, as it will duplicate users.\n if (alias === this.get_property(PEOPLE_DISTINCT_ID_KEY)) {\n this.report_error('Attempting to create alias for existing People user - aborting.');\n return -2;\n }\n\n var _this = this;\n if (_.isUndefined(original)) {\n original = this.get_distinct_id();\n }\n if (alias !== original) {\n this._register_single(ALIAS_ID_KEY, alias);\n return this.track('$create_alias', {\n 'alias': alias,\n 'distinct_id': original\n }, {\n skip_hooks: true\n }, function() {\n // Flush the people queue\n _this.identify(alias);\n });\n } else {\n this.report_error('alias matches current distinct_id - skipping api call.');\n this.identify(alias);\n return -1;\n }\n};\n\n/**\n * Provide a string to recognize the user by. The string passed to\n * this method will appear in the Mixpanel Streams product rather\n * than an automatically generated name. Name tags do not have to\n * be unique.\n *\n * This value will only be included in Streams data.\n *\n * @param {String} name_tag A human readable name for the user\n * @deprecated\n */\nMixpanelLib.prototype.name_tag = function(name_tag) {\n this._register_single('mp_name_tag', name_tag);\n};\n\n/**\n * Update the configuration of a mixpanel library instance.\n *\n * The default config is:\n *\n * {\n * // host for requests (customizable for e.g. a local proxy)\n * api_host: 'https://api-js.mixpanel.com',\n *\n * // endpoints for different types of requests\n * api_routes: {\n * track: 'track/',\n * engage: 'engage/',\n * groups: 'groups/',\n * }\n *\n * // HTTP method for tracking requests\n * api_method: 'POST'\n *\n * // transport for sending requests ('XHR' or 'sendBeacon')\n * // NB: sendBeacon should only be used for scenarios such as\n * // page unload where a \"best-effort\" attempt to send is\n * // acceptable; the sendBeacon API does not support callbacks\n * // or any way to know the result of the request. Mixpanel\n * // tracking via sendBeacon will not support any event-\n * // batching or retry mechanisms.\n * api_transport: 'XHR'\n *\n * // request-batching/queueing/retry\n * batch_requests: true,\n *\n * // maximum number of events/updates to send in a single\n * // network request\n * batch_size: 50,\n *\n * // milliseconds to wait between sending batch requests\n * batch_flush_interval_ms: 5000,\n *\n * // milliseconds to wait for network responses to batch requests\n * // before they are considered timed-out and retried\n * batch_request_timeout_ms: 90000,\n *\n * // override value for cookie domain, only useful for ensuring\n * // correct cross-subdomain cookies on unusual domains like\n * // subdomain.mainsite.avocat.fr; NB this cannot be used to\n * // set cookies on a different domain than the current origin\n * cookie_domain: ''\n *\n * // super properties cookie expiration (in days)\n * cookie_expiration: 365\n *\n * // if true, cookie will be set with SameSite=None; Secure\n * // this is only useful in special situations, like embedded\n * // 3rd-party iframes that set up a Mixpanel instance\n * cross_site_cookie: false\n *\n * // super properties span subdomains\n * cross_subdomain_cookie: true\n *\n * // debug mode\n * debug: false\n *\n * // if this is true, the mixpanel cookie or localStorage entry\n * // will be deleted, and no user persistence will take place\n * disable_persistence: false\n *\n * // if this is true, Mixpanel will automatically determine\n * // City, Region and Country data using the IP address of\n * //the client\n * ip: true\n *\n * // opt users out of tracking by this Mixpanel instance by default\n * opt_out_tracking_by_default: false\n *\n * // opt users out of browser data storage by this Mixpanel instance by default\n * opt_out_persistence_by_default: false\n *\n * // persistence mechanism used by opt-in/opt-out methods - cookie\n * // or localStorage - falls back to cookie if localStorage is unavailable\n * opt_out_tracking_persistence_type: 'localStorage'\n *\n * // customize the name of cookie/localStorage set by opt-in/opt-out methods\n * opt_out_tracking_cookie_prefix: null\n *\n * // type of persistent store for super properties (cookie/\n * // localStorage) if set to 'localStorage', any existing\n * // mixpanel cookie value with the same persistence_name\n * // will be transferred to localStorage and deleted\n * persistence: 'cookie'\n *\n * // name for super properties persistent store\n * persistence_name: ''\n *\n * // names of properties/superproperties which should never\n * // be sent with track() calls\n * property_blacklist: []\n *\n * // if this is true, mixpanel cookies will be marked as\n * // secure, meaning they will only be transmitted over https\n * secure_cookie: false\n *\n * // disables enriching user profiles with first touch marketing data\n * skip_first_touch_marketing: false\n *\n * // the amount of time track_links will\n * // wait for Mixpanel's servers to respond\n * track_links_timeout: 300\n *\n * // adds any UTM parameters and click IDs present on the page to any events fired\n * track_marketing: true\n *\n * // enables automatic page view tracking using default page view events through\n * // the track_pageview() method\n * track_pageview: false\n *\n * // if you set upgrade to be true, the library will check for\n * // a cookie from our old js library and import super\n * // properties from it, then the old cookie is deleted\n * // The upgrade config option only works in the initialization,\n * // so make sure you set it when you create the library.\n * upgrade: false\n *\n * // extra HTTP request headers to set for each API request, in\n * // the format {'Header-Name': value}\n * xhr_headers: {}\n *\n * // whether to ignore or respect the web browser's Do Not Track setting\n * ignore_dnt: false\n * }\n *\n *\n * @param {Object} config A dictionary of new configuration values to update\n */\nMixpanelLib.prototype.set_config = function(config) {\n if (_.isObject(config)) {\n _.extend(this['config'], config);\n\n var new_batch_size = config['batch_size'];\n if (new_batch_size) {\n _.each(this.request_batchers, function(batcher) {\n batcher.resetBatchSize();\n });\n }\n\n if (!this.get_config('persistence_name')) {\n this['config']['persistence_name'] = this['config']['cookie_name'];\n }\n if (!this.get_config('disable_persistence')) {\n this['config']['disable_persistence'] = this['config']['disable_cookie'];\n }\n\n if (this['persistence']) {\n this['persistence'].update_config(this['config']);\n }\n Config.DEBUG = Config.DEBUG || this.get_config('debug');\n\n if ('autocapture' in config && this.autocapture) {\n this.autocapture.init();\n }\n }\n};\n\n/**\n * returns the current config object for the library.\n */\nMixpanelLib.prototype.get_config = function(prop_name) {\n return this['config'][prop_name];\n};\n\n/**\n * Fetch a hook function from config, with safe default, and run it\n * against the given arguments\n * @param {string} hook_name which hook to retrieve\n * @returns {any|null} return value of user-provided hook, or null if nothing was returned\n */\nMixpanelLib.prototype._run_hook = function(hook_name) {\n var ret = (this['config']['hooks'][hook_name] || IDENTITY_FUNC).apply(this, slice.call(arguments, 1));\n if (typeof ret === 'undefined') {\n this.report_error(hook_name + ' hook did not return a value');\n ret = null;\n }\n return ret;\n};\n\n/**\n * Returns the value of the super property named property_name. If no such\n * property is set, get_property() will return the undefined value.\n *\n * ### Notes:\n *\n * get_property() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for 'user_id' after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * user_id = mixpanel.get_property('user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the super property you want to retrieve\n */\nMixpanelLib.prototype.get_property = function(property_name) {\n return this['persistence'].load_prop([property_name]);\n};\n\nMixpanelLib.prototype.toString = function() {\n var name = this.get_config('name');\n if (name !== PRIMARY_INSTANCE_NAME) {\n name = PRIMARY_INSTANCE_NAME + '.' + name;\n }\n return name;\n};\n\nMixpanelLib.prototype._event_is_disabled = function(event_name) {\n return _.isBlockedUA(userAgent) ||\n this._flags.disable_all_events ||\n _.include(this.__disabled_events, event_name);\n};\n\n// perform some housekeeping around GDPR opt-in/out state\nMixpanelLib.prototype._gdpr_init = function() {\n var is_localStorage_requested = this.get_config('opt_out_tracking_persistence_type') === 'localStorage';\n\n // try to convert opt-in/out cookies to localStorage if possible\n if (is_localStorage_requested && _.localStorage.is_supported()) {\n if (!this.has_opted_in_tracking() && this.has_opted_in_tracking({'persistence_type': 'cookie'})) {\n this.opt_in_tracking({'enable_persistence': false});\n }\n if (!this.has_opted_out_tracking() && this.has_opted_out_tracking({'persistence_type': 'cookie'})) {\n this.opt_out_tracking({'clear_persistence': false});\n }\n this.clear_opt_in_out_tracking({\n 'persistence_type': 'cookie',\n 'enable_persistence': false\n });\n }\n\n // check whether the user has already opted out - if so, clear & disable persistence\n if (this.has_opted_out_tracking()) {\n this._gdpr_update_persistence({'clear_persistence': true});\n\n // check whether we should opt out by default\n // note: we don't clear persistence here by default since opt-out default state is often\n // used as an initial state while GDPR information is being collected\n } else if (!this.has_opted_in_tracking() && (\n this.get_config('opt_out_tracking_by_default') || _.cookie.get('mp_optout')\n )) {\n _.cookie.remove('mp_optout');\n this.opt_out_tracking({\n 'clear_persistence': this.get_config('opt_out_persistence_by_default')\n });\n }\n};\n\n/**\n * Enable or disable persistence based on options\n * only enable/disable if persistence is not already in this state\n * @param {boolean} [options.clear_persistence] If true, will delete all data stored by the sdk in persistence and disable it\n * @param {boolean} [options.enable_persistence] If true, will re-enable sdk persistence\n */\nMixpanelLib.prototype._gdpr_update_persistence = function(options) {\n var disabled;\n if (options && options['clear_persistence']) {\n disabled = true;\n } else if (options && options['enable_persistence']) {\n disabled = false;\n } else {\n return;\n }\n\n if (!this.get_config('disable_persistence') && this['persistence'].disabled !== disabled) {\n this['persistence'].set_disabled(disabled);\n }\n\n if (disabled) {\n this.stop_batch_senders();\n } else {\n // only start batchers after opt-in if they have previously been started\n // in order to avoid unintentionally starting up batching for the first time\n if (this._batchers_were_started) {\n this.start_batch_senders();\n }\n }\n};\n\n// call a base gdpr function after constructing the appropriate token and options args\nMixpanelLib.prototype._gdpr_call_func = function(func, options) {\n options = _.extend({\n 'track': _.bind(this.track, this),\n 'persistence_type': this.get_config('opt_out_tracking_persistence_type'),\n 'cookie_prefix': this.get_config('opt_out_tracking_cookie_prefix'),\n 'cookie_expiration': this.get_config('cookie_expiration'),\n 'cross_site_cookie': this.get_config('cross_site_cookie'),\n 'cross_subdomain_cookie': this.get_config('cross_subdomain_cookie'),\n 'cookie_domain': this.get_config('cookie_domain'),\n 'secure_cookie': this.get_config('secure_cookie'),\n 'ignore_dnt': this.get_config('ignore_dnt')\n }, options);\n\n // check if localStorage can be used for recording opt out status, fall back to cookie if not\n if (!_.localStorage.is_supported()) {\n options['persistence_type'] = 'cookie';\n }\n\n return func(this.get_config('token'), {\n track: options['track'],\n trackEventName: options['track_event_name'],\n trackProperties: options['track_properties'],\n persistenceType: options['persistence_type'],\n persistencePrefix: options['cookie_prefix'],\n cookieDomain: options['cookie_domain'],\n cookieExpiration: options['cookie_expiration'],\n crossSiteCookie: options['cross_site_cookie'],\n crossSubdomainCookie: options['cross_subdomain_cookie'],\n secureCookie: options['secure_cookie'],\n ignoreDnt: options['ignore_dnt']\n });\n};\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // opt user in\n * mixpanel.opt_in_tracking();\n *\n * // opt user in with specific event name, properties, cookie configuration\n * mixpanel.opt_in_tracking({\n * track_event_name: 'User opted in',\n * track_event_properties: {\n * 'Email': 'jdoe@example.com'\n * },\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {function} [options.track] Function used for tracking a Mixpanel event to record the opt-in action (default is this Mixpanel instance's track method)\n * @param {string} [options.track_event_name=$opt_in] Event name to be used for tracking the opt-in action\n * @param {Object} [options.track_properties] Set of properties to be tracked along with the opt-in action\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_in_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(optIn, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // opt user out\n * mixpanel.opt_out_tracking();\n *\n * // opt user out with different cookie configuration from Mixpanel instance\n * mixpanel.opt_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.delete_user=true] If true, will delete the currently identified user's profile and clear all charges after opting the user out\n * @param {boolean} [options.clear_persistence=true] If true, will delete all data stored by the sdk in persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_out_tracking = function(options) {\n options = _.extend({\n 'clear_persistence': true,\n 'delete_user': true\n }, options);\n\n // delete user and clear charges since these methods may be disabled by opt-out\n if (options['delete_user'] && this['people'] && this['people']._identify_called()) {\n this['people'].delete_user();\n this['people'].clear_charges();\n }\n\n this._gdpr_call_func(optOut, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * var has_opted_in = mixpanel.has_opted_in_tracking();\n * // use has_opted_in value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-in status\n */\nMixpanelLib.prototype.has_opted_in_tracking = function(options) {\n return this._gdpr_call_func(hasOptedIn, options);\n};\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * var has_opted_out = mixpanel.has_opted_out_tracking();\n * // use has_opted_out value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-out status\n */\nMixpanelLib.prototype.has_opted_out_tracking = function(options) {\n return this._gdpr_call_func(hasOptedOut, options);\n};\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // clear user's opt-in/out status\n * mixpanel.clear_opt_in_out_tracking();\n *\n * // clear user's opt-in/out status with specific cookie configuration - should match\n * // configuration used when opt_in_tracking/opt_out_tracking methods were called.\n * mixpanel.clear_opt_in_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.clear_opt_in_out_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(clearOptInOut, options);\n this._gdpr_update_persistence(options);\n};\n\nMixpanelLib.prototype.report_error = function(msg, err) {\n console$1.error.apply(console$1.error, arguments);\n try {\n if (!err && !(msg instanceof Error)) {\n msg = new Error(msg);\n }\n this.get_config('error_reporter')(msg, err);\n } catch(err) {\n console$1.error(err);\n }\n};\n\n// EXPORTS (for closure compiler)\n\n// MixpanelLib Exports\nMixpanelLib.prototype['init'] = MixpanelLib.prototype.init;\nMixpanelLib.prototype['reset'] = MixpanelLib.prototype.reset;\nMixpanelLib.prototype['disable'] = MixpanelLib.prototype.disable;\nMixpanelLib.prototype['time_event'] = MixpanelLib.prototype.time_event;\nMixpanelLib.prototype['track'] = MixpanelLib.prototype.track;\nMixpanelLib.prototype['track_links'] = MixpanelLib.prototype.track_links;\nMixpanelLib.prototype['track_forms'] = MixpanelLib.prototype.track_forms;\nMixpanelLib.prototype['track_pageview'] = MixpanelLib.prototype.track_pageview;\nMixpanelLib.prototype['register'] = MixpanelLib.prototype.register;\nMixpanelLib.prototype['register_once'] = MixpanelLib.prototype.register_once;\nMixpanelLib.prototype['unregister'] = MixpanelLib.prototype.unregister;\nMixpanelLib.prototype['identify'] = MixpanelLib.prototype.identify;\nMixpanelLib.prototype['alias'] = MixpanelLib.prototype.alias;\nMixpanelLib.prototype['name_tag'] = MixpanelLib.prototype.name_tag;\nMixpanelLib.prototype['set_config'] = MixpanelLib.prototype.set_config;\nMixpanelLib.prototype['get_config'] = MixpanelLib.prototype.get_config;\nMixpanelLib.prototype['get_property'] = MixpanelLib.prototype.get_property;\nMixpanelLib.prototype['get_distinct_id'] = MixpanelLib.prototype.get_distinct_id;\nMixpanelLib.prototype['toString'] = MixpanelLib.prototype.toString;\nMixpanelLib.prototype['opt_out_tracking'] = MixpanelLib.prototype.opt_out_tracking;\nMixpanelLib.prototype['opt_in_tracking'] = MixpanelLib.prototype.opt_in_tracking;\nMixpanelLib.prototype['has_opted_out_tracking'] = MixpanelLib.prototype.has_opted_out_tracking;\nMixpanelLib.prototype['has_opted_in_tracking'] = MixpanelLib.prototype.has_opted_in_tracking;\nMixpanelLib.prototype['clear_opt_in_out_tracking'] = MixpanelLib.prototype.clear_opt_in_out_tracking;\nMixpanelLib.prototype['get_group'] = MixpanelLib.prototype.get_group;\nMixpanelLib.prototype['set_group'] = MixpanelLib.prototype.set_group;\nMixpanelLib.prototype['add_group'] = MixpanelLib.prototype.add_group;\nMixpanelLib.prototype['remove_group'] = MixpanelLib.prototype.remove_group;\nMixpanelLib.prototype['track_with_groups'] = MixpanelLib.prototype.track_with_groups;\nMixpanelLib.prototype['start_batch_senders'] = MixpanelLib.prototype.start_batch_senders;\nMixpanelLib.prototype['stop_batch_senders'] = MixpanelLib.prototype.stop_batch_senders;\nMixpanelLib.prototype['start_session_recording'] = MixpanelLib.prototype.start_session_recording;\nMixpanelLib.prototype['stop_session_recording'] = MixpanelLib.prototype.stop_session_recording;\nMixpanelLib.prototype['get_session_recording_properties'] = MixpanelLib.prototype.get_session_recording_properties;\nMixpanelLib.prototype['get_session_replay_url'] = MixpanelLib.prototype.get_session_replay_url;\nMixpanelLib.prototype['DEFAULT_API_ROUTES'] = DEFAULT_API_ROUTES;\n\n// MixpanelPersistence Exports\nMixpanelPersistence.prototype['properties'] = MixpanelPersistence.prototype.properties;\nMixpanelPersistence.prototype['update_search_keyword'] = MixpanelPersistence.prototype.update_search_keyword;\nMixpanelPersistence.prototype['update_referrer_info'] = MixpanelPersistence.prototype.update_referrer_info;\nMixpanelPersistence.prototype['get_cross_subdomain'] = MixpanelPersistence.prototype.get_cross_subdomain;\nMixpanelPersistence.prototype['clear'] = MixpanelPersistence.prototype.clear;\n\n\nvar instances = {};\nvar extend_mp = function() {\n // add all the sub mixpanel instances\n _.each(instances, function(instance, name) {\n if (name !== PRIMARY_INSTANCE_NAME) { mixpanel_master[name] = instance; }\n });\n\n // add private functions as _\n mixpanel_master['_'] = _;\n};\n\nvar override_mp_init_func = function() {\n // we override the snippets init function to handle the case where a\n // user initializes the mixpanel library after the script loads & runs\n mixpanel_master['init'] = function(token, config, name) {\n if (name) {\n // initialize a sub library\n if (!mixpanel_master[name]) {\n mixpanel_master[name] = instances[name] = create_mplib(token, config, name);\n mixpanel_master[name]._loaded();\n }\n return mixpanel_master[name];\n } else {\n var instance = mixpanel_master;\n\n if (instances[PRIMARY_INSTANCE_NAME]) {\n // main mixpanel lib already initialized\n instance = instances[PRIMARY_INSTANCE_NAME];\n } else if (token) {\n // intialize the main mixpanel lib\n instance = create_mplib(token, config, PRIMARY_INSTANCE_NAME);\n instance._loaded();\n instances[PRIMARY_INSTANCE_NAME] = instance;\n }\n\n mixpanel_master = instance;\n if (init_type === INIT_SNIPPET) {\n win[PRIMARY_INSTANCE_NAME] = mixpanel_master;\n }\n extend_mp();\n }\n };\n};\n\nvar add_dom_loaded_handler = function() {\n // Cross browser DOM Loaded support\n function dom_loaded_handler() {\n // function flag since we only want to execute this once\n if (dom_loaded_handler.done) { return; }\n dom_loaded_handler.done = true;\n\n DOM_LOADED = true;\n ENQUEUE_REQUESTS = false;\n\n _.each(instances, function(inst) {\n inst._dom_loaded();\n });\n }\n\n function do_scroll_check() {\n try {\n document$1.documentElement.doScroll('left');\n } catch(e) {\n setTimeout(do_scroll_check, 1);\n return;\n }\n\n dom_loaded_handler();\n }\n\n if (document$1.addEventListener) {\n if (document$1.readyState === 'complete') {\n // safari 4 can fire the DOMContentLoaded event before loading all\n // external JS (including this file). you will see some copypasta\n // on the internet that checks for 'complete' and 'loaded', but\n // 'loaded' is an IE thing\n dom_loaded_handler();\n } else {\n document$1.addEventListener('DOMContentLoaded', dom_loaded_handler, false);\n }\n } else if (document$1.attachEvent) {\n // IE\n document$1.attachEvent('onreadystatechange', dom_loaded_handler);\n\n // check to make sure we arn't in a frame\n var toplevel = false;\n try {\n toplevel = win.frameElement === null;\n } catch(e) {\n // noop\n }\n\n if (document$1.documentElement.doScroll && toplevel) {\n do_scroll_check();\n }\n }\n\n // fallback handler, always will work\n _.register_event(win, 'load', dom_loaded_handler, true);\n};\n\nfunction init_as_module(bundle_loader) {\n load_extra_bundle = bundle_loader;\n init_type = INIT_MODULE;\n mixpanel_master = new MixpanelLib();\n\n override_mp_init_func();\n mixpanel_master['init']();\n add_dom_loaded_handler();\n\n return mixpanel_master;\n}\n\n// For loading separate bundles asynchronously via script tag\n\n// For builds that have everything in one bundle, no extra work.\nfunction loadNoop (_src, onload) {\n onload();\n}\n\n/* eslint camelcase: \"off\" */\n\nvar mixpanel = init_as_module(loadNoop);\n\nexport { mixpanel as default };\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\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.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'чаÑ_чаÑа_чаÑов',\n dd: 'день_днÑ_дней',\n ww: 'неделÑ_недели_недель',\n MM: 'меÑÑц_меÑÑца_меÑÑцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^Ñнв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йÑ]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^Ñен/i,\n /^окт/i,\n /^ноÑ/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Ð¡Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÑÑцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'ÑнварÑ_февралÑ_марта_апрелÑ_маÑ_июнÑ_июлÑ_авгуÑта_ÑентÑбрÑ_октÑбрÑ_ноÑбрÑ_декабрÑ'.split(\n '_'\n ),\n standalone:\n 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой ÑмыÑл менÑÑ‚ÑŒ букву на точку?\n format: 'Ñнв._февр._мар._апр._маÑ_июнÑ_июлÑ_авг._Ñент._окт._ноÑб._дек.'.split(\n '_'\n ),\n standalone:\n 'Ñнв._февр._март_апр._май_июнь_июль_авг._Ñент._окт._ноÑб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воÑкреÑенье_понедельник_вторник_Ñреда_четверг_пÑтница_Ñуббота'.split(\n '_'\n ),\n format: 'воÑкреÑенье_понедельник_вторник_Ñреду_четверг_пÑтницу_Ñубботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|Ñледующую|Ñту)? ?] ?dddd/,\n },\n weekdaysShort: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по три буквы, Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ…, по 4 буквы, ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и без точки\n monthsRegex:\n /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾\n monthsShortRegex:\n /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸\n monthsStrictRegex:\n /^(Ñнвар[ÑÑŒ]|феврал[ÑÑŒ]|марта?|апрел[ÑÑŒ]|ма[Ñй]|июн[ÑÑŒ]|июл[ÑÑŒ]|авгуÑта?|ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|ноÑбр[ÑÑŒ]|декабр[ÑÑŒ])/i,\n\n // Выражение, которое ÑоответÑтвует только Ñокращённым формам\n monthsShortStrictRegex:\n /^(Ñнв\\.|февр?\\.|мар[Ñ‚.]|апр\\.|ма[Ñй]|июн[ÑŒÑ.]|июл[ÑŒÑ.]|авг\\.|Ñент?\\.|окт\\.|ноÑб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[СегоднÑ, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ Ñледующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ Ñледующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ Ñледующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'неÑколько Ñекунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'чаÑ',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделÑ',\n ww: relativeTimeWithPlural,\n M: 'меÑÑц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|днÑ|вечера/i,\n isPM: function (input) {\n return /^(днÑ|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|Ñ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-Ñ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak YiÄŸit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Åžubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄŸustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_ÇarÅŸamba_PerÅŸembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","// src/client/build/react.ts\nimport { useState } from \"react\";\n\n// src/client/build/register.ts\nvar autoUpdateMode = \"true\";\nvar selfDestroying = \"false\";\nvar auto = autoUpdateMode === \"true\";\nvar autoDestroy = selfDestroying === \"true\";\nfunction registerSW(options = {}) {\n const {\n immediate = false,\n onNeedRefresh,\n onOfflineReady,\n onRegistered,\n onRegisteredSW,\n onRegisterError\n } = options;\n let wb;\n let registerPromise;\n let sendSkipWaitingMessage;\n const updateServiceWorker = async (_reloadPage = true) => {\n await registerPromise;\n if (!auto) {\n await sendSkipWaitingMessage?.();\n }\n };\n async function register() {\n if (\"serviceWorker\" in navigator) {\n wb = await import(\"workbox-window\").then(({ Workbox }) => {\n return new Workbox(\"/sw.js\", { scope: \"/\", type: \"classic\" });\n }).catch((e) => {\n onRegisterError?.(e);\n return void 0;\n });\n if (!wb)\n return;\n sendSkipWaitingMessage = async () => {\n await wb?.messageSkipWaiting();\n };\n if (!autoDestroy) {\n if (auto) {\n wb.addEventListener(\"activated\", (event) => {\n if (event.isUpdate || event.isExternal)\n window.location.reload();\n });\n wb.addEventListener(\"installed\", (event) => {\n if (!event.isUpdate) {\n onOfflineReady?.();\n }\n });\n } else {\n let onNeedRefreshCalled = false;\n const showSkipWaitingPrompt = () => {\n onNeedRefreshCalled = true;\n wb?.addEventListener(\"controlling\", (event) => {\n if (event.isUpdate)\n window.location.reload();\n });\n onNeedRefresh?.();\n };\n wb.addEventListener(\"installed\", (event) => {\n if (typeof event.isUpdate === \"undefined\") {\n if (typeof event.isExternal !== \"undefined\") {\n if (event.isExternal)\n showSkipWaitingPrompt();\n else\n !onNeedRefreshCalled && onOfflineReady?.();\n } else {\n if (event.isExternal)\n window.location.reload();\n else\n !onNeedRefreshCalled && onOfflineReady?.();\n }\n } else if (!event.isUpdate) {\n onOfflineReady?.();\n }\n });\n wb.addEventListener(\"waiting\", showSkipWaitingPrompt);\n wb.addEventListener(\"externalwaiting\", showSkipWaitingPrompt);\n }\n }\n wb.register({ immediate }).then((r) => {\n if (onRegisteredSW)\n onRegisteredSW(\"/sw.js\", r);\n else\n onRegistered?.(r);\n }).catch((e) => {\n onRegisterError?.(e);\n });\n }\n }\n registerPromise = register();\n return updateServiceWorker;\n}\n\n// src/client/build/react.ts\nfunction useRegisterSW(options = {}) {\n const {\n immediate = true,\n onNeedRefresh,\n onOfflineReady,\n onRegistered,\n onRegisteredSW,\n onRegisterError\n } = options;\n const [needRefresh, setNeedRefresh] = useState(false);\n const [offlineReady, setOfflineReady] = useState(false);\n const [updateServiceWorker] = useState(() => {\n return registerSW({\n immediate,\n onOfflineReady() {\n setOfflineReady(true);\n onOfflineReady?.();\n },\n onNeedRefresh() {\n setNeedRefresh(true);\n onNeedRefresh?.();\n },\n onRegistered,\n onRegisteredSW,\n onRegisterError\n });\n });\n return {\n needRefresh: [needRefresh, setNeedRefresh],\n offlineReady: [offlineReady, setOfflineReady],\n updateServiceWorker\n };\n}\nexport {\n useRegisterSW\n};\n","async function detectAndStoreCountry() {\n const storedCountry = localStorage.getItem(\"userCountry\");\n const storedTimestamp = localStorage.getItem(\"countryTimestamp\");\n const now = Date.now();\n const ONE_DAY = 24 * 60 * 60 * 1000; // 24 saat milisaniye cinsinden\n\n if (\n storedCountry &&\n storedTimestamp &&\n now - parseInt(storedTimestamp) < ONE_DAY\n ) {\n return storedCountry;\n }\n\n try {\n const response = await fetch(\"https://ipapi.co/json/\");\n const data = await response.json();\n let country = data.country;\n\n if (country !== \"UZ\" && country !== \"TR\") {\n country = \"TR\";\n }\n\n localStorage.setItem(\"userCountry\", country);\n localStorage.setItem(\"countryTimestamp\", now.toString());\n\n return country;\n } catch (error) {\n console.error(\"Ãœlke tespiti sırasında hata:\", error);\n return null;\n }\n}\n\nexport function getUserCountry() {\n return detectAndStoreCountry();\n}\n","import { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nexport default function ScrollToTop() {\n const { pathname } = useLocation();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return null;\n}\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Footer({ stickyBottom }) {\n const { t, i18n } = useTranslation();\n const footerClasses = stickyBottom\n ? \"w-full bg-[#F9FAFC] p-4 sticky bottom-0 w-full px-[72px] py-[23px] md:flex hidden items-center justify-between text-[#677389] font-medium border-t border-[#E3E7EF] mt-auto\"\n : \"w-full px-[72px] py-[23px] md:flex hidden items-center justify-between text-[#677389] font-medium border-t border-[#E3E7EF]\";\n\n return (\n <footer className={footerClasses}>\n <span className=\"text-sm\">© 2024 egaranti</span>\n <ul className=\"flex items-center gap-4 text-sm\">\n <li>\n <a\n className=\"font-medium text-[#677389] no-underline\"\n href={`https://egaranti.com/${i18n.language}/policy/usage-terms/`}\n target=\"_blank\"\n >\n {t(\"navbar.usageterms\")}\n </a>\n </li>\n <li>\n <a\n className=\"font-medium text-[#677389] no-underline\"\n href={`https://egaranti.com/${i18n.language}/sss/`}\n target=\"_blank\"\n >\n {t(\"navbar.faq\")}\n </a>\n </li>\n <li>\n <a\n className=\"font-medium text-[#677389] no-underline\"\n href={`https://egaranti.com/${i18n.language}/contact/`}\n target=\"_blank\"\n >\n {t(\"navbar.contact\")}\n </a>\n </li>\n </ul>\n </footer>\n );\n}\n","export default \"__VITE_ASSET__ff5fbf36__\"","export default \"__VITE_ASSET__3e72d535__\"","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _toArray(r) {\n return arrayWithHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableRest();\n}\nexport { _toArray as default };","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Logger);\n this.init(concreteLogger, options);\n }\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread$6(_objectSpread$6({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n return Logger;\n}();\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n this.observers = {};\n }\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\n }\n return current;\n}\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n var _super = _createSuper$3(ResourceStore);\n function ResourceStore(data) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n _classCallCheck(this, ResourceStore);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.data = data || {};\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n return _this;\n }\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$5(_objectSpread$5({}, pack), resources);\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$5(_objectSpread$5({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n var _super = _createSuper$2(Translator);\n function Translator(services) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Translator);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (_typeof(options) === 'object') options = _objectSpread$4({}, options);\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: \"\".concat(namespace).concat(nsSeparator).concat(key),\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return key;\n }\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$4(_objectSpread$4({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$4(_objectSpread$4({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$4(_objectSpread$4({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n _this2.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$4(_objectSpread$4({}, options), {\n interpolation: _objectSpread$4(_objectSpread$4({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n return null;\n }\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$4({\n i18nResolved: resolved\n }, options) : options, this);\n }\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n var extracted = _this4.extractFromKey(k, options);\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n var possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n }]);\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n var cleanedLng = _this.formatLanguageCode(code);\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n var lngOnly = _this.getLanguagePartFromCode(code);\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n var addCode = function addCode(c) {\n if (!c) return;\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, PluralResolver);\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction deepFindWithDefaults(data, defaultData, key) {\n var keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n var ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Interpolator);\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n this.init(options);\n }\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = deepFindWithDefaults(data, defaultData, key, _this.options.keySeparator, _this.options.ignoreJSONStructure);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(deepFindWithDefaults(data, defaultData, k, _this.options.keySeparator, _this.options.ignoreJSONStructure), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n var clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n clonedOptions = _objectSpread$3({}, options);\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n var doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n }]);\n return Interpolator;\n}();\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n var cache = {};\n return function invokeFormatter(val, lng, options) {\n var key = lng + JSON.stringify(options);\n var formatter = cache[key];\n if (!formatter) {\n formatter = fn(lng, options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Formatter);\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$2(_objectSpread$2({}, opt), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val, opt.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.ListFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng) {\n var _this = this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var formats = _format.split(this.formatSeparator);\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n if (_this.formats[formatName]) {\n var formatted = mem;\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$2(_objectSpread$2(_objectSpread$2({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n return mem;\n }, value);\n return result;\n }\n }]);\n return Formatter;\n}();\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n var _super = _createSuper$1(Connector);\n function Connector(backend, store, services) {\n var _this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n _classCallCheck(this, Connector);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this.state = {};\n _this.queue = [];\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n return _this;\n }\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(function (n) {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n this.readingCalls++;\n var resolver = function resolver(err, data) {\n _this3.readingCalls--;\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < _this3.maxRetries) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n var fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n var r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return resolver(null, data);\n })[\"catch\"](resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : function () {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n var opts = _objectSpread$1(_objectSpread$1({}, options), {}, {\n isUpdate: isUpdate\n });\n var fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n var r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return clb(null, data);\n })[\"catch\"](clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n var _super = _createSuper(I18n);\n function I18n() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n _classCallCheck(this, I18n);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n return _this;\n }\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n var defOpts = get();\n this.options = _objectSpread(_objectSpread(_objectSpread({}, defOpts), this.options), transformOptions(options));\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread(_objectSpread({}, defOpts.interpolation), this.options.interpolation);\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n var formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this2.emit.apply(_this2, [event].concat(args));\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n return _this2;\n };\n });\n var deferred = defer();\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n _this2.emit('initialized', _this2.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n var append = function append(lng) {\n if (!lng) return;\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n _this4.setResolvedLanguage(l);\n };\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n _this4.translator.changeLanguage(l);\n _this4.isLanguageChangingTo = undefined;\n _this4.emit('languageChanged', l);\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector && _this4.services.languageDetector.cacheUserLanguage) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n var fixedT = function fixedT(key, opts) {\n var options;\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(function (k) {\n return \"\".concat(options.keyPrefix).concat(keySeparator).concat(k);\n });\n } else {\n resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n }\n return _this5.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n var lng = options.lng || this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n var deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n var languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var mergedOptions = _objectSpread(_objectSpread(_objectSpread({}, this.options), options), {\n isClone: true\n });\n var clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n return I18n;\n}(EventEmitter);\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar dir = instance.dir;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nvar serializeCookie = function serializeCookie(name, val, options) {\n var opt = options || {};\n opt.path = opt.path || '/';\n var value = encodeURIComponent(val);\n var str = \"\".concat(name, \"=\").concat(value);\n if (opt.maxAge > 0) {\n var maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += \"; Max-Age=\".concat(Math.floor(maxAge));\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += \"; Domain=\".concat(opt.domain);\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += \"; Path=\".concat(opt.path);\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += \"; Expires=\".concat(opt.expires.toUTCString());\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n return str;\n};\nvar cookie = {\n create: function create(name, value, minutes, domain) {\n var cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read: function read(name) {\n var nameEQ = \"\".concat(name, \"=\");\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove: function remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n lookup: function lookup(options) {\n var found;\n if (options.lookupCookie && typeof document !== 'undefined') {\n var c = cookie.read(options.lookupCookie);\n if (c) found = c;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupCookie && typeof document !== 'undefined') {\n cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain, options.cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n lookup: function lookup(options) {\n var found;\n if (typeof window !== 'undefined') {\n var search = window.location.search;\n if (!window.location.search && window.location.hash && window.location.hash.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n var query = search.substring(1);\n var params = query.split('&');\n for (var i = 0; i < params.length; i++) {\n var pos = params[i].indexOf('=');\n if (pos > 0) {\n var key = params[i].substring(0, pos);\n if (key === options.lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nvar hasLocalStorageSupport = null;\nvar localStorageAvailable = function localStorageAvailable() {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n lookup: function lookup(options) {\n var found;\n if (options.lookupLocalStorage && localStorageAvailable()) {\n var lng = window.localStorage.getItem(options.lookupLocalStorage);\n if (lng) found = lng;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(options.lookupLocalStorage, lng);\n }\n }\n};\n\nvar hasSessionStorageSupport = null;\nvar sessionStorageAvailable = function sessionStorageAvailable() {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup: function lookup(options) {\n var found;\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n var lng = window.sessionStorage.getItem(options.lookupSessionStorage);\n if (lng) found = lng;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(options.lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup: function lookup(options) {\n var found = [];\n if (typeof navigator !== 'undefined') {\n if (navigator.languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (var i = 0; i < navigator.languages.length; i++) {\n found.push(navigator.languages[i]);\n }\n }\n if (navigator.userLanguage) {\n found.push(navigator.userLanguage);\n }\n if (navigator.language) {\n found.push(navigator.language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n lookup: function lookup(options) {\n var found;\n var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (htmlTag && typeof htmlTag.getAttribute === 'function') {\n found = htmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n lookup: function lookup(options) {\n var found;\n if (typeof window !== 'undefined') {\n var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (language instanceof Array) {\n if (typeof options.lookupFromPathIndex === 'number') {\n if (typeof language[options.lookupFromPathIndex] !== 'string') {\n return undefined;\n }\n found = language[options.lookupFromPathIndex].replace('/', '');\n } else {\n found = language[0].replace('/', '');\n }\n }\n }\n return found;\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup: function lookup(options) {\n // If given get the subdomain index else 1\n var lookupFromSubdomainIndex = typeof options.lookupFromSubdomainIndex === 'number' ? options.lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group macht which sould be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n var language = typeof window !== 'undefined' && window.location && window.location.hostname && window.location.hostname.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[lookupFromSubdomainIndex];\n }\n};\n\n// some environments, throws when accessing document.cookie\nvar canCookies = false;\ntry {\n // eslint-disable-next-line no-unused-expressions\n document.cookie;\n canCookies = true;\n // eslint-disable-next-line no-empty\n} catch (e) {}\nvar order = ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'];\nif (!canCookies) order.splice(1, 1);\nfunction getDefaults() {\n return {\n order: order,\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: function convertDetectedLanguage(l) {\n return l;\n }\n };\n}\nvar Browser = /*#__PURE__*/function () {\n function Browser(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Browser);\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n return _createClass(Browser, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services || {\n languageUtils: {}\n }; // this way the language detector can be used without i18next\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = function (l) {\n return l.replace('-', '_');\n };\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n }, {\n key: \"addDetector\",\n value: function addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n }, {\n key: \"detect\",\n value: function detect(detectionOrder) {\n var _this = this;\n if (!detectionOrder) detectionOrder = this.options.order;\n var detected = [];\n detectionOrder.forEach(function (detectorName) {\n if (_this.detectors[detectorName]) {\n var lookup = _this.detectors[detectorName].lookup(_this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.map(function (d) {\n return _this.options.convertDetectedLanguage(d);\n });\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n }, {\n key: \"cacheUserLanguage\",\n value: function cacheUserLanguage(lng, caches) {\n var _this2 = this;\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(function (cacheName) {\n if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n });\n }\n }]);\n}();\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","var arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this;\n var args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (!object) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n object = object[key];\n }\n if (!object) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nexport function setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n obj[k] = newValue;\n}\nexport function pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nexport function getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n if (!obj) return undefined;\n return obj[k];\n}\nvar regexp = new RegExp('{{(.+?)}}', 'g');\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nexport function interpolate(str, data, lng) {\n var match, value;\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n while (match = regexp.exec(str)) {\n value = match[1].trim();\n if (typeof value !== 'string') value = makeString(value);\n if (!value) value = '';\n value = regexSafe(value);\n str = str.replace(match[0], data[value] || value);\n regexp.lastIndex = 0;\n }\n return str;\n}\nexport function isMissingOption(obj, props) {\n return props.reduce(function (mem, p) {\n if (mem) return mem;\n if (!obj || !obj[p] || typeof obj[p] !== 'string' || !obj[p].toLowerCase() === p.toLowerCase()) {\n var err = \"i18next-locize-backend :: got \\\"\".concat(obj[p], \"\\\" in options for \").concat(p, \" which is invalid.\");\n console.warn(err);\n return err;\n }\n return false;\n }, false);\n}\nexport function optionExist(obj, props) {\n return !isMissingOption(obj, props);\n}\nexport function defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar fetchApi = typeof fetch === 'function' ? fetch : undefined;\nif (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n} else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n}\nvar XmlHttpRequestApi;\nif (typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object') {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\nvar ActiveXObjectApi;\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\nif (typeof fetchApi !== 'function') fetchApi = undefined;\nif (!fetchApi && !XmlHttpRequestApi && !ActiveXObjectApi) {\n try {\n import('cross-fetch').then(function (mod) {\n fetchApi = mod.default;\n }).catch(function () {});\n } catch (e) {}\n}\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n var headers = {};\n if (typeof window === 'undefined' && typeof global !== 'undefined' && typeof global.process !== 'undefined' && global.process.versions && global.process.versions.node) {\n headers['User-Agent'] = \"i18next-locize-backend (node/\".concat(global.process.version, \"; \").concat(global.process.platform, \" \").concat(global.process.arch, \")\");\n }\n if (options.authorize && options.apiKey) {\n headers.Authorization = options.apiKey;\n }\n if (payload || options.setContentTypeJSON) {\n headers['Content-Type'] = 'application/json';\n }\n var resolver = function resolver(response) {\n var resourceNotExisting = response.headers && response.headers.get('x-cache') === 'Error from cloudfront';\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status,\n resourceNotExisting: resourceNotExisting\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data,\n resourceNotExisting: resourceNotExisting\n });\n }).catch(callback);\n };\n if (typeof fetch === 'function') {\n fetch(url, {\n method: payload ? 'POST' : 'GET',\n body: payload ? JSON.stringify(payload) : undefined,\n headers: headers\n }).then(resolver).catch(callback);\n } else {\n fetchApi(url, {\n method: payload ? 'POST' : 'GET',\n body: payload ? JSON.stringify(payload) : undefined,\n headers: headers\n }).then(resolver).catch(callback);\n }\n};\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n try {\n var x = XmlHttpRequestApi ? new XmlHttpRequestApi() : new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n x.open(payload ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n if (options.authorize && options.apiKey) {\n x.setRequestHeader('Authorization', options.apiKey);\n }\n if (payload || options.setContentTypeJSON) {\n x.setRequestHeader('Content-Type', 'application/json');\n }\n x.onreadystatechange = function () {\n var resourceNotExisting = x.getResponseHeader('x-cache') === 'Error from cloudfront';\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText,\n resourceNotExisting: resourceNotExisting\n });\n };\n x.send(JSON.stringify(payload));\n } catch (e) {\n console && console.log(e);\n }\n};\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n if (fetchApi) {\n return requestWithFetch(options, url, payload, callback);\n }\n if (typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object' || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n callback(new Error('No fetch and no xhr implementation found!'));\n};\nexport default request;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { defaults, debounce, isMissingOption, interpolate, getPath, setPath, pushPath, defer } from './utils.js';\nimport request from './request.js';\nvar getDefaults = function getDefaults() {\n return {\n loadPath: 'https://api.locize.app/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n privatePath: 'https://api.locize.app/private/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n getLanguagesPath: 'https://api.locize.app/languages/{{projectId}}',\n addPath: 'https://api.locize.app/missing/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n updatePath: 'https://api.locize.app/update/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n referenceLng: 'en',\n crossDomain: true,\n setContentTypeJSON: false,\n version: 'latest',\n private: false,\n translatedPercentageThreshold: 0.9,\n failLoadingOnEmptyJSON: false,\n allowedAddOrUpdateHosts: ['localhost'],\n onSaved: false,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n checkForProjectTimeout: 3 * 1000,\n storageExpiration: 60 * 60 * 1000,\n writeDebounce: 5 * 1000\n };\n};\nvar hasLocalStorageSupport;\ntry {\n hasLocalStorageSupport = typeof window !== 'undefined' && window.localStorage !== null;\n var testKey = 'notExistingLocizeProject';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n} catch (e) {\n hasLocalStorageSupport = false;\n}\nfunction getStorage(storageExpiration) {\n var setProjectNotExisting = function setProjectNotExisting() {};\n var isProjectNotExisting = function isProjectNotExisting() {};\n if (hasLocalStorageSupport) {\n setProjectNotExisting = function setProjectNotExisting(projectId) {\n window.localStorage.setItem(\"notExistingLocizeProject_\".concat(projectId), Date.now());\n };\n isProjectNotExisting = function isProjectNotExisting(projectId) {\n var ret = window.localStorage.getItem(\"notExistingLocizeProject_\".concat(projectId));\n if (!ret) return false;\n if (Date.now() - ret > storageExpiration) {\n window.localStorage.removeItem(\"notExistingLocizeProject_\".concat(projectId));\n return false;\n }\n return true;\n };\n } else if (typeof document !== 'undefined') {\n setProjectNotExisting = function setProjectNotExisting(projectId) {\n var date = new Date();\n date.setTime(date.getTime() + storageExpiration);\n var expires = \"; expires=\".concat(date.toGMTString());\n var name = \"notExistingLocizeProject_\".concat(projectId);\n try {\n document.cookie = \"\".concat(name, \"=\").concat(Date.now()).concat(expires, \";path=/\");\n } catch (err) {}\n };\n isProjectNotExisting = function isProjectNotExisting(projectId) {\n var name = \"notExistingLocizeProject_\".concat(projectId);\n var nameEQ = \"\".concat(name, \"=\");\n try {\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return true;\n }\n } catch (err) {}\n return false;\n };\n }\n return {\n setProjectNotExisting: setProjectNotExisting,\n isProjectNotExisting: isProjectNotExisting\n };\n}\nvar getCustomRequestInfo = function getCustomRequestInfo(url, options, payload) {\n var headers = {};\n if (options.authorize && options.apiKey) {\n headers.Authorization = options.apiKey;\n }\n if (payload || options.setContentTypeJSON) {\n headers['Content-Type'] = 'application/json';\n }\n return {\n method: payload ? 'POST' : 'GET',\n url: url,\n headers: headers,\n body: payload\n };\n};\nvar handleCustomRequest = function handleCustomRequest(opt, info, cb) {\n if (opt.request.length === 1) {\n try {\n var r = opt.request(info);\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return cb(null, data);\n }).catch(cb);\n } else {\n cb(null, r);\n }\n } catch (err) {\n cb(err);\n }\n return;\n }\n opt.request(info, cb);\n};\nvar I18NextLocizeBackend = function () {\n function I18NextLocizeBackend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n _classCallCheck(this, I18NextLocizeBackend);\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n if (services && services.projectId) {\n this.init(null, services, allOptions, options);\n } else {\n this.init(services, options, allOptions, callback);\n }\n }\n return _createClass(I18NextLocizeBackend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!options.referenceLng && allOptions.fallbackLng && Array.isArray(allOptions.fallbackLng) && allOptions.fallbackLng[0] !== 'dev') {\n options.referenceLng = allOptions.fallbackLng[0];\n }\n this.services = services;\n var defOpt = getDefaults();\n var passedOpt = defaults(options, this.options || {});\n if (passedOpt.reloadInterval && passedOpt.reloadInterval < 5 * 60 * 1000) {\n console.warn('Your configured reloadInterval option is to low.');\n passedOpt.reloadInterval = defOpt.reloadInterval;\n }\n this.options = defaults(options, this.options || {}, defOpt);\n this.allOptions = allOptions;\n this.somethingLoaded = false;\n this.isProjectNotExisting = false;\n this.storage = getStorage(this.options.storageExpiration);\n if (this.options.pull) {\n console.warn('The pull API was removed use \"private: true\" option instead: https://docs.locize.com/integration/api#fetch-private-namespace-resources');\n }\n var hostname = typeof window !== 'undefined' && window.location && window.location.hostname;\n if (hostname) {\n this.isAddOrUpdateAllowed = typeof this.options.allowedAddOrUpdateHosts === 'function' ? this.options.allowedAddOrUpdateHosts(hostname) : this.options.allowedAddOrUpdateHosts.indexOf(hostname) > -1;\n if (services && services.logger && (allOptions.saveMissing || allOptions.updateMissing)) {\n if (!this.isAddOrUpdateAllowed) {\n services.logger.warn(typeof this.options.allowedAddOrUpdateHosts === 'function' ? \"locize-backend: will not save or update missings because allowedAddOrUpdateHosts returned false for the host \\\"\".concat(hostname, \"\\\".\") : \"locize-backend: will not save or update missings because the host \\\"\".concat(hostname, \"\\\" was not in the list of allowedAddOrUpdateHosts: \").concat(this.options.allowedAddOrUpdateHosts.join(', '), \" (matches need to be exact).\"));\n } else if (hostname !== 'localhost') {\n services.logger.warn(\"locize-backend: you are using the save or update missings feature from this host \\\"\".concat(hostname, \"\\\".\\nMake sure you will not use it in production!\\nhttps://docs.locize.com/guides-tips-and-tricks/going-production\"));\n }\n }\n } else {\n this.isAddOrUpdateAllowed = true;\n }\n if (typeof callback === 'function') {\n this.getOptions(function (err, opts, languages) {\n if (err) return callback(err);\n _this.options.referenceLng = options.referenceLng || opts.referenceLng || _this.options.referenceLng;\n callback(null, opts, languages);\n });\n }\n this.queuedWrites = {\n pending: {}\n };\n this.debouncedProcess = debounce(this.process, this.options.writeDebounce);\n if (this.interval) clearInterval(this.interval);\n if (this.options.reloadInterval && this.options.projectId) {\n this.interval = setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n if (_typeof(this.interval) === 'object' && typeof this.interval.unref === 'function') this.interval.unref();\n }\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this2 = this;\n var _ref = this.services || {\n logger: console\n },\n backendConnector = _ref.backendConnector,\n languageUtils = _ref.languageUtils,\n logger = _ref.logger;\n if (!backendConnector) return;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n var toLoad = [];\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this2.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }, {\n key: \"getLanguages\",\n value: function getLanguages(callback) {\n var _this3 = this;\n var deferred;\n if (!callback) {\n deferred = defer();\n callback = function callback(err, ret) {\n if (err) return deferred.reject(err);\n deferred.resolve(ret);\n };\n }\n var isMissing = isMissingOption(this.options, ['projectId']);\n if (isMissing) return callback(new Error(isMissing));\n var url = interpolate(this.options.getLanguagesPath, {\n projectId: this.options.projectId\n });\n if (!this.isProjectNotExisting && this.storage.isProjectNotExisting(this.options.projectId)) {\n this.isProjectNotExisting = true;\n }\n if (this.isProjectNotExisting) return callback(new Error(\"locize project \".concat(this.options.projectId, \" does not exist!\")));\n this.getLanguagesCalls = this.getLanguagesCalls || [];\n this.getLanguagesCalls.push(callback);\n if (this.getLanguagesCalls.length > 1) return;\n this.loadUrl({}, url, function (err, ret, info) {\n if (!_this3.somethingLoaded && info && info.resourceNotExisting) {\n _this3.isProjectNotExisting = true;\n _this3.storage.setProjectNotExisting(_this3.options.projectId);\n var e = new Error(\"locize project \".concat(_this3.options.projectId, \" does not exist!\"));\n var _clbs = _this3.getLanguagesCalls;\n _this3.getLanguagesCalls = [];\n return _clbs.forEach(function (clb) {\n return clb(e);\n });\n }\n if (ret) {\n var referenceLng = Object.keys(ret).reduce(function (mem, k) {\n var item = ret[k];\n if (item.isReferenceLanguage) mem = k;\n return mem;\n }, '');\n if (referenceLng && _this3.options.referenceLng !== referenceLng) {\n _this3.options.referenceLng = referenceLng;\n }\n }\n _this3.somethingLoaded = true;\n var clbs = _this3.getLanguagesCalls;\n _this3.getLanguagesCalls = [];\n clbs.forEach(function (clb) {\n return clb(err, ret);\n });\n });\n return deferred;\n }\n }, {\n key: \"getOptions\",\n value: function getOptions(callback) {\n var _this4 = this;\n var deferred;\n if (!callback) {\n deferred = defer();\n callback = function callback(err, ret) {\n if (err) return deferred.reject(err);\n deferred.resolve(ret);\n };\n }\n this.getLanguages(function (err, data) {\n if (err) return callback(err);\n var keys = Object.keys(data);\n if (!keys.length) {\n return callback(new Error('was unable to load languages via API'));\n }\n var lngs = keys.reduce(function (mem, k) {\n var item = data[k];\n if (item.translated[_this4.options.version] && item.translated[_this4.options.version] >= _this4.options.translatedPercentageThreshold) {\n mem.push(k);\n }\n return mem;\n }, []);\n var hasRegion = keys.reduce(function (mem, k) {\n if (k.indexOf('-') > -1) return true;\n return mem;\n }, false);\n callback(null, {\n fallbackLng: _this4.options.referenceLng,\n referenceLng: _this4.options.referenceLng,\n supportedLngs: lngs.length === 0 && _this4.options.referenceLng ? [_this4.options.referenceLng] : lngs,\n load: hasRegion ? 'all' : 'languageOnly'\n }, data);\n });\n return deferred;\n }\n }, {\n key: \"checkIfProjectExists\",\n value: function checkIfProjectExists(callback) {\n var _this5 = this;\n var _ref2 = this.services || {\n logger: console\n },\n logger = _ref2.logger;\n if (this.somethingLoaded) {\n if (callback) callback(null);\n return;\n }\n if (this.alreadyRequestedCheckIfProjectExists) {\n setTimeout(function () {\n return _this5.checkIfProjectExists(callback);\n }, this.options.checkForProjectTimeout);\n return;\n }\n this.alreadyRequestedCheckIfProjectExists = true;\n this.getLanguages(function (err) {\n if (err && err.message && err.message.indexOf('does not exist') > 0) {\n if (logger) logger.error(err.message);\n }\n if (callback) callback(err);\n });\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var _this6 = this;\n var _ref3 = this.services || {\n logger: console\n },\n logger = _ref3.logger;\n var url;\n var options = {};\n if (this.options.private) {\n var isMissing = isMissingOption(this.options, ['projectId', 'version', 'apiKey']);\n if (isMissing) return callback(new Error(isMissing), false);\n url = interpolate(this.options.privatePath, {\n lng: language,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n options = {\n authorize: true\n };\n } else {\n var _isMissing = isMissingOption(this.options, ['projectId', 'version']);\n if (_isMissing) return callback(new Error(_isMissing), false);\n url = interpolate(this.options.loadPath, {\n lng: language,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n }\n if (!this.isProjectNotExisting && this.storage.isProjectNotExisting(this.options.projectId)) {\n this.isProjectNotExisting = true;\n }\n if (this.isProjectNotExisting) {\n var err = new Error(\"locize project \".concat(this.options.projectId, \" does not exist!\"));\n if (logger) logger.error(err.message);\n if (callback) callback(err);\n return;\n }\n this.loadUrl(options, url, function (err, ret, info) {\n if (!_this6.somethingLoaded) {\n if (info && info.resourceNotExisting) {\n setTimeout(function () {\n return _this6.checkIfProjectExists();\n }, _this6.options.checkForProjectTimeout);\n } else {\n _this6.somethingLoaded = true;\n }\n }\n callback(err, ret);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(options, url, payload, callback) {\n var _this7 = this;\n options = defaults(options, this.options);\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n var clb = function clb(err, res) {\n var resourceNotExisting = res && res.resourceNotExisting;\n if (res && (res.status === 408 || res.status === 400)) {\n return callback('failed loading ' + url, true, {\n resourceNotExisting: resourceNotExisting\n });\n }\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) {\n return callback('failed loading ' + url, true, {\n resourceNotExisting: resourceNotExisting\n });\n }\n if (res && res.status >= 400 && res.status < 500) {\n return callback('failed loading ' + url, false, {\n resourceNotExisting: resourceNotExisting\n });\n }\n if (!res && err && err.message) {\n var errorMessage = err.message.toLowerCase();\n var isNetworkError = ['failed', 'fetch', 'network', 'load'].find(function (term) {\n return errorMessage.indexOf(term) > -1;\n });\n if (isNetworkError) {\n return callback('failed loading ' + url + ': ' + err.message, true, {\n resourceNotExisting: resourceNotExisting\n });\n }\n }\n if (err) return callback(err, false);\n var ret, parseErr;\n try {\n if (typeof res.data === 'string') {\n ret = JSON.parse(res.data);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n if (parseErr) return callback(parseErr, false);\n if (_this7.options.failLoadingOnEmptyJSON && !Object.keys(ret).length) {\n return callback('loaded result empty for ' + url, false, {\n resourceNotExisting: resourceNotExisting\n });\n }\n callback(null, ret, {\n resourceNotExisting: resourceNotExisting\n });\n };\n if (!this.options.request || url.indexOf(\"/languages/\".concat(options.projectId)) > 0) return request(options, url, payload, clb);\n var info = getCustomRequestInfo(url, options, payload);\n handleCustomRequest(this.options, info, clb);\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback, options) {\n var _this8 = this;\n if (typeof callback !== 'function') callback = function callback() {};\n this.checkIfProjectExists(function (err) {\n if (err) return callback(err);\n var isMissing = isMissingOption(_this8.options, ['projectId', 'version', 'apiKey', 'referenceLng']);\n if (isMissing) return callback(new Error(isMissing));\n if (!_this8.isAddOrUpdateAllowed) {\n return callback('host is not allowed to create key.');\n }\n if (typeof languages === 'string') languages = [languages];\n if (languages.filter(function (l) {\n return l === _this8.options.referenceLng;\n }).length < 1) {\n _this8.services && _this8.services.logger && _this8.services.logger.warn(\"locize-backend: will not save missings because the reference language \\\"\".concat(_this8.options.referenceLng, \"\\\" was not in the list of to save languages: \").concat(languages.join(', '), \" (open your site in the reference language to save missings).\"));\n }\n languages.forEach(function (lng) {\n if (lng === _this8.options.referenceLng) {\n _this8.queue.call(_this8, _this8.options.referenceLng, namespace, key, fallbackValue, callback, options);\n }\n });\n });\n }\n }, {\n key: \"update\",\n value: function update(languages, namespace, key, fallbackValue, callback, options) {\n var _this9 = this;\n if (typeof callback !== 'function') callback = function callback() {};\n this.checkIfProjectExists(function (err) {\n if (err) return callback(err);\n var isMissing = isMissingOption(_this9.options, ['projectId', 'version', 'apiKey', 'referenceLng']);\n if (isMissing) return callback(new Error(isMissing));\n if (!_this9.isAddOrUpdateAllowed) {\n return callback('host is not allowed to update key.');\n }\n if (!options) options = {};\n if (typeof languages === 'string') languages = [languages];\n options.isUpdate = true;\n languages.forEach(function (lng) {\n if (lng === _this9.options.referenceLng) {\n _this9.queue.call(_this9, _this9.options.referenceLng, namespace, key, fallbackValue, callback, options);\n }\n });\n });\n }\n }, {\n key: \"writePage\",\n value: function writePage(lng, namespace, missings, callback) {\n var missingUrl = interpolate(this.options.addPath, {\n lng: lng,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n var updatesUrl = interpolate(this.options.updatePath, {\n lng: lng,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n var hasMissing = false;\n var hasUpdates = false;\n var payloadMissing = {};\n var payloadUpdate = {};\n missings.forEach(function (item) {\n var value = item.options && item.options.tDescription ? {\n value: item.fallbackValue || '',\n context: {\n text: item.options.tDescription\n }\n } : item.fallbackValue || '';\n if (item.options && item.options.isUpdate) {\n if (!hasUpdates) hasUpdates = true;\n payloadUpdate[item.key] = value;\n } else {\n if (!hasMissing) hasMissing = true;\n payloadMissing[item.key] = value;\n }\n });\n var todo = 0;\n if (hasMissing) todo++;\n if (hasUpdates) todo++;\n var doneOne = function doneOne(err) {\n todo--;\n if (!todo) callback(err);\n };\n if (!todo) doneOne();\n if (hasMissing) {\n if (!this.options.request) {\n request(defaults({\n authorize: true\n }, this.options), missingUrl, payloadMissing, doneOne);\n } else {\n var info = getCustomRequestInfo(missingUrl, defaults({\n authorize: true\n }, this.options), payloadMissing);\n handleCustomRequest(this.options, info, doneOne);\n }\n }\n if (hasUpdates) {\n if (!this.options.request) {\n request(defaults({\n authorize: true\n }, this.options), updatesUrl, payloadUpdate, doneOne);\n } else {\n var _info = getCustomRequestInfo(updatesUrl, defaults({\n authorize: true\n }, this.options), payloadUpdate);\n handleCustomRequest(this.options, _info, doneOne);\n }\n }\n }\n }, {\n key: \"write\",\n value: function write(lng, namespace) {\n var _this10 = this;\n var lock = getPath(this.queuedWrites, ['locks', lng, namespace]);\n if (lock) return;\n var missings = getPath(this.queuedWrites, [lng, namespace]);\n setPath(this.queuedWrites, [lng, namespace], []);\n var pageSize = 1000;\n var clbs = missings.filter(function (m) {\n return m.callback;\n }).map(function (missing) {\n return missing.callback;\n });\n if (missings.length) {\n setPath(this.queuedWrites, ['locks', lng, namespace], true);\n var namespaceSaved = function namespaceSaved() {\n setPath(_this10.queuedWrites, ['locks', lng, namespace], false);\n clbs.forEach(function (clb) {\n return clb();\n });\n if (_this10.options.onSaved) _this10.options.onSaved(lng, namespace);\n _this10.debouncedProcess(lng, namespace);\n };\n var amountOfPages = missings.length / pageSize;\n var pagesDone = 0;\n var page = missings.splice(0, pageSize);\n this.writePage(lng, namespace, page, function () {\n pagesDone++;\n if (pagesDone >= amountOfPages) namespaceSaved();\n });\n while (page.length === pageSize) {\n page = missings.splice(0, pageSize);\n if (page.length) {\n this.writePage(lng, namespace, page, function () {\n pagesDone++;\n if (pagesDone >= amountOfPages) namespaceSaved();\n });\n }\n }\n }\n }\n }, {\n key: \"process\",\n value: function process() {\n var _this11 = this;\n Object.keys(this.queuedWrites).forEach(function (lng) {\n if (lng === 'locks') return;\n Object.keys(_this11.queuedWrites[lng]).forEach(function (ns) {\n var todo = _this11.queuedWrites[lng][ns];\n if (todo.length) {\n _this11.write(lng, ns);\n }\n });\n });\n }\n }, {\n key: \"queue\",\n value: function queue(lng, namespace, key, fallbackValue, callback, options) {\n pushPath(this.queuedWrites, [lng, namespace], {\n key: key,\n fallbackValue: fallbackValue || '',\n callback: callback,\n options: options\n });\n this.debouncedProcess();\n }\n }]);\n}();\nI18NextLocizeBackend.type = 'backend';\nexport default I18NextLocizeBackend;","var INVISIBLE_CHARACTERS = [\"\\u200B\", \"\\u200C\"];\nvar INVISIBLE_REGEX = RegExp(\"([\".concat(INVISIBLE_CHARACTERS.join(''), \"]{9})+\"), 'gu');\nvar TEMPLATE_MINIMUM_LENGTH = '{\"k\":\"a\"}'.length;\nvar invisibleStartMarker = 'subliminal:start';\nvar toBytes = function toBytes(text) {\n return Array.from(new TextEncoder().encode(text));\n};\nvar fromBytes = function fromBytes(bytes) {\n return new TextDecoder().decode(new Uint8Array(bytes));\n};\nvar padToWholeBytes = function padToWholeBytes(binary) {\n var needsToAdd = 8 - binary.length;\n return '0'.repeat(needsToAdd) + binary;\n};\nvar encodeMessage = function encodeMessage(text) {\n var bytes = toBytes(text).map(Number);\n var binary = bytes.map(function (byte) {\n return padToWholeBytes(byte.toString(2)) + '0';\n }).join('');\n var result = Array.from(binary).map(function (b) {\n return INVISIBLE_CHARACTERS[Number(b)];\n }).join('');\n return result;\n};\nvar encodedInvisibleStartMarker = encodeMessage(invisibleStartMarker) ;\nvar decodeMessage = function decodeMessage(message) {\n var binary = Array.from(message).map(function (character) {\n return INVISIBLE_CHARACTERS.indexOf(character);\n }).map(String).join('');\n var textBytes = binary.match(/(.{9})/g);\n var codes = Uint8Array.from((textBytes === null || textBytes === void 0 ? void 0 : textBytes.map(function (byte) {\n return parseInt(byte.slice(0, 8), 2);\n })) || []);\n return fromBytes(codes);\n};\nvar decodeFromText = function decodeFromText(text) {\n var _text$match;\n var invisibleMessages = (_text$match = text.match(INVISIBLE_REGEX)) === null || _text$match === void 0 ? void 0 : _text$match.filter(function (m) {\n return m.length > TEMPLATE_MINIMUM_LENGTH - 1;\n });\n if (!invisibleMessages || invisibleMessages.length === 0) return;\n return decodeMessage(invisibleMessages[invisibleMessages.length - 1]);\n};\nvar removeInvisibles = function removeInvisibles(text) {\n return text.replace(INVISIBLE_REGEX, '');\n};\nvar encodeValue = function encodeValue(data) {\n if (Object.keys(data).length === 0) return data;\n var value = {\n k: data.key,\n n: data.ns,\n l: data.lng,\n s: data.source\n };\n return JSON.stringify(value);\n};\nvar decodeValue = function decodeValue(value) {\n if (!value || typeof value !== 'string' || value.indexOf('{') !== 0) return;\n try {\n var parsed = JSON.parse(value || '{}');\n return {\n key: parsed.k,\n ns: parsed.n,\n lng: parsed.l,\n source: parsed.s\n };\n } catch (e) {\n return undefined;\n }\n};\nfunction wrap(text) {\n var invisibleMeta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var encodedValue = encodeValue(invisibleMeta);\n var invisibleMark = encodeMessage(encodedValue);\n return typeof text === 'string' && text ? encodedInvisibleStartMarker + text + invisibleMark : text;\n}\nfunction unwrap(text) {\n var encodedValue = decodeFromText(text);\n var decodedVal = decodeValue(encodedValue);\n var result = removeInvisibles(text);\n return {\n text: result,\n invisibleMeta: decodedVal\n };\n}\nfunction containsHiddenMeta(text) {\n if (!text || text.length < 27) return false;\n if (!INVISIBLE_REGEX.test(text)) return false;\n var lastByte = text.substring(text.length - 9);\n var lastChar = decodeMessage(lastByte);\n return lastChar === '}';\n}\nfunction containsHiddenStartMarker(text) {\n return text.startsWith(encodedInvisibleStartMarker);\n}\n\nexport { containsHiddenMeta, containsHiddenStartMarker, unwrap, wrap };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { wrap } from './encoder.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar postProcessorName = 'subliminal';\nvar SubliminalPostProcessor = {\n name: postProcessorName,\n type: 'postProcessor',\n options: {},\n setOptions: function setOptions(options) {\n this.options = _objectSpread(_objectSpread({}, options), this.options);\n },\n process: function process(value, keyIn, options, translator) {\n var opt = this.options = _objectSpread(_objectSpread({}, options), this.options);\n var key, ns, lng, source;\n if (options.i18nResolved) {\n key = options.i18nResolved.exactUsedKey;\n ns = options.i18nResolved.usedNS;\n lng = options.i18nResolved.usedLng;\n if (options.i18nResolved.res === undefined) {\n if (key !== value) {\n source = 'default';\n } else {\n source = 'key';\n }\n } else {\n source = 'translation';\n }\n } else {\n var _ref, _opt$keySeparator, _translator$options, _ref2, _namespaces$, _translator$options2;\n var keySeparator = (_ref = (_opt$keySeparator = opt.keySeparator) !== null && _opt$keySeparator !== void 0 ? _opt$keySeparator : translator === null || translator === void 0 || (_translator$options = translator.options) === null || _translator$options === void 0 ? void 0 : _translator$options.keySeparator) !== null && _ref !== void 0 ? _ref : '.';\n var _translator$extractFr = translator.extractFromKey(keyIn.join(keySeparator), options),\n extractedKey = _translator$extractFr.key,\n namespaces = _translator$extractFr.namespaces;\n key = extractedKey;\n ns = (_ref2 = (_namespaces$ = namespaces === null || namespaces === void 0 ? void 0 : namespaces[0]) !== null && _namespaces$ !== void 0 ? _namespaces$ : opt.ns) !== null && _ref2 !== void 0 ? _ref2 : translator === null || translator === void 0 || (_translator$options2 = translator.options) === null || _translator$options2 === void 0 ? void 0 : _translator$options2.defaultNS;\n lng = options.lng || this.language;\n if (key === value) {\n source = 'key';\n } else {\n source = 'translation';\n }\n }\n return wrap(value, {\n key: key,\n ns: ns,\n lng: lng,\n source: source\n });\n },\n overloadTranslationOptionHandler: function overloadTranslationOptionHandler() {\n return {\n postProcess: postProcessorName,\n postProcessPassResolved: true\n };\n }\n};\n\nexport { SubliminalPostProcessor as default };\n","var validAttributes = ['placeholder', 'title', 'alt'];\nvar colors = {\n highlight: '#26a69a',\n warning: '#e67a00'\n};\nvar getIframeUrl = function getIframeUrl() {\n var _prc$env;\n var p;\n if (typeof process !== 'undefined') p = process;\n if (!p && typeof window !== 'undefined') p = window.process;\n var prc = p || {};\n var env = ((_prc$env = prc.env) === null || _prc$env === void 0 ? void 0 : _prc$env.locizeIncontext) || 'production';\n return env === 'development' ? 'http://localhost:3003/' : env === 'staging' ? 'https://incontext-dev.locize.app' : 'https://incontext.locize.app';\n};\n\nexport { colors, getIframeUrl, validAttributes };\n","var sheet = function () {\n if (typeof document === 'undefined') return;\n var style = document.createElement('style');\n document.head.appendChild(style);\n return style.sheet;\n}();\n\nexport { sheet };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { getIframeUrl } from '../vars.js';\nimport { store } from '../store.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar legacyEventMapping = {\n committed: 'commitKeys'\n};\nfunction getMappedLegacyEvent(msg) {\n if (legacyEventMapping[msg]) return legacyEventMapping[msg];\n return msg;\n}\nfunction addLocizeSavedHandler(handler) {\n api.locizeSavedHandler = handler;\n}\nfunction turnOn() {\n api.scriptTurnedOff = false;\n api.turnOn();\n return api.scriptTurnedOff;\n}\nfunction turnOff() {\n api.turnOff();\n api.scriptTurnedOff = true;\n return api.scriptTurnedOff;\n}\nfunction setEditorLng(lng) {\n api.sendCurrentTargetLanguage(lng);\n}\nvar pendingMsgs = [];\nfunction sendMessage(action, payload) {\n if (!api.source) {\n var _document$getElementB;\n api.source = (_document$getElementB = document.getElementById('i18next-editor-iframe')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.contentWindow;\n }\n if (!api.origin) api.origin = getIframeUrl();\n if (!api.source || !api.source.postMessage) {\n pendingMsgs.push({\n action: action,\n payload: payload\n });\n return;\n }\n if (api.legacy) {\n api.source.postMessage(_objectSpread({\n message: action\n }, payload), api.origin);\n } else {\n api.source.postMessage({\n sender: 'i18next-editor',\n senderAPIVersion: 'v1',\n action: action,\n message: action,\n payload: payload\n }, api.origin);\n }\n var todo = pendingMsgs;\n pendingMsgs = [];\n todo.forEach(function (_ref) {\n var action = _ref.action,\n payload = _ref.payload;\n sendMessage(action, payload);\n });\n}\nvar handlers = {};\nvar repeat = 5;\nvar api = {\n init: function init(implementation, clickHandler) {\n api.i18n = implementation;\n api.clickHandler = clickHandler;\n },\n requestInitialize: function requestInitialize(payload) {\n sendMessage('requestInitialize', payload);\n if (api.initInterval) return;\n api.initInterval = setInterval(function () {\n repeat = repeat - 1;\n api.requestInitialize(payload);\n if (repeat < 0 && api.initInterval) {\n clearInterval(api.initInterval);\n delete api.initInterval;\n }\n }, 1000);\n },\n selectKey: function selectKey(meta) {\n sendMessage('selectKey', meta);\n },\n confirmResourceBundle: function confirmResourceBundle(payload) {\n sendMessage('confirmResourceBundle', payload);\n },\n sendCurrentParsedContent: function sendCurrentParsedContent() {\n sendMessage('sendCurrentParsedContent', {\n content: Object.values(store.data).map(function (item) {\n return {\n id: item.id,\n keys: item.keys\n };\n })\n });\n },\n sendCurrentTargetLanguage: function sendCurrentTargetLanguage(lng) {\n sendMessage('sendCurrentTargetLanguage', {\n targetLng: lng || api.i18n.getLng()\n });\n },\n addHandler: function addHandler(action, fc) {\n if (!handlers[action]) handlers[action] = [];\n handlers[action].push(fc);\n },\n sendLocizeIsEnabled: function sendLocizeIsEnabled() {\n sendMessage('locizeIsEnabled', {\n enabled: true\n });\n },\n turnOn: function turnOn() {\n if (api.scriptTurnedOff) return sendMessage('forcedOff');\n if (!api.clickInterceptionEnabled) {\n window.document.body.addEventListener('click', api.clickHandler, true);\n }\n api.clickInterceptionEnabled = true;\n sendMessage('turnedOn');\n },\n turnOff: function turnOff() {\n if (api.scriptTurnedOff) return sendMessage('forcedOff');\n if (api.clickInterceptionEnabled) {\n window.document.body.removeEventListener('click', api.clickHandler, true);\n }\n api.clickInterceptionEnabled = false;\n sendMessage('turnedOff');\n },\n onAddedKey: function onAddedKey(lng, ns, key, value) {\n var msg = {\n lng: lng,\n ns: ns,\n key: key,\n value: value\n };\n sendMessage('added', msg);\n }\n};\nif (typeof window !== 'undefined') {\n window.addEventListener('message', function (e) {\n var _e$data = e.data,\n sender = _e$data.sender,\n action = _e$data.action,\n message = _e$data.message,\n payload = _e$data.payload;\n if (message) {\n var usedEventName = getMappedLegacyEvent(message);\n if (handlers[usedEventName]) {\n handlers[usedEventName].forEach(function (fc) {\n fc(payload, e);\n });\n }\n } else if (sender === 'i18next-editor-frame' && handlers[action]) {\n handlers[action].forEach(function (fc) {\n fc(payload);\n });\n }\n });\n}\n\nexport { addLocizeSavedHandler, api, sendMessage, setEditorLng, turnOff, turnOn };\n","import { wrap } from 'i18next-subliminal';\nimport { api } from './postMessage.js';\nimport { store } from '../store.js';\n\nfunction setValueOnNode(meta, value) {\n var item = store.get(meta.eleUniqueID);\n if (!item || !item.keys[meta.textType]) return;\n var txtWithHiddenMeta = wrap(value, item.subliminal);\n if (meta.textType === 'text') {\n item.node.textContent = txtWithHiddenMeta;\n } else if (meta.textType.indexOf('attr:') === 0) {\n var attr = meta.textType.replace('attr:', '');\n item.node.setAttribute(attr, txtWithHiddenMeta);\n } else if (meta.textType === 'html') {\n var id = \"\".concat(meta.textType, \"-\").concat(meta.children);\n if (!item.originalChildNodes) {\n var clones = [];\n item.node.childNodes.forEach(function (c) {\n clones.push(c);\n });\n item.originalChildNodes = clones;\n }\n if (item.children[id].length === item.node.childNodes.length) {\n item.node.innerHTML = txtWithHiddenMeta;\n } else {\n var children = item.children[id];\n var first = children[0].child;\n var dummy = document.createElement('div');\n dummy.innerHTML = txtWithHiddenMeta;\n var nodes = [];\n dummy.childNodes.forEach(function (c) {\n nodes.push(c);\n });\n nodes.forEach(function (c) {\n try {\n item.node.insertBefore(c, first);\n } catch (error) {\n item.node.appendChild(c);\n }\n });\n children.forEach(function (replaceable) {\n if (item.node.contains(replaceable.child)) item.node.removeChild(replaceable.child);\n });\n }\n }\n}\nfunction handler(payload) {\n var meta = payload.meta,\n value = payload.value;\n if (meta && value !== undefined) {\n setValueOnNode(meta, value);\n }\n}\napi.addHandler('editKey', handler);\n\nexport { setValueOnNode };\n","import { api } from './postMessage.js';\nimport { setValueOnNode } from './handleEditKey.js';\n\nfunction handler(payload) {\n var meta = payload.meta,\n value = payload.value,\n lng = payload.lng;\n if (meta && value !== undefined) {\n setValueOnNode(meta, value);\n var usedLng = lng || api.i18n.getLng();\n api.i18n.setResource(usedLng, meta.ns, meta.key, value);\n api.i18n.triggerRerender();\n }\n}\napi.addHandler('commitKey', handler);\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport { api } from './postMessage.js';\nimport { store } from '../store.js';\nimport { setValueOnNode } from './handleEditKey.js';\n\nfunction handler(payload) {\n var updated = payload.updated;\n updated.forEach(function (item) {\n var lng = item.lng,\n ns = item.ns,\n key = item.key,\n data = item.data,\n metas = item.metas,\n meta = item.meta;\n if (meta && data.value) setValueOnNode(meta, data.value);\n if (metas) {\n Object.values(metas).forEach(function (metaItem) {\n setValueOnNode(metaItem, data.value);\n });\n }\n api.i18n.setResource(lng, ns, key, data.value);\n });\n Object.values(store.data).forEach(function (item) {\n if (item.originalChildNodes) {\n var _item$node;\n (_item$node = item.node).replaceChildren.apply(_item$node, _toConsumableArray(item.originalChildNodes));\n }\n });\n api.i18n.triggerRerender();\n if (api.locizeSavedHandler) api.locizeSavedHandler(payload);\n if (window.locizeSavedHandler) window.locizeSavedHandler(payload);\n}\napi.addHandler('commitKeys', handler);\n","import { api } from './postMessage.js';\n\nfunction handler(payload) {\n api.initialized = true;\n clearInterval(api.initInterval);\n delete api.initInterval;\n api.sendCurrentParsedContent();\n api.sendCurrentTargetLanguage();\n}\napi.addHandler('confirmInitialized', handler);\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { resetHighlight } from './ui/highlightNode.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar data = {};\nfunction clean() {\n Object.values(data).forEach(function (item) {\n if (!document.body.contains(item.node)) {\n resetHighlight(item.id, item.node);\n delete data[item.id];\n }\n });\n}\nfunction save(id, type, node) {\n if (!id || !type || !node) return;\n if (!data[id]) {\n data[id] = {\n id: id,\n node: node\n };\n }\n data[id].keys = _objectSpread(_objectSpread({}, data[id].keys), {}, _defineProperty({}, \"\".concat(type), 'uninstrumented'));\n}\nfunction get(id) {\n return data[id];\n}\nvar uninstrumentedStore = {\n save: save,\n clean: clean,\n get: get,\n data: data\n};\n\nexport { uninstrumentedStore };\n","function isInViewport(el) {\n var rect = el.getBoundingClientRect();\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var vertInView = rect.top <= windowHeight && rect.top + rect.height >= 0;\n var horInView = rect.left <= windowWidth && rect.left + rect.width >= 0;\n return vertInView && horInView;\n}\nfunction mouseDistanceFromElement(mouseEvent, element) {\n var $n = element,\n mX = mouseEvent.pageX,\n mY = mouseEvent.pageY,\n from = {\n x: mX,\n y: mY\n },\n off = $n.getBoundingClientRect(),\n ny1 = off.top + document.documentElement.scrollTop,\n ny2 = ny1 + $n.offsetHeight,\n nx1 = off.left + document.documentElement.scrollLeft,\n nx2 = nx1 + $n.offsetWidth,\n maxX1 = Math.max(mX, nx1),\n minX2 = Math.min(mX, nx2),\n maxY1 = Math.max(mY, ny1),\n minY2 = Math.min(mY, ny2),\n intersectX = minX2 >= maxX1,\n intersectY = minY2 >= maxY1,\n to = {\n x: intersectX ? mX : nx2 < mX ? nx2 : nx1,\n y: intersectY ? mY : ny2 < mY ? ny2 : ny1\n },\n distX = to.x - from.x,\n distY = to.y - from.y,\n hypot = Math.pow(Math.pow(distX, 2) + Math.pow(distY, 2), 1 / 2);\n return Math.floor(hypot);\n}\n\nexport { isInViewport, mouseDistanceFromElement };\n","import _typeof from '@babel/runtime/helpers/esm/typeof';\n\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this;\n var args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\nfunction isWindow(obj) {\n return obj != null && obj === obj.window;\n}\nfunction getWindow(elem) {\n return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;\n}\nfunction offset(elem) {\n var box = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n };\n var doc = elem && elem.ownerDocument;\n var docElem = doc && doc.documentElement;\n if (!docElem) return box;\n if (_typeof(elem.getBoundingClientRect) !== (\"undefined\" )) {\n box = elem.getBoundingClientRect();\n }\n var win = getWindow(doc);\n var top = box.top + win.pageYOffset - docElem.clientTop;\n var left = box.left + win.pageXOffset - docElem.clientLeft;\n return {\n top: top,\n left: left,\n right: left + (box.right - box.left),\n bottom: top + (box.bottom - box.top)\n };\n}\nfunction getClickedElement(e) {\n if (e.srcElement && e.srcElement.nodeType === 1 && (e.srcElement.nodeName === 'BUTTON' || e.srcElement.nodeName === 'INPUT')) {\n if (e.srcElement.getAttribute && e.srcElement.getAttribute('ignorelocizeeditor') === '') {\n return null;\n }\n return e.srcElement;\n }\n var el;\n if (e.originalEvent && e.originalEvent.explicitOriginalTarget) {\n el = e.originalEvent.explicitOriginalTarget;\n } else {\n var parent = e.srcElement;\n if (parent.getAttribute && parent.getAttribute('ignorelocizeeditor') === '') return null;\n var left = e.pageX;\n var top = e.pageY;\n var topStartsAt = 0;\n var topBreaksAt;\n for (var i = 0; i < parent.childNodes.length; i++) {\n var n = parent.childNodes[i];\n var nOffset = offset(n);\n if (n.nodeType === 1 && nOffset.bottom < top) topStartsAt = i + 1;\n if (!topBreaksAt && nOffset.top + (n.clientHeight || 0) > top) topBreaksAt = i;\n }\n if (topStartsAt + 1 > parent.childNodes.length) topStartsAt = parent.childNodes.length - 1;\n if (!topBreaksAt) topBreaksAt = parent.childNodes.length;\n for (var y = topStartsAt; y < topBreaksAt; y++) {\n var _n = parent.childNodes[y];\n var _nOffset = offset(_n);\n if (_nOffset.left > left) {\n break;\n }\n if (_n && _n.nodeType !== 8) el = _n;\n }\n }\n return el;\n}\nfunction getElementText(el) {\n var str = el.textContent || el.text && el.text.innerText || el.placeholder;\n if (typeof str !== 'string') return;\n return str.replace(/\\n +/g, '').trim();\n}\nfunction getAttribute(el, name) {\n return el && el.getAttribute && el.getAttribute(name);\n}\nfunction getElementI18nKey(el) {\n var key = getAttribute(el, 'data-i18n');\n if (key) return key;\n if (el.nodeType === window.Node.TEXT_NODE && el.parentElement) {\n return getElementI18nKey(el.parentElement);\n }\n return undefined;\n}\nfunction getElementNamespace(el) {\n var found;\n var find = function find(ele) {\n var opts = getAttribute(ele, 'i18next-options');\n if (!opts) opts = getAttribute(ele, 'data-i18next-options');\n if (!opts) opts = getAttribute(ele, 'i18n-options');\n if (!opts) opts = getAttribute(ele, 'data-i18n-options');\n if (opts) {\n var jsonData = {};\n try {\n jsonData = JSON.parse(opts);\n } catch (e) {}\n if (jsonData.ns) found = jsonData.ns;\n }\n if (!found) found = getAttribute(ele, 'i18next-ns');\n if (!found) found = getAttribute(ele, 'data-i18next-ns');\n if (!found) found = getAttribute(ele, 'i18n-ns');\n if (!found) found = getAttribute(ele, 'data-i18n-ns');\n if (!found && ele.parentElement) find(ele.parentElement);\n };\n find(el);\n return found;\n}\nfunction getQsParameterByName(name, url) {\n if (typeof window === 'undefined') return null;\n if (!url) url = window.location.href.toLowerCase();\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');\n var results = regex.exec(url);\n if (!results) return null;\n if (!results[2]) return '';\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n}\n\nexport { debounce, getClickedElement, getElementI18nKey, getElementNamespace, getElementText, getQsParameterByName, getWindow, isWindow, offset };\n","import { store } from '../store.js';\nimport { uninstrumentedStore } from '../uninstrumentedStore.js';\nimport { isInViewport, mouseDistanceFromElement } from './utils.js';\nimport { debounce } from '../utils.js';\nimport { highlight, resetHighlight, highlightUninstrumented } from './highlightNode.js';\n\nvar debouncedUpdateDistance = debounce(function (e, observer) {\n Object.values(store.data).forEach(function (item) {\n if (!isInViewport(item.node)) return;\n var distance = mouseDistanceFromElement(e, item.node);\n if (distance < 5) {\n highlight(item, item.node, item.keys);\n } else if (distance > 5) {\n var boxDistance = item.ribbonBox ? mouseDistanceFromElement(e, item.ribbonBox) : 1000;\n if (boxDistance > 10) resetHighlight(item, item.node, item.keys);\n }\n });\n Object.values(uninstrumentedStore.data).forEach(function (item) {\n if (!isInViewport(item.node)) return;\n var distance = mouseDistanceFromElement(e, item.node);\n if (distance < 10) {\n highlightUninstrumented(item, item.node, item.keys);\n } else if (distance > 10) {\n resetHighlight(item, item.node, item.keys);\n }\n });\n}, 50);\nvar currentFC;\nfunction startMouseTracking(observer) {\n currentFC = function handle(e) {\n debouncedUpdateDistance(e, observer);\n };\n document.addEventListener('mousemove', currentFC);\n}\nfunction stopMouseTracking() {\n document.removeEventListener('mousemove', currentFC);\n}\n\nexport { startMouseTracking, stopMouseTracking };\n","import { colors } from '../../vars.js';\n\nvar iconEdit = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"#FFFFFF\"><g></g><g><g><g><path d=\"M3,21l3.75,0L17.81,9.94l-3.75-3.75L3,17.25L3,21z M5,18.08l9.06-9.06l0.92,0.92L5.92,19L5,19L5,18.08z\"/></g><g><path d=\"M18.37,3.29c-0.39-0.39-1.02-0.39-1.41,0l-1.83,1.83l3.75,3.75l1.83-1.83c0.39-0.39,0.39-1.02,0-1.41L18.37,3.29z\"/></g></g></g></svg>';\nvar i18nextIcon = \"\\n<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 210 304\\\" stroke=\\\"#000\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"#fff\\\" fill-rule=\\\"evenodd\\\">\\n <g stroke=\\\"none\\\" class=\\\"B\\\">\\n <path d=\\\"M 142 31.5 v 57.2 l 64.3 165.1 s 19.6 40.3 -36.5 50.1 h -128 s -52.3 -5.5 -39.8 -46.9 L 69.5 88.7 V 31.5 z\\\" fill=\\\"#009688\\\"/>\\n <path d=\\\"M 143.3 24.8 H 66.2 c -6.2 0 -11.3 -5.6 -11.3 -12.4 S 60 0 66.2 0 h 77.1 c 6.3 0 11.3 5.6 11.3 12.4 s -5.1 12.4 -11.3 12.4 z\\\" class=\\\"C\\\" fill=\\\"#004d40\\\"/>\\n <path d=\\\"M 123 124.9 c 8.3 0 15 8.1 15 18.1 c 0 10 -6.8 18.1 -15 18.1 c -8.3 0 -15 -8.1 -15 -18.1 c 0 -10 6.7 -18.1 15 -18.1 z m -58.8 31.7 c 0 -8.5 5.6 -15.3 12.7 -15.3 s 12.7 6.8 12.7 15.3 s -5.6 15.3 -12.7 15.3 s -12.7 -6.8 -12.7 -15.3 z\\\" fill=\\\"white\\\"/>\\n <path d=\\\"M 147.7 84.9 V 57.7 s 34.5 -7.6 51.7 32.5 c 0 0 -26.9 19.6 -51.7 -5.3 z m -84.5 0 V 57.7 s -34.5 -7.6 -51.7 32.5 c 0 0 26.8 19.6 51.7 -5.3 z\\\" class=\\\"C\\\" fill=\\\"#004d40\\\"/>\\n <path d=\\\"M 168.4 197.5 c -56.1 -17.4 -103.3 -8.1 -126.3 -1 l -23.2 56 c -10.5 33.4 33.2 37.8 33.2 37.8 h 106.9 c 46.9 -7.9 30.5 -40.4 30.5 -40.4 z\\\" fill=\\\"white\\\"/>\\n <path d=\\\"M 87.6 218.3 c 0 6 -8.1 10.9 -18.1 10.9 s -18.1 -4.9 -18.1 -10.9 c 0 -6.1 8.1 -10.9 18.1 -10.9 s 18.1 4.9 18.1 10.9 z m 64.4 0 c 0 6 -8.1 10.9 -18.1 10.9 c -10 0 -18.1 -4.9 -18.1 -10.9 c 0 -6.1 8.1 -10.9 18.1 -10.9 c 10 0 18.1 4.9 18.1 10.9 z\\\" class=\\\"C\\\" fill=\\\"#004d40\\\"/>\\n </g>\\n</svg>\\n\";\nvar locizeIcon = \"\\n<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 194.667 196\\\" height=\\\"196\\\" width=\\\"194.667\\\" xml:space=\\\"preserve\\\">\\n <defs>\\n <clipPath id=\\\"a\\\" clipPathUnits=\\\"userSpaceOnUse\\\">\\n <path d=\\\"M5.5 74.048C5.5 36.98 35.551 6.93 72.619 6.93c37.069 0 67.119 30.05 67.119 67.118 0 37.07-30.05 67.12-67.119 67.12-37.068 0-67.119-30.05-67.119-67.12\\\"/>\\n </clipPath>\\n <clipPath id=\\\"b\\\" clipPathUnits=\\\"userSpaceOnUse\\\">\\n <path d=\\\"M0 147h146V0H0Z\\\"/>\\n </clipPath>\\n <clipPath id=\\\"c\\\" clipPathUnits=\\\"userSpaceOnUse\\\">\\n <path d=\\\"M88.756 55.055h50.982l4.512 88.195-64 1.25z\\\"/>\\n </clipPath>\\n </defs>\\n <g clip-path=\\\"url(#a)\\\" transform=\\\"matrix(1.33333 0 0 -1.33333 0 196)\\\">\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-.766-5.554 1.148-8.427 0-11.107-1.149-2.681-2.49-7.469-1.341-10.724 1.149-3.255 2.872-10.34 4.404-10.533 1.532-.19-1.148 7.66.383 5.171 1.533-2.49 1.533-6.193 4.214-8.746 2.68-2.553 6.319-2.17 9.192-4.658 2.872-2.49 5.744-6.129 8.425-5.746 0 0-.192-1.914-1.532-5.17-1.34-3.255-1.532-7.084.192-9.383 1.723-2.298 3.446-5.746 4.979-7.469 1.532-1.723 2.681-10.915 2.297-15.51-.382-4.596 1.724-14.937 6.511-17.236 4.787-2.298 0 1.15-.957 4.022-.958 2.872.739 9.575 3.052 10.533 2.309.958 4.416 4.787 6.139 7.469 1.724 2.68 6.128 3.83 7.469 7.084 1.341 3.255.766 7.085 1.532 8.809.766 1.724 2.873 5.554-1.724 7.852-4.595 2.298-6.51 1.148-6.702 3.255-.192 2.107-1.341 4.404-4.595 5.361-3.256.959-6.129 2.816-9.768 3.227-3.638.412-4.404-2.461-6.319-.928-1.914 1.531-3.446 3.064-4.213 4.978-.765 1.915-3.064.766-2.871 1.915.19 1.15 3.254 4.404-.193 3.255-3.446-1.148-6.51-.765-6.319 2.298.193 3.064 4.405 4.214 6.129 4.597 1.722.383 3.063-1.723 5.17-3.065 2.106-1.34.191 1.915 1.34 4.214 1.149 2.298 5.554 2.106 6.128 5.361.575 3.255-.191 5.937 3.256 6.32 3.446.383 7.084-.191 7.468 1.533.382 1.722-4.022-.576-4.213 1.531-.192 2.106 3.829 4.978 4.978 2.872 1.149-2.106 4.022-2.298 4.405-1.531.383.765 0 2.105-1.341 5.361-1.34 3.256-2.681 2.298-3.829 5.936-1.149 3.639-3.064-.191-4.979 1.724s-4.213 5.937-4.597 2.489c-.382-3.446-.382-5.361-2.105-8.042-1.724-2.682-2.489-.575-4.022 1.149-1.532 1.723-4.979 3.447-3.83 4.978C23.362 4.979 24.511 9 26.234 7.85c1.724-1.149 4.405-1.149 4.022.767-.383 1.914 0 2.681.766 3.638.766.958 3.447 2.682 3.447-.766 0-3.447-.384-4.405 2.298-4.788 2.681-.383 5.744-.574 5.554 1.149-.193 1.724.766 1.341 0 4.214-.767 2.873-3.065 3.063-5.554 4.405-2.489 1.34-3.83 3.446-5.936 2.68s-2.299-1.531-2.49-3.638c-.192-2.107-1.341-2.873-2.107-1.915-.765.957.192 4.022-2.68 2.106-2.873-1.914-4.021-5.171-5.553-2.872-1.533 2.297 2.297 6.319-1.724 4.595-4.022-1.723-6.895-3.637-4.788-4.404 2.107-.766 4.214-2.107 2.107-2.873-2.107-.765-6.32.575-7.852-.957C4.212 7.66 0 0 0 0\\\" transform=\\\"translate(13.926 109.38)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-.766-5.554 1.148-8.427 0-11.107-1.149-2.681-2.49-7.469-1.341-10.724 1.149-3.255 2.872-10.34 4.404-10.533 1.532-.19-1.148 7.66.383 5.171 1.533-2.49 1.533-6.193 4.214-8.746 2.68-2.553 6.319-2.17 9.192-4.658 2.872-2.49 5.744-6.129 8.425-5.746 0 0-.192-1.914-1.532-5.17-1.34-3.255-1.532-7.084.192-9.383 1.723-2.298 3.446-5.746 4.979-7.469 1.532-1.723 2.681-10.915 2.297-15.51-.382-4.596 1.724-14.937 6.511-17.236 4.787-2.298 0 1.15-.957 4.022-.958 2.872.739 9.575 3.052 10.533 2.309.958 4.416 4.787 6.139 7.469 1.724 2.68 6.128 3.83 7.469 7.084 1.341 3.255.766 7.085 1.532 8.809.766 1.724 2.873 5.554-1.724 7.852-4.595 2.298-6.51 1.148-6.702 3.255-.192 2.107-1.341 4.404-4.595 5.361-3.256.959-6.129 2.816-9.768 3.227-3.638.412-4.404-2.461-6.319-.928-1.914 1.531-3.446 3.064-4.213 4.978-.765 1.915-3.064.766-2.871 1.915.19 1.15 3.254 4.404-.193 3.255-3.446-1.148-6.51-.765-6.319 2.298.193 3.064 4.405 4.214 6.129 4.597 1.722.383 3.063-1.723 5.17-3.065 2.106-1.34.191 1.915 1.34 4.214 1.149 2.298 5.554 2.106 6.128 5.361.575 3.255-.191 5.937 3.256 6.32 3.446.383 7.084-.191 7.468 1.533.382 1.722-4.022-.576-4.213 1.531-.192 2.106 3.829 4.978 4.978 2.872 1.149-2.106 4.022-2.298 4.405-1.531.383.765 0 2.105-1.341 5.361-1.34 3.256-2.681 2.298-3.829 5.936-1.149 3.639-3.064-.191-4.979 1.724s-4.213 5.937-4.597 2.489c-.382-3.446-.382-5.361-2.105-8.042-1.724-2.682-2.489-.575-4.022 1.149-1.532 1.723-4.979 3.447-3.83 4.978C23.362 4.979 24.511 9 26.234 7.85c1.724-1.149 4.405-1.149 4.022.767-.383 1.914 0 2.681.766 3.638.766.958 3.447 2.682 3.447-.766 0-3.447-.384-4.405 2.298-4.788 2.681-.383 5.744-.574 5.554 1.149-.193 1.724.766 1.341 0 4.214-.767 2.873-3.065 3.063-5.554 4.405-2.489 1.34-3.83 3.446-5.936 2.68s-2.299-1.531-2.49-3.638c-.192-2.107-1.341-2.873-2.107-1.915-.765.957.192 4.022-2.68 2.106-2.873-1.914-4.021-5.171-5.553-2.872-1.533 2.297 2.297 6.319-1.724 4.595-4.022-1.723-6.895-3.637-4.788-4.404 2.107-.766 4.214-2.107 2.107-2.873-2.107-.765-6.32.575-7.852-.957C4.212 7.66 0 0 0 0Z\\\" transform=\\\"translate(13.926 109.38)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-.01-2.141.575-3.829 2.49-1.915C4.405 0 5.553 2.298 6.895 1.341c1.34-.958 3.638-.703 4.594-.639.959.064 1.15 2.937 3.831 2.554s1.724.574 4.596 2.107c2.873 1.532 9.001 4.212 2.681 3.446-6.32-.766-6.703.958-11.108-1.914-4.403-2.873-5.36-2.873-6.509-3.639-1.149-.766-2.49 2.298-4.022 0C-.575.958.011 2.182 0 0\\\" transform=\\\"translate(36.522 130.061)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-.01-2.141.575-3.829 2.49-1.915C4.405 0 5.553 2.298 6.895 1.341c1.34-.958 3.638-.703 4.594-.639.959.064 1.15 2.937 3.831 2.554s1.724.574 4.596 2.107c2.873 1.532 9.001 4.212 2.681 3.446-6.32-.766-6.703.958-11.108-1.914-4.403-2.873-5.36-2.873-6.509-3.639-1.149-.766-2.49 2.298-4.022 0C-.575.958.011 2.182 0 0Z\\\" transform=\\\"translate(36.522 130.061)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-2.263-1.956-5.744-4.788-3.064-4.788 2.681 0 3.983 1.404 5.439-.447 1.456-1.85.88-4.723.88-6.063 0-1.341-.766-4.406 1.15-8.235 1.915-3.829 2.106-6.319 4.022-3.829 1.914 2.488 6.51 7.276 8.808 7.658 2.298.384 4.597 1.342 5.746 3.257 1.148 1.915 0 3.773 1.914 5.141 1.914 1.369 1.531 3.093 2.107 5.199C27.575 0 32.747 0 30.448 1.148c-2.297 1.15-6.51 1.916-11.49 1.341C13.979 1.915 4.213 3.638 0 0\\\" transform=\\\"translate(59.502 135.998)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-2.263-1.956-5.744-4.788-3.064-4.788 2.681 0 3.983 1.404 5.439-.447 1.456-1.85.88-4.723.88-6.063 0-1.341-.766-4.406 1.15-8.235 1.915-3.829 2.106-6.319 4.022-3.829 1.914 2.488 6.51 7.276 8.808 7.658 2.298.384 4.597 1.342 5.746 3.257 1.148 1.915 0 3.773 1.914 5.141 1.914 1.369 1.531 3.093 2.107 5.199C27.575 0 32.747 0 30.448 1.148c-2.297 1.15-6.51 1.916-11.49 1.341C13.979 1.915 4.213 3.638 0 0Z\\\" transform=\\\"translate(59.502 135.998)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-1.218-1.986-.575-2.107.766-2.49 1.34-.383-.575-2.68.957-2.872 1.532-.193 4.979-1.15 5.936 0 .959 1.148-1.531.7-3.255 1.977C2.682-2.107.865 1.41 0 0\\\" transform=\\\"translate(38.438 76.826)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-1.218-1.986-.575-2.107.766-2.49 1.34-.383-.575-2.68.957-2.872 1.532-.193 4.979-1.15 5.936 0 .959 1.148-1.531.7-3.255 1.977C2.682-2.107.865 1.41 0 0Z\\\" transform=\\\"translate(38.438 76.826)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-2.063-1.033-1.148-2.682-3.064-3.831-1.915-1.148-1.149-1.531-1.723-4.213-.575-2.68.191-4.212 1.532-2.106S2.298 1.148 0 0\\\" transform=\\\"translate(131.121 45.612)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-2.063-1.033-1.148-2.682-3.064-3.831-1.915-1.148-1.149-1.531-1.723-4.213-.575-2.68.191-4.212 1.532-2.106S2.298 1.148 0 0Z\\\" transform=\\\"translate(131.121 45.612)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-.575-.575-1.532 2.681-2.106 4.213-.575 1.532-.561 4.195 1.056 5.675C.964 11.734 0 7.469 0 5.17 0 2.873.574.575 0 0m-6.704 5.936c-1.341.766-3.828 0-6.892-.957-3.065-.958-.613 2.131.766 4.213 1.233 1.861.574-.574 3.256-.766 2.68-.192 4.213-3.256 2.87-2.49m-4.402-6.511c-.192-1.531.574-4.021-3.639-3.064-4.213.958-4.213 3.256-5.936 1.533-1.723-1.724-3.83-3.255-6.32-.575C-29.49 0-29.107.766-30.447.958c-.955.135-4.138.846-6.792.074.206.123.426.285.663.5 1.915 1.723 1.532 2.298 3.638 4.213 2.108 1.916 3.639 3.638 5.171 1.916 1.532-1.725 4.788-2.108 3.639-4.023-1.149-1.914-.383-3.063.958-1.914 1.339 1.149 3.255 1.914 1.915 3.446-1.342 1.532-2.682 5.554-.766 2.873 1.915-2.681 2.489-4.022 3.637-5.553C-17.234.958-16.085 0-15.702.958c.383.957-.192 3.063.383 3.446.574.383 0-3.255 1.723-3.446 1.723-.192 2.681 0 2.49-1.533M9.192-8.81c-.574 3.257-4.787 32.747-4.787 32.747s-11.299 7.277-13.213 5.746c-1.916-1.533-5.171-1.302-4.788.21s2.872 1.128-1.341 4.002c-4.212 2.873-4.978 5.362-8.233 1.724-3.257-3.639-4.022-6.703-5.937-7.661-1.915-.957-3.447-4.021-1.34-4.787 2.106-.765 2.298 0 4.02-1.531 1.725-1.533 4.023-1.149 4.406-.193.383.959.766 4.022.957 5.171.192 1.149 2.138 4.979 1.93 1.915-.207-3.064 2.665-3.064.75-5.17-1.914-2.106-.765-3.831-4.595-4.214-3.831-.382-4.022 1.915-6.128.766-2.107-1.148-1.915-1.915-2.681-3.063-.766-1.149-4.788-3.447-4.788-3.447s-3.255 1.149-1.724-.958c1.533-2.106 2.873-4.595 1.533-4.786-1.341-.192-4.98 1.914-4.98-.384s-.573-4.787.959-5.362c1.081-.405 1.783-1.284 2.775-1.161-.769-.332-1.468-.813-2.009-1.52-1.491-1.947-.575-5.362-3.639-6.511-3.063-1.15-3.063-2.489-3.639-4.979-.573-2.489 0-8.808.766-9.383.765-.574 2.107-5.362 5.363-4.978 3.256.383 6.702.53 7.851-.023 1.149-.551 3.063 1.171 3.638-3.233.575-4.404 1.915-4.979 2.681-7.277.766-2.297-.383-7.086 0-9.958s3.064-7.852 3.064-10.341c0-2.489 2.873-3.638 4.405-2.681 1.532.958 4.787 2.873 6.127 5.937 1.342 3.063 1.342 4.595 3.447 8.617 2.106 4.021 1.533 6.894 2.489 9.958.958 3.064 3.262 5.171 6.419 8.617 3.156 3.446 2.588 5.362 0 5.171-2.588-.191-4.314 2.297-5.654 5.361-1.338 3.065-2.87 10.724-1.721 8.235 1.149-2.491 3.446-9.384 5.744-10.533 2.298-1.149 6.512 1.953 7.469 3.083.957 1.131.574 4.385-1.916 5.726C.383-8.617 1.915-7.469 4.405-9c2.489-1.532 5.362-3.064 4.787.19\\\" transform=\\\"translate(132.845 86.592)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-.575-.575-1.532 2.681-2.106 4.213-.575 1.532-.561 4.195 1.056 5.675C.964 11.734 0 7.469 0 5.17 0 2.873.574.575 0 0Zm-6.704 5.936c-1.341.766-3.828 0-6.892-.957-3.065-.958-.613 2.131.766 4.213 1.233 1.861.574-.574 3.256-.766 2.68-.192 4.213-3.256 2.87-2.49zm-4.402-6.511c-.192-1.531.574-4.021-3.639-3.064-4.213.958-4.213 3.256-5.936 1.533-1.723-1.724-3.83-3.255-6.32-.575C-29.49 0-29.107.766-30.447.958c-.955.135-4.138.846-6.792.074.206.123.426.285.663.5 1.915 1.723 1.532 2.298 3.638 4.213 2.108 1.916 3.639 3.638 5.171 1.916 1.532-1.725 4.788-2.108 3.639-4.023-1.149-1.914-.383-3.063.958-1.914 1.339 1.149 3.255 1.914 1.915 3.446-1.342 1.532-2.682 5.554-.766 2.873 1.915-2.681 2.489-4.022 3.637-5.553C-17.234.958-16.085 0-15.702.958c.383.957-.192 3.063.383 3.446.574.383 0-3.255 1.723-3.446 1.723-.192 2.681 0 2.49-1.533zM9.192-8.81c-.574 3.257-4.787 32.747-4.787 32.747s-11.299 7.277-13.213 5.746c-1.916-1.533-5.171-1.302-4.788.21s2.872 1.128-1.341 4.002c-4.212 2.873-4.978 5.362-8.233 1.724-3.257-3.639-4.022-6.703-5.937-7.661-1.915-.957-3.447-4.021-1.34-4.787 2.106-.765 2.298 0 4.02-1.531 1.725-1.533 4.023-1.149 4.406-.193.383.959.766 4.022.957 5.171.192 1.149 2.138 4.979 1.93 1.915-.207-3.064 2.665-3.064.75-5.17-1.914-2.106-.765-3.831-4.595-4.214-3.831-.382-4.022 1.915-6.128.766-2.107-1.148-1.915-1.915-2.681-3.063-.766-1.149-4.788-3.447-4.788-3.447s-3.255 1.149-1.724-.958c1.533-2.106 2.873-4.595 1.533-4.786-1.341-.192-4.98 1.914-4.98-.384s-.573-4.787.959-5.362c1.081-.405 1.783-1.284 2.775-1.161-.769-.332-1.468-.813-2.009-1.52-1.491-1.947-.575-5.362-3.639-6.511-3.063-1.15-3.063-2.489-3.639-4.979-.573-2.489 0-8.808.766-9.383.765-.574 2.107-5.362 5.363-4.978 3.256.383 6.702.53 7.851-.023 1.149-.551 3.063 1.171 3.638-3.233.575-4.404 1.915-4.979 2.681-7.277.766-2.297-.383-7.086 0-9.958s3.064-7.852 3.064-10.341c0-2.489 2.873-3.638 4.405-2.681 1.532.958 4.787 2.873 6.127 5.937 1.342 3.063 1.342 4.595 3.447 8.617 2.106 4.021 1.533 6.894 2.489 9.958.958 3.064 3.262 5.171 6.419 8.617 3.156 3.446 2.588 5.362 0 5.171-2.588-.191-4.314 2.297-5.654 5.361-1.338 3.065-2.87 10.724-1.721 8.235 1.149-2.491 3.446-9.384 5.744-10.533 2.298-1.149 6.512 1.953 7.469 3.083.957 1.131.574 4.385-1.916 5.726C.383-8.617 1.915-7.469 4.405-9c2.489-1.532 5.362-3.064 4.787.19z\\\" transform=\\\"translate(132.845 86.592)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-1.173-.353-2.106-2.681-1.532-3.831.576-1.148-.574.576-2.106-.382-1.533-.957-3.808-3.639-1.713-3.829 2.096-.193 1.713 1.531 3.628.765 1.915-.765 4.021-.575 4.021 1.34C2.298-4.021 1.915.574 0 0\\\" transform=\\\"translate(95.886 109.955)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-1.173-.353-2.106-2.681-1.532-3.831.576-1.148-.574.576-2.106-.382-1.533-.957-3.808-3.639-1.713-3.829 2.096-.193 1.713 1.531 3.628.765 1.915-.765 4.021-.575 4.021 1.34C2.298-4.021 1.915.574 0 0Z\\\" transform=\\\"translate(95.886 109.955)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-1.154-.165-1.533-3.064.957-3.447 2.49-.383 6.947.575 5.293 2.107C4.596.191 2.682.383 0 0\\\" transform=\\\"translate(83.44 118.763)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-1.154-.165-1.533-3.064.957-3.447 2.49-.383 6.947.575 5.293 2.107C4.596.191 2.682.383 0 0Z\\\" transform=\\\"translate(83.44 118.763)\\\"/>\\n </g>\\n <g clip-path=\\\"url(#b)\\\" transform=\\\"matrix(1.33333 0 0 -1.33333 0 196)\\\">\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c0-37.068-30.05-67.119-67.119-67.119S-134.238-37.068-134.238 0c0 37.069 30.05 67.119 67.119 67.119S0 37.069 0 0Z\\\" transform=\\\"translate(139.738 74.049)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c0-36.731-29.777-66.509-66.509-66.509S-133.019-36.731-133.019 0c0 36.733 29.778 66.51 66.51 66.51C-29.777 66.51 0 36.733 0 0Z\\\" transform=\\\"translate(139.438 73.186)\\\"/>\\n </g>\\n <g clip-path=\\\"url(#c)\\\" transform=\\\"matrix(1.33333 0 0 -1.33333 0 196)\\\">\\n <path style=\\\"fill:#fff;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-1.542-1.541-3.386-2.311-5.533-2.311-2.148 0-3.991.77-5.532 2.311s-2.313 3.387-2.313 5.533c0 2.147.772 3.963 2.313 5.45 1.541 1.486 3.384 2.23 5.532 2.23 2.147 0 3.991-.744 5.533-2.23 1.54-1.487 2.312-3.303 2.312-5.45C2.312 3.387 1.54 1.541 0 0m12.551 23.039c-4.954 4.9-10.954 7.35-18.001 7.35-7.047 0-13.047-2.45-18.002-7.35-4.955-4.898-7.432-10.817-7.432-17.754 0-4.183 2.119-11.176 6.359-20.974 4.238-9.799 8.477-18.717 12.715-26.754 4.241-8.037 6.36-11.946 6.36-11.727.66 1.211 1.568 2.863 2.724 4.955 1.157 2.092 3.194 6.029 6.112 11.809 2.917 5.781 5.477 11.094 7.678 15.935a203.312 203.312 0 0 1 6.111 15.032c1.873 5.173 2.807 9.082 2.807 11.724 0 6.937-2.477 12.856-7.431 17.754\\\" transform=\\\"translate(119.64 109.307)\\\"/>\\n <path style=\\\"fill:#fff;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-1.542-1.541-3.386-2.311-5.533-2.311-2.148 0-3.991.77-5.532 2.311s-2.313 3.387-2.313 5.533c0 2.147.772 3.963 2.313 5.45 1.541 1.486 3.384 2.23 5.532 2.23 2.147 0 3.991-.744 5.533-2.23 1.54-1.487 2.312-3.303 2.312-5.45C2.312 3.387 1.54 1.541 0 0m12.551 23.039c-4.954 4.9-10.954 7.35-18.001 7.35-7.047 0-13.047-2.45-18.002-7.35-4.955-4.898-7.432-10.817-7.432-17.754 0-4.183 2.119-11.176 6.359-20.974 4.238-9.799 8.477-18.717 12.715-26.754 4.241-8.037 6.36-11.946 6.36-11.727.66 1.211 1.568 2.863 2.724 4.955 1.157 2.092 3.194 6.029 6.112 11.809 2.917 5.781 5.477 11.094 7.678 15.935a203.312 203.312 0 0 1 6.111 15.032c1.873 5.173 2.807 9.082 2.807 11.724 0 6.937-2.477 12.856-7.431 17.754\\\" transform=\\\"translate(119.64 109.307)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-1.542-1.541-3.386-2.311-5.533-2.311-2.148 0-3.991.77-5.532 2.311s-2.313 3.387-2.313 5.533c0 2.147.772 3.963 2.313 5.45 1.541 1.486 3.384 2.23 5.532 2.23 2.147 0 3.991-.744 5.533-2.23 1.54-1.487 2.312-3.303 2.312-5.45C2.312 3.387 1.54 1.541 0 0Zm12.551 23.039c-4.954 4.9-10.954 7.35-18.001 7.35-7.047 0-13.047-2.45-18.002-7.35-4.955-4.898-7.432-10.817-7.432-17.754 0-4.183 2.119-11.176 6.359-20.974 4.238-9.799 8.477-18.717 12.715-26.754 4.241-8.037 6.36-11.946 6.36-11.727.66 1.211 1.568 2.863 2.724 4.955 1.157 2.092 3.194 6.029 6.112 11.809 2.917 5.781 5.477 11.094 7.678 15.935a203.312 203.312 0 0 1 6.111 15.032c1.873 5.173 2.807 9.082 2.807 11.724 0 6.937-2.477 12.856-7.431 17.754z\\\" transform=\\\"translate(119.64 109.307)\\\"/>\\n </g>\\n</svg>\\n\";\nvar minimizeIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M6 19h12v2H6v-2z\"/></svg>';\nvar editIconUrl = URL.createObjectURL(new Blob([iconEdit], {\n type: 'image/svg+xml'\n}));\nvar i18nextIconUrl = URL.createObjectURL(new Blob([i18nextIcon], {\n type: 'image/svg+xml'\n}));\nvar minimizeIconUrl = URL.createObjectURL(new Blob([minimizeIcon], {\n type: 'image/svg+xml'\n}));\nvar locizeIconUrl = URL.createObjectURL(new Blob([locizeIcon], {\n type: 'image/svg+xml'\n}));\nfunction EditIcon() {\n var image = document.createElement('img');\n image.setAttribute('data-i18next-editor-element', 'true');\n image.src = editIconUrl;\n image.style.width = '15px';\n return image;\n}\nfunction RibbonLogo() {\n var circleSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '18px';\n var logoSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '15px';\n var ribbon = document.createElement('div');\n ribbon.setAttribute('data-i18next-editor-element', 'true');\n ribbon.style = \"display: inline-flex; align-items: center; justify-content: center; width: \".concat(circleSize, \"; height: \").concat(circleSize, \"; box-shadow: inset 0 0 5px \").concat(colors.highlight, \"; border: 2px solid \").concat(colors.highlight, \"; border-radius: 50%\");\n var image = document.createElement('img');\n image.src = i18nextIconUrl;\n image.style.width = logoSize;\n ribbon.appendChild(image);\n return ribbon;\n}\n\nexport { EditIcon, RibbonLogo, editIconUrl, i18nextIconUrl, locizeIconUrl, minimizeIconUrl };\n","import { sheet } from '../stylesheet.js';\nimport { stopMouseTracking, startMouseTracking } from '../mouseDistance.js';\nimport { minimizeIconUrl, locizeIconUrl } from './icons.js';\n\nif (sheet) {\n sheet.insertRule(\"@keyframes i18next-editor-animate-top { \\n from {\\n top: calc(100vh + 600px); \\n left: calc(100vw + 300px);\\n opacity: 0;\\n }\\n to {\\n top: var(--i18next-editor-popup-position-top);\\n left: var(--i18next-editor-popup-position-left);\\n opacity: 1;\\n }\\n }\");\n sheet.insertRule(\"@keyframes i18next-editor-animate-bottom { \\n from {\\n top: var(--i18next-editor-popup-position-top);\\n left: var(--i18next-editor-popup-position-left);\\n opacity: 1;\\n }\\n to {\\n top: calc(100vh + 600px); \\n left: calc(100vw + 300px);\\n opacity: 0;\\n }\\n }\");\n sheet.insertRule(\".i18next-editor-popup * { \\n -webkit-touch-callout: none; /* iOS Safari */\\n -webkit-user-select: none; /* Safari */\\n -khtml-user-select: none; /* Konqueror HTML */\\n -moz-user-select: none; /* Firefox */\\n -ms-user-select: none; /* Internet Explorer/Edge */\\n user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */\\n }\");\n sheet.insertRule(\".i18next-editor-popup .resizer-right {\\n width: 15px;\\n height: 100%;\\n background: transparent;\\n position: absolute;\\n right: -15px;\\n bottom: 0;\\n cursor: e-resize;\\n }\");\n sheet.insertRule(\".i18next-editor-popup .resizer-both {\\n width: 15px;\\n height: 15px;\\n background: transparent;\\n z-index: 10;\\n position: absolute;\\n right: -15px;\\n bottom: -15px;\\n cursor: se-resize;\\n }\");\n sheet.insertRule(\".i18next-editor-popup .resizer-bottom {\\n width: 100%;\\n height: 15px;\\n background: transparent;\\n position: absolute;\\n right: 0;\\n bottom: -15px;\\n cursor: s-resize;\\n }\");\n}\nfunction Ribbon(popupEle, onMaximize) {\n var ribbon = document.createElement('div');\n ribbon.setAttribute('data-i18next-editor-element', 'true');\n ribbon.style = \"\\n cursor: pointer;\\n position: fixed;\\n bottom: 25px;\\n right: 25px;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 50px;\\n height: 50px;\\n background-color: rgba(249, 249, 249, 0.2);\\n backdrop-filter: blur(3px);\\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\\n border-radius: 50%\\n \";\n ribbon.onclick = function () {\n onMaximize();\n };\n var image = document.createElement('img');\n image.src = locizeIconUrl;\n image.style.width = '45px';\n ribbon.appendChild(image);\n return ribbon;\n}\nfunction Minimize(popupEle, onMinimize) {\n var image = document.createElement('img');\n image.setAttribute('data-i18next-editor-element', 'true');\n image.src = minimizeIconUrl;\n image.style.width = '24px';\n image.style.cursor = 'pointer';\n image.onclick = function () {\n popupEle.style.setProperty('--i18next-editor-popup-position-top', popupEle.style.top);\n popupEle.style.setProperty('--i18next-editor-popup-position-left', popupEle.style.left);\n popupEle.style.animation = 'i18next-editor-animate-bottom 2s forwards';\n onMinimize();\n };\n return image;\n}\nvar popupId = 'i18next-editor-popup';\nfunction Popup(url, cb) {\n var popup = document.createElement('div');\n popup.setAttribute('id', popupId);\n popup.classList.add('i18next-editor-popup');\n popup.style = \"\\n z-index: 9;\\n background-color: transparent;\\n border: 1px solid rgba(200, 200, 200, 0.9);\\n box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);\\n border-radius: 3px;\\n --i18next-editor-popup-height: 200px;\\n height: var(--i18next-editor-popup-height);\\n min-height: 150px;\\n min-width: 300px;\\n --i18next-editor-popup-width: 400px;\\n width: var(--i18next-editor-popup-width);\\n max-height: 600px;\\n max-width: 800px;\\n\\n position: fixed;\\n --i18next-editor-popup-position-top: calc(100vh - var(--i18next-editor-popup-height) - 10px);\\n top: calc(100vh - var(--i18next-editor-popup-height) - 10px);\\n --i18next-editor-popup-position-left: calc(100vw - var(--i18next-editor-popup-width) - 10px);\\n left: calc(100vw - var(--i18next-editor-popup-width) - 10px);\\n\\n overflow: visible;\\n \";\n popup.setAttribute('data-i18next-editor-element', 'true');\n var header = document.createElement('div');\n header.classList.add('i18next-editor-popup-header');\n header.style = \"\\n padding: 2px 10px;\\n cursor: move;\\n z-index: 10;\\n backdrop-filter: blur(3px);\\n background-color: rgba(200, 200, 200, 0.5);\\n background: linear-gradient(0deg, rgba(200, 200, 200, 0.6), rgba(200, 200, 200, 0.5));\\n color: #fff;\\n text-align: right;\\n \";\n popup.appendChild(header);\n header.appendChild(Minimize(popup, function () {\n var ribbon = Ribbon(popup, function () {\n popup.style.animation = 'i18next-editor-animate-top 1s';\n startMouseTracking();\n setTimeout(function () {\n document.body.removeChild(ribbon);\n }, 1000);\n });\n document.body.appendChild(ribbon);\n stopMouseTracking();\n }));\n var iframe = document.createElement('iframe');\n iframe.setAttribute('id', 'i18next-editor-iframe');\n iframe.setAttribute('data-i18next-editor-element', 'true');\n iframe.style = \"\\n z-index: 100;\\n width: 100%;\\n height: calc(100% - 28px);\\n border: none;\\n background: #fff;\\n \";\n iframe.setAttribute('src', url);\n iframe.addEventListener('load', cb);\n popup.appendChild(iframe);\n var overlay = document.createElement('div');\n overlay.setAttribute('id', 'i18next-editor-popup-overlay');\n overlay.setAttribute('data-i18next-editor-element', 'true');\n overlay.style = \"\\n display: none;\\n position: absolute;\\n top: 32px;\\n z-index: 101;\\n width: 100%;\\n height: calc(100% - 32px);\\n background-color: rgba(200, 200, 200, 0.5);\\n background: linear-gradient(0deg, rgba(240, 240, 240, 0.6), rgba(255, 255, 255, 0.5));\\n backdrop-filter: blur(2px);\\n\";\n popup.appendChild(overlay);\n return popup;\n}\n\nexport { Popup, popupId };\n","import { api } from './postMessage.js';\nimport { popupId } from '../ui/elements/popup.js';\n\nfunction handler(payload) {\n var containerStyle = payload.containerStyle;\n if (containerStyle) {\n var popup = document.getElementById(popupId);\n if (containerStyle.height) {\n var diff = \"calc(\".concat(containerStyle.height, \" - \").concat(popup.style.height, \")\");\n popup.style.setProperty('top', \"calc(\".concat(popup.style.top, \" - \").concat(diff, \")\"));\n popup.style.setProperty('height', containerStyle.height);\n }\n if (containerStyle.width) {\n var _diff = \"calc(\".concat(containerStyle.width, \" - \").concat(popup.style.width, \")\");\n popup.style.setProperty('left', \"calc(\".concat(popup.style.left, \" - \").concat(_diff, \")\"));\n popup.style.setProperty('width', containerStyle.width);\n }\n }\n}\napi.addHandler('requestPopupChanges', handler);\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { api } from './postMessage.js';\n\nvar _excluded = [\"lng\", \"ns\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction handler(payload) {\n var lng = payload.lng,\n ns = payload.ns,\n rest = _objectWithoutProperties(payload, _excluded);\n api.i18n.getResourceBundle(lng, ns, function (resources) {\n api.confirmResourceBundle(_objectSpread({\n resources: resources,\n lng: lng,\n ns: ns\n }, rest));\n });\n}\napi.addHandler('requestResourceBundle', handler);\n","import { api } from './postMessage.js';\nimport { store } from '../store.js';\nimport { resetHighlight, selectedHighlight } from '../ui/highlightNode.js';\n\nvar previousMatches = [];\nfunction handler(payload) {\n var keys = payload.keys;\n var matchingItems = [];\n Object.values(store.data).forEach(function (item) {\n var matches = Object.values(item.keys).filter(function (k) {\n return keys.includes(k.qualifiedKey);\n });\n if (matches.length) {\n matchingItems.push(item);\n }\n });\n previousMatches.forEach(function (item) {\n resetHighlight(item, item.node, item.keys, false);\n });\n matchingItems.forEach(function (item) {\n selectedHighlight(item, item.node, item.keys);\n });\n previousMatches = matchingItems;\n}\napi.addHandler('selectedKeys', handler);\n","import { api } from './postMessage.js';\n\nfunction handler(payload, e) {\n api.source = e.source;\n api.origin = e.origin;\n api.legacy = true;\n api.sendLocizeIsEnabled();\n}\napi.addHandler('isLocizeEnabled', handler);\n","import { api } from './postMessage.js';\n\nfunction handler(payload, e) {\n api.turnOn();\n}\napi.addHandler('turnOn', handler);\n","import { api } from './postMessage.js';\n\nfunction handler(payload, e) {\n api.turnOff();\n}\napi.addHandler('turnOff', handler);\n","import { colors } from '../../vars.js';\nimport { sheet } from '../stylesheet.js';\nimport '../../api/handleEditKey.js';\nimport '../../api/handleCommitKey.js';\nimport '../../api/handleCommitKeys.js';\nimport '../../api/handleConfirmInitialized.js';\nimport '../../api/handleRequestPopupChanges.js';\nimport '../../api/handleRequestResourceBundle.js';\nimport '../../api/handleSelectedKeys.js';\nimport '../../api/handleIsLocizeEnabled.js';\nimport '../../api/handleTurnOn.js';\nimport '../../api/handleTurnOff.js';\nimport { api } from '../../api/postMessage.js';\nimport { RibbonLogo, EditIcon } from './icons.js';\n\nif (sheet) {\n sheet.insertRule('.i18next-editor-button:hover { background-color: rgba(38, 166, 154, 1) !important; }');\n}\nfunction RibbonButton(text, attrTitle, onClick) {\n var btn = document.createElement('button');\n btn.style = 'font-family: Arial; position: relative; backdrop-filter: blur(3px); cursor: pointer; padding: 2px 10px 2px 20px; font-size: 15px; font-weight: 300; text-transform: uppercase; color: #fff; background-color: rgba(38, 166, 154, 0.8); border: none; border-radius: 12px';\n btn.classList.add('i18next-editor-button');\n btn.setAttribute('data-i18next-editor-element', 'true');\n btn.setAttribute('title', attrTitle);\n var icon = EditIcon();\n icon.style = 'position: absolute; left: 4px; top: 3px;';\n icon.style.width = '15px';\n btn.appendChild(icon);\n var span = document.createElement('span');\n span.textContent = text;\n btn.appendChild(span);\n btn.onclick = onClick;\n return btn;\n}\nfunction RibbonBox() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var box = document.createElement('div');\n box.style = 'position: absolute; top: 0; left: 0; display: flex; align-items: flex-start; justify-content: center; filter: drop-shadow(0px 0px 20px #aaa );';\n box.setAttribute('data-i18next-editor-element', 'true');\n var arrow = document.createElement('div');\n arrow.style = \"\\n position: absolute;\\n width: 0;\\n height: 0;\\n border-top-width: 7px;\\n border-bottom-width: 7px;\\n border-left-width: 10px;\\n border-right-width: 10px;\\n border-style: solid;\\n border-color: transparent \".concat(colors.highlight, \" transparent\\n transparent;\\n \");\n box.appendChild(arrow);\n var logo = RibbonLogo();\n box.appendChild(logo);\n var btnbox = document.createElement('div');\n btnbox.style = 'display: flex; flex-direction: column; align-items: flex-start; margin-left: 2px; margin-top: 1px';\n Object.keys(keys).forEach(function (k) {\n var data = keys[k];\n var btn = RibbonButton(k.replace('attr:', ''), \"\".concat(data.ns, \":\").concat(data.key), function () {\n api.selectKey(data);\n });\n btn.style.marginBottom = '2px';\n btnbox.appendChild(btn);\n });\n box.appendChild(btnbox);\n return {\n box: box,\n arrow: arrow\n };\n}\n\nexport { RibbonBox, RibbonButton };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { colors } from '../vars.js';\nimport { RibbonBox } from './elements/ribbonBox.js';\nimport { computePosition, flip, shift, offset, arrow } from '@floating-ui/dom';\n\nvar eleToOutline = ['DIV', 'P', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'OL', 'UL', 'ADDRESS', 'BLOCKQUOTE', 'DL', 'PRE'];\nvar overriddenStyles = ['outline', 'border-radius', 'outline-offset', 'filter'];\nvar originalStyles = {};\nvar selected = {};\nfunction highlight(item, node, keys) {\n var id = item.id;\n if (selected[id]) return;\n if (!originalStyles[id]) {\n originalStyles[id] = overriddenStyles.reduce(function (mem, s) {\n mem[s] = node.style[s];\n return mem;\n }, {});\n }\n if (eleToOutline.includes(node.nodeName)) {\n node.style.outline = \"\".concat(colors.highlight, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '2px');\n node.style.filter = 'brightness(110%)';\n } else {\n node.style.outline = \"\".concat(colors.highlight, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '1px');\n node.style.filter = 'brightness(110%)';\n }\n if (!item.ribbonBox) {\n var _RibbonBox = RibbonBox(keys),\n actions = _RibbonBox.box,\n arrowEle = _RibbonBox.arrow;\n document.body.appendChild(actions);\n var refEle = node;\n if (node.childNodes.length === 1) {\n var childNode = node.childNodes[0];\n if (childNode && childNode.nodeName === '#text') {\n var range = document.createRange();\n range.selectNode(childNode);\n var rect = range.getBoundingClientRect();\n refEle = {\n getBoundingClientRect: function getBoundingClientRect() {\n return rect;\n }\n };\n }\n }\n computePosition(refEle, actions, {\n placement: 'right',\n middleware: [flip({\n fallbackPlacements: ['left', 'bottom']\n }), shift(), offset(function (_ref) {\n var placement = _ref.placement,\n rects = _ref.rects;\n if (placement === 'bottom') return rects.r;\n return 35;\n }), arrow({\n element: arrowEle\n })]\n }).then(function (_ref2) {\n var x = _ref2.x,\n y = _ref2.y,\n middlewareData = _ref2.middlewareData,\n placement = _ref2.placement;\n Object.assign(actions.style, {\n left: \"\".concat(x, \"px\"),\n top: \"\".concat(y, \"px\"),\n display: 'inline-flex'\n });\n var side = placement.split('-')[0];\n var staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n }[side];\n if (middlewareData.arrow) {\n var _middlewareData$arrow = middlewareData.arrow,\n _x = _middlewareData$arrow.x,\n _y = _middlewareData$arrow.y;\n Object.assign(arrowEle.style, _defineProperty(_defineProperty({\n left: _x != null ? \"\".concat(_x, \"px\") : '',\n top: _y != null ? \"\".concat(_y, \"px\") : '',\n right: '',\n bottom: ''\n }, staticSide, \"\".concat(side === 'bottom' ? -18 : -25, \"px\")), \"transform\", side === 'bottom' ? 'rotate(90deg)' : side === 'left' ? 'rotate(180deg)' : ''));\n }\n });\n item.ribbonBox = actions;\n }\n}\nfunction highlightUninstrumented(item, node, keys) {\n var id = item.id;\n if (selected[id]) return;\n if (!originalStyles[id]) {\n originalStyles[id] = overriddenStyles.reduce(function (mem, s) {\n mem[s] = node.style[s];\n return mem;\n }, {});\n }\n if (eleToOutline.includes(node.nodeName)) {\n node.style.outline = \"\".concat(colors.warning, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '2px');\n node.style.filter = 'brightness(110%)';\n } else {\n node.style.outline = \"\".concat(colors.warning, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '1px');\n node.style.filter = 'brightness(110%)';\n }\n}\nfunction selectedHighlight(item, node, keys) {\n var id = item.id;\n if (!originalStyles[id]) {\n originalStyles[id] = overriddenStyles.reduce(function (mem, s) {\n mem[s] = node.style[s];\n return mem;\n }, {});\n }\n if (eleToOutline.includes(node.nodeName)) {\n node.style.outline = \"\".concat(colors.highlight, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '2px');\n node.style.filter = \"brightness(110%) drop-shadow(0px 0px 2px \".concat(colors.highlight, \" )\");\n } else {\n node.style.outline = \"\".concat(colors.highlight, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '1px');\n node.style.filter = \"brightness(110%) drop-shadow(0px 0px 2px \".concat(colors.highlight, \" )\");\n }\n if (item.ribbonBox) {\n document.body.removeChild(item.ribbonBox);\n delete item.ribbonBox;\n }\n selected[id] = true;\n}\nfunction resetHighlight(item, node, keys) {\n var ignoreSelected = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var id = item.id;\n if (ignoreSelected && selected[id]) return;\n if (originalStyles[id]) {\n overriddenStyles.forEach(function (s) {\n node.style.setProperty(s, originalStyles[id][s]);\n });\n delete originalStyles[id];\n }\n if (item.ribbonBox) {\n document.body.removeChild(item.ribbonBox);\n delete item.ribbonBox;\n }\n delete selected[id];\n}\n\nexport { highlight, highlightUninstrumented, resetHighlight, selectedHighlight };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { resetHighlight } from './ui/highlightNode.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar data = {};\nfunction clean() {\n Object.values(data).forEach(function (item) {\n if (!document.body.contains(item.node)) {\n resetHighlight(item.id, item.node);\n delete data[item.id];\n }\n });\n}\nfunction save(id, subliminal, type, meta, node, children) {\n if (!id || !type || !meta || !node) return;\n if (!data[id]) {\n data[id] = {\n id: id,\n node: node,\n subliminal: subliminal\n };\n }\n data[id].keys = _objectSpread(_objectSpread({}, data[id].keys), {}, _defineProperty({}, \"\".concat(type), meta));\n if (children) {\n data[id].children = _objectSpread(_objectSpread({}, data[id].children), {}, _defineProperty({}, \"\".concat(type, \"-\").concat(children.map(function (c) {\n return c.childIndex;\n }).join(',')), children));\n }\n}\nfunction get(id) {\n return data[id];\n}\nvar store = {\n save: save,\n clean: clean,\n get: get,\n data: data\n};\n\nexport { store };\n","(function () {\n\n if (typeof Document === 'undefined') return;\n var nextID = 1;\n if (Document.prototype.hasOwnProperty('uniqueID')) {\n return;\n }\n console.info('\"document.uniqueID\" not implemented; creating shim');\n Object.defineProperty(Document.prototype, 'uniqueID', {\n get: function get() {\n return nextID++;\n },\n enumerable: false,\n configurable: false\n });\n Object.defineProperty(Element.prototype, 'uniqueID', {\n get: function get() {\n Object.defineProperty(this, 'uniqueID', {\n value: document.uniqueID,\n writable: false,\n enumerable: false,\n configurable: false\n });\n return this.uniqueID;\n },\n enumerable: false,\n configurable: true\n });\n})();\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { containsHiddenMeta, containsHiddenStartMarker, unwrap } from 'i18next-subliminal';\nimport { store } from './store.js';\nimport { uninstrumentedStore } from './uninstrumentedStore.js';\nimport { validAttributes } from './vars.js';\nimport './shims/uniqueID.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar currentSourceLng;\nvar i18n;\nvar ignoreMergedEleUniqueIds = [];\nfunction setImplementation(impl) {\n i18n = impl;\n}\nfunction walk(node, func) {\n if (node.dataset && node.dataset.i18nextEditorElement === 'true') return;\n func(node);\n var children = node.childNodes;\n for (var i = 0; i < children.length; i++) {\n walk(children[i], func);\n }\n}\nfunction extractMeta(id, type, meta, children) {\n var _i18n, _i18n2;\n var invisibleMeta = meta.invisibleMeta,\n text = meta.text;\n if (!invisibleMeta || !invisibleMeta.key || !invisibleMeta.ns) return;\n if (!currentSourceLng) currentSourceLng = (_i18n = i18n) === null || _i18n === void 0 ? void 0 : _i18n.getSourceLng();\n return _objectSpread(_objectSpread({\n eleUniqueID: id,\n textType: type,\n children: children ? children.map(function (c) {\n return c.childIndex;\n }).join(',') : null,\n qualifiedKey: \"\".concat(invisibleMeta.ns, \":\").concat(invisibleMeta.key)\n }, invisibleMeta), {}, {\n extractedText: text,\n i18nTargetLng: (_i18n2 = i18n) === null || _i18n2 === void 0 ? void 0 : _i18n2.getLng(),\n i18nSourceLng: currentSourceLng,\n i18nRawText: _defineProperty(_defineProperty({}, \"\".concat(invisibleMeta.lng), invisibleMeta.source === 'translation' && i18n ? i18n.getResource(invisibleMeta.lng, invisibleMeta.ns, invisibleMeta.key) : null), \"\".concat(currentSourceLng), invisibleMeta.source === 'translation' && i18n ? i18n.getResource(currentSourceLng, invisibleMeta.ns, invisibleMeta.key) : null)\n });\n}\nfunction containsOnlySpaces(str) {\n return /^\\s*$/.test(str);\n}\nfunction handleNode(node) {\n if (node.childNodes && !ignoreMergedEleUniqueIds.includes(node.uniqueID)) {\n var merge = [];\n node.childNodes.forEach(function (child, i) {\n if (merge.length && child.nodeName !== '#text') {\n ignoreMergedEleUniqueIds.push(child.uniqueID);\n merge.push({\n childIndex: i,\n child: child\n });\n }\n if (child.nodeName !== '#text') return;\n var txt = child.textContent;\n if (containsOnlySpaces(txt)) return;\n var hasHiddenMeta = containsHiddenMeta(txt);\n var hasHiddenStartMarker = containsHiddenStartMarker(txt);\n if (hasHiddenStartMarker && hasHiddenMeta) {\n var meta = unwrap(txt);\n store.save(node.uniqueID, meta.invisibleMeta, 'text', extractMeta(node.uniqueID, 'text', meta), node);\n } else if (hasHiddenStartMarker) {\n merge.push({\n childIndex: i,\n child: child,\n text: txt\n });\n } else if (merge.length && !hasHiddenMeta) {\n merge.push({\n childIndex: i,\n child: child,\n text: txt\n });\n } else if (merge.length && hasHiddenMeta) {\n merge.push({\n childIndex: i,\n child: child,\n text: txt\n });\n var _meta = unwrap(merge.reduce(function (mem, item) {\n return mem + item.text;\n }, ''));\n store.save(node.uniqueID, _meta.invisibleMeta, 'html', extractMeta(node.uniqueID, 'html', _meta, merge), node, merge);\n merge = [];\n } else if (txt) {\n uninstrumentedStore.save(node.uniqueID, 'text', node);\n }\n });\n }\n if (!node.getAttribute) return;\n validAttributes.forEach(function (attr) {\n var txt = node.getAttribute(attr);\n if (containsHiddenMeta(txt)) {\n var meta = unwrap(txt);\n store.save(node.uniqueID, meta.invisibleMeta, \"attr:\".concat(attr), extractMeta(node.uniqueID, \"attr:\".concat(attr), meta), node);\n } else if (txt) {\n uninstrumentedStore.save(node.uniqueID, \"attr:\".concat(attr), node);\n }\n });\n}\nfunction parseTree(node) {\n currentSourceLng = undefined;\n walk(node, handleNode);\n store.clean();\n ignoreMergedEleUniqueIds = [];\n return store.data;\n}\n\nexport { parseTree, setImplementation };\n","import { debounce } from './utils.js';\nimport { validAttributes } from './vars.js';\n\nvar mutationTriggeringElements = {};\nfunction ignoreMutation(ele) {\n if (ele.uniqueID) {\n var info = mutationTriggeringElements[ele.uniqueID];\n if (info && info.triggered > 10 && info.lastTriggerDate + 500 < Date.now()) {\n if (!info.warned && console) {\n console.warn('locize ::: ignoring element change - an element is rerendering too often in short interval', '\\n', 'consider adding the \"data-locize-editor-ignore:\" attribute to the element:', ele);\n info.warned = true;\n }\n return true;\n }\n }\n var ret = ele.dataset && (ele.dataset.i18nextEditorElement === 'true' || ele.dataset.locizeEditorIgnore === 'true');\n if (!ret && ele.parentElement) return ignoreMutation(ele.parentElement);\n return ret;\n}\nfunction createObserver(ele, handle) {\n var internalChange;\n var lastToggleTimeout;\n var toggleInternal = function toggleInternal() {\n if (lastToggleTimeout) clearTimeout(lastToggleTimeout);\n lastToggleTimeout = setTimeout(function () {\n if (internalChange) internalChange = false;\n }, 200);\n };\n var targetEles = [];\n var debouncedHandler = debounce(function h() {\n handle(targetEles);\n targetEles = [];\n }, 100);\n var observer = new MutationObserver(function (mutations) {\n if (internalChange) {\n toggleInternal();\n return;\n }\n var triggerMutation = false;\n mutations.forEach(function (mutation) {\n if (mutation.type === 'attributes' && !validAttributes.includes(mutation.attributeName)) {\n return;\n }\n Object.keys(mutationTriggeringElements).forEach(function (k) {\n var info = mutationTriggeringElements[k];\n if (info.lastTriggerDate + 60000 < Date.now()) {\n delete mutationTriggeringElements[k];\n }\n });\n if (mutation.type === 'childList') {\n var notOurs = 0;\n if (!ignoreMutation(mutation.target)) {\n mutation.addedNodes.forEach(function (n) {\n if (ignoreMutation(n)) return;\n notOurs = notOurs + 1;\n }, 0);\n mutation.removedNodes.forEach(function (n) {\n if (ignoreMutation(n)) return;\n notOurs = notOurs + 1;\n }, 0);\n }\n if (notOurs === 0) return;\n }\n triggerMutation = true;\n if (mutation.target && mutation.target.uniqueID) {\n var info = mutationTriggeringElements[mutation.target.uniqueID] || {\n triggered: 0\n };\n info.triggered = info.triggered + 1;\n info.lastTriggerDate = Date.now();\n mutationTriggeringElements[mutation.target.uniqueID] = info;\n }\n var includedAlready = targetEles.reduce(function (mem, element) {\n if (mem || element.contains(mutation.target) || !mutation.target.parentElement) {\n return true;\n }\n return false;\n }, false);\n if (!includedAlready) {\n targetEles = targetEles.filter(function (element) {\n return !mutation.target.contains(element);\n });\n targetEles.push(mutation.target);\n }\n });\n if (triggerMutation) debouncedHandler();\n });\n return {\n start: function start() {\n var observerConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n };\n observer.observe(ele, observerConfig);\n },\n skipNext: function skipNext() {\n internalChange = true;\n }\n };\n}\n\nexport { createObserver };\n","import { stopMouseTracking, startMouseTracking } from './mouseDistance.js';\n\nfunction initDragElement() {\n var pos1 = 0;\n var pos2 = 0;\n var pos3 = 0;\n var pos4 = 0;\n var popups = document.getElementsByClassName('i18next-editor-popup');\n var elmnt = null;\n var overlay = null;\n var currentZIndex = 100;\n for (var i = 0; i < popups.length; i++) {\n var popup = popups[i];\n var header = getHeader(popup);\n popup.onmousedown = function () {\n this.style.zIndex = '' + ++currentZIndex;\n };\n if (header) {\n header.parentPopup = popup;\n header.onmousedown = dragMouseDown;\n }\n }\n function dragMouseDown(e) {\n if (!overlay) overlay = document.getElementById('i18next-editor-popup-overlay');\n if (overlay) overlay.style.display = 'block';\n stopMouseTracking();\n elmnt = this.parentPopup;\n elmnt.style.zIndex = '' + ++currentZIndex;\n e = e || window.event;\n pos3 = e.clientX;\n pos4 = e.clientY;\n document.onmouseup = closeDragElement;\n document.onmousemove = elementDrag;\n }\n function elementDrag(e) {\n if (!elmnt) {\n return;\n }\n e = e || window.event;\n pos1 = pos3 - e.clientX;\n pos2 = pos4 - e.clientY;\n pos3 = e.clientX;\n pos4 = e.clientY;\n elmnt.style.top = elmnt.offsetTop - pos2 + 'px';\n elmnt.style.left = elmnt.offsetLeft - pos1 + 'px';\n }\n function closeDragElement() {\n startMouseTracking();\n if (overlay) overlay.style.display = 'none';\n document.onmouseup = null;\n document.onmousemove = null;\n }\n function getHeader(element) {\n var headerItems = element.getElementsByClassName('i18next-editor-popup-header');\n if (headerItems.length === 1) {\n return headerItems[0];\n }\n return null;\n }\n}\nfunction initResizeElement() {\n var popups = document.getElementsByClassName('i18next-editor-popup');\n var element = null;\n var overlay = null;\n var startX, startY, startWidth, startHeight;\n for (var i = 0; i < popups.length; i++) {\n var p = popups[i];\n var right = document.createElement('div');\n right.className = 'resizer-right';\n p.appendChild(right);\n right.addEventListener('mousedown', initDrag, false);\n right.parentPopup = p;\n var bottom = document.createElement('div');\n bottom.className = 'resizer-bottom';\n p.appendChild(bottom);\n bottom.addEventListener('mousedown', initDrag, false);\n bottom.parentPopup = p;\n var both = document.createElement('div');\n both.className = 'resizer-both';\n p.appendChild(both);\n both.addEventListener('mousedown', initDrag, false);\n both.parentPopup = p;\n }\n function initDrag(e) {\n stopMouseTracking();\n if (!overlay) overlay = document.getElementById('i18next-editor-popup-overlay');\n if (overlay) overlay.style.display = 'block';\n element = this.parentPopup;\n startX = e.clientX;\n startY = e.clientY;\n startWidth = parseInt(document.defaultView.getComputedStyle(element).width, 10);\n startHeight = parseInt(document.defaultView.getComputedStyle(element).height, 10);\n document.documentElement.addEventListener('mousemove', doDrag, false);\n document.documentElement.addEventListener('mouseup', stopDrag, false);\n }\n function doDrag(e) {\n element.style.width = startWidth + e.clientX - startX + 'px';\n element.style.height = startHeight + e.clientY - startY + 'px';\n }\n function stopDrag() {\n startMouseTracking();\n if (overlay) overlay.style.display = 'none';\n document.documentElement.removeEventListener('mousemove', doDrag, false);\n document.documentElement.removeEventListener('mouseup', stopDrag, false);\n }\n}\n\nexport { initDragElement, initResizeElement };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { parseTree, setImplementation } from './parser.js';\nimport { createObserver } from './observer.js';\nimport { startMouseTracking } from './ui/mouseDistance.js';\nimport { initDragElement, initResizeElement } from './ui/popup.js';\nimport { popupId, Popup } from './ui/elements/popup.js';\nimport { getIframeUrl } from './vars.js';\nimport './api/handleEditKey.js';\nimport './api/handleCommitKey.js';\nimport './api/handleCommitKeys.js';\nimport './api/handleConfirmInitialized.js';\nimport './api/handleRequestPopupChanges.js';\nimport './api/handleRequestResourceBundle.js';\nimport './api/handleSelectedKeys.js';\nimport './api/handleIsLocizeEnabled.js';\nimport './api/handleTurnOn.js';\nimport './api/handleTurnOff.js';\nimport { api } from './api/postMessage.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction start() {\n var implementation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (typeof document === 'undefined') return;\n var scriptEle = document.getElementById('locize');\n var config = {};\n ['projectId', 'version'].forEach(function (attr) {\n if (!scriptEle) return;\n var value = scriptEle.getAttribute(attr.toLowerCase()) || scriptEle.getAttribute('data-' + attr.toLowerCase());\n if (value === 'true') value = true;\n if (value === 'false') value = false;\n if (value !== undefined && value !== null) config[attr] = value;\n });\n config = _objectSpread(_objectSpread({}, implementation.getLocizeDetails()), config);\n api.init(implementation);\n setImplementation(implementation);\n implementation === null || implementation === void 0 || implementation.bindLanguageChange(function (lng) {\n api.sendCurrentTargetLanguage(implementation.getLng());\n });\n function continueToStart() {\n var observer = createObserver(document.body, function (eles) {\n eles.forEach(function (ele) {\n parseTree(ele);\n });\n api.sendCurrentParsedContent();\n });\n observer.start();\n startMouseTracking(observer);\n if (!document.getElementById(popupId)) {\n document.body.append(Popup(getIframeUrl(), function () {\n api.requestInitialize(config);\n }));\n initDragElement();\n initResizeElement();\n }\n }\n if (document.body) return continueToStart();\n window.addEventListener('load', function () {\n return continueToStart();\n });\n}\n\nexport { start };\n","import { containsHiddenMeta, unwrap } from 'i18next-subliminal';\nimport { getClickedElement, getElementText, getElementI18nKey, getElementNamespace } from './utils.js';\n\nfunction createClickHandler(cb) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = function handler(e) {\n var el = getClickedElement(e);\n if (!el) return {};\n e.preventDefault();\n e.stopPropagation();\n function getFallbackNS() {\n if (options.isLocizify) return options.defaultNS;\n }\n var text = getElementText(el);\n var key = getElementI18nKey(el);\n var ns = getElementNamespace(el) || getFallbackNS();\n if (containsHiddenMeta(text)) {\n var meta = unwrap(text);\n if (meta && meta.invisibleMeta && meta.invisibleMeta.key) key = meta.invisibleMeta.key;\n if (meta && meta.invisibleMeta && meta.invisibleMeta.ns) ns = meta.invisibleMeta.ns;\n }\n var rectEl = el.getBoundingClientRect ? el : el.parentElement;\n var _rectEl$getBoundingCl = rectEl.getBoundingClientRect(),\n top = _rectEl$getBoundingCl.top,\n left = _rectEl$getBoundingCl.left,\n width = _rectEl$getBoundingCl.width,\n height = _rectEl$getBoundingCl.height;\n var style = window.getComputedStyle(rectEl, null);\n var pT = parseFloat(style.getPropertyValue('padding-top'));\n var pB = parseFloat(style.getPropertyValue('padding-bottom'));\n var pR = parseFloat(style.getPropertyValue('padding-right'));\n var pL = parseFloat(style.getPropertyValue('padding-left'));\n var sizing = style.getPropertyValue('box-sizing');\n cb({\n tagName: rectEl.tagName,\n text: text,\n key: key,\n ns: ns,\n box: {\n top: top,\n left: left,\n width: sizing === 'border-box' ? width : width - pR - pL,\n height: sizing === 'border-box' ? height : height - pT - pB\n },\n style: style.cssText\n });\n };\n return handler;\n}\n\nexport { createClickHandler };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport './api/handleEditKey.js';\nimport './api/handleCommitKey.js';\nimport './api/handleCommitKeys.js';\nimport './api/handleConfirmInitialized.js';\nimport './api/handleRequestPopupChanges.js';\nimport './api/handleRequestResourceBundle.js';\nimport './api/handleSelectedKeys.js';\nimport './api/handleIsLocizeEnabled.js';\nimport './api/handleTurnOn.js';\nimport './api/handleTurnOff.js';\nimport { api, sendMessage } from './api/postMessage.js';\nimport { createClickHandler } from './clickHandler.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction startLegacy() {\n var implementation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (typeof document === 'undefined') return;\n var scriptEle = document.getElementById('locize');\n var config = {};\n ['projectId', 'version'].forEach(function (attr) {\n if (!scriptEle) return;\n var value = scriptEle.getAttribute(attr.toLowerCase()) || scriptEle.getAttribute('data-' + attr.toLowerCase());\n if (value === 'true') value = true;\n if (value === 'false') value = false;\n if (value !== undefined && value !== null) config[attr] = value;\n });\n config = _objectSpread(_objectSpread({}, implementation.getLocizeDetails()), config);\n api.init(implementation, createClickHandler(function (payload) {\n sendMessage('clickedElement', {\n payload: payload\n });\n }, implementation.getLocizeDetails()));\n api.sendCurrentTargetLanguage = function (lng) {\n sendMessage('setLng', {\n lng: lng || implementation.getLng()\n });\n };\n if (typeof window !== 'undefined') {\n var oldHref = window.document.location.href;\n window.addEventListener('load', function () {\n sendMessage('hrefChanged', {\n href: window.document.location.href\n });\n var bodyList = window.document.querySelector('body');\n var observer = new window.MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n if (oldHref !== window.document.location.href) {\n oldHref = window.document.location.href;\n sendMessage('hrefChanged', {\n href: oldHref\n });\n }\n });\n });\n var config = {\n childList: true,\n subtree: true\n };\n observer.observe(bodyList, config);\n });\n }\n implementation === null || implementation === void 0 || implementation.bindLanguageChange(function (lng) {\n api.sendCurrentTargetLanguage(implementation.getLng());\n });\n implementation === null || implementation === void 0 || implementation.bindMissingKeyHandler(function (lng, ns, k, val) {\n api.onAddedKey(lng, ns, k, val);\n });\n}\n\nexport { startLegacy };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { PostProcessor } from 'i18next-subliminal';\nexport { unwrap } from 'i18next-subliminal';\nimport { start } from './process.js';\nimport { startLegacy } from './processLegacy.js';\nimport { getQsParameterByName } from './utils.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar isInIframe = typeof window !== 'undefined';\ntry {\n isInIframe = self !== top;\n} catch (e) {}\nfunction configurePostProcessor(i18next, options) {\n i18next.use(PostProcessor);\n if (typeof options.postProcess === 'string') {\n options.postProcess = [options.postProcess, 'subliminal'];\n } else if (Array.isArray(options.postProcess)) {\n options.postProcess.push('subliminal');\n } else {\n options.postProcess = 'subliminal';\n }\n options.postProcessPassResolved = true;\n}\nfunction getImplementation(i18n) {\n var impl = {\n getResource: function getResource(lng, ns, key) {\n return i18n.getResource(lng, ns, key);\n },\n setResource: function setResource(lng, ns, key, value) {\n return i18n.addResource(lng, ns, key, value, {\n silent: true\n });\n },\n getResourceBundle: function getResourceBundle(lng, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n cb(i18n.getResourceBundle(lng, ns));\n });\n },\n getLng: function getLng() {\n return i18n.resolvedLanguage || i18n.languages[0];\n },\n getSourceLng: function getSourceLng() {\n var fallback = i18n.options.fallbackLng;\n if (typeof fallback === 'string') return fallback;\n if (Array.isArray(fallback)) return fallback[fallback.length - 1];\n if (fallback && fallback[\"default\"]) {\n if (typeof fallback[\"default\"] === 'string') return fallback;\n if (Array.isArray(fallback[\"default\"])) return fallback[\"default\"][fallback[\"default\"].length - 1];\n }\n if (typeof fallback === 'function') {\n var res = fallback(i18n.resolvedLanguage);\n if (typeof res === 'string') return res;\n if (Array.isArray(res)) return res[res.length - 1];\n }\n return 'dev';\n },\n getLocizeDetails: function getLocizeDetails() {\n var backendName;\n if (i18n.services.backendConnector.backend && i18n.services.backendConnector.backend.options && i18n.services.backendConnector.backend.options.loadPath && i18n.services.backendConnector.backend.options.loadPath.indexOf('.locize.') > 0) {\n backendName = 'I18NextLocizeBackend';\n } else {\n backendName = i18n.services.backendConnector.backend ? i18n.services.backendConnector.backend.constructor.name : 'options.resources';\n }\n var opts = {\n backendName: backendName,\n sourceLng: impl.getSourceLng(),\n i18nFormat: i18n.options.compatibilityJSON === 'v3' ? 'i18next_v3' : 'i18next_v4',\n i18nFramework: 'i18next',\n isLocizify: i18n.options.isLocizify,\n defaultNS: i18n.options.defaultNS\n };\n if (!i18n.options.backend && !i18n.options.editor) return opts;\n var pickFrom = i18n.options.backend || i18n.options.editor;\n return _objectSpread(_objectSpread({}, opts), {}, {\n projectId: pickFrom.projectId,\n version: pickFrom.version\n });\n },\n bindLanguageChange: function bindLanguageChange(cb) {\n i18n.on('languageChanged', cb);\n },\n bindMissingKeyHandler: function bindMissingKeyHandler(cb) {\n i18n.options.missingKeyHandler = function (lng, ns, k, val, isUpdate, opts) {\n if (!isUpdate) cb(lng, ns, k, val);\n };\n },\n triggerRerender: function triggerRerender() {\n i18n.emit('editorSaved');\n }\n };\n return impl;\n}\nvar i18next;\nvar locizeEditorPlugin = function locizeEditorPlugin() {\n var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n opt.qsProp = opt.qsProp || 'incontext';\n return {\n type: '3rdParty',\n init: function init(i18n) {\n var options = i18n.options;\n i18next = i18n;\n var showInContext = opt.show || getQsParameterByName(opt.qsProp) === 'true';\n if (!isInIframe && showInContext) configurePostProcessor(i18next, options);\n var impl = getImplementation(i18n);\n if (!isInIframe && showInContext) {\n start(impl);\n } else if (isInIframe) {\n startLegacy(impl);\n }\n }\n };\n};\nvar locizePlugin = locizeEditorPlugin();\n\nexport { locizeEditorPlugin, locizePlugin };\n","import { startLegacy } from './processLegacy.js';\n\nfunction startStandalone() {\n startLegacy({\n getLocizeDetails: function getLocizeDetails() {\n return {};\n },\n getLng: function getLng() {\n return undefined;\n },\n setResource: function setResource() {},\n triggerRerender: function triggerRerender() {},\n getResourceBundle: function getResourceBundle() {\n return {};\n },\n bindMissingKeyHandler: function bindMissingKeyHandler() {},\n bindLanguageChange: function bindLanguageChange() {}\n });\n}\nif (typeof window !== 'undefined') window.locizeStartStandalone = startStandalone;\n\nexport { startStandalone };\n","import { initReactI18next } from \"react-i18next\";\n\nimport i18n from \"i18next\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nimport Backend from \"i18next-locize-backend\";\nimport { locizePlugin } from \"locize\";\n\n//import LastUsed from \"locize-lastused\";\n\nconst detectionOptions = {\n order: [\"querystring\", \"localStorage\", \"navigator\"],\n lookupQuerystring: \"lng\",\n lookupLocalStorage: \"i18nextLng\",\n caches: [\"localStorage\"],\n convertDetectedLanguage: (lng) =>\n lng.indexOf(\"-\") > -1 ? lng.toLowerCase().split(\"-\")[0] : lng,\n};\n\nconst locizeOptions = {\n projectId: \"a90d7a58-75b9-4284-870d-3b0b48302bdf\",\n apiKey: import.meta.env.VITE_LOCIZE_API_KEY, // YOU should not expose your apps API key to production!!!\n referenceLng: \"tr\",\n};\n\ni18n\n .use(locizePlugin)\n .use(Backend)\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n fallbackLng: \"tr\",\n detection: detectionOptions,\n interpolation: {\n escapeValue: false,\n },\n backend: locizeOptions,\n saveMissing: true,\n });\n\nexport default i18n;\n","import i18n from \"../../i18n\";\n\nlet isModalOpen = false;\nconst requestQueue = [];\n\n// Function to add request interceptors\nconst addRequestInterceptor = (axiosInstance) => {\n axiosInstance.interceptors.request.use((config) => {\n const token = localStorage.getItem(\"token\");\n const language = i18n.language;\n\n if (token) {\n config.headers.Authorization = `Bearer ${token}`;\n }\n if (language) {\n config.headers[\"x-language\"] = language;\n }\n\n config.headers[\"X-Country\"] = localStorage.getItem(\"userCountry\") || \"TR\";\n return config;\n });\n\n axiosInstance.interceptors.request.use(\n (config) => {\n if (isModalOpen) {\n return new Promise((resolve) =>\n requestQueue.push(() => resolve(config)),\n );\n }\n return config;\n },\n (error) => Promise.reject(error),\n );\n};\n\n// Function to process queued requests\nexport const processQueue = () => {\n const queuedRequests = [...requestQueue];\n requestQueue.length = 0;\n queuedRequests.forEach((request) => request());\n};\n\n// Exports\nexport let isModalOpenSetter = (status) => {\n isModalOpen = status;\n};\nexport default addRequestInterceptor;\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))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n var index = 0;\n var argument;\n var resolvedValue;\n var string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nfunction toValue(mix) {\n if (typeof mix === 'string') {\n return mix;\n }\n var resolvedValue;\n var string = '';\n for (var k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\n\nexport { twJoin };\n//# sourceMappingURL=tw-join.mjs.map\n","var CLASS_PART_SEPARATOR = '-';\nfunction createClassUtils(config) {\n var classMap = createClassMap(config);\n var conflictingClassGroups = config.conflictingClassGroups,\n _config$conflictingCl = config.conflictingClassGroupModifiers,\n conflictingClassGroupModifiers = _config$conflictingCl === void 0 ? {} : _config$conflictingCl;\n function getClassGroupId(className) {\n var classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n }\n function getConflictingClassGroupIds(classGroupId, hasPostfixModifier) {\n var conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [].concat(conflicts, conflictingClassGroupModifiers[classGroupId]);\n }\n return conflicts;\n }\n return {\n getClassGroupId: getClassGroupId,\n getConflictingClassGroupIds: getConflictingClassGroupIds\n };\n}\nfunction getGroupRecursive(classParts, classPartObject) {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n var currentClassPart = classParts[0];\n var nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n var classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n var classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(function (_ref) {\n var validator = _ref.validator;\n return validator(classRest);\n })?.classGroupId;\n}\nvar arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nfunction getGroupIdForArbitraryProperty(className) {\n if (arbitraryPropertyRegex.test(className)) {\n var arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n var property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n}\n/**\n * Exported for testing only\n */\nfunction createClassMap(config) {\n var theme = config.theme,\n prefix = config.prefix;\n var classMap = {\n nextPart: new Map(),\n validators: []\n };\n var prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(function (_ref2) {\n var classGroupId = _ref2[0],\n classGroup = _ref2[1];\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n}\nfunction processClassesRecursively(classGroup, classPartObject, classGroupId, theme) {\n classGroup.forEach(function (classDefinition) {\n if (typeof classDefinition === 'string') {\n var classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId: classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(function (_ref3) {\n var key = _ref3[0],\n classGroup = _ref3[1];\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n}\nfunction getPart(classPartObject, path) {\n var currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(function (pathPart) {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n}\nfunction isThemeGetter(func) {\n return func.isThemeGetter;\n}\nfunction getPrefixedClassGroupEntries(classGroupEntries, prefix) {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(function (_ref4) {\n var classGroupId = _ref4[0],\n classGroup = _ref4[1];\n var prefixedClassGroup = classGroup.map(function (classDefinition) {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(function (_ref5) {\n var key = _ref5[0],\n value = _ref5[1];\n return [prefix + key, value];\n }));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n}\n\nexport { createClassMap, createClassUtils };\n//# sourceMappingURL=class-utils.mjs.map\n","// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nfunction createLruCache(maxCacheSize) {\n if (maxCacheSize < 1) {\n return {\n get: function get() {\n return undefined;\n },\n set: function set() {}\n };\n }\n var cacheSize = 0;\n var cache = new Map();\n var previousCache = new Map();\n function update(key, value) {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n }\n return {\n get: function get(key) {\n var value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set: function set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n}\n\nexport { createLruCache };\n//# sourceMappingURL=lru-cache.mjs.map\n","var IMPORTANT_MODIFIER = '!';\nfunction createSplitModifiers(config) {\n var separator = config.separator || ':';\n var isSeparatorSingleCharacter = separator.length === 1;\n var firstSeparatorCharacter = separator[0];\n var separatorLength = separator.length;\n // splitModifiers inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n return function splitModifiers(className) {\n var modifiers = [];\n var bracketDepth = 0;\n var modifierStart = 0;\n var postfixModifierPosition;\n for (var index = 0; index < className.length; index++) {\n var currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n var baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n var hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n var baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n var maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers: modifiers,\n hasImportantModifier: hasImportantModifier,\n baseClassName: baseClassName,\n maybePostfixModifierPosition: maybePostfixModifierPosition\n };\n };\n}\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nfunction sortModifiers(modifiers) {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n var sortedModifiers = [];\n var unsortedModifiers = [];\n modifiers.forEach(function (modifier) {\n var isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort().concat([modifier]));\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort());\n return sortedModifiers;\n}\n\nexport { IMPORTANT_MODIFIER, createSplitModifiers, sortModifiers };\n//# sourceMappingURL=modifier-utils.mjs.map\n","import { createClassUtils } from './class-utils.mjs';\nimport { createLruCache } from './lru-cache.mjs';\nimport { createSplitModifiers } from './modifier-utils.mjs';\n\nfunction createConfigUtils(config) {\n return {\n cache: createLruCache(config.cacheSize),\n splitModifiers: createSplitModifiers(config),\n ...createClassUtils(config)\n };\n}\n\nexport { createConfigUtils };\n//# sourceMappingURL=config-utils.mjs.map\n","import { sortModifiers, IMPORTANT_MODIFIER } from './modifier-utils.mjs';\n\nvar SPLIT_CLASSES_REGEX = /\\s+/;\nfunction mergeClassList(classList, configUtils) {\n var splitModifiers = configUtils.splitModifiers,\n getClassGroupId = configUtils.getClassGroupId,\n getConflictingClassGroupIds = configUtils.getConflictingClassGroupIds;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n var classGroupsInConflict = new Set();\n return classList.trim().split(SPLIT_CLASSES_REGEX).map(function (originalClassName) {\n var _splitModifiers = splitModifiers(originalClassName),\n modifiers = _splitModifiers.modifiers,\n hasImportantModifier = _splitModifiers.hasImportantModifier,\n baseClassName = _splitModifiers.baseClassName,\n maybePostfixModifierPosition = _splitModifiers.maybePostfixModifierPosition;\n var classGroupId = getClassGroupId(maybePostfixModifierPosition ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n var hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n if (!classGroupId) {\n if (!maybePostfixModifierPosition) {\n return {\n isTailwindClass: false,\n originalClassName: originalClassName\n };\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n return {\n isTailwindClass: false,\n originalClassName: originalClassName\n };\n }\n hasPostfixModifier = false;\n }\n var variantModifier = sortModifiers(modifiers).join(':');\n var modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n return {\n isTailwindClass: true,\n modifierId: modifierId,\n classGroupId: classGroupId,\n originalClassName: originalClassName,\n hasPostfixModifier: hasPostfixModifier\n };\n }).reverse()\n // Last class in conflict wins, so we need to filter conflicting classes in reverse order.\n .filter(function (parsed) {\n if (!parsed.isTailwindClass) {\n return true;\n }\n var modifierId = parsed.modifierId,\n classGroupId = parsed.classGroupId,\n hasPostfixModifier = parsed.hasPostfixModifier;\n var classId = modifierId + classGroupId;\n if (classGroupsInConflict.has(classId)) {\n return false;\n }\n classGroupsInConflict.add(classId);\n getConflictingClassGroupIds(classGroupId, hasPostfixModifier).forEach(function (group) {\n return classGroupsInConflict.add(modifierId + group);\n });\n return true;\n }).reverse().map(function (parsed) {\n return parsed.originalClassName;\n }).join(' ');\n}\n\nexport { mergeClassList };\n//# sourceMappingURL=merge-classlist.mjs.map\n","import { createConfigUtils } from './config-utils.mjs';\nimport { mergeClassList } from './merge-classlist.mjs';\nimport { twJoin } from './tw-join.mjs';\n\nfunction createTailwindMerge() {\n for (var _len = arguments.length, createConfig = new Array(_len), _key = 0; _key < _len; _key++) {\n createConfig[_key] = arguments[_key];\n }\n var configUtils;\n var cacheGet;\n var cacheSet;\n var functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n var firstCreateConfig = createConfig[0],\n restCreateConfig = createConfig.slice(1);\n var config = restCreateConfig.reduce(function (previousConfig, createConfigCurrent) {\n return createConfigCurrent(previousConfig);\n }, firstCreateConfig());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n var cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n var result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\n\nexport { createTailwindMerge };\n//# sourceMappingURL=create-tailwind-merge.mjs.map\n","function fromTheme(key) {\n var themeGetter = function themeGetter(theme) {\n return theme[key] || [];\n };\n themeGetter.isThemeGetter = true;\n return themeGetter;\n}\n\nexport { fromTheme };\n//# sourceMappingURL=from-theme.mjs.map\n","var arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nvar fractionRegex = /^\\d+\\/\\d+$/;\nvar stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nvar tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nvar lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\n// Shadow always begins with x and y offset separated by underscore\nvar shadowRegex = /^-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nfunction isLength(value) {\n return isNumber(value) || stringLengths.has(value) || fractionRegex.test(value) || isArbitraryLength(value);\n}\nfunction isArbitraryLength(value) {\n return getIsArbitraryValue(value, 'length', isLengthOnly);\n}\nfunction isArbitrarySize(value) {\n return getIsArbitraryValue(value, 'size', isNever);\n}\nfunction isArbitraryPosition(value) {\n return getIsArbitraryValue(value, 'position', isNever);\n}\nfunction isArbitraryUrl(value) {\n return getIsArbitraryValue(value, 'url', isUrl);\n}\nfunction isArbitraryNumber(value) {\n return getIsArbitraryValue(value, 'number', isNumber);\n}\n/**\n * @deprecated Will be removed in next major version. Use `isArbitraryNumber` instead.\n */\nvar isArbitraryWeight = isArbitraryNumber;\nfunction isNumber(value) {\n return !Number.isNaN(Number(value));\n}\nfunction isPercent(value) {\n return value.endsWith('%') && isNumber(value.slice(0, -1));\n}\nfunction isInteger(value) {\n return isIntegerOnly(value) || getIsArbitraryValue(value, 'number', isIntegerOnly);\n}\nfunction isArbitraryValue(value) {\n return arbitraryValueRegex.test(value);\n}\nfunction isAny() {\n return true;\n}\nfunction isTshirtSize(value) {\n return tshirtUnitRegex.test(value);\n}\nfunction isArbitraryShadow(value) {\n return getIsArbitraryValue(value, '', isShadow);\n}\nfunction getIsArbitraryValue(value, label, testValue) {\n var result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return result[1] === label;\n }\n return testValue(result[2]);\n }\n return false;\n}\nfunction isLengthOnly(value) {\n return lengthUnitRegex.test(value);\n}\nfunction isNever() {\n return false;\n}\nfunction isUrl(value) {\n return value.startsWith('url(');\n}\nfunction isIntegerOnly(value) {\n return Number.isInteger(Number(value));\n}\nfunction isShadow(value) {\n return shadowRegex.test(value);\n}\n\nexport { isAny, isArbitraryLength, isArbitraryNumber, isArbitraryPosition, isArbitraryShadow, isArbitrarySize, isArbitraryUrl, isArbitraryValue, isArbitraryWeight, isInteger, isLength, isNumber, isPercent, isTshirtSize };\n//# sourceMappingURL=validators.mjs.map\n","import { fromTheme } from './from-theme.mjs';\nimport { isAny, isLength, isTshirtSize, isArbitraryValue, isPercent, isArbitraryLength, isInteger, isArbitraryNumber, isNumber, isArbitraryPosition, isArbitrarySize, isArbitraryUrl, isArbitraryShadow } from './validators.mjs';\n\nfunction getDefaultConfig() {\n var colors = fromTheme('colors');\n var spacing = fromTheme('spacing');\n var blur = fromTheme('blur');\n var brightness = fromTheme('brightness');\n var borderColor = fromTheme('borderColor');\n var borderRadius = fromTheme('borderRadius');\n var borderSpacing = fromTheme('borderSpacing');\n var borderWidth = fromTheme('borderWidth');\n var contrast = fromTheme('contrast');\n var grayscale = fromTheme('grayscale');\n var hueRotate = fromTheme('hueRotate');\n var invert = fromTheme('invert');\n var gap = fromTheme('gap');\n var gradientColorStops = fromTheme('gradientColorStops');\n var gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n var inset = fromTheme('inset');\n var margin = fromTheme('margin');\n var opacity = fromTheme('opacity');\n var padding = fromTheme('padding');\n var saturate = fromTheme('saturate');\n var scale = fromTheme('scale');\n var sepia = fromTheme('sepia');\n var skew = fromTheme('skew');\n var space = fromTheme('space');\n var translate = fromTheme('translate');\n var getOverscroll = function getOverscroll() {\n return ['auto', 'contain', 'none'];\n };\n var getOverflow = function getOverflow() {\n return ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n };\n var getSpacingWithAutoAndArbitrary = function getSpacingWithAutoAndArbitrary() {\n return ['auto', isArbitraryValue, spacing];\n };\n var getSpacingWithArbitrary = function getSpacingWithArbitrary() {\n return [isArbitraryValue, spacing];\n };\n var getLengthWithEmpty = function getLengthWithEmpty() {\n return ['', isLength];\n };\n var getNumberWithAutoAndArbitrary = function getNumberWithAutoAndArbitrary() {\n return ['auto', isNumber, isArbitraryValue];\n };\n var getPositions = function getPositions() {\n return ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n };\n var getLineStyles = function getLineStyles() {\n return ['solid', 'dashed', 'dotted', 'double', 'none'];\n };\n var getBlendModes = function getBlendModes() {\n return ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity', 'plus-lighter'];\n };\n var getAlign = function getAlign() {\n return ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n };\n var getZeroAndEmpty = function getZeroAndEmpty() {\n return ['', '0', isArbitraryValue];\n };\n var getBreaks = function getBreaks() {\n return ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n };\n var getNumber = function getNumber() {\n return [isNumber, isArbitraryNumber];\n };\n var getNumberAndArbitrary = function getNumberAndArbitrary() {\n return [isNumber, isArbitraryValue];\n };\n return {\n cacheSize: 500,\n theme: {\n colors: [isAny],\n spacing: [isLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumber(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmpty(),\n contrast: getNumber(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumber(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumber(),\n scale: getNumber(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n \"float\": [{\n \"float\": ['right', 'left', 'none']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [].concat(getPositions(), [isArbitraryValue])\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal'].concat(getAlign())\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal'].concat(getAlign(), ['baseline'])\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [].concat(getAlign(), ['baseline'])\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': ['min', 'max', 'fit', isArbitraryValue, isLength]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': ['0', 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize, isArbitraryValue]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['min', 'max', 'fit', isArbitraryValue, isLength]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isArbitraryValue, isLength]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [].concat(getLineStyles(), ['wavy'])\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isArbitraryValue, isLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n \"break\": [{\n \"break\": ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [].concat(getPositions(), [isArbitraryPosition])\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryUrl]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [].concat(getLineStyles(), ['hidden'])\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [''].concat(getLineStyles())\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isArbitraryValue, isLength]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmpty()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': getBlendModes()\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: ['appearance-none'],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'pinch-zoom', 'manipulation', {\n pan: ['x', 'left', 'right', 'y', 'up', 'down']\n }]\n }],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only']\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n}\n\nexport { getDefaultConfig };\n//# sourceMappingURL=default-config.mjs.map\n","import { createTailwindMerge } from './create-tailwind-merge.mjs';\nimport { getDefaultConfig } from './default-config.mjs';\n\nvar twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\n\nexport { twMerge };\n//# sourceMappingURL=tw-merge.mjs.map\n","import { ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport function parseError(errors: any[], defaultMessage: string) {\n if (errors.length > 0) {\n return errors.map((error) => <p key={error.message}>• {error.message}</p>);\n }\n return defaultMessage;\n}\n\nexport async function getUserIP() {\n const response = await fetch(\"https://api.ipify.org?format=json\");\n const data = await response.json();\n return data.ip;\n}\n","import {\n AlertDialog,\n AlertDialogContent,\n Button,\n Checkbox,\n Label,\n} from \"@egaranti/components\";\n\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst UserAgreementModal = ({ onAccept, onReject }) => {\n const { i18n, t } = useTranslation();\n const [isChecked1, setIsChecked1] = useState(false);\n const [isChecked2, setIsChecked2] = useState(false);\n\n const handleAccept = () => {\n const acceptedAgreements = {\n membershipAgreement: isChecked1,\n commercialCommunicationAgreement: isChecked2,\n };\n onAccept(acceptedAgreements);\n };\n\n return (\n <AlertDialog open={open}>\n <AlertDialogContent className=\"flex flex-col gap-4 bg-white p-6\">\n <div className=\"flex flex-col gap-4\">\n <h2 className=\"text-2xl font-semibold\">\n {t(\"userAgreementModal.title\")}\n </h2>\n </div>\n <div className=\"mt-4 flex items-center\">\n <Checkbox\n className=\"mr-2\"\n checked={isChecked1}\n onCheckedChange={setIsChecked1}\n />\n <Label className=\"text-sm font-normal text-[#677389]\">\n {i18n.language === \"tr\" ? (\n <span className=\"text-sm font-normal text-[#677389]\">\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/usage-terms/\"\n target={\"_blank\"}\n >\n Ãœyelik sözleÅŸmesi\n </a>\n 'ni okudum, kabul ediyorum.\n </span>\n ) : i18n.language === \"ru\" ? (\n <span className=\"text-sm font-normal text-[#677389]\">\n Я прочитал и принÑл{\" \"}\n <a\n href=\"https://egaranti.com/ru/policy/usage-terms/\"\n className=\"text-[#0F6FFF] underline\"\n target={\"_blank\"}\n >\n УÑÐ»Ð¾Ð²Ð¸Ñ Ñ‡Ð»ÐµÐ½Ñтва.\n </a>\n </span>\n ) : (\n <span className=\"text-sm font-normal text-[#677389]\">\n I've read and accepted the{\" \"}\n <a\n href=\"https://egaranti.com/tr/policy/usage-terms/\"\n className=\"text-[#0F6FFF] underline\"\n target={\"_blank\"}\n >\n Membership Agreement.\n </a>\n </span>\n )}\n </Label>\n </div>\n <div className=\"mt-4 flex items-center\">\n <Checkbox\n className=\"mr-2\"\n checked={isChecked2}\n onCheckedChange={setIsChecked2}\n />\n <Label className=\"text-sm font-normal text-[#677389]\">\n {i18n.language === \"tr\" ? (\n <span className=\"text-sm font-normal text-[#677389]\">\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/privacy\"\n target={\"_blank\"}\n >\n KiÅŸisel Veri Aydınlatma Formu\n </a>\n 'nu okudum.\n </span>\n ) : i18n.language === \"ru\" ? (\n <span className=\"text-sm font-normal text-[#677389]\">\n Я прочитал{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/ru/policy/privacy\"\n target={\"_blank\"}\n >\n Форму раÑÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¿ÐµÑ€Ñональных данных.\n </a>\n </span>\n ) : (\n <span className=\"text-sm font-normal text-[#677389]\">\n I've read the{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/privacy\"\n target={\"_blank\"}\n >\n Personal Data Disclosure Form.\n </a>\n </span>\n )}\n </Label>\n </div>\n <div className=\"mt-5 flex justify-end gap-2\">\n <Button variant=\"secondaryGray\" onClick={onReject}>\n {t(\"userAgreementModal.reject\")}\n </Button>\n <Button onClick={handleAccept} disabled={!isChecked1}>\n {t(\"userAgreementModal.accept\")}\n </Button>\n </div>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n\nexport default UserAgreementModal;\n","import { createRoot } from \"react-dom/client\";\n\nimport instance from \"@/lib/api/axios\";\nimport { isModalOpenSetter, processQueue } from \"@/lib/api/requestInterceptor\";\nimport { getUserIP } from \"@/lib/utils\";\nimport UserAgreementModal from \"@/lib/utils/components/UserAgreementModal\";\n\nlet isModalOpen = false;\nconst requestQueue = [];\n\n// Handle User Agreement modal and process queued requests\nexport function handleUserAgreement(error) {\n return new Promise((resolve, reject) => {\n if (isModalOpen) {\n requestQueue.push(() =>\n handleUserAgreement(error).then(resolve).catch(reject),\n );\n return;\n }\n\n isModalOpen = true;\n isModalOpenSetter(true);\n showUserAgreementModal(resolve, reject, error.config);\n });\n}\n\n// Display User Agreement modal\nfunction showUserAgreementModal(resolve, reject, originalConfig) {\n const modalRoot = createModalElement();\n const root = createRoot(modalRoot);\n\n root.render(\n <UserAgreementModal\n onAccept={(payload) =>\n handleAccept(root, modalRoot, resolve, reject, originalConfig, payload)\n }\n onReject={() => handleReject(root, modalRoot)}\n />,\n );\n}\n\n// Handle acceptance of User Agreement\nfunction handleAccept(\n root,\n modalRoot,\n resolve,\n reject,\n originalConfig,\n payload,\n) {\n cleanupModal(root, modalRoot);\n getUserIP().then((ip) => {\n instance\n .post(\"/individual-customers/agreement\", {\n membershipAgreement: payload.membershipAgreement,\n commercialCommunicationAgreement:\n payload.commercialCommunicationAgreement,\n ip,\n })\n .then((res) => {\n localStorage.setItem(\"token\", res.data.jwtToken.substring(7));\n resolve(instance(originalConfig));\n processQueue();\n window.location.reload();\n })\n .catch((error) => {\n console.error(\"Error accepting user agreement:\", error);\n reject(error);\n });\n });\n}\n\n// Handle rejection of User Agreement\nfunction handleReject(root, modalRoot) {\n cleanupModal(root, modalRoot);\n window.location.href = \"/login\";\n}\n\n// Cleanup modal from DOM\nfunction cleanupModal(root, modalRoot) {\n root.unmount();\n document.body.removeChild(modalRoot);\n isModalOpen = false;\n isModalOpenSetter(false);\n processQueue();\n}\n\n// Create a modal element and attach it to the DOM\nfunction createModalElement() {\n const modalRoot = document.createElement(\"div\");\n modalRoot.id = \"user-agreement-modal\";\n document.body.appendChild(modalRoot);\n return modalRoot;\n}\n","import { handleUserAgreement } from \"@/lib/api/userAgreementHandler\";\n\nconst addResponseInterceptor = (axiosInstance) => {\n axiosInstance.interceptors.response.use(\n (response) => response,\n (error) => {\n const { status } = error.response || {};\n if (status === 403) {\n if (localStorage.getItem(\"token\")) {\n return handleUserAgreement(error);\n } else {\n window.location.href = \"/login\";\n }\n }\n return Promise.reject(error);\n },\n );\n};\n\nexport default addResponseInterceptor;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","module.exports = require('./lib/axios');","import addRequestInterceptor from \"./requestInterceptor\";\nimport addResponseInterceptor from \"./responseInterceptor\";\n\nimport axios from \"axios\";\n\nconst instance = axios.create({\n baseURL: import.meta.env.VITE_BACKEND,\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n \"x-from\": \"app\",\n },\n});\n\ninstance.defaults.paramsSerializer = (params) =>\n new URLSearchParams(params).toString();\n\naddRequestInterceptor(instance);\naddResponseInterceptor(instance);\n\nexport default instance;\n","export default \"__VITE_ASSET__eabeecb1__\"","import React from \"react\";\n\nexport default function Loading({ fullScreen }) {\n return (\n <div\n className={`fixed inset-0 z-50 flex items-center justify-center ${\n fullScreen ? \"bg-white\" : \"\"\n }`}\n >\n <div\n role=\"status\"\n className=\"absolute left-1/2 top-2/4 -translate-x-1/2 -translate-y-1/2\"\n >\n <svg\n aria-hidden=\"true\"\n className=\"animate-spin mr-2 h-16 w-16 fill-[#0049e6] text-gray-200 dark:text-gray-600\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n <span className=\"sr-only\">Loading...</span>\n </div>\n </div>\n );\n}\n","import { useEffect } from \"react\";\n\nconst useOnClickOutside = (ref, callback) => {\n const handleClick = (e) => {\n if (ref.current && !ref.current.contains(e.target)) {\n callback();\n }\n };\n\n useEffect(() => {\n document.addEventListener(\"click\", handleClick);\n\n return () => {\n document.removeEventListener(\"click\", handleClick);\n };\n });\n};\n\nexport default useOnClickOutside;\n","export default \"__VITE_ASSET__28f7ccd3__\"","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nvar hookCallback;\n\nfunction hooks() {\n return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback(callback) {\n hookCallback = callback;\n}\n\nfunction isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\nfunction isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nfunction hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n}\n\nfunction isUndefined(input) {\n return input === void 0;\n}\n\nfunction isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n}\n\nfunction isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n}\n\nfunction map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n}\n\nfunction extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n}\n\nfunction createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n}\n\nfunction getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n\nvar some;\nif (Array.prototype.some) {\n some = Array.prototype.some;\n} else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nfunction isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n}\n\nfunction createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nfunction copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\n// Moment prototype object\nfunction Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nfunction isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n\nfunction warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nfunction deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n\nfunction set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nvar defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n};\n\nfunction calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n}\n\nvar formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n}\n\nfunction expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n\nvar defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nfunction longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n};\n\nfunction relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n}\n\nfunction pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nvar aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n};\n\nfunction normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n\nvar priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n};\n\nfunction getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n\nvar match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nfunction getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n}\n\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nfunction absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n\nfunction toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n\nvar tokens = {};\n\nfunction addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n}\n\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nvar YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n return isLeapYear(this.year());\n}\n\nfunction makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n}\n\nfunction get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n}\n\nfunction set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nfunction stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n\nfunction mod(n, x) {\n return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// PARSING\n\naddRegexToken('M', match1to2, match1to2NoLeadingZero);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\nfunction localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n}\n\nfunction localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n}\n\nfunction getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n}\n\nfunction getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nfunction monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n}\n\nfunction monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n}\n\nfunction weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// PARSING\n\naddRegexToken('w', match1to2, match1to2NoLeadingZero);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2, match1to2NoLeadingZero);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n);\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\nfunction localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n}\n\nfunction localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n}\n\nfunction localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n}\n\nfunction handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nfunction getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nfunction weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n}\n\nfunction weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n}\n\nfunction weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n}\n\nfunction computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2, match1to2HasZero);\naddRegexToken('h', match1to2, match1to2NoLeadingZero);\naddRegexToken('k', match1to2, match1to2NoLeadingZero);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\nfunction localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\nvar baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n};\n\n// internal storage for locale config files\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n}\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n}\n\nfunction isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n}\n\nfunction loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n}\n\nfunction defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nfunction updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nfunction getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nfunction listLocales() {\n return keys(locales);\n}\n\nfunction checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n// date from iso format\nfunction configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\nfunction extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nfunction configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nfunction prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nfunction createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n\nfunction createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nfunction isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\nfunction isValid$1() {\n return this._isValid;\n}\n\nfunction createInvalid$1() {\n return createDuration(NaN);\n}\n\nfunction Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\n\nfunction offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nfunction createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\nfunction isString(input) {\n return typeof input === 'string' || input instanceof String;\n}\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nfunction isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n}\n\nfunction isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n}\n\nfunction isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n}\n\nfunction calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n}\n\nfunction clone() {\n return new Moment(this);\n}\n\nfunction isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n}\n\nfunction isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n}\n\nfunction isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData() {\n return this._locale;\n}\n\nvar MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n}\n\nfunction utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n}\n\nfunction startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n return new Date(this.valueOf());\n}\n\nfunction toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n}\n\nfunction toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n}\n\nfunction toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2() {\n return isValid(this);\n}\n\nfunction parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n}\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n);\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n});\n\nfunction localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n}\n\nfunction localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n}\n\nfunction localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n}\n\nfunction getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n}\n\nfunction getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n}\n\nfunction getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n}\n\nfunction getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n}\n\nfunction erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n);\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nfunction getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nfunction getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// PARSING\n\naddRegexToken('D', match1to2, match1to2NoLeadingZero);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// PARSING\n\naddRegexToken('m', match1to2, match1to2HasZero);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// PARSING\n\naddRegexToken('s', match1to2, match1to2HasZero);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\nproto.quarter = proto.quarters = getSetQuarter;\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\nproto.hour = proto.hours = getSetHour;\nproto.minute = proto.minutes = getSetMinute;\nproto.second = proto.seconds = getSetSecond;\nproto.millisecond = proto.milliseconds = getSetMillisecond;\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\nproto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n});\n\n// Side effect imports\n\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n}\n\nfunction monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n\nfunction as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n}\n\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\nfunction clone$1() {\n return createDuration(this);\n}\n\nfunction get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\nfunction weeks() {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nfunction humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nfunction toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asQuarters = asQuarters;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.clone = clone$1;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\nproto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n);\nproto$2.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.30.1';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n};\n\nexport default hooks;\n","import React from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport axios from \"../../lib/api/axios\";\nimport { ReactComponent as XIcon } from \"../../assets/svgs/xicon.svg\";\n\nimport moment from \"moment\";\n\nconst NotificationItem = ({\n notification,\n handleReadOneNotification,\n getAllNotifications,\n getUnreadNotificationsCount,\n}) => {\n const navigateTo = useNavigate();\n\n const handleClickNotification = () => {\n handleReadOneNotification(notification.id);\n if (notification?.type === \"SERVICE_CLAIM\") {\n navigateTo(`/claims/service/${notification?.resourceId}`);\n } else if (notification?.type === \"SETUP_CLAIM\") {\n navigateTo(`/claims/setup/${notification?.resourceId}`);\n } else if (notification?.type === \"SERVICE_RECORD\") {\n navigateTo(`/claims/service-record/${notification?.resourceId}`);\n }\n };\n\n const handleDeleteNotification = () => {\n axios\n .delete(`/individual-customer-notifications/${notification.id}`)\n .then((res) => {\n getAllNotifications();\n getUnreadNotificationsCount();\n });\n };\n\n return (\n <>\n <div\n onClick={() => {\n handleClickNotification();\n }}\n className={`relative flex cursor-pointer items-start justify-between gap-3 border-b border-[#E3E7EF] bg-white px-4 py-6 last-of-type:border-none last-of-type:pb-0 ${\n notification.status === \"UNREAD\" ? \"!bg-[#F7F9FC]\" : \"\"\n }`}\n >\n {/* Delete button */}\n <button\n onClick={(e) => {\n e.stopPropagation();\n handleDeleteNotification();\n }}\n className=\"not-sr-only absolute right-2 top-4 flex items-center justify-center rounded-full p-2\"\n >\n <XIcon className=\"h-3 w-3\" />\n </button>\n {notification.status === \"UNREAD\" && (\n <span className=\"not-sr-only absolute left-2 top-4 h-2 w-2 rounded-full bg-[#12B76A]\"></span>\n )}\n <svg\n width=\"36\"\n height=\"36\"\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"18\" cy=\"18\" r=\"18\" fill=\"#12B76A\" />\n <path\n d=\"M23.455 16.2953V14.4544C23.455 13.3088 23.455 12.736 23.232 12.2985C23.0359 11.9136 22.723 11.6007 22.3382 11.4046C21.9006 11.1816 21.3278 11.1816 20.1823 11.1816H15.8186C14.6731 11.1816 14.1003 11.1816 13.6627 11.4046C13.2779 11.6007 12.9649 11.9136 12.7688 12.2985C12.5459 12.736 12.5459 13.3088 12.5459 14.4544V21.5453C12.5459 22.6908 12.5459 23.2636 12.7688 23.7012C12.9649 24.086 13.2779 24.399 13.6627 24.5951C14.1003 24.818 14.6731 24.818 15.8186 24.818H19.3641M19.3641 17.318H15.2732M16.6368 20.0453H15.2732M20.7277 14.5907H15.2732M21.0686 20.0468C21.1888 19.7053 21.4259 19.4173 21.738 19.2339C22.0501 19.0505 22.4171 18.9834 22.7739 19.0446C23.1307 19.1058 23.4543 19.2913 23.6875 19.5683C23.9206 19.8452 24.0482 20.1958 24.0477 20.5578C24.0477 21.5797 22.5147 22.0907 22.5147 22.0907M22.5345 24.1362H22.5413\"\n stroke=\"#ECFDF3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n <div className=\"flex w-full flex-col justify-between gap-1\">\n <h2 className=\"font-medium text-[#111729]\">{notification?.title}</h2>\n <p className=\"text-[#111729]\">{notification?.message}</p>\n <span className=\"text-sm text-[#677389]\">\n {moment(notification?.createdAt).locale(\"tr\").fromNow()}\n </span>\n </div>\n </div>\n </>\n );\n};\n\nexport default NotificationItem;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport axios from \"../../lib/api/axios\";\nimport { ReactComponent as NotificationIcon } from \"../../assets/svgs/infoemptyicon.svg\";\nimport Loading from \"../../components/common/Loading\";\nimport useOnClickOutside from \"../../lib/utils/hooks/useOnClickOutside.jsx\";\nimport NotificationItem from \"./NotificationItem\";\n\nconst NotificationModal = ({\n setIsNotificationModalOpen,\n unreadNotificationsCount,\n getUnreadNotificationsCount,\n}) => {\n const { t } = useTranslation();\n const ref = useRef();\n const [notifications, setNotifications] = useState([]);\n const [loading, setLoading] = useState(false);\n const [pager, setPager] = useState({\n page: 0,\n size: 10,\n totalElements: 0,\n totalPages: 0,\n });\n\n const handleReadOneNotification = async (id) => {\n // /api/notifications/readOne?user={{uid}}¬ification={{id}}\n axios.put(`/individual-customer-notifications/${id}/read`).then((res) => {\n getAllNotifications();\n });\n };\n\n const handleReadAllNotifications = async () => {\n // /api/notifications/readAll?user={{uid}}\n axios.put(`/individual-customer-notifications/read-all`).then((res) => {\n getAllNotifications();\n getUnreadNotificationsCount();\n });\n };\n\n const getAllNotifications = async () => {\n setLoading(true);\n axios\n .get(`/individual-customer-notifications`)\n .then((res) => {\n setNotifications(res.data.content);\n setPager({\n page: res.data.page,\n size: res.data.size,\n totalElements: res.data.totalElements,\n totalPages: res.data.totalPages,\n });\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n const handleScroll = (e) => {\n const { scrollTop, clientHeight, scrollHeight } = e.currentTarget;\n if (scrollTop + clientHeight >= scrollHeight) {\n // if has next page then fetch next page\n if (pager.page < pager.totalPages) {\n setLoading(true);\n axios\n .get(`/individual-customer-notifications?page=${pager.page + 1}`)\n .then((res) => {\n setNotifications([...notifications, ...res.data.content]);\n setPager({\n page: res.data.page,\n size: res.data.size,\n totalElements: res.data.totalElements,\n totalPages: res.data.totalPages,\n });\n setLoading(false);\n });\n }\n }\n };\n\n useEffect(() => {\n getAllNotifications();\n }, []);\n\n useOnClickOutside(ref, () => setIsNotificationModalOpen(false));\n\n return (\n <div className=\"fixed right-0 top-0 z-50 flex h-full w-full items-start justify-center bg-black/5 md:items-start md:justify-end\">\n <div\n ref={ref}\n className=\"m-5 mt-16 flex max-h-[550px] w-full flex-col justify-between overflow-auto rounded-lg border border-[#E3E7EF] bg-white pb-4 shadow-default md:mt-20 md:max-h-[600px] md:max-w-sm\"\n onScroll={handleScroll}\n >\n <header className=\"flex items-center justify-between p-4\">\n <h4 className=\"text-sm font-semibold text-[#111729]\">\n {t(\"navbar.notifications\")}\n </h4>\n {unreadNotificationsCount > 0 && (\n <button\n onClick={handleReadAllNotifications}\n className=\"text-xs text-[#0049E6]\"\n >\n {t(\"navbar.markReadAll\")}\n </button>\n )}\n </header>\n {!loading && notifications?.length === 0 && (\n <div className=\"flex h-full items-center justify-center gap-4 py-12\">\n <NotificationIcon className=\"h-8 w-8\" />\n <p className=\"text-sm font-medium text-[#111729]\">\n {t(\"navbar.noNotifications\")}\n </p>\n </div>\n )}\n {loading && <Loading />}\n {notifications?.map((notification) => (\n <NotificationItem\n key={notification.id}\n notification={notification}\n handleReadOneNotification={handleReadOneNotification}\n getAllNotifications={getAllNotifications}\n getUnreadNotificationsCount={getUnreadNotificationsCount}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default NotificationModal;\n","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport EgarantiLogo from \"../../../assets/images/egarantilogo.png\";\nimport { ReactComponent as NotificationIcon } from \"../../../assets/svgs/bellicon.svg\";\nimport axios from \"../../../lib/api/axios\";\nimport NotificationModal from \"../../Notifications/NotificationModal\";\n\nexport default function PageHeader({ title }) {\n const [isNotificationModalOpen, setIsNotificationModalOpen] = useState(false);\n const [unreadNotificationsCount, setUnreadNotificationsCount] = useState(0);\n\n const getUnreadNotificationsCount = async () => {\n axios.get(`/individual-customer-notifications/unread`).then((res) => {\n setUnreadNotificationsCount(res.data.count);\n });\n };\n useEffect(() => {\n //individual-customer-notifications/unread\n getUnreadNotificationsCount();\n }, []);\n\n return (\n <header className=\"flex items-center justify-between border border-[#1018280d] bg-white px-4 py-[14px] md:px-7 md:py-5\">\n <div className=\"hidden md:block\">\n <h3 className=\"text-2xl font-medium text-[#111729]\">{title}</h3>\n </div>\n <div className=\"block md:hidden\">\n <Link to=\"/\">\n <img\n className=\"h-[32px] w-[134px]\"\n src={EgarantiLogo}\n alt=\"egaranti\"\n />\n </Link>\n </div>\n <div className=\"flex\">\n <button\n onClick={(e) => {\n // don't effect useOnClickOutside hook in NotificationModal component\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n setIsNotificationModalOpen(!isNotificationModalOpen);\n }}\n aria-label=\"bildirimler\"\n className=\"relative items-center justify-center pl-4 text-[#111729]\"\n >\n <NotificationIcon />\n {unreadNotificationsCount > 0 && (\n <span className=\"absolute -right-2 -top-2 inline-flex h-5 w-5 items-center justify-center rounded-full bg-[#0049E6] text-[9px] font-medium text-white\">\n <span className=\"sr-only\">\n {unreadNotificationsCount} okunmamış bildirim var\n </span>\n {unreadNotificationsCount}\n </span>\n )}\n </button>\n </div>\n {isNotificationModalOpen && (\n <NotificationModal\n setIsNotificationModalOpen={setIsNotificationModalOpen}\n unreadNotificationsCount={unreadNotificationsCount}\n getUnreadNotificationsCount={getUnreadNotificationsCount}\n />\n )}\n </header>\n );\n}\n","export default \"__VITE_ASSET__772599b1__\"","export default \"__VITE_ASSET__216b5879__\"","export default \"__VITE_ASSET__1fdbe2a4__\"","export default \"__VITE_ASSET__22a92336__\"","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { ReactComponent as AccountIcon } from \"../../../assets/svgs/accounticon.svg\";\nimport { ReactComponent as HomeIcon } from \"../../../assets/svgs/homeicon.svg\";\nimport { ReactComponent as LayoutGridIcon } from \"../../../assets/svgs/layout-grid.svg\";\nimport { ReactComponent as CheckVerifiedIcon } from \"../../../assets/svgs/verifiedicon.svg\";\n\nexport default function BottomNav() {\n const userCountry = localStorage.getItem(\"userCountry\");\n\n const isYapikredi =\n localStorage.getItem(\"customizations\") &&\n JSON.parse(localStorage.getItem(\"customizations\"))?.sourceAppName ===\n \"yapikredi\";\n\n return (\n <>\n <div className=\"fixed bottom-0 left-0 z-50 flex w-full items-center justify-between bg-white px-6 md:hidden\">\n <NavbarButton\n navigateToPath=\"/\"\n isActivePath=\"/\"\n icon={HomeIcon}\n label=\"navbar.home\"\n />\n <NavbarButton\n navigateToPath=\"/products\"\n isActivePath=\"/products\"\n icon={LayoutGridIcon}\n label=\"navbar.products\"\n />\n <NavbarButton\n navigateToPath={\"/services\"}\n isActivePath={\"/services\"}\n icon={CheckVerifiedIcon}\n label=\"navbar.services\"\n />\n <NavbarButton\n navigateToPath=\"/account\"\n isActivePath=\"/account\"\n icon={AccountIcon}\n label=\"navbar.account\"\n />\n </div>\n </>\n );\n}\n\nconst NavbarButton = ({ navigateToPath, isActivePath, icon: Icon, label }) => {\n const { t } = useTranslation();\n const navigateTo = useNavigate();\n\n // if link is active, add active class to the link\n const handleActiveClass = (link) => {\n if (link === \"/\" && window.location.pathname === \"/\") {\n return \"text-[#0049E6] stroke-[#0049E6]\";\n } else if (link !== \"/\" && window.location.pathname.includes(link)) {\n return \"text-[#0049E6] stroke-[#0049E6]\";\n } else {\n return \"\";\n }\n };\n return (\n <button\n onClick={() => navigateTo(navigateToPath)}\n className={\n handleActiveClass(isActivePath) +\n ` flex w-full flex-col items-center gap-[6px] pb-4 pt-3 text-xs font-medium`\n }\n >\n <Icon />\n <span>{t(label)}</span>\n </button>\n );\n};\n","export default \"__VITE_ASSET__b35d9ffc__\"","import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@egaranti/components\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { ReactComponent as LogoutIcon } from \"@/assets/svgs/logoutmodalicon.svg\";\n\nconst LogoutDialog = ({ open, onOpenChange }) => {\n const { t } = useTranslation();\n const handleLogout = () => {\n localStorage.removeItem(\"token\");\n\n setTimeout(() => {\n window.location.href = \"/login\";\n }, 1000);\n };\n\n return (\n <AlertDialog onOpenChange={onOpenChange} open={open}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>\n <div className=\"flex h-full flex-col items-center justify-center\">\n <LogoutIcon />\n <div className=\"mt-8 flex flex-col items-center\">\n <h2 className=\"text-lg font-medium text-[#101828]\">\n {t(\"navbar.logout\")}\n </h2>\n <span className=\"text-md mt-2 text-center font-normal text-[#677389]\">\n {t(\"navbar.areYouSureToLogout\")}\n </span>\n </div>\n </div>\n </AlertDialogTitle>\n </AlertDialogHeader>\n <AlertDialogFooter className=\"flex flex-col gap-2\">\n <AlertDialogCancel>{t(\"navbar.cancel\")}</AlertDialogCancel>\n <AlertDialogAction onClick={handleLogout}>\n {t(\"navbar.logout\")}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n\nexport default LogoutDialog;\n","export default \"__VITE_ASSET__8bd9ae3d__\"","export default \"__VITE_ASSET__63bc2d7c__\"","export default \"__VITE_ASSET__e85fed97__\"","import { useEffect, useState } from \"react\";\n\nconst useMediaQuery = (query) => {\n const [matches, setMatches] = useState(false);\n\n useEffect(() => {\n const media = window.matchMedia(query);\n if (media.matches !== matches) {\n setMatches(media.matches);\n }\n const listener = () => setMatches(media.matches);\n window.addEventListener(\"resize\", listener);\n return () => window.removeEventListener(\"resize\", listener);\n }, [matches, query]);\n\n return matches;\n};\n\nexport default useMediaQuery;\n","import React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { NavLink } from \"react-router-dom\";\n\nimport BottomNav from \"../BottomNav\";\n\nimport LogoutDialog from \"@/components/Auth/LogoutDialog\";\n\nimport { ReactComponent as AccountIcon } from \"@/assets/svgs/accounticon.svg\";\nimport { ReactComponent as EgarantiLogo } from \"@/assets/svgs/egarantilogo.svg\";\nimport { ReactComponent as HomeIcon } from \"@/assets/svgs/homeicon.svg\";\nimport { ReactComponent as LayoutGridIcon } from \"@/assets/svgs/layout-grid.svg\";\nimport { ReactComponent as LogoutIcon } from \"@/assets/svgs/logouticon.svg\";\nimport { ReactComponent as ArrowIcon } from \"@/assets/svgs/sub-menu-icon.svg\";\nimport { ReactComponent as CheckVerifiedIcon } from \"@/assets/svgs/verifiedicon.svg\";\n\nimport useMediaQuery from \"@/lib/utils/hooks/useMediaQuery\";\n\nexport default function SideNav() {\n const { t } = useTranslation();\n const isDesktop = useMediaQuery(\"(min-width: 768px)\");\n const [onOpenLogout, setOnOpenLogout] = useState(false);\n const [openSubMenu, setOpenSubMenu] = useState(null);\n\n const userCountry = localStorage.getItem(\"userCountry\");\n\n const menuList = [\n {\n icon: <HomeIcon />,\n title: t(\"navbar.home\"),\n link: \"/\",\n subMenu: [],\n },\n {\n icon: <LayoutGridIcon />,\n title: t(\"navbar.products\"),\n link: \"/products\",\n subMenu: [],\n },\n {\n icon: <CheckVerifiedIcon />,\n title: t(\"navbar.services\"),\n link: \"/services\",\n subMenu: [\n { title: t(\"navbar.service1\"), link: \"/services\" },\n { title: t(\"navbar.myClaims\"), link: \"/claims\" },\n ],\n },\n {\n icon: <AccountIcon />,\n title: t(\"navbar.account\"),\n link: \"/account\",\n subMenu: [],\n },\n ];\n\n const activeClassNames =\n \"text-[#002573] stroke-[#0049E6] bg-[#CCDBFA] text-[#002573] flex items-center gap-[15px] rounded-lg px-[19px] py-[15px]\";\n\n const subMenuActiveClassNames =\n \"text-[#002573] text-[#0040C9] flex items-center gap-[15px] rounded-lg px-[19px] py-[15px] hover:bg-[#F2F5F9] hover:text-[#111729]\";\n\n const handleSubMenuToggle = (index) => {\n setOpenSubMenu(openSubMenu === index ? null : index);\n };\n\n const getNavLinkClassNames = (item) => {\n const isActive =\n item.link === location.pathname ||\n item.subMenu.some((subItem) => subItem.link === location.pathname);\n return isActive\n ? activeClassNames\n : \"flex items-center gap-[15px] rounded-lg px-[19px] py-[15px] hover:bg-[#F2F5F9] hover:text-[#111729]\";\n };\n\n if (!isDesktop) {\n return <BottomNav />;\n } else {\n return (\n <div className=\"sticky left-0 top-0 z-40 hidden h-screen flex-col p-8 shadow-default md:flex\">\n <div className=\"h-fit w-full border-b border-[#E3E8EF] p-6 pt-0\">\n <EgarantiLogo />\n </div>\n <nav className=\"mt-3 h-full\">\n <ul className=\"relative flex h-full flex-col gap-1\">\n {menuList.map((item, index) => (\n <li key={index} className=\"relative\">\n <NavLink\n to={item.link}\n className={getNavLinkClassNames(item)}\n onClick={() => handleSubMenuToggle(index)}\n >\n {item.icon}\n <span>{item.title}</span>\n {item.subMenu.length > 0 && (\n <ArrowIcon\n className={`${\n openSubMenu !== index ? \"rotate-180\" : \"\"\n } ml-auto transform transition-transform`}\n />\n )}\n </NavLink>\n {item.subMenu.length > 0 && openSubMenu === index && (\n <ul className=\"ml-6 mt-1 flex flex-col gap-1\">\n {item.subMenu.map((subItem, subIndex) => (\n <NavLink\n to={subItem.link}\n key={subIndex}\n className={({ isActive }) =>\n isActive\n ? subMenuActiveClassNames\n : \"flex items-center gap-[15px] rounded-lg px-[19px] py-[15px] hover:bg-[#F2F5F9] hover:text-[#111729]\"\n }\n >\n <span>{subItem.title}</span>\n </NavLink>\n ))}\n </ul>\n )}\n </li>\n ))}\n <button\n onClick={() => setOnOpenLogout(true)}\n className=\"absolute -bottom-5 flex w-full items-center gap-[15px] rounded-lg px-[19px] py-[15px] text-[#677389] hover:bg-[#F2F5F9] hover:text-[#111729]\"\n >\n <LogoutIcon />\n <span>{t(\"navbar.logout\")}</span>\n </button>\n </ul>\n </nav>\n <LogoutDialog open={onOpenLogout} onOpenChange={setOnOpenLogout} />\n </div>\n );\n }\n}\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { createContext, useContext } from 'react';\n\nconst MotionContext = createContext({});\nfunction useVisualElementContext() {\n return useContext(MotionContext).visualElement;\n}\n\nexport { MotionContext, useVisualElementContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","const isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","import { useContext, useRef } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useVisualElementContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\n const parent = useVisualElementContext();\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef();\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceId: presenceContext ? presenceContext.id : undefined,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\n useIsomorphicLayoutEffect(() => {\n visualElement && visualElement.render();\n });\n /**\n * If we have optimised appear animations to handoff from, trigger animateChanges\n * from a synchronous useLayoutEffect to ensure there's no flash of incorrectly\n * styled component in the event of a hydration error.\n */\n useIsomorphicLayoutEffect(() => {\n if (visualElement && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useIsomorphicLayoutEffect(() => () => visualElement && visualElement.notify(\"Unmount\"), []);\n return visualElement;\n}\n\nexport { useVisualElement };\n","function isRefObject(ref) {\n return (typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback((instance) => {\n instance && visualState.mount && visualState.mount(instance);\n if (visualElement) {\n instance\n ? visualElement.mount(instance)\n : visualElement.unmount();\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","function isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\n\nconst variantProps = [\n \"initial\",\n \"animate\",\n \"exit\",\n \"whileHover\",\n \"whileDrag\",\n \"whileTap\",\n \"whileFocus\",\n \"whileInView\",\n];\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n","import { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\nimport { isControllingVariants } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","import { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","const createDefinition = (propNames) => ({\n isEnabled: (props) => propNames.some((name) => !!props[name]),\n});\nconst featureDefinitions = {\n measureLayout: createDefinition([\"layout\", \"layoutId\", \"drag\"]),\n animation: createDefinition([\n \"animate\",\n \"exit\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"whileFocus\",\n \"whileDrag\",\n \"whileInView\",\n ]),\n exit: createDefinition([\"exit\"]),\n drag: createDefinition([\"drag\", \"dragControls\"]),\n focus: createDefinition([\"whileFocus\"]),\n hover: createDefinition([\"whileHover\", \"onHoverStart\", \"onHoverEnd\"]),\n tap: createDefinition([\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"]),\n pan: createDefinition([\n \"onPan\",\n \"onPanStart\",\n \"onPanSessionStart\",\n \"onPanEnd\",\n ]),\n inView: createDefinition([\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n ]),\n};\n\nexport { featureDefinitions };\n","import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n if (key === \"projectionNodeConstructor\") {\n featureDefinitions.projectionNodeConstructor = features[key];\n }\n else {\n featureDefinitions[key].Component = features[key];\n }\n }\n}\n\nexport { loadFeatures };\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { useConstant } from '../../utils/use-constant.mjs';\nimport { globalProjectionState } from './state.mjs';\n\nlet id = 1;\nfunction useProjectionId() {\n return useConstant(() => {\n if (globalProjectionState.hasEverUpdated) {\n return id++;\n }\n });\n}\n\nexport { useProjectionId };\n","import { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import React__default from 'react';\n\nclass VisualElementHandler extends React__default.Component {\n /**\n * Update visual element props as soon as we know this update is going to be commited.\n */\n getSnapshotBeforeUpdate() {\n const { visualElement, props } = this.props;\n if (visualElement)\n visualElement.setProps(props);\n return null;\n }\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\n\nexport { VisualElementHandler };\n","import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","import * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { featureDefinitions } from './features/definitions.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { useProjectionId } from '../projection/node/id.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { VisualElementHandler } from './utils/VisualElementHandler.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { SwitchLayoutGroupContext } from '../context/SwitchLayoutGroupContext.mjs';\nimport { motionComponentSymbol } from './utils/symbol.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createMotionComponent({ preloadedFeatures, createVisualElement, projectionNodeConstructor, useRender, useVisualState, Component, }) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n let features = null;\n const context = useCreateMotionContext(props);\n /**\n * Create a unique projection ID for this component. If a new component is added\n * during a layout animation we'll use this to query the DOM and hydrate its ref early, allowing\n * us to measure it as soon as any layout effect flushes pending layout animations.\n *\n * Performance note: It'd be better not to have to search the DOM for these elements.\n * For newly-entering components it could be enough to only correct treeScale, in which\n * case we could mount in a scale-correction mode. This wouldn't be enough for\n * shared element transitions however. Perhaps for those we could revert to a root node\n * that gets forceRendered and layout animations are triggered on its layout effect.\n */\n const projectionId = isStatic ? undefined : useProjectionId();\n /**\n *\n */\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement);\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n const lazyStrictMode = useContext(LazyContext).strict;\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (context.visualElement) {\n features = context.visualElement.loadFeatures(\n // Note: Pass the full new combined props to correctly re-render dynamic feature components.\n configAndProps, lazyStrictMode, preloadedFeatures, projectionId, projectionNodeConstructor ||\n featureDefinitions.projectionNodeConstructor, initialLayoutGroupConfig);\n }\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (React.createElement(VisualElementHandler, { visualElement: context.visualElement, props: configAndProps },\n features,\n React.createElement(MotionContext.Provider, { value: context }, useRender(Component, props, projectionId, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement))));\n }\n const ForwardRefComponent = forwardRef(MotionComponent);\n ForwardRefComponent[motionComponentSymbol] = Component;\n return ForwardRefComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\n\nexport { createMotionComponent };\n","import { createMotionComponent } from '../../motion/index.mjs';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return <div ref={ref} />\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig = {}) {\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n if (typeof Proxy === \"undefined\") {\n return custom;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n return new Proxy(custom, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, custom(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","/**\n * We keep these listed seperately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = new Set(transformPropOrder);\n\nexport { transformPropOrder, transformProps };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","const isMotionValue = (value) => !!(value === null || value === void 0 ? void 0 : value.getVelocity);\n\nexport { isMotionValue };\n","import { transformPropOrder } from './transform.mjs';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nconst sortTransformProps = (a, b) => transformPropOrder.indexOf(a) - transformPropOrder.indexOf(b);\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform({ transform, transformKeys, }, { enableHardwareAcceleration = true, allowTransformNone = true, }, transformIsDefault, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n // Transform keys into their default order - this will determine the output order.\n transformKeys.sort(sortTransformProps);\n // Loop over each transform and build them into transformString\n for (const key of transformKeys) {\n transformString += `${translateAlias[key] || key}(${transform[key]}) `;\n }\n if (enableHardwareAcceleration && !transform.z) {\n transformString += \"translateZ(0)\";\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","/**\n * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n return key.startsWith(\"--\");\n}\n\nexport { isCSSVariable };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","import { clamp } from '../../../utils/clamp.mjs';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n","/**\n * TODO: When we move from string as a source of truth to data models\n * everything in this folder should probably be referred to as models vs types\n */\n// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\nconst floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nconst colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))/gi;\nconst singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))$/i;\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nexport { colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType(\"deg\");\nconst percent = createUnitType(\"%\");\nconst px = createUnitType(\"px\");\nconst vh = createUnitType(\"vh\");\nconst vw = createUnitType(\"vw\");\nconst progressPercentage = {\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n};\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { number } from '../../../value/types/numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { scale, alpha } from '../../../value/types/numbers/index.mjs';\nimport { px, degrees, progressPercentage } from '../../../value/types/numbers/units.mjs';\nimport { int } from './type-int.mjs';\n\nconst numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n size: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Transform props\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n // Misc\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { buildTransform } from './build-transform.mjs';\nimport { isCSSVariable } from '../../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n const { style, vars, transform, transformKeys, transformOrigin } = state;\n transformKeys.length = 0;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n let transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept seperately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariable(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueType = numberValueTypes[key];\n const valueAsType = getValueAsType(value, valueType);\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n transformKeys.push(key);\n // If we already know we have a non-default transform, early return\n if (!transformIsNone)\n continue;\n // Otherwise check to see if this is a default transform\n if (value !== (valueType.default || 0))\n transformIsNone = false;\n }\n else if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] = valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(state, options, transformIsNone, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n","const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformKeys: [],\n transformOrigin: {},\n vars: {},\n});\n\nexport { createHtmlRenderState };\n","import { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState, isStatic) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n return props.transformValues ? props.transformValues(style) : style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState, isStatic);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\n","const animationProps = [\n \"animate\",\n \"exit\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"whileFocus\",\n \"whileDrag\",\n \"whileInView\",\n];\nconst tapProps = [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"];\nconst panProps = [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"];\nconst inViewProps = [\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"viewport\",\n];\n/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"layout\",\n \"layoutId\",\n \"layoutDependency\",\n \"onLayoutAnimationStart\",\n \"onLayoutAnimationComplete\",\n \"onLayoutMeasure\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"drag\",\n \"dragControls\",\n \"dragListener\",\n \"dragConstraints\",\n \"dragDirectionLock\",\n \"dragSnapToOrigin\",\n \"_dragX\",\n \"_dragY\",\n \"dragElastic\",\n \"dragMomentum\",\n \"dragPropagation\",\n \"dragTransition\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"layoutScroll\",\n ...inViewProps,\n ...tapProps,\n ...animationProps,\n ...panProps,\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return validMotionProps.has(key);\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nlet shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] && key.startsWith(\"onDrag\"))) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return `${pxOriginX} ${pxOriginY}`;\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n\nexport { buildSVGPath };\n","import { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, options, isSVGTag, transformTemplate) {\n buildHTMLStyles(state, latest, options, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style, dimensions } = state;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Treat x/y not as shortcuts but as actual attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\n","import { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, isSVGTag(Component), props.transformTemplate);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\n\nfunction createUseRender(forwardMotionProps = false) {\n const useRender = (Component, props, projectionId, ref, { latestValues }, isStatic) => {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = {\n ...filteredProps,\n ...visualProps,\n ref,\n };\n if (projectionId) {\n elementProps[\"data-projection-id\"] = projectionId;\n }\n return createElement(Component, elementProps);\n };\n return useRender;\n}\n\nexport { createUseRender };\n","/**\n * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (const key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) || isForcedMotionValue(key, props)) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n const newValues = scrapeMotionValuesFromProps$1(props);\n for (const key in props) {\n if (isMotionValue(props[key])) {\n const targetKey = key === \"x\" || key === \"y\" ? \"attr\" + key.toUpperCase() : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function resolveVariantFromProps(props, definition, custom, currentValues = {}, currentVelocity = {}) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nconst isCustomValue = (v) => {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nconst resolveFinalValueInKeyframes = (v) => {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n const unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","import { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, onMount, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = (instance) => onMount(props, instance, state);\n }\n return state;\n}\nconst makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext);\n return isStatic ? make() : useConstant(make);\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props);\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = isControllingVariants(props);\n const isVariantNode$1 = isVariantNode(props);\n if (context &&\n isVariantNode$1 &&\n !isControllingVariants$1 &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach((definition) => {\n const resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd)\n values[key] = transitionEnd[key];\n });\n }\n return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nconst svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: (props, instance, { renderState, latestValues }) => {\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, isSVGTag(instance.tagName), props.transformTemplate);\n renderSVG(instance, renderState);\n },\n }),\n};\n\nexport { svgMotionConfig };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nconst htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","import { isSVGComponent } from './is-svg-component.mjs';\nimport { createUseRender } from '../use-render.mjs';\nimport { svgMotionConfig } from '../../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../../html/config-motion.mjs';\n\nfunction createDomMotionConfig(Component, { forwardMotionProps = false }, preloadedFeatures, createVisualElement, projectionNodeConstructor) {\n const baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return {\n ...baseConfig,\n preloadedFeatures,\n useRender: createUseRender(forwardMotionProps),\n createVisualElement,\n projectionNodeConstructor,\n Component,\n };\n}\n\nexport { createDomMotionConfig };\n","var AnimationType;\n(function (AnimationType) {\n AnimationType[\"Animate\"] = \"animate\";\n AnimationType[\"Hover\"] = \"whileHover\";\n AnimationType[\"Tap\"] = \"whileTap\";\n AnimationType[\"Drag\"] = \"whileDrag\";\n AnimationType[\"Focus\"] = \"whileFocus\";\n AnimationType[\"InView\"] = \"whileInView\";\n AnimationType[\"Exit\"] = \"exit\";\n})(AnimationType || (AnimationType = {}));\n\nexport { AnimationType };\n","import { useEffect } from 'react';\n\nfunction addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return <div ref={ref} />\n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(() => {\n const element = ref.current;\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nexport { addDomEvent, useDomEvent };\n","import { AnimationType } from '../render/utils/types.mjs';\nimport { useDomEvent } from '../events/use-dom-event.mjs';\n\n/**\n *\n * @param props\n * @param ref\n * @internal\n */\nfunction useFocusGesture({ whileFocus, visualElement, }) {\n const { animationState } = visualElement;\n const onFocus = () => {\n animationState && animationState.setActive(AnimationType.Focus, true);\n };\n const onBlur = () => {\n animationState && animationState.setActive(AnimationType.Focus, false);\n };\n useDomEvent(visualElement, \"focus\", whileFocus ? onFocus : undefined);\n useDomEvent(visualElement, \"blur\", whileFocus ? onBlur : undefined);\n}\n\nexport { useFocusGesture };\n","function isMouseEvent(event) {\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n const hasTouches = !!event.touches;\n return hasTouches;\n}\n\nexport { isMouseEvent, isTouchEvent };\n","import { isTouchEvent } from '../gestures/utils/event-type.mjs';\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return (event) => {\n const isMouseEvent = event instanceof MouseEvent;\n const isPrimaryPointer = !isMouseEvent ||\n (isMouseEvent && event.button === 0);\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nconst defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType = \"page\") {\n const primaryTouch = e.touches[0] || e.changedTouches[0];\n const point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction pointFromMouse(point, pointType = \"page\") {\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction extractEventInfo(event, pointType = \"page\") {\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n };\n}\nconst wrapHandler = (handler, shouldFilterPrimaryPointer = false) => {\n const listener = (event) => handler(event, extractEventInfo(event));\n return shouldFilterPrimaryPointer\n ? filterPrimaryPointer(listener)\n : listener;\n};\n\nexport { extractEventInfo, wrapHandler };\n","import { isBrowser } from '../utils/is-browser.mjs';\n\n// We check for event support via functions in case they've been mocked by a testing suite.\nconst supportsPointerEvents = () => isBrowser && window.onpointerdown === null;\nconst supportsTouchEvents = () => isBrowser && window.ontouchstart === null;\nconst supportsMouseEvents = () => isBrowser && window.onmousedown === null;\n\nexport { supportsMouseEvents, supportsPointerEvents, supportsTouchEvents };\n","import { addDomEvent, useDomEvent } from './use-dom-event.mjs';\nimport { wrapHandler } from './event-info.mjs';\nimport { supportsPointerEvents, supportsTouchEvents, supportsMouseEvents } from './utils.mjs';\n\nconst mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\",\n};\nconst touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n else if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n else if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction usePointerEvent(ref, eventName, handler, options) {\n return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\nexport { addPointerEvent, usePointerEvent };\n","function createLock(name) {\n let lock = null;\n return () => {\n const openLock = () => {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nconst globalHorizontalLock = createLock(\"dragHorizontal\");\nconst globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n let lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n const openHorizontal = globalHorizontalLock();\n const openVertical = globalVerticalLock();\n if (openHorizontal && openVertical) {\n lock = () => {\n openHorizontal();\n openVertical();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal)\n openHorizontal();\n if (openVertical)\n openVertical();\n }\n }\n return lock;\n}\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n const openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","import { isMouseEvent } from './utils/event-type.mjs';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { usePointerEvent } from '../events/use-pointer-event.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\nfunction createHoverEvent(visualElement, isActive, callback) {\n return (event, info) => {\n if (!isMouseEvent(event) || isDragActive())\n return;\n /**\n * Ensure we trigger animations before firing event callback\n */\n if (visualElement.animationState) {\n visualElement.animationState.setActive(AnimationType.Hover, isActive);\n }\n callback && callback(event, info);\n };\n}\nfunction useHoverGesture({ onHoverStart, onHoverEnd, whileHover, visualElement, }) {\n usePointerEvent(visualElement, \"pointerenter\", onHoverStart || whileHover\n ? createHoverEvent(visualElement, true, onHoverStart)\n : undefined, { passive: !onHoverStart });\n usePointerEvent(visualElement, \"pointerleave\", onHoverEnd || whileHover\n ? createHoverEvent(visualElement, false, onHoverEnd)\n : undefined, { passive: !onHoverEnd });\n}\n\nexport { useHoverGesture };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n","/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","import { useRef } from 'react';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { usePointerEvent, addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.mjs';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { pipe } from '../utils/pipe.mjs';\n\n/**\n * @param handlers -\n * @internal\n */\nfunction useTapGesture({ onTap, onTapStart, onTapCancel, whileTap, visualElement, }) {\n const hasPressListeners = onTap || onTapStart || onTapCancel || whileTap;\n const isPressing = useRef(false);\n const cancelPointerEndListeners = useRef(null);\n /**\n * Only set listener to passive if there are no external listeners.\n */\n const eventOptions = {\n passive: !(onTapStart || onTap || onTapCancel || onPointerDown),\n };\n function removePointerEndListener() {\n cancelPointerEndListeners.current && cancelPointerEndListeners.current();\n cancelPointerEndListeners.current = null;\n }\n function checkPointerEnd() {\n removePointerEndListener();\n isPressing.current = false;\n visualElement.animationState &&\n visualElement.animationState.setActive(AnimationType.Tap, false);\n return !isDragActive();\n }\n function onPointerUp(event, info) {\n if (!checkPointerEnd())\n return;\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n !isNodeOrChild(visualElement.current, event.target)\n ? onTapCancel && onTapCancel(event, info)\n : onTap && onTap(event, info);\n }\n function onPointerCancel(event, info) {\n if (!checkPointerEnd())\n return;\n onTapCancel && onTapCancel(event, info);\n }\n function onPointerDown(event, info) {\n removePointerEndListener();\n if (isPressing.current)\n return;\n isPressing.current = true;\n cancelPointerEndListeners.current = pipe(addPointerEvent(window, \"pointerup\", onPointerUp, eventOptions), addPointerEvent(window, \"pointercancel\", onPointerCancel, eventOptions));\n /**\n * Ensure we trigger animations before firing event callback\n */\n visualElement.animationState &&\n visualElement.animationState.setActive(AnimationType.Tap, true);\n onTapStart && onTapStart(event, info);\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPressListeners ? onPointerDown : undefined, eventOptions);\n useUnmountEffect(removePointerEndListener);\n}\n\nexport { useTapGesture };\n","/**\n * Browser-safe usage of process\n */\nconst defaultEnvironment = \"production\";\nconst env = typeof process === \"undefined\" || process.env === undefined\n ? defaultEnvironment\n : process.env.NODE_ENV || defaultEnvironment;\n\nexport { env };\n","const warned = new Set();\nfunction warnOnce(condition, message, element) {\n if (condition || warned.has(message))\n return;\n console.warn(message);\n if (element)\n console.warn(element);\n warned.add(message);\n}\n\nexport { warnOnce };\n","/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { env } from '../../../utils/process.mjs';\nimport { useRef, useEffect } from 'react';\nimport { AnimationType } from '../../../render/utils/types.mjs';\nimport { warnOnce } from '../../../utils/warn-once.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nfunction useViewport({ visualElement, whileInView, onViewportEnter, onViewportLeave, viewport = {}, }) {\n const state = useRef({\n hasEnteredView: false,\n isInView: false,\n });\n let shouldObserve = Boolean(whileInView || onViewportEnter || onViewportLeave);\n if (viewport.once && state.current.hasEnteredView)\n shouldObserve = false;\n const useObserver = typeof IntersectionObserver === \"undefined\"\n ? useMissingIntersectionObserver\n : useIntersectionObserver;\n useObserver(shouldObserve, state.current, visualElement, viewport);\n}\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nfunction useIntersectionObserver(shouldObserve, state, visualElement, { root, margin: rootMargin, amount = \"some\", once }) {\n useEffect(() => {\n if (!shouldObserve || !visualElement.current)\n return;\n const options = {\n root: root === null || root === void 0 ? void 0 : root.current,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const intersectionCallback = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (state.isInView === isIntersecting)\n return;\n state.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && state.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n state.hasEnteredView = true;\n }\n if (visualElement.animationState) {\n visualElement.animationState.setActive(AnimationType.InView, isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const props = visualElement.getProps();\n const callback = isIntersecting\n ? props.onViewportEnter\n : props.onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(visualElement.current, options, intersectionCallback);\n }, [shouldObserve, root, rootMargin, amount]);\n}\n/**\n * If IntersectionObserver is missing, we activate inView and fire onViewportEnter\n * on mount. This way, the page will be in the state the author expects users\n * to see it in for everyone.\n */\nfunction useMissingIntersectionObserver(shouldObserve, state, visualElement, { fallback = true }) {\n useEffect(() => {\n if (!shouldObserve || !fallback)\n return;\n if (env !== \"production\") {\n warnOnce(false, \"IntersectionObserver not available on this device. whileInView animations will trigger on mount.\");\n }\n /**\n * Fire this in an rAF because, at this point, the animation state\n * won't have flushed for the first time and there's certain logic in\n * there that behaves differently on the initial animation.\n *\n * This hook should be quite rarely called so setting this in an rAF\n * is preferred to changing the behaviour of the animation state.\n */\n requestAnimationFrame(() => {\n state.hasEnteredView = true;\n const { onViewportEnter } = visualElement.getProps();\n onViewportEnter && onViewportEnter(null);\n if (visualElement.animationState) {\n visualElement.animationState.setActive(AnimationType.InView, true);\n }\n });\n }, [shouldObserve]);\n}\n\nexport { useViewport };\n","const makeRenderlessComponent = (hook) => (props) => {\n hook(props);\n return null;\n};\n\nexport { makeRenderlessComponent };\n","import { useFocusGesture } from '../../gestures/use-focus-gesture.mjs';\nimport { useHoverGesture } from '../../gestures/use-hover-gesture.mjs';\nimport { useTapGesture } from '../../gestures/use-tap-gesture.mjs';\nimport { useViewport } from './viewport/use-viewport.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nconst gestureAnimations = {\n inView: makeRenderlessComponent(useViewport),\n tap: makeRenderlessComponent(useTapGesture),\n focus: makeRenderlessComponent(useFocusGesture),\n hover: makeRenderlessComponent(useHoverGesture),\n};\n\nexport { gestureAnimations };\n","import { useContext, useId, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n // Replace with useId when released in React\n const id = useId();\n useEffect(() => register(id), []);\n const safeToRemove = () => onExitComplete && onExitComplete(id);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^\\-?\\d*\\.?\\d+$/.test(v);\n\nexport { isNumericalString };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/.test(v);\n\nexport { isZeroValueString };\n","const frameData = {\n delta: 0,\n timestamp: 0,\n};\n\nexport { frameData };\n","/*\n Detect and load appropriate clock setting for the execution environment\n */\nconst defaultTimestep = (1 / 60) * 1000;\nconst getCurrentTime = typeof performance !== \"undefined\"\n ? () => performance.now()\n : () => Date.now();\nconst onNextFrame = typeof window !== \"undefined\"\n ? (callback) => window.requestAnimationFrame(callback)\n : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep);\n\nexport { defaultTimestep, onNextFrame };\n","function createRenderStep(runNextFrame) {\n /**\n * We create and reuse two arrays, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let toRun = [];\n let toRunNextFrame = [];\n /**\n *\n */\n let numToRun = 0;\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n // If the buffer doesn't already contain this callback, add it\n if (buffer.indexOf(callback) === -1) {\n buffer.push(callback);\n // If we're adding it to the currently running buffer, update its measured size\n if (addToCurrentFrame && isProcessing)\n numToRun = toRun.length;\n }\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n const index = toRunNextFrame.indexOf(callback);\n if (index !== -1)\n toRunNextFrame.splice(index, 1);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [toRun, toRunNextFrame] = [toRunNextFrame, toRun];\n // Clear the next frame list\n toRunNextFrame.length = 0;\n // Execute this frame\n numToRun = toRun.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = toRun[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { onNextFrame, defaultTimestep } from './on-next-frame.mjs';\nimport { createRenderStep } from './create-render-step.mjs';\nimport { frameData } from './data.mjs';\n\nconst maxElapsed = 40;\nlet useDefaultElapsed = true;\nlet runNextFrame = false;\nlet isProcessing = false;\nconst stepsOrder = [\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n}, {});\nconst sync = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n startLoop();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n}, {});\nconst cancelSync = stepsOrder.reduce((acc, key) => {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nconst flushSync = stepsOrder.reduce((acc, key) => {\n acc[key] = () => steps[key].process(frameData);\n return acc;\n}, {});\nconst processStep = (stepId) => steps[stepId].process(frameData);\nconst processFrame = (timestamp) => {\n runNextFrame = false;\n frameData.delta = useDefaultElapsed\n ? defaultTimestep\n : Math.max(Math.min(timestamp - frameData.timestamp, maxElapsed), 1);\n frameData.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (runNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nconst startLoop = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing)\n onNextFrame(processFrame);\n};\n\nexport { cancelSync, flushSync, sync };\n","function addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\nexport { SubscriptionManager };\n","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","import { frameData } from '../frameloop/data.mjs';\nimport { sync } from '../frameloop/index.mjs';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\n\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n constructor(init, options = {}) {\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"7.10.3\";\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n this.lastUpdated = 0;\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = false;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v, render = true) => {\n this.prev = this.current;\n this.current = v;\n // Update timestamp\n const { delta, timestamp } = frameData;\n if (this.lastUpdated !== timestamp) {\n this.timeDelta = delta;\n this.lastUpdated = timestamp;\n sync.postRender(this.scheduleVelocityCheck);\n }\n // Update update subscribers\n if (this.prev !== this.current && this.events.change) {\n this.events.change.notify(this.current);\n }\n // Update velocity subscribers\n if (this.events.velocityChange) {\n this.events.velocityChange.notify(this.getVelocity());\n }\n // Update render subscribers\n if (render && this.events.renderRequest) {\n this.events.renderRequest.notify(this.current);\n }\n };\n /**\n * Schedule a velocity check for the next frame.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.scheduleVelocityCheck = () => sync.postRender(this.velocityCheck);\n /**\n * Updates `prev` with `current` if the value hasn't been updated this frame.\n * This ensures velocity calculations return `0`.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.velocityCheck = ({ timestamp }) => {\n if (timestamp !== this.lastUpdated) {\n this.prev = this.current;\n if (this.events.velocityChange) {\n this.events.velocityChange.notify(this.getVelocity());\n }\n }\n };\n this.hasAnimated = false;\n this.prev = this.current = init;\n this.canTrackVelocity = isFloat(this.current);\n this.owner = options.owner;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return <motion.div style={{ x }} />\n * }\n * ```\n *\n * @privateRemarks\n *\n * We could look into a `useOnChange` hook if the above lifecycle management proves confusing.\n *\n * ```jsx\n * useOnChange(x, () => {})\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n attach(passiveEffect) {\n this.passiveEffect = passiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v, render = true) {\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = prev;\n this.timeDelta = delta;\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n return this.canTrackVelocity\n ? // These casts could be avoided if parseFloat would be typed better\n velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prev), this.timeDelta)\n : 0;\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n start(animation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.stopAnimation = animation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.stopAnimation) {\n this.stopAnimation();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.stopAnimation;\n }\n clearAnimation() {\n this.stopAnimation = null;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.clearListeners();\n this.stop();\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\nexport { MotionValue, motionValue };\n","import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { clamp } from '../../../utils/clamp.mjs';\nimport { number, alpha } from '../numbers/index.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: isColorString(\"rgb\", \"red\"),\n parse: splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString(\"hsl\", \"hue\"),\n parse: splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n","import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","import { color } from '../color/index.mjs';\nimport { number } from '../numbers/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nconst colorToken = \"${c}\";\nconst numberToken = \"${n}\";\nfunction test(v) {\n var _a, _b;\n return (isNaN(v) &&\n isString(v) &&\n (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) +\n (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) >\n 0);\n}\nfunction analyseComplexValue(v) {\n if (typeof v === \"number\")\n v = `${v}`;\n const values = [];\n let numColors = 0;\n let numNumbers = 0;\n const colors = v.match(colorRegex);\n if (colors) {\n numColors = colors.length;\n // Strip colors from input so they're not picked up by number regex.\n // There's a better way to combine these regex searches, but its beyond my regex skills\n v = v.replace(colorRegex, colorToken);\n values.push(...colors.map(color.parse));\n }\n const numbers = v.match(floatRegex);\n if (numbers) {\n numNumbers = numbers.length;\n v = v.replace(floatRegex, numberToken);\n values.push(...numbers.map(number.parse));\n }\n return { values, numColors, numNumbers, tokenised: v };\n}\nfunction parse(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { values, numColors, tokenised } = analyseComplexValue(source);\n const numValues = values.length;\n return (v) => {\n let output = tokenised;\n for (let i = 0; i < numValues; i++) {\n output = output.replace(i < numColors ? colorToken : numberToken, i < numColors\n ? color.transform(v[i])\n : sanitize(v[i]));\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parse(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = { test, parse, createTransformer, getAnimatableNone };\n\nexport { analyseComplexValue, complex };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /([a-z-]*)\\(.*?\\)/g;\nconst filter = {\n ...complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\nexport { filter };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { complex } from '../../../value/types/complex/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n var _a;\n let defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);\n}\n\nexport { getAnimatableNone };\n","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n","import { number } from '../../../value/types/numbers/index.mjs';\nimport { px, percent, degrees, vw, vh } from '../../../value/types/numbers/units.mjs';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nexport { dimensionValueTypes, findDimensionValueType };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { complex } from '../../../value/types/complex/index.mjs';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nexport { findValueType };\n","import { resolveVariantFromProps } from './resolve-variants.mjs';\n\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n const current = {};\n visualElement.values.forEach((value, key) => (current[key] = value.get()));\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n const velocity = {};\n visualElement.values.forEach((value, key) => (velocity[key] = value.getVelocity()));\n return velocity;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\n\nexport { resolveVariant };\n","import { isNumericalString } from '../../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { complex } from '../../value/types/complex/index.mjs';\nimport { getAnimatableNone } from '../dom/value-types/animatable-none.mjs';\nimport { findValueType } from '../dom/value-types/find.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n const reversedLabels = [...variantLabels].reverse();\n reversedLabels.forEach((key) => {\n var _a;\n const variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => {\n setVariants(child, variantLabels);\n });\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b;\n const newValueKeys = Object.keys(target).filter((key) => !visualElement.hasValue(key));\n const numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (let i = 0; i < numNewValues; i++) {\n const key = newValueKeys[i];\n const targetValue = target[key];\n let value = null;\n /**\n * If the target is a series of keyframes, we can use the first value\n * in the array. If this first value is null, we'll still need to read from the DOM.\n */\n if (Array.isArray(targetValue)) {\n value = targetValue[0];\n }\n /**\n * If the target isn't keyframes, or the first keyframe was null, we need to\n * first check if an origin value was explicitly defined in the transition as \"from\",\n * if not read the value from the DOM. As an absolute fallback, take the defined target value.\n */\n if (value === null) {\n value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];\n }\n /**\n * If value is still undefined or null, ignore it. Preferably this would throw,\n * but this was causing issues in Framer.\n */\n if (value === undefined || value === null)\n continue;\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(targetValue)) {\n value = getAnimatableNone(key, targetValue);\n }\n visualElement.addValue(key, motionValue(value, { owner: visualElement }));\n if (origin[key] === undefined) {\n origin[key] = value;\n }\n if (value !== null)\n visualElement.setBaseTarget(key, value);\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n const valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n var _a;\n const origin = {};\n for (const key in target) {\n const transitionOrigin = getOriginFromTransition(key, transition);\n origin[key] =\n transitionOrigin !== undefined\n ? transitionOrigin\n : (_a = visualElement.getValue(key)) === null || _a === void 0 ? void 0 : _a.get();\n }\n return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };\n","import { isMotionValue } from '../utils/is-motion-value.mjs';\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nexport { isWillChangeMotionValue };\n","const appearStoreId = (id, value) => `${id}: ${value}`;\n\nexport { appearStoreId };\n","import { sync } from '../../frameloop/index.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\nimport { appearStoreId } from './store-id.mjs';\n\nfunction handoffOptimizedAppearAnimation(id, name) {\n const { MotionAppearAnimations } = window;\n const animationId = appearStoreId(id, transformProps.has(name) ? \"transform\" : name);\n const animation = MotionAppearAnimations && MotionAppearAnimations.get(animationId);\n if (animation) {\n /**\n * We allow the animation to persist until the next frame:\n * 1. So it continues to play until Framer Motion is ready to render\n * (avoiding a potential flash of the element's original state)\n * 2. As all independent transforms share a single transform animation, stopping\n * it synchronously would prevent subsequent transforms from handing off.\n */\n sync.render(() => {\n /**\n * Animation.cancel() throws so it needs to be wrapped in a try/catch\n */\n try {\n animation.cancel();\n MotionAppearAnimations.delete(animationId);\n }\n catch (e) { }\n });\n return animation.currentTime || 0;\n }\n else {\n return 0;\n }\n}\n\nexport { handoffOptimizedAppearAnimation };\n","import { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nexport { optimizedAppearDataAttribute, optimizedAppearDataId };\n","var warning = function () { };\r\nvar invariant = function () { };\r\nif (process.env.NODE_ENV !== 'production') {\r\n warning = function (check, message) {\r\n if (!check && typeof console !== 'undefined') {\r\n console.warn(message);\r\n }\r\n };\r\n invariant = function (check, message) {\r\n if (!check) {\r\n throw new Error(message);\r\n }\r\n };\r\n}\n\nexport { invariant, warning };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\n\nexport { secondsToMilliseconds };\n","const instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\nexport { mirrorEasing };\n","// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\nexport { reverseEasing };\n","import { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst easeIn = (p) => p * p;\nconst easeOut = reverseEasing(easeIn);\nconst easeInOut = mirrorEasing(easeIn);\n\nexport { easeIn, easeInOut, easeOut };\n","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\n","// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","import { mix } from './mix.mjs';\nimport { invariant } from 'hey-listen';\nimport { hslaToRgba } from './hsla-to-rgba.mjs';\nimport { hex } from '../value/types/color/hex.mjs';\nimport { rgba } from '../value/types/color/rgba.mjs';\nimport { hsla } from '../value/types/color/hsla.mjs';\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n return Math.sqrt(Math.max(0, v * (to * to - fromExpo) + fromExpo));\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n invariant(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Framer Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mix(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","import { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { pipe } from './pipe.mjs';\nimport { warning } from 'hey-listen';\nimport { color } from '../value/types/color/index.mjs';\nimport { complex, analyseComplexValue } from '../value/types/complex/index.mjs';\n\nfunction getMixer(origin, target) {\n if (typeof origin === \"number\") {\n return (v) => mix(origin, target, v);\n }\n else if (color.test(origin)) {\n return mixColor(origin, target);\n }\n else {\n return mixComplex(origin, target);\n }\n}\nconst mixArray = (from, to) => {\n const output = [...from];\n const numValues = output.length;\n const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));\n return (v) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n return output;\n };\n};\nconst mixObject = (origin, target) => {\n const output = { ...origin, ...target };\n const blendValue = {};\n for (const key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n};\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.numColors === targetStats.numColors &&\n originStats.numNumbers >= targetStats.numNumbers;\n if (canInterpolate) {\n return pipe(mixArray(originStats.values, targetStats.values), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return (p) => `${p > 0 ? target : origin}`;\n }\n};\n\nexport { mixArray, mixComplex, mixObject };\n","/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","import { invariant } from 'hey-listen';\nimport { color } from '../value/types/color/index.mjs';\nimport { clamp } from './clamp.mjs';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.mjs';\nimport { pipe } from './pipe.mjs';\nimport { progress } from './progress.mjs';\n\nconst mixNumber = (from, to) => (p) => mix(from, to, p);\nfunction detectMixerFactory(v) {\n if (typeof v === \"number\") {\n return mixNumber;\n }\n else if (typeof v === \"string\") {\n if (color.test(v)) {\n return mixColor;\n }\n else {\n return mixComplex;\n }\n }\n else if (Array.isArray(v)) {\n return mixArray;\n }\n else if (typeof v === \"object\") {\n return mixObject;\n }\n return mixNumber;\n}\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || detectMixerFactory(output[0]);\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revist this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, \"Both input and output ranges must be the same length\");\n invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, \"Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.\");\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","const noop = (any) => any;\n\nexport { noop };\n","import { noop } from '../utils/noop.mjs';\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circOut);\n\nexport { circIn, circInOut, circOut };\n","import { cubicBezier } from './cubic-bezier.mjs';\nimport { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst backOut = cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = reverseEasing(backOut);\nconst backInOut = mirrorEasing(backIn);\n\nexport { backIn, backInOut, backOut };\n","import { backIn } from './back.mjs';\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\nexport { anticipate };\n","import { invariant } from 'hey-listen';\nimport { cubicBezier } from '../../easing/cubic-bezier.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { easeIn, easeInOut, easeOut } from '../../easing/ease.mjs';\nimport { circIn, circInOut, circOut } from '../../easing/circ.mjs';\nimport { backIn, backInOut, backOut } from '../../easing/back.mjs';\nimport { anticipate } from '../../easing/anticipate.mjs';\n\nconst easingLookup = {\n linear: noop,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n};\nconst easingDefinitionToFunction = (definition) => {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);\n const [x1, y1, x2, y2] = definition;\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`);\n return easingLookup[definition];\n }\n return definition;\n};\nconst isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { easingDefinitionToFunction, isEasingArray };\n","import { easeInOut } from '../../easing/ease.mjs';\nimport { interpolate } from '../../utils/interpolate.mjs';\nimport { isEasingArray, easingDefinitionToFunction } from '../utils/easing.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction defaultOffset(values) {\n const numValues = values.length;\n return values.map((_value, i) => i !== 0 ? i / (numValues - 1) : 0);\n}\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\nfunction keyframes({ keyframes: keyframeValues, ease = easeInOut, times, duration = 300, }) {\n keyframeValues = [...keyframeValues];\n const origin = keyframes[0];\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = convertOffsetToTimes(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframes.length\n ? times\n : defaultOffset(keyframeValues), duration);\n function createInterpolator() {\n return interpolate(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n }\n let interpolator = createInterpolator();\n return {\n next: (t) => {\n state.value = interpolator(t);\n state.done = t >= duration;\n return state;\n },\n flipTarget: () => {\n keyframeValues.reverse();\n interpolator = createInterpolator();\n },\n };\n}\n\nexport { convertOffsetToTimes, defaultEasing, defaultOffset, keyframes };\n","import { warning } from 'hey-listen';\nimport { clamp } from '../../utils/clamp.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, duration / 1000);\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = duration * 1000;\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { findSpring, calcAngularFreq } from './find-spring.mjs';\nimport { velocityPerSecond } from '../../utils/velocity-per-second.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: 0.0,\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = {\n ...springOptions,\n ...derived,\n velocity: 0.0,\n mass: 1.0,\n };\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nconst velocitySampleDuration = 5;\n/**\n * This is based on the spring implementation of Wobble https://github.com/skevy/wobble\n */\nfunction spring({ keyframes, restSpeed = 2, restDelta = 0.01, ...options }) {\n let origin = keyframes[0];\n let target = keyframes[keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, velocity, duration, isResolvedFromDuration, } = getSpringOptions(options);\n let resolveSpring = zero;\n let initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n function createSpring() {\n const initialDelta = target - origin;\n const undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n /**\n * If we're working within what looks like a 0-1 range, change the default restDelta\n * to 0.01\n */\n if (restDelta === undefined) {\n restDelta = Math.min(Math.abs(target - origin) / 100, 0.4);\n }\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) *\n t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n }\n createSpring();\n return {\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = initialVelocity;\n if (t !== 0) {\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n const prevT = Math.max(0, t - velocitySampleDuration);\n currentVelocity = velocityPerSecond(current - resolveSpring(prevT), t - prevT);\n }\n else {\n currentVelocity = 0;\n }\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n flipTarget: () => {\n initialVelocity = -initialVelocity;\n [origin, target] = [target, origin];\n createSpring();\n },\n };\n}\nspring.needsInterpolation = (a, b) => typeof a === \"string\" || typeof b === \"string\";\nconst zero = (_t) => 0;\n\nexport { spring };\n","function decay({ \n/**\n * The decay animation dynamically calculates an end of the animation\n * based on the initial keyframe, so we only need to define a single keyframe\n * as default.\n */\nkeyframes = [0], velocity = 0, power = 0.8, timeConstant = 350, restDelta = 0.5, modifyTarget, }) {\n const origin = keyframes[0];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n return {\n next: (t) => {\n const delta = -amplitude * Math.exp(-t / timeConstant);\n state.done = !(delta > restDelta || delta < -restDelta);\n state.value = state.done ? target : target + delta;\n return state;\n },\n flipTarget: () => { },\n };\n}\n\nexport { decay };\n","import { keyframes } from './keyframes.mjs';\nimport { spring } from './spring.mjs';\nimport { decay } from './decay.mjs';\nimport { sync, cancelSync } from '../../frameloop/index.mjs';\nimport { interpolate } from '../../utils/interpolate.mjs';\n\nconst types = {\n decay,\n keyframes: keyframes,\n tween: keyframes,\n spring,\n};\nfunction loopElapsed(elapsed, duration, delay = 0) {\n return elapsed - duration - delay;\n}\nfunction reverseElapsed(elapsed, duration = 0, delay = 0, isForwardPlayback = true) {\n return isForwardPlayback\n ? loopElapsed(duration + -elapsed, duration, delay)\n : duration - (elapsed - duration) + delay;\n}\nfunction hasRepeatDelayElapsed(elapsed, duration, delay, isForwardPlayback) {\n return isForwardPlayback ? elapsed >= duration + delay : elapsed <= -delay;\n}\nconst framesync = (update) => {\n const passTimestamp = ({ delta }) => update(delta);\n return {\n start: () => sync.update(passTimestamp, true),\n stop: () => cancelSync.update(passTimestamp),\n };\n};\nfunction animate({ duration, driver = framesync, elapsed = 0, repeat: repeatMax = 0, repeatType = \"loop\", repeatDelay = 0, keyframes, autoplay = true, onPlay, onStop, onComplete, onRepeat, onUpdate, type = \"keyframes\", ...options }) {\n var _a, _b;\n let driverControls;\n let repeatCount = 0;\n let computedDuration = duration;\n let latest;\n let isComplete = false;\n let isForwardPlayback = true;\n let interpolateFromNumber;\n const animator = types[keyframes.length > 2 ? \"keyframes\" : type];\n const origin = keyframes[0];\n const target = keyframes[keyframes.length - 1];\n if ((_b = (_a = animator).needsInterpolation) === null || _b === void 0 ? void 0 : _b.call(_a, origin, target)) {\n interpolateFromNumber = interpolate([0, 100], [origin, target], {\n clamp: false,\n });\n keyframes = [0, 100];\n }\n const animation = animator({\n ...options,\n duration,\n keyframes,\n });\n function repeat() {\n repeatCount++;\n if (repeatType === \"reverse\") {\n isForwardPlayback = repeatCount % 2 === 0;\n elapsed = reverseElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback);\n }\n else {\n elapsed = loopElapsed(elapsed, computedDuration, repeatDelay);\n if (repeatType === \"mirror\")\n animation.flipTarget();\n }\n isComplete = false;\n onRepeat && onRepeat();\n }\n function complete() {\n driverControls.stop();\n onComplete && onComplete();\n }\n function update(delta) {\n if (!isForwardPlayback)\n delta = -delta;\n elapsed += delta;\n if (!isComplete) {\n const state = animation.next(Math.max(0, elapsed));\n latest = state.value;\n if (interpolateFromNumber)\n latest = interpolateFromNumber(latest);\n isComplete = isForwardPlayback ? state.done : elapsed <= 0;\n }\n onUpdate && onUpdate(latest);\n if (isComplete) {\n if (repeatCount === 0) {\n computedDuration =\n computedDuration !== undefined ? computedDuration : elapsed;\n }\n if (repeatCount < repeatMax) {\n hasRepeatDelayElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback) && repeat();\n }\n else {\n complete();\n }\n }\n }\n function play() {\n onPlay && onPlay();\n driverControls = driver(update);\n driverControls.start();\n }\n autoplay && play();\n return {\n stop: () => {\n onStop && onStop();\n driverControls.stop();\n },\n sample: (t) => {\n return animation.next(Math.max(0, t));\n },\n };\n}\n\nexport { animate, hasRepeatDelayElapsed, loopElapsed, reverseElapsed };\n","function isWaapiSupportedEasing(easing) {\n return (!easing || // Default easing\n Array.isArray(easing) || // Bezier curve\n (typeof easing === \"string\" && supportedWaapiEasing[easing]));\n}\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: cubicBezierAsString([0, 0.65, 0.55, 1]),\n circOut: cubicBezierAsString([0.55, 0, 1, 0.45]),\n backIn: cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n backOut: cubicBezierAsString([0.33, 1.53, 0.69, 0.99]),\n};\nfunction mapEasingToNativeEasing(easing) {\n if (!easing)\n return undefined;\n return Array.isArray(easing)\n ? cubicBezierAsString(easing)\n : supportedWaapiEasing[easing];\n}\n\nexport { cubicBezierAsString, isWaapiSupportedEasing, mapEasingToNativeEasing, supportedWaapiEasing };\n","import { mapEasingToNativeEasing } from './easing.mjs';\n\nfunction animateStyle(element, valueName, keyframes, { delay = 0, duration, repeat = 0, repeatType = \"loop\", ease, times, } = {}) {\n return element.animate({ [valueName]: keyframes, offset: times }, {\n delay,\n duration,\n easing: mapEasingToNativeEasing(ease),\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n });\n}\n\nexport { animateStyle };\n","import { sync } from '../../frameloop/index.mjs';\nimport { animate } from '../legacy-popmotion/index.mjs';\nimport { animateStyle } from './index.mjs';\nimport { isWaapiSupportedEasing } from './easing.mjs';\n\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\nfunction createAcceleratedAnimation(value, valueName, { onUpdate, onComplete, ...options }) {\n let { keyframes, duration = 0.3, elapsed = 0, ease } = options;\n /**\n * If this animation needs pre-generated keyframes then generate.\n */\n if (options.type === \"spring\" || !isWaapiSupportedEasing(options.ease)) {\n const sampleAnimation = animate(options);\n let state = { done: false, value: keyframes[0] };\n const pregeneratedKeyframes = [];\n let t = 0;\n while (!state.done) {\n state = sampleAnimation.sample(t);\n pregeneratedKeyframes.push(state.value);\n t += sampleDelta;\n }\n keyframes = pregeneratedKeyframes;\n duration = t - sampleDelta;\n ease = \"linear\";\n }\n const animation = animateStyle(value.owner.current, valueName, keyframes, {\n ...options,\n delay: -elapsed,\n duration,\n /**\n * This function is currently not called if ease is provided\n * as a function so the cast is safe.\n *\n * However it would be possible for a future refinement to port\n * in easing pregeneration from Motion One for browsers that\n * support the upcoming `linear()` easing function.\n */\n ease: ease,\n });\n /**\n * Prefer the `onfinish` prop as it's more widely supported than\n * the `finished` promise.\n *\n * Here, we synchronously set the provided MotionValue to the end\n * keyframe. If we didn't, when the WAAPI animation is finished it would\n * be removed from the element which would then revert to its old styles.\n */\n animation.onfinish = () => {\n value.set(keyframes[keyframes.length - 1]);\n onComplete && onComplete();\n };\n /**\n * Animation interrupt callback.\n */\n return () => {\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read commited styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n const { currentTime } = animation;\n if (currentTime) {\n const sampleAnimation = animate(options);\n value.setWithVelocity(sampleAnimation.sample(currentTime - sampleDelta).value, sampleAnimation.sample(currentTime).value, sampleDelta);\n }\n sync.update(() => animation.cancel());\n };\n}\n\nexport { createAcceleratedAnimation };\n","import { sync, cancelSync } from '../frameloop/index.mjs';\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = performance.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n cancelSync.read(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n sync.read(checkElapsed, true);\n return () => cancelSync.read(checkElapsed);\n}\n\nexport { delay };\n","import { delay } from '../utils/delay.mjs';\n\nfunction createInstantAnimation({ keyframes, elapsed, onUpdate, onComplete, }) {\n const setValue = () => {\n onUpdate && onUpdate(keyframes[keyframes.length - 1]);\n onComplete && onComplete();\n return () => { };\n };\n return elapsed ? delay(setValue, -elapsed) : setValue();\n}\n\nexport { createInstantAnimation };\n","import { animate } from './index.mjs';\nimport { velocityPerSecond } from '../../utils/velocity-per-second.mjs';\nimport { frameData } from '../../frameloop/data.mjs';\n\nfunction inertia({ keyframes, velocity = 0, min, max, power = 0.8, timeConstant = 750, bounceStiffness = 500, bounceDamping = 10, restDelta = 1, modifyTarget, driver, onUpdate, onComplete, onStop, }) {\n const origin = keyframes[0];\n let currentAnimation;\n function isOutOfBounds(v) {\n return (min !== undefined && v < min) || (max !== undefined && v > max);\n }\n function findNearestBoundary(v) {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n }\n function startAnimation(options) {\n currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n currentAnimation = animate({\n keyframes: [0, 1],\n velocity: 0,\n ...options,\n driver,\n onUpdate: (v) => {\n var _a;\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(v);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, v);\n },\n onComplete,\n onStop,\n });\n }\n function startSpring(options) {\n startAnimation({\n type: \"spring\",\n stiffness: bounceStiffness,\n damping: bounceDamping,\n restDelta,\n ...options,\n });\n }\n if (isOutOfBounds(origin)) {\n // Start the animation with spring if outside the defined boundaries\n startSpring({\n velocity,\n keyframes: [origin, findNearestBoundary(origin)],\n });\n }\n else {\n /**\n * Or if the value is out of bounds, simulate the inertia movement\n * with the decay animation.\n *\n * Pre-calculate the target so we can detect if it's out-of-bounds.\n * If it is, we want to check per frame when to switch to a spring\n * animation\n */\n let target = power * velocity + origin;\n if (typeof modifyTarget !== \"undefined\")\n target = modifyTarget(target);\n const boundary = findNearestBoundary(target);\n const heading = boundary === min ? -1 : 1;\n let prev;\n let current;\n const checkBoundary = (v) => {\n prev = current;\n current = v;\n velocity = velocityPerSecond(v - prev, frameData.delta);\n if ((heading === 1 && v > boundary) ||\n (heading === -1 && v < boundary)) {\n startSpring({ keyframes: [v, boundary], velocity });\n }\n };\n startAnimation({\n type: \"decay\",\n keyframes: [origin, 0],\n velocity,\n timeConstant,\n power,\n restDelta,\n modifyTarget,\n onUpdate: isOutOfBounds(target) ? checkBoundary : undefined,\n });\n }\n return {\n stop: () => currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop(),\n };\n}\n\nexport { inertia };\n","const underDampedSpring = () => ({\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n});\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst linearTween = () => ({\n type: \"keyframes\",\n ease: \"linear\",\n duration: 0.3,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\nconst defaultTransitions = {\n x: underDampedSpring,\n y: underDampedSpring,\n z: underDampedSpring,\n rotate: underDampedSpring,\n rotateX: underDampedSpring,\n rotateY: underDampedSpring,\n rotateZ: underDampedSpring,\n scaleX: criticallyDampedSpring,\n scaleY: criticallyDampedSpring,\n scale: criticallyDampedSpring,\n opacity: linearTween,\n backgroundColor: linearTween,\n color: linearTween,\n default: criticallyDampedSpring,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else {\n const factory = defaultTransitions[valueKey] || defaultTransitions.default;\n return factory(keyframes[1]);\n }\n};\n\nexport { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };\n","import { complex } from '../../value/types/complex/index.mjs';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * âŒ: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (key, value) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n complex.test(value) && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","import { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\n\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, ...transition }) {\n return !!Object.keys(transition).length;\n}\nfunction isZero(value) {\n return (value === 0 ||\n (typeof value === \"string\" &&\n parseFloat(value) === 0 &&\n value.indexOf(\" \") === -1));\n}\nfunction getZeroUnit(potentialUnitType) {\n return typeof potentialUnitType === \"number\"\n ? 0\n : getAnimatableNone(\"\", potentialUnitType);\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n\nexport { getValueTransition, getZeroUnit, isTransitionDefined, isZero };\n","import { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { isZero, getZeroUnit } from './transitions.mjs';\n\nfunction getKeyframes(value, valueName, target, transition) {\n const isTargetAnimatable = isAnimatable(valueName, target);\n let origin = transition.from !== undefined ? transition.from : value.get();\n if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\n /**\n * If we're trying to animate from \"none\", try and get an animatable version\n * of the target. This could be improved to work both ways.\n */\n origin = getAnimatableNone(valueName, target);\n }\n else if (isZero(origin) && typeof target === \"string\") {\n origin = getZeroUnit(target);\n }\n else if (!Array.isArray(target) &&\n isZero(target) &&\n typeof origin === \"string\") {\n target = getZeroUnit(origin);\n }\n /**\n * If the target has been defined as a series of keyframes\n */\n if (Array.isArray(target)) {\n /**\n * Ensure an initial wildcard keyframe is hydrated by the origin.\n * TODO: Support extra wildcard keyframes i.e [1, null, 0]\n */\n if (target[0] === null) {\n target[0] = origin;\n }\n return target;\n }\n else {\n return [origin, target];\n }\n}\n\nexport { getKeyframes };\n","const featureTests = {\n waapi: () => Object.hasOwnProperty.call(Element.prototype, \"animate\"),\n};\nconst results = {};\nconst supports = {};\n/**\n * Generate features tests that cache their results.\n */\nfor (const key in featureTests) {\n supports[key] = () => {\n if (results[key] === undefined)\n results[key] = featureTests[key]();\n return results[key];\n };\n}\n\nexport { supports };\n","import { warning } from 'hey-listen';\nimport { secondsToMilliseconds } from '../utils/time-conversion.mjs';\nimport { instantAnimationState } from '../utils/use-instant-transition-state.mjs';\nimport { createAcceleratedAnimation } from './waapi/create-accelerated-animation.mjs';\nimport { createInstantAnimation } from './create-instant-animation.mjs';\nimport { animate } from './legacy-popmotion/index.mjs';\nimport { inertia } from './legacy-popmotion/inertia.mjs';\nimport { getDefaultTransition } from './utils/default-transitions.mjs';\nimport { isAnimatable } from './utils/is-animatable.mjs';\nimport { getKeyframes } from './utils/keyframes.mjs';\nimport { getValueTransition, isTransitionDefined } from './utils/transitions.mjs';\nimport { supports } from './waapi/supports.mjs';\n\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\"opacity\"]);\nconst createMotionValueAnimation = (valueName, value, target, transition = {}) => {\n return (onComplete) => {\n const valueTransition = getValueTransition(transition, valueName) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - secondsToMilliseconds(delay);\n const keyframes = getKeyframes(value, valueName, target, valueTransition);\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(valueName, originKeyframe);\n const isTargetAnimatable = isAnimatable(valueName, targetKeyframe);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${valueName} from \"${originKeyframe}\" to \"${targetKeyframe}\". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \\`style\\` property.`);\n let options = {\n keyframes,\n velocity: value.getVelocity(),\n ...valueTransition,\n elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n };\n if (!isOriginAnimatable ||\n !isTargetAnimatable ||\n instantAnimationState.current ||\n valueTransition.type === false) {\n /**\n * If we can't animate this value, or the global instant animation flag is set,\n * or this is simply defined as an instant transition, return an instant transition.\n */\n return createInstantAnimation(options);\n }\n else if (valueTransition.type === \"inertia\") {\n /**\n * If this is an inertia animation, we currently don't support pre-generating\n * keyframes for this as such it must always run on the main thread.\n */\n const animation = inertia(options);\n return () => animation.stop();\n }\n /**\n * If there's no transition defined for this value, we can generate\n * unqiue transition settings for this value.\n */\n if (!isTransitionDefined(valueTransition)) {\n options = {\n ...options,\n ...getDefaultTransition(valueName, options),\n };\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n if (options.duration) {\n options.duration = secondsToMilliseconds(options.duration);\n }\n if (options.repeatDelay) {\n options.repeatDelay = secondsToMilliseconds(options.repeatDelay);\n }\n const visualElement = value.owner;\n const element = visualElement && visualElement.current;\n const canAccelerateAnimation = supports.waapi() &&\n acceleratedValues.has(valueName) &&\n !options.repeatDelay &&\n options.repeatType !== \"mirror\" &&\n options.damping !== 0 &&\n visualElement &&\n element instanceof HTMLElement &&\n !visualElement.getProps().onUpdate;\n if (canAccelerateAnimation) {\n /**\n * If this animation is capable of being run via WAAPI, then do so.\n */\n return createAcceleratedAnimation(value, valueName, options);\n }\n else {\n /**\n * Otherwise, fall back to the main thread.\n */\n const animation = animate(options);\n return () => animation.stop();\n }\n };\n};\n\nexport { createMotionValueAnimation };\n","import { setTarget } from './setters.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { transformProps } from '../html/utils/transform.mjs';\nimport { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { handoffOptimizedAppearAnimation } from '../../animation/optimized-appear/handoff.mjs';\nimport { optimizedAppearDataAttribute } from '../../animation/optimized-appear/data-id.mjs';\nimport { createMotionValueAnimation } from '../../animation/index.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => animateVariant(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = animateTarget(visualElement, resolvedDefinition, options);\n }\n return animation.then(() => visualElement.notify(\"AnimationComplete\", definition));\n}\nfunction animateVariant(visualElement, variant, options = {}) {\n var _a;\n const resolved = resolveVariant(visualElement, variant, options.custom);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => animateTarget(visualElement, resolved, options)\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = ((_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.size)\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(last);\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\n/**\n * @internal\n */\nfunction animateTarget(visualElement, definition, { delay = 0, transitionOverride, type } = {}) {\n var _a;\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = visualElement.makeTargetAnimatable(definition);\n const willChange = visualElement.getValue(\"willChange\");\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type && ((_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.getState()[type]);\n for (const key in target) {\n const value = visualElement.getValue(key);\n const valueTarget = target[key];\n if (!value ||\n valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n let valueTransition = { delay, elapsed: 0, ...transition };\n /**\n * Make animation instant if this is a transform prop and we should reduce motion.\n */\n if (visualElement.shouldReduceMotion && transformProps.has(key)) {\n valueTransition = {\n ...valueTransition,\n type: false,\n delay: 0,\n };\n }\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n if (!value.hasAnimated) {\n const appearId = visualElement.getProps()[optimizedAppearDataAttribute];\n if (appearId) {\n valueTransition.elapsed = handoffOptimizedAppearAnimation(appearId, key);\n }\n }\n let animation = value.start(createMotionValueAnimation(key, value, valueTarget, valueTransition));\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n animation = animation.then(() => willChange.remove(key));\n }\n animations.push(animation);\n }\n return Promise.all(animations).then(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n}\nfunction animateChildren(visualElement, variant, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n const generateStaggerDuration = staggerDirection === 1\n ? (i = 0) => i * staggerChildren\n : (i = 0) => maxStaggerDuration - i * staggerChildren;\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach((child, i) => {\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delayChildren + generateStaggerDuration(i),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n });\n return Promise.all(animations);\n}\nfunction stopAnimation(visualElement) {\n visualElement.values.forEach((value) => value.stop());\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\n\nexport { animateVisualElement, sortByTreeOrder, stopAnimation };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { animateVisualElement } from './animation.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { AnimationType } from './types.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\nconst variantPriorityOrder = [\n AnimationType.Animate,\n AnimationType.InView,\n AnimationType.Focus,\n AnimationType.Hover,\n AnimationType.Tap,\n AnimationType.Drag,\n AnimationType.Exit,\n];\nconst reversePriorityOrder = [...variantPriorityOrder].reverse();\nconst numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return (animations) => Promise.all(animations.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n let animate = animateList(visualElement);\n const state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (acc, definition) => {\n const resolved = resolveVariant(visualElement, definition);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(options, changedActiveType) {\n const props = visualElement.getProps();\n const context = visualElement.getVariantContext(true) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined ? props[type] : context[type];\n const propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues, {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n removedKeys.delete(key);\n typeState.needsAnimating[key] = true;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n if (next !== prev) {\n /**\n * If both values are keyframes, we need to shallow compare them to\n * detect whether any value has changed. If it has, we animate it.\n */\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n if (!shallowCompare(next, prev) || variantDidChange) {\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we want to ensure it doesn't animate by\n * adding it to the list of protected keys.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n else if (next !== undefined) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to hard-block animations\n * TODO: Test as this should probably still handle animations triggered\n * by removed values?\n */\n if (shouldAnimateType && !isInherited) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type, ...options },\n })));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n if (fallbackTarget !== undefined) {\n fallbackAnimation[key] = fallbackTarget;\n }\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n props.initial === false &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive, options) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n const animations = animateChanges(options, type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n [AnimationType.Animate]: createTypeState(true),\n [AnimationType.InView]: createTypeState(),\n [AnimationType.Hover]: createTypeState(),\n [AnimationType.Tap]: createTypeState(),\n [AnimationType.Drag]: createTypeState(),\n [AnimationType.Focus]: createTypeState(),\n [AnimationType.Exit]: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState, variantPriorityOrder };\n","import { useEffect, useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { usePresence } from '../../components/AnimatePresence/use-presence.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { createAnimationState } from '../../render/utils/animation-state.mjs';\nimport { AnimationType } from '../../render/utils/types.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nconst animations = {\n animation: makeRenderlessComponent(({ visualElement, animate }) => {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n visualElement.animationState || (visualElement.animationState = createAnimationState(visualElement));\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n if (isAnimationControls(animate)) {\n useEffect(() => animate.subscribe(visualElement), [animate]);\n }\n }),\n exit: makeRenderlessComponent((props) => {\n const { custom, visualElement } = props;\n const [isPresent, safeToRemove] = usePresence();\n const presenceContext = useContext(PresenceContext);\n useEffect(() => {\n visualElement.isPresent = isPresent;\n const animation = visualElement.animationState &&\n visualElement.animationState.setActive(AnimationType.Exit, !isPresent, {\n custom: (presenceContext && presenceContext.custom) ||\n custom,\n });\n if (animation && !isPresent) {\n animation.then(safeToRemove);\n }\n }, [isPresent]);\n }),\n};\n\nexport { animations };\n","const distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\nexport { distance, distance2D };\n","import { isMouseEvent, isTouchEvent } from './utils/event-type.mjs';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport { sync, cancelSync } from '../frameloop/index.mjs';\nimport { secondsToMilliseconds } from '../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { distance2D } from '../utils/distance.mjs';\nimport { frameData } from '../frameloop/data.mjs';\n\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n const isDistancePastThreshold = distance2D(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Because Safari doesn't trigger mouseup events when it's above a `<select>`\n if (isMouseEvent(event) && event.buttons === 0) {\n this.handlePointerUp(event, info);\n return;\n }\n // Throttle mouse move event to once per frame\n sync.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n const { onEnd, onSessionEnd } = this.handlers;\n const panInfo = getPanInfo(transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (isTouchEvent(event) && event.touches.length > 1)\n return;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n const info = extractEventInfo(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = pipe(addPointerEvent(window, \"pointermove\", this.handlePointerMove), addPointerEvent(window, \"pointerup\", this.handlePointerUp), addPointerEvent(window, \"pointercancel\", this.handlePointerUp));\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n cancelSync.update(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n const time = (lastPoint.timestamp - timestampedPoint.timestamp) / 1000;\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport { PanSession };\n","import { mix } from '../../utils/mix.mjs';\n\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target = 0, maxDistance = 0.01) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = mix(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n if (isNear(delta.scale, 1, 0.0001) || isNaN(delta.scale))\n delta.scale = 1;\n delta.translate =\n mix(target.min, target.max, delta.origin) - delta.originPoint;\n if (isNear(delta.translate) || isNaN(delta.translate))\n delta.translate = 0;\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin === null || origin === void 0 ? void 0 : origin.originX);\n calcAxisDelta(delta.y, source.y, target.y, origin === null || origin === void 0 ? void 0 : origin.originY);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\nexport { calcAxisDelta, calcBoxDelta, calcLength, calcRelativeAxis, calcRelativeAxisPosition, calcRelativeBox, calcRelativePosition, isNear };\n","import { progress } from '../../../utils/progress.mjs';\nimport { calcLength } from '../../../projection/geometry/delta-calc.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { mix } from '../../../utils/mix.mjs';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic ? mix(min, point, elastic.min) : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic ? mix(max, point, elastic.max) : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = calcLength(source);\n const targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n","const createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\nexport { createAxis, createAxisDelta, createBox, createDelta };\n","function eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\nexport { eachAxis };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n","function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { has2DTranslate, hasScale, hasTransform };\n","import { mix } from '../../utils/mix.mjs';\nimport { hasTransform } from '../utils/has-transform.mjs';\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n var _a, _b;\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n if (((_b = (_a = node.instance) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.display) === \"contents\")\n continue;\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && hasTransform(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n treeScale.x = snapToDefault(treeScale.x);\n treeScale.y = snapToDefault(treeScale.y);\n}\nfunction snapToDefault(scale) {\n if (Number.isInteger(scale))\n return scale;\n return scale > 1.0000000000001 || scale < 0.999999999999 ? scale : 1;\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, transforms, [key, scaleKey, originKey]) {\n const axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n const originPoint = mix(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, transforms[key], transforms[scaleKey], originPoint, transforms.scale);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform, xKeys);\n transformAxis(box.y, transform, yKeys);\n}\n\nexport { applyAxisDelta, applyBoxDelta, applyPointDelta, applyTreeDeltas, scalePoint, transformAxis, transformBox, translateAxis };\n","import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.offset.x);\n translateAxis(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","import { invariant } from 'hey-listen';\nimport { PanSession } from '../PanSession.mjs';\nimport { getGlobalLock } from './utils/lock.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { addPointerEvent } from '../../events/use-pointer-event.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, rebaseAxisConstraints, calcViewportConstraints, calcOrigin, defaultElastic } from './utils/constraints.mjs';\nimport { AnimationType } from '../../render/utils/types.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { eachAxis } from '../../projection/utils/each-axis.mjs';\nimport { measurePageBox } from '../../projection/utils/measure.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { addDomEvent } from '../../events/use-dom-event.mjs';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\nimport { mix } from '../../utils/mix.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { createMotionValueAnimation } from '../../animation/index.mjs';\n\nconst elementDragControls = new WeakMap();\n/**\n *\n */\n// let latestPointerEvent: AnyPointerEvent\nclass VisualElementDragControls {\n constructor(visualElement) {\n // This is a reference to the global drag gesture lock, ensuring only one component\n // can \"capture\" the drag of one or both axes.\n // TODO: Look into moving this into pansession?\n this.openGlobalLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n if (this.visualElement.isPresent === false)\n return;\n const onSessionStart = (event) => {\n // Stop any animations on both axis values immediately. This allows the user to throw and catch\n // the component.\n this.stopAnimation();\n if (snapToCursor) {\n this.snapToCursor(extractEventInfo(event, \"page\").point);\n }\n };\n const onStart = (event, info) => {\n var _a;\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openGlobalLock)\n this.openGlobalLock();\n this.openGlobalLock = getGlobalLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openGlobalLock)\n return;\n }\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin\n */\n eachAxis((axis) => {\n var _a, _b;\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (percent.test(current)) {\n const measuredAxis = (_b = (_a = this.visualElement.projection) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.layoutBox[axis];\n if (measuredAxis) {\n const length = calcLength(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(event, info);\n (_a = this.visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Drag, true);\n };\n const onMove = (event, info) => {\n // latestPointerEvent = event\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openGlobalLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock === null || onDirectionLock === void 0 ? void 0 : onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag === null || onDrag === void 0 ? void 0 : onDrag(event, info);\n };\n const onSessionEnd = (event, info) => this.stop(event, info);\n this.panSession = new PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n }, { transformPagePoint: this.visualElement.getTransformPagePoint() });\n }\n stop(event, info) {\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging)\n return;\n const { velocity } = info;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event, info);\n }\n cancel() {\n var _a, _b;\n this.isDragging = false;\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = false;\n }\n (_a = this.panSession) === null || _a === void 0 ? void 0 : _a.end();\n this.panSession = undefined;\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openGlobalLock) {\n this.openGlobalLock();\n this.openGlobalLock = null;\n }\n (_b = this.visualElement.animationState) === null || _b === void 0 ? void 0 : _b.setActive(AnimationType.Drag, false);\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n const { dragConstraints, dragElastic } = this.getProps();\n const { layout } = this.visualElement.projection || {};\n const prevConstraints = this.constraints;\n if (dragConstraints && isRefObject(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative.\n */\n if (prevConstraints !== this.constraints &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis((axis) => {\n if (this.getAxisMotionValue(axis)) {\n this.constraints[axis] = rebaseAxisConstraints(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !isRefObject(constraints))\n return false;\n const constraintsElement = constraints.current;\n invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = calcViewportConstraints(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = eachAxis((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints === null || constraints === void 0 ? void 0 : constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n return axisValue.start(createMotionValueAnimation(axis, axisValue, 0, transition));\n }\n stopAnimation() {\n eachAxis((axis) => this.getAxisMotionValue(axis).stop());\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n var _a;\n const dragKey = \"_drag\" + axis.toUpperCase();\n const externalMotionValue = this.visualElement.getProps()[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, ((_a = this.visualElement.getProps().initial) === null || _a === void 0 ? void 0 : _a[axis]) || 0);\n }\n snapToCursor(point) {\n eachAxis((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n axisValue.set(point[axis] - mix(min, max, 0.5));\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n var _a;\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n eachAxis((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue) {\n const latest = axisValue.get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n (_a = projection.root) === null || _a === void 0 ? void 0 : _a.updateScroll();\n projection.updateLayout();\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set(mix(min, max, boxProgress[axis]));\n });\n }\n addListeners() {\n var _a;\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = addPointerEvent(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n drag && dragListener && this.start(event);\n });\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if (isRefObject(dragConstraints)) {\n this.constraints = this.resolveRefConstraints();\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n (_a = projection.root) === null || _a === void 0 ? void 0 : _a.updateScroll();\n projection.updateLayout();\n }\n measureDragConstraints();\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n eachAxis((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener === null || stopLayoutUpdateListener === void 0 ? void 0 : stopLayoutUpdateListener();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\nexport { VisualElementDragControls, elementDragControls };\n","import { useEffect } from 'react';\nimport { VisualElementDragControls } from './VisualElementDragControls.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\n\n/**\n * A hook that allows an element to be dragged.\n *\n * @internal\n */\nfunction useDrag(props) {\n const { dragControls: groupDragControls, visualElement } = props;\n const dragControls = useConstant(() => new VisualElementDragControls(visualElement));\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n useEffect(() => groupDragControls && groupDragControls.subscribe(dragControls), [dragControls, groupDragControls]);\n // Apply the event listeners to the element\n useEffect(() => dragControls.addListeners(), [dragControls]);\n}\n\nexport { useDrag };\n","import { useRef, useContext, useEffect } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.mjs';\nimport { usePointerEvent } from '../events/use-pointer-event.mjs';\nimport { PanSession } from './PanSession.mjs';\n\n/**\n *\n * @param handlers -\n * @param ref -\n *\n * @privateRemarks\n * Currently this sets new pan gesture functions every render. The memo route has been explored\n * in the past but ultimately we're still creating new functions every render. An optimisation\n * to explore is creating the pan gestures and loading them into a `ref`.\n *\n * @internal\n */\nfunction usePanGesture({ onPan, onPanStart, onPanEnd, onPanSessionStart, visualElement, }) {\n const hasPanEvents = onPan || onPanStart || onPanEnd || onPanSessionStart;\n const panSession = useRef(null);\n const { transformPagePoint } = useContext(MotionConfigContext);\n const handlers = {\n onSessionStart: onPanSessionStart,\n onStart: onPanStart,\n onMove: onPan,\n onEnd: (event, info) => {\n panSession.current = null;\n onPanEnd && onPanEnd(event, info);\n },\n };\n useEffect(() => {\n if (panSession.current !== null) {\n panSession.current.updateHandlers(handlers);\n }\n });\n function onPointerDown(event) {\n panSession.current = new PanSession(event, handlers, {\n transformPagePoint,\n });\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPanEvents && onPointerDown);\n useUnmountEffect(() => panSession.current && panSession.current.end());\n}\n\nexport { usePanGesture };\n","import { useDrag } from '../../gestures/drag/use-drag.mjs';\nimport { usePanGesture } from '../../gestures/use-pan-gesture.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nconst drag = {\n pan: makeRenderlessComponent(usePanGesture),\n drag: makeRenderlessComponent(useDrag),\n};\n\nexport { drag };\n","import { invariant } from 'hey-listen';\n\nfunction isCSSVariable(value) {\n return typeof value === \"string\" && value.startsWith(\"var(--\");\n}\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n const match = cssVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token, fallback] = match;\n return [token, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`);\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n return resolved.trim();\n }\n else if (isCSSVariable(fallback)) {\n // The fallback might itself be a CSS variable, in which case we attempt to resolve it too.\n return getVariableValue(fallback, element, depth + 1);\n }\n else {\n return fallback;\n }\n}\n/**\n * Resolve CSS variables from\n *\n * @internal\n */\nfunction resolveCSSVariables(visualElement, { ...target }, transitionEnd) {\n const element = visualElement.current;\n if (!(element instanceof Element))\n return { target, transitionEnd };\n // If `transitionEnd` isn't `undefined`, clone it. We could clone `target` and `transitionEnd`\n // only if they change but I think this reads clearer and this isn't a performance-critical path.\n if (transitionEnd) {\n transitionEnd = { ...transitionEnd };\n }\n // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved\n visualElement.values.forEach((value) => {\n const current = value.get();\n if (!isCSSVariable(current))\n return;\n const resolved = getVariableValue(current, element);\n if (resolved)\n value.set(resolved);\n });\n // Cycle through every target property and resolve CSS variables. Currently\n // we only read single-var properties like `var(--foo)`, not `calc(var(--foo) + 20px)`\n for (const key in target) {\n const current = target[key];\n if (!isCSSVariable(current))\n continue;\n const resolved = getVariableValue(current, element);\n if (!resolved)\n continue;\n // Clone target if it hasn't already been\n target[key] = resolved;\n // If the user hasn't already set this key on `transitionEnd`, set it to the unresolved\n // CSS variable. This will ensure that after the animation the component will reflect\n // changes in the value of the CSS variable.\n if (transitionEnd && transitionEnd[key] === undefined) {\n transitionEnd[key] = current;\n }\n }\n return { target, transitionEnd };\n}\n\nexport { cssVariableRegex, parseCSSVariable, resolveCSSVariables };\n","import { isKeyframesTarget } from '../../../animation/utils/is-keyframes-target.mjs';\nimport { invariant } from 'hey-listen';\nimport { transformPropOrder } from '../../html/utils/transform.mjs';\nimport { findDimensionValueType } from '../value-types/dimensions.mjs';\nimport { isBrowser } from '../../../utils/is-browser.mjs';\nimport { number } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n]);\nconst isPositionalKey = (key) => positionalKeys.has(key);\nconst hasPositionalKey = (target) => {\n return Object.keys(target).some(isPositionalKey);\n};\nconst setAndResetVelocity = (value, to) => {\n // Looks odd but setting it twice doesn't render, it'll just\n // set both prev and current to the latest value\n value.set(to, false);\n value.set(to);\n};\nconst isNumOrPxType = (v) => v === number || v === px;\nvar BoundingBoxDimension;\n(function (BoundingBoxDimension) {\n BoundingBoxDimension[\"width\"] = \"width\";\n BoundingBoxDimension[\"height\"] = \"height\";\n BoundingBoxDimension[\"left\"] = \"left\";\n BoundingBoxDimension[\"right\"] = \"right\";\n BoundingBoxDimension[\"top\"] = \"top\";\n BoundingBoxDimension[\"bottom\"] = \"bottom\";\n})(BoundingBoxDimension || (BoundingBoxDimension = {}));\nconst getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(\", \")[pos]);\nconst getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform }) => {\n if (transform === \"none\" || !transform)\n return 0;\n const matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n const matrix = transform.match(/^matrix\\((.+)\\)$/);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n};\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n // Apply changes to element before measurement\n if (removedTransforms.length)\n visualElement.render();\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\nconst convertChangedValueTypes = (target, visualElement, changedKeys) => {\n const originBbox = visualElement.measureViewportBox();\n const element = visualElement.current;\n const elementComputedStyle = getComputedStyle(element);\n const { display } = elementComputedStyle;\n const origin = {};\n // If the element is currently set to display: \"none\", make it visible before\n // measuring the target bounding box\n if (display === \"none\") {\n visualElement.setStaticValue(\"display\", target.display || \"block\");\n }\n /**\n * Record origins before we render and update styles\n */\n changedKeys.forEach((key) => {\n origin[key] = positionalValues[key](originBbox, elementComputedStyle);\n });\n // Apply the latest values (as set in checkAndConvertChangedValueTypes)\n visualElement.render();\n const targetBbox = visualElement.measureViewportBox();\n changedKeys.forEach((key) => {\n // Restore styles to their **calculated computed style**, not their actual\n // originally set style. This allows us to animate between equivalent pixel units.\n const value = visualElement.getValue(key);\n setAndResetVelocity(value, origin[key]);\n target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n });\n return target;\n};\nconst checkAndConvertChangedValueTypes = (visualElement, target, origin = {}, transitionEnd = {}) => {\n target = { ...target };\n transitionEnd = { ...transitionEnd };\n const targetPositionalKeys = Object.keys(target).filter(isPositionalKey);\n // We want to remove any transform values that could affect the element's bounding box before\n // it's measured. We'll reapply these later.\n let removedTransformValues = [];\n let hasAttemptedToRemoveTransformValues = false;\n const changedValueTypeKeys = [];\n targetPositionalKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (!visualElement.hasValue(key))\n return;\n let from = origin[key];\n let fromType = findDimensionValueType(from);\n const to = target[key];\n let toType;\n // TODO: The current implementation of this basically throws an error\n // if you try and do value conversion via keyframes. There's probably\n // a way of doing this but the performance implications would need greater scrutiny,\n // as it'd be doing multiple resize-remeasure operations.\n if (isKeyframesTarget(to)) {\n const numKeyframes = to.length;\n const fromIndex = to[0] === null ? 1 : 0;\n from = to[fromIndex];\n fromType = findDimensionValueType(from);\n for (let i = fromIndex; i < numKeyframes; i++) {\n if (!toType) {\n toType = findDimensionValueType(to[i]);\n invariant(toType === fromType ||\n (isNumOrPxType(fromType) && isNumOrPxType(toType)), \"Keyframes must be of the same dimension as the current value\");\n }\n else {\n invariant(findDimensionValueType(to[i]) === toType, \"All keyframes must be of the same type\");\n }\n }\n }\n else {\n toType = findDimensionValueType(to);\n }\n if (fromType !== toType) {\n // If they're both just number or px, convert them both to numbers rather than\n // relying on resize/remeasure to convert (which is wasteful in this situation)\n if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {\n const current = value.get();\n if (typeof current === \"string\") {\n value.set(parseFloat(current));\n }\n if (typeof to === \"string\") {\n target[key] = parseFloat(to);\n }\n else if (Array.isArray(to) && toType === px) {\n target[key] = to.map(parseFloat);\n }\n }\n else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) &&\n (toType === null || toType === void 0 ? void 0 : toType.transform) &&\n (from === 0 || to === 0)) {\n // If one or the other value is 0, it's safe to coerce it to the\n // type of the other without measurement\n if (from === 0) {\n value.set(toType.transform(from));\n }\n else {\n target[key] = fromType.transform(to);\n }\n }\n else {\n // If we're going to do value conversion via DOM measurements, we first\n // need to remove non-positional transform values that could affect the bbox measurements.\n if (!hasAttemptedToRemoveTransformValues) {\n removedTransformValues =\n removeNonTranslationalTransform(visualElement);\n hasAttemptedToRemoveTransformValues = true;\n }\n changedValueTypeKeys.push(key);\n transitionEnd[key] =\n transitionEnd[key] !== undefined\n ? transitionEnd[key]\n : target[key];\n setAndResetVelocity(value, to);\n }\n }\n });\n if (changedValueTypeKeys.length) {\n const scrollY = changedValueTypeKeys.indexOf(\"height\") >= 0\n ? window.pageYOffset\n : null;\n const convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n // If we removed transform values, reapply them before the next render\n if (removedTransformValues.length) {\n removedTransformValues.forEach(([key, value]) => {\n visualElement.getValue(key).set(value);\n });\n }\n // Reapply original values\n visualElement.render();\n // Restore scroll position\n if (isBrowser && scrollY !== null) {\n window.scrollTo({ top: scrollY });\n }\n return { target: convertedTarget, transitionEnd };\n }\n else {\n return { target, transitionEnd };\n }\n};\n/**\n * Convert value types for x/y/width/height/top/left/bottom/right\n *\n * Allows animation between `'auto'` -> `'100%'` or `0` -> `'calc(50% - 10vw)'`\n *\n * @internal\n */\nfunction unitConversion(visualElement, target, origin, transitionEnd) {\n return hasPositionalKey(target)\n ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd)\n : { target, transitionEnd };\n}\n\nexport { BoundingBoxDimension, positionalValues, unitConversion };\n","import { resolveCSSVariables } from './css-variables-conversion.mjs';\nimport { unitConversion } from './unit-conversion.mjs';\n\n/**\n * Parse a DOM variant to make it animatable. This involves resolving CSS variables\n * and ensuring animations like \"20%\" => \"calc(50vw)\" are performed in pixels.\n */\nconst parseDomVariant = (visualElement, target, origin, transitionEnd) => {\n const resolved = resolveCSSVariables(visualElement, target, transitionEnd);\n target = resolved.target;\n transitionEnd = resolved.transitionEnd;\n return unitConversion(visualElement, target, origin, transitionEnd);\n};\n\nexport { parseDomVariant };\n","// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nexport { hasReducedMotionListener, prefersReducedMotion };\n","import { isBrowser } from '../is-browser.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\nfunction initPrefersReducedMotion() {\n hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n\nexport { initPrefersReducedMotion };\n","import { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { warnOnce } from '../../utils/warn-once.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n const { willChange } = next;\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n /**\n * Check the version of the incoming motion value with this version\n * and warn against mismatches.\n */\n if (process.env.NODE_ENV === \"development\") {\n warnOnce(nextValue.version === \"7.10.3\", `Attempting to mix Framer Motion versions ${nextValue.version} with 7.10.3 may not work as expected.`);\n }\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, motionValue(nextValue, { owner: element }));\n if (isWillChangeMotionValue(willChange)) {\n willChange.remove(key);\n }\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n // TODO: Only update values that aren't being animated or even looked at\n !existingValue.hasAnimated && existingValue.set(nextValue);\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, motionValue(latestValue !== undefined ? latestValue : nextValue));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { sync, cancelSync } from '../frameloop/index.mjs';\nimport { invariant } from 'hey-listen';\nimport { createElement } from 'react';\nimport { featureDefinitions } from '../motion/features/definitions.mjs';\nimport { createBox } from '../projection/geometry/models.mjs';\nimport { isRefObject } from '../utils/is-ref-object.mjs';\nimport { env } from '../utils/process.mjs';\nimport { initPrefersReducedMotion } from '../utils/reduced-motion/index.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from '../utils/reduced-motion/state.mjs';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { motionValue } from '../value/index.mjs';\nimport { isWillChangeMotionValue } from '../value/use-will-change/is.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { transformProps } from './html/utils/transform.mjs';\nimport { variantPriorityOrder } from './utils/animation-state.mjs';\nimport { isControllingVariants, isVariantNode } from './utils/is-controlling-variants.mjs';\nimport { isVariantLabel } from './utils/is-variant-label.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { resolveVariantFromProps } from './utils/resolve-variants.mjs';\n\nconst featureNames = Object.keys(featureDefinitions);\nconst numFeatures = featureNames.length;\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"Unmount\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n constructor({ parent, props, reducedMotionConfig, visualState, }, options = {}) {\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n /**\n * Tracks whether this VisualElement's React component is currently present\n * within the defined React tree.\n */\n this.isPresent = true;\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.scheduleRender = () => sync.render(this.render, false, true);\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.options = options;\n this.isControllingVariants = isControllingVariants(props);\n this.isVariantNode = isVariantNode(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't neccessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n }\n }\n }\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props) {\n return {};\n }\n mount(instance) {\n var _a;\n this.current = instance;\n if (this.projection) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n if (!hasReducedMotionListener.current) {\n initPrefersReducedMotion();\n }\n this.shouldReduceMotion =\n this.reducedMotionConfig === \"never\"\n ? false\n : this.reducedMotionConfig === \"always\"\n ? true\n : prefersReducedMotion.current;\n if (this.parent)\n this.parent.children.add(this);\n this.setProps(this.props);\n }\n unmount() {\n var _a, _b, _c;\n (_a = this.projection) === null || _a === void 0 ? void 0 : _a.unmount();\n cancelSync.update(this.notifyUpdate);\n cancelSync.render(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n (_b = this.removeFromVariantTree) === null || _b === void 0 ? void 0 : _b.call(this);\n (_c = this.parent) === null || _c === void 0 ? void 0 : _c.children.delete(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n this.current = null;\n }\n bindToMotionValue(key, value) {\n const valueIsTransform = transformProps.has(key);\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate &&\n sync.update(this.notifyUpdate, false, true);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n });\n const removeOnRenderRequest = value.on(\"renderRequest\", this.scheduleRender);\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n removeOnRenderRequest();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type)\n return 0;\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n loadFeatures(renderedProps, isStrict, preloadedFeatures, projectionId, ProjectionNodeConstructor, initialLayoutGroupConfig) {\n const features = [];\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (env !== \"production\" && preloadedFeatures && isStrict) {\n invariant(false, \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\");\n }\n for (let i = 0; i < numFeatures; i++) {\n const name = featureNames[i];\n const { isEnabled, Component } = featureDefinitions[name];\n /**\n * It might be possible in the future to use this moment to\n * dynamically request functionality. In initial tests this\n * was producing a lot of duplication amongst bundles.\n */\n if (isEnabled(renderedProps) && Component) {\n features.push(createElement(Component, {\n key: name,\n ...renderedProps,\n visualElement: this,\n }));\n }\n }\n if (!this.projection && ProjectionNodeConstructor) {\n this.projection = new ProjectionNodeConstructor(projectionId, this.latestValues, this.parent && this.parent.projection);\n const { layoutId, layout, drag, dragConstraints, layoutScroll } = renderedProps;\n this.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) ||\n (dragConstraints && isRefObject(dragConstraints)),\n visualElement: this,\n scheduleRender: () => this.scheduleRender(),\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig: initialLayoutGroupConfig,\n layoutScroll,\n });\n }\n return features;\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.options, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : createBox();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Make a target animatable by Popmotion. For instance, if we're\n * trying to animate width from 100px to 100vw we need to measure 100vw\n * in pixels to determine what we really need to animate to. This is also\n * pluggable to support Framer's custom value types like Color,\n * and CSS variables.\n */\n makeTargetAnimatable(target, canMutate = true) {\n return this.makeTargetAnimatableFromInstance(target, this.props, canMutate);\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n setProps(props) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.props = props;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listener = props[\"on\" + key];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props), this.prevMotionValues);\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n var _a;\n return (_a = this.props.variants) === null || _a === void 0 ? void 0 : _a[name];\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n var _a;\n return this.isVariantNode ? this : (_a = this.parent) === null || _a === void 0 ? void 0 : _a.getClosestVariantNode();\n }\n getVariantContext(startAtParent = false) {\n var _a, _b;\n if (startAtParent)\n return (_a = this.parent) === null || _a === void 0 ? void 0 : _a.getVariantContext();\n if (!this.isControllingVariants) {\n const context = ((_b = this.parent) === null || _b === void 0 ? void 0 : _b.getVariantContext()) || {};\n if (this.props.initial !== undefined) {\n context.initial = this.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = variantProps[i];\n const prop = this.props[name];\n if (isVariantLabel(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n var _a;\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n (_a = closestVariantNode.variantChildren) === null || _a === void 0 ? void 0 : _a.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n if (this.hasValue(key))\n this.removeValue(key);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n this.bindToMotionValue(key, value);\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n var _a;\n this.values.delete(key);\n (_a = this.valueSubscriptions.get(key)) === null || _a === void 0 ? void 0 : _a();\n this.valueSubscriptions.delete(key);\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n /**\n * Get a motion value for this key. If called with a default\n * value, we'll create one if none exists.\n */\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key) {\n return this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : this.readValueFromInstance(this.current, key, this.options);\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n var _a;\n const { initial } = this.props;\n const valueFromInitial = typeof initial === \"string\" || typeof initial === \"object\"\n ? (_a = resolveVariantFromProps(this.props, initial)) === null || _a === void 0 ? void 0 : _a[key]\n : undefined;\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n var _a;\n (_a = this.events[eventName]) === null || _a === void 0 ? void 0 : _a.notify(...args);\n }\n}\nconst variantProps = [\"initial\", ...variantPriorityOrder];\nconst numVariantProps = variantProps.length;\n\nexport { VisualElement };\n","import { getOrigin, checkTargetForNewValues } from '../utils/setters.mjs';\nimport { parseDomVariant } from './utils/parse-dom-variant.mjs';\nimport { VisualElement } from '../VisualElement.mjs';\n\nclass DOMVisualElement extends VisualElement {\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n var _a;\n return (_a = props.style) === null || _a === void 0 ? void 0 : _a[key];\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n makeTargetAnimatableFromInstance({ transition, transitionEnd, ...target }, { transformValues }, isMounted) {\n let origin = getOrigin(target, transition || {}, this);\n /**\n * If Framer has provided a function to convert `Color` etc value types, convert them\n */\n if (transformValues) {\n if (transitionEnd)\n transitionEnd = transformValues(transitionEnd);\n if (target)\n target = transformValues(target);\n if (origin)\n origin = transformValues(origin);\n }\n if (isMounted) {\n checkTargetForNewValues(this, target, origin);\n const parsed = parseDomVariant(this, target, origin, transitionEnd);\n transitionEnd = parsed.transitionEnd;\n target = parsed.target;\n }\n return {\n transition,\n transitionEnd,\n ...target,\n };\n }\n}\n\nexport { DOMVisualElement };\n","import { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariable } from '../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './utils/transform.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = (isCSSVariable(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return measureViewportBox(instance, transformPagePoint);\n }\n build(renderState, latestValues, options, props) {\n buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props) {\n return scrapeMotionValuesFromProps(props);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderHTML(instance, renderState, styleProp, projection);\n }\n}\n\nexport { HTMLVisualElement, getComputedStyle };\n","import { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { transformProps } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nclass SVGVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.isSVGTag = false;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n var _a;\n if (transformProps.has(key)) {\n return ((_a = getDefaultValueType(key)) === null || _a === void 0 ? void 0 : _a.default) || 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return instance.getAttribute(key);\n }\n measureInstanceViewportBox() {\n return createBox();\n }\n scrapeMotionValuesFromProps(props) {\n return scrapeMotionValuesFromProps(props);\n }\n build(renderState, latestValues, options, props) {\n buildSVGAttrs(renderState, latestValues, options, this.isSVGTag, props.transformTemplate);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderSVG(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = isSVGTag(instance.tagName);\n super.mount(instance);\n }\n}\n\nexport { SVGVisualElement };\n","import { HTMLVisualElement } from '../html/HTMLVisualElement.mjs';\nimport { SVGVisualElement } from '../svg/SVGVisualElement.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nconst createDomVisualElement = (Component, options) => {\n return isSVGComponent(Component)\n ? new SVGVisualElement(options, { enableHardwareAcceleration: false })\n : new HTMLVisualElement(options, { enableHardwareAcceleration: true });\n};\n\nexport { createDomVisualElement };\n","import { px } from '../../value/types/numbers/units.mjs';\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\nexport { correctBorderRadius, pixelsToPercent };\n","import { cssVariableRegex } from '../../render/dom/utils/css-variables-conversion.mjs';\nimport { mix } from '../../utils/mix.mjs';\nimport { complex } from '../../value/types/complex/index.mjs';\n\nconst varToken = \"_$css\";\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n /**\n * We need to first strip and store CSS variables from the string.\n */\n const containsCSSVariables = latest.includes(\"var(\");\n const cssVariables = [];\n if (containsCSSVariables) {\n latest = latest.replace(cssVariableRegex, (match) => {\n cssVariables.push(match);\n return varToken;\n });\n }\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mix(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n let output = template(shadow);\n if (containsCSSVariables) {\n let i = 0;\n output = output.replace(varToken, () => {\n const cssVariable = cssVariables[i];\n i++;\n return cssVariable;\n });\n }\n return output;\n },\n};\n\nexport { correctBoxShadow };\n","import { sync } from '../../../frameloop/index.mjs';\nimport React__default, { useContext } from 'react';\nimport { usePresence } from '../../../components/AnimatePresence/use-presence.mjs';\nimport { LayoutGroupContext } from '../../../context/LayoutGroupContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../../context/SwitchLayoutGroupContext.mjs';\nimport { globalProjectionState } from '../../../projection/node/state.mjs';\nimport { correctBorderRadius } from '../../../projection/styles/scale-border-radius.mjs';\nimport { correctBoxShadow } from '../../../projection/styles/scale-box-shadow.mjs';\nimport { addScaleCorrector } from '../../../projection/styles/scale-correction.mjs';\n\nclass MeasureLayoutWithContext extends React__default.Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */\n componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup.group)\n layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n projection.root.didUpdate();\n projection.addEventListener(\"animationComplete\", () => {\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n onExitComplete: () => this.safeToRemove(),\n });\n }\n globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const projection = visualElement.projection;\n if (!projection)\n return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */\n projection.isPresent = isPresent;\n if (drag ||\n prevProps.layoutDependency !== layoutDependency ||\n layoutDependency === undefined) {\n projection.willUpdate();\n }\n else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n }\n else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */\n sync.postRender(() => {\n var _a;\n if (!((_a = projection.getStack()) === null || _a === void 0 ? void 0 : _a.members.length)) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext, } = this.props;\n const { projection } = visualElement;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup === null || layoutGroup === void 0 ? void 0 : layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext === null || promoteContext === void 0 ? void 0 : promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove === null || safeToRemove === void 0 ? void 0 : safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n const [isPresent, safeToRemove] = usePresence();\n const layoutGroup = useContext(LayoutGroupContext);\n return (React__default.createElement(MeasureLayoutWithContext, { ...props, layoutGroup: layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove }));\n}\nconst defaultScaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nexport { MeasureLayout };\n","import { MeasureLayout } from './MeasureLayout.mjs';\n\nconst layoutFeatures = {\n measureLayout: MeasureLayout,\n};\n\nexport { layoutFeatures };\n","import { createMotionValueAnimation } from './index.mjs';\nimport { motionValue } from '../value/index.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\n\n/**\n * Animate a single value or a `MotionValue`.\n *\n * The first argument is either a `MotionValue` to animate, or an initial animation value.\n *\n * The second is either a value to animate to, or an array of keyframes to animate through.\n *\n * The third argument can be either tween or spring options, and optional lifecycle methods: `onUpdate`, `onPlay`, `onComplete`, `onRepeat` and `onStop`.\n *\n * Returns `AnimationPlaybackControls`, currently just a `stop` method.\n *\n * ```javascript\n * const x = useMotionValue(0)\n *\n * useEffect(() => {\n * const controls = animate(x, 100, {\n * type: \"spring\",\n * stiffness: 2000,\n * onComplete: v => {}\n * })\n *\n * return controls.stop\n * })\n * ```\n *\n * @public\n */\nfunction animate(from, to, transition = {}) {\n const value = isMotionValue(from) ? from : motionValue(from);\n value.start(createMotionValueAnimation(\"\", value, to, transition));\n return {\n stop: () => value.stop(),\n isAnimating: () => value.isAnimating(),\n };\n}\n\nexport { animate };\n","import { circOut } from '../../easing/circ.mjs';\nimport { progress } from '../../utils/progress.mjs';\nimport { mix } from '../../utils/mix.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { percent, px } from '../../value/types/numbers/units.mjs';\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = mix(0, \n // TODO Reinstate this if only child\n lead.opacity !== undefined ? lead.opacity : 1, easeCrossfadeIn(progress));\n target.opacityExit = mix(follow.opacity !== undefined ? follow.opacity : 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mix(follow.opacity !== undefined ? follow.opacity : 1, lead.opacity !== undefined ? lead.opacity : 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(mix(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (percent.test(leadRadius) || percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = mix(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\n// /**\n// * We only want to mix the background color if there's a follow element\n// * that we're not crossfading opacity between. For instance with switch\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\n// * element being animated but also cuts down on the number of paints triggered\n// * for elements where opacity is doing that work for us.\n// */\n// if (\n// !hasFollowElement &&\n// latestLeadValues.backgroundColor &&\n// latestFollowValues.backgroundColor\n// ) {\n// /**\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\n// * We could probably create a mixer that runs at the start of the animation but\n// * the idea behind the crossfader is that it runs dynamically between two potentially\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\n// */\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\n// latestFollowValues.backgroundColor as string,\n// latestLeadValues.backgroundColor as string\n// )(p)\n// }\nconst easeCrossfadeIn = compress(0, 0.5, circOut);\nconst easeCrossfadeOut = compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(progress(min, max, p));\n };\n}\n\nexport { mixValues };\n","/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n\nexport { copyAxisInto, copyBoxInto };\n","import { mix } from '../../utils/mix.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { scalePoint } from './delta-apply.mjs';\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = mix(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = mix(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox === null || originBox === void 0 ? void 0 : originBox.x, sourceBox === null || sourceBox === void 0 ? void 0 : sourceBox.x);\n removeAxisTransforms(box.y, transforms, yKeys, originBox === null || originBox === void 0 ? void 0 : originBox.y, sourceBox === null || sourceBox === void 0 ? void 0 : sourceBox.y);\n}\n\nexport { removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta };\n","import { calcLength } from './delta-calc.mjs';\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction boxEquals(a, b) {\n return (a.x.min === b.x.min &&\n a.x.max === b.x.max &&\n a.y.min === b.y.min &&\n a.y.max === b.y.max);\n}\nfunction aspectRatio(box) {\n return calcLength(box.x) / calcLength(box.y);\n}\n\nexport { aspectRatio, boxEquals, isDeltaZero };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n }\n remove(node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n if (member.isPresent !== false) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n var _a;\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if ((_a = node.root) === null || _a === void 0 ? void 0 : _a.isUpdating) {\n node.isLayoutDirty = true;\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n /**\n * TODO:\n * - Test border radius when previous node was deleted\n * - boxShadow mixing\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\n * ---\n * - Crossfade opacity of root nodes\n * - layoutId changes after animation\n * - layoutId changes mid animation\n */\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n var _a, _b, _c, _d, _e;\n (_b = (_a = node.options).onExitComplete) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_e = (_c = node.resumingFrom) === null || _c === void 0 ? void 0 : (_d = _c.options).onExitComplete) === null || _e === void 0 ? void 0 : _e.call(_d);\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\nexport { NodeStack };\n","function buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n if (xTranslate || yTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, 0) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { rotate, rotateX, rotateY } = latestTransform;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\nexport { buildProjectionTransform };\n","const compareByDepth = (a, b) => a.depth - b.depth;\n\nexport { compareByDepth };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\nimport { compareByDepth } from './compare-by-depth.mjs';\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n removeItem(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\nexport { FlatTree };\n","import { cancelSync, flushSync, sync } from '../../frameloop/index.mjs';\nimport { animate } from '../../animation/animate.mjs';\nimport { SubscriptionManager } from '../../utils/subscription-manager.mjs';\nimport { mixValues } from '../animation/mix-values.mjs';\nimport { copyBoxInto } from '../geometry/copy.mjs';\nimport { translateAxis, transformBox, applyBoxDelta, applyTreeDeltas } from '../geometry/delta-apply.mjs';\nimport { calcRelativePosition, calcRelativeBox, calcBoxDelta, calcLength, isNear } from '../geometry/delta-calc.mjs';\nimport { removeBoxTransforms } from '../geometry/delta-remove.mjs';\nimport { createBox, createDelta } from '../geometry/models.mjs';\nimport { getValueTransition } from '../../animation/utils/transitions.mjs';\nimport { boxEquals, isDeltaZero, aspectRatio } from '../geometry/utils.mjs';\nimport { NodeStack } from '../shared/stack.mjs';\nimport { scaleCorrectors } from '../styles/scale-correction.mjs';\nimport { buildProjectionTransform } from '../styles/transform.mjs';\nimport { eachAxis } from '../utils/each-axis.mjs';\nimport { hasTransform, hasScale, has2DTranslate } from '../utils/has-transform.mjs';\nimport { FlatTree } from '../../render/utils/flat-tree.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { globalProjectionState } from './state.mjs';\nimport { delay } from '../../utils/delay.mjs';\nimport { mix } from '../../utils/mix.mjs';\n\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(elementId, latestValues = {}, parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n this.isTransformDirty = false;\n /**\n * Flag to true if we think the projection calculations for this or any\n * child might need recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n // Note: Currently only running on root node\n this.potentialNodes = new Map();\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n };\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.elementId = elementId;\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n elementId && this.root.registerPotentialNode(elementId, this);\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager === null || subscriptionManager === void 0 ? void 0 : subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n registerPotentialNode(elementId, node) {\n this.potentialNodes.set(elementId, node);\n }\n /**\n * Lifecycles\n */\n mount(instance, isLayoutDirty = false) {\n var _a;\n if (this.instance)\n return;\n this.isSVG =\n instance instanceof SVGElement && instance.tagName !== \"svg\";\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n (_a = this.parent) === null || _a === void 0 ? void 0 : _a.children.add(this);\n this.elementId && this.root.potentialNodes.delete(this.elementId);\n if (isLayoutDirty && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n attachResizeListener(instance, () => {\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = delay(resizeUnblockUpdate, 250);\n if (globalProjectionState.hasAnimatedSinceResize) {\n globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeTargetChanged, layout: newLayout, }) => {\n var _a, _b, _c, _d, _e;\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = (_b = (_a = this.options.transition) !== null && _a !== void 0 ? _a : visualElement.getDefaultTransition()) !== null && _b !== void 0 ? _b : defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const targetChanged = !this.targetLayout ||\n !boxEquals(this.targetLayout, newLayout) ||\n hasRelativeTargetChanged;\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n if (((_c = this.resumeFrom) === null || _c === void 0 ? void 0 : _c.instance) ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (targetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n const animationOptions = {\n ...getValueTransition(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never commited to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged &&\n this.animationProgress === 0) {\n finishAnimation(this);\n }\n this.isLead() && ((_e = (_d = this.options).onExitComplete) === null || _e === void 0 ? void 0 : _e.call(_d));\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n var _a, _b;\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.remove(this);\n (_b = this.parent) === null || _b === void 0 ? void 0 : _b.children.delete(this);\n this.instance = undefined;\n cancelSync.preRender(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n var _a;\n return (this.isAnimationBlocked ||\n ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n var _a;\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n (_a = this.nodes) === null || _a === void 0 ? void 0 : _a.forEach(resetRotation);\n this.animationId++;\n }\n willUpdate(shouldNotifyListeners = true) {\n var _a, _b, _c;\n if (this.root.isUpdateBlocked()) {\n (_b = (_a = this.options).onExitComplete) === null || _b === void 0 ? void 0 : _b.call(_a);\n return;\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = (_c = this.options.visualElement) === null || _c === void 0 ? void 0 : _c.getProps().transformTemplate;\n this.prevTransformTemplateValue = transformTemplate === null || transformTemplate === void 0 ? void 0 : transformTemplate(this.latestValues, \"\");\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n // Note: Currently only running on root node\n didUpdate() {\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n if (!this.isUpdating)\n return;\n this.isUpdating = false;\n /**\n * Search for and mount newly-added projection elements.\n *\n * TODO: Every time a new component is rendered we could search up the tree for\n * the closest mounted node and query from there rather than document.\n */\n if (this.potentialNodes.size) {\n this.potentialNodes.forEach(mountNodeEarly);\n this.potentialNodes.clear();\n }\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n this.clearAllSnapshots();\n // Flush any scheduled updates\n flushSync.update();\n flushSync.preRender();\n flushSync.render();\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n sync.preRender(this.updateProjection, false, true);\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n sync.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n }\n updateLayout() {\n var _a;\n if (!this.instance)\n return;\n // TODO: Incorporate into a forwarded scroll offset\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout === null || prevLayout === void 0 ? void 0 : prevLayout.layoutBox);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement) {\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot: checkIsScrollRoot(this.instance),\n offset: measureScroll(this.instance),\n };\n }\n }\n resetTransform() {\n var _a;\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty || this.shouldResetTransform;\n const hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n const transformTemplate = (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.getProps().transformTemplate;\n const transformTemplateValue = transformTemplate === null || transformTemplate === void 0 ? void 0 : transformTemplate(this.latestValues, \"\");\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n (hasProjection ||\n hasTransform(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n const { visualElement } = this.options;\n if (!visualElement)\n return createBox();\n const box = visualElement.measureViewportBox();\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n translateAxis(box.x, scroll.offset.x);\n translateAxis(box.y, scroll.offset.y);\n }\n return box;\n }\n removeElementScroll(box) {\n const boxWithoutScroll = createBox();\n copyBoxInto(boxWithoutScroll, box);\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.isRoot) {\n copyBoxInto(boxWithoutScroll, box);\n const { scroll: rootScroll } = this.root;\n /**\n * Undo the application of page scroll that was originally added\n * to the measured bounding box.\n */\n if (rootScroll) {\n translateAxis(boxWithoutScroll.x, -rootScroll.offset.x);\n translateAxis(boxWithoutScroll.y, -rootScroll.offset.y);\n }\n }\n translateAxis(boxWithoutScroll.x, scroll.offset.x);\n translateAxis(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!hasTransform(node.latestValues))\n continue;\n transformBox(withTransforms, node.latestValues);\n }\n if (hasTransform(this.latestValues)) {\n transformBox(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n var _a;\n const boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n const sourceBox = createBox();\n const nodeBox = node.measurePageBox();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, (_a = node.snapshot) === null || _a === void 0 ? void 0 : _a.layoutBox, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n /**\n *\n */\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.isProjectionDirty = true;\n this.root.scheduleUpdateProjection();\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n /**\n * Frame calculations\n */\n resolveTargetDelta() {\n var _a;\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n if (!this.isProjectionDirty && !this.attemptToResolveRelativeTarget)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n // TODO If this is unsuccessful this currently happens every frame\n if (!this.targetDelta && !this.relativeTarget) {\n // TODO: This is a semi-repetition of further down this function, make DRY\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent && relativeParent.layout) {\n this.relativeParent = relativeParent;\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = createBox();\n this.targetWithTransforms = createBox();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n ((_a = this.relativeParent) === null || _a === void 0 ? void 0 : _a.target)) {\n calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n applyBoxDelta(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target) {\n this.relativeParent = relativeParent;\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n hasScale(this.parent.latestValues) ||\n has2DTranslate(this.parent.latestValues))\n return undefined;\n if ((this.parent.relativeTarget || this.parent.targetDelta) &&\n this.parent.layout) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n calcProjection() {\n var _a;\n const { isProjectionDirty, isTransformDirty } = this;\n this.isProjectionDirty = this.isTransformDirty = false;\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n if (isProjectionDirty)\n canSkip = false;\n if (isShared && isTransformDirty)\n canSkip = false;\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean(((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n copyBoxInto(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared);\n const { target } = lead;\n if (!target)\n return;\n if (!this.projectionDelta) {\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n const prevProjectionTransform = this.projectionTransform;\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n this.projectionTransform = buildProjectionTransform(this.projectionDelta, this.treeScale);\n if (this.projectionTransform !== prevProjectionTransform ||\n this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n var _a, _b, _c;\n (_b = (_a = this.options).scheduleRender) === null || _b === void 0 ? void 0 : _b.call(_a);\n notifyAll && ((_c = this.getStack()) === null || _c === void 0 ? void 0 : _c.scheduleRender());\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n var _a, _b;\n const snapshot = this.snapshot;\n const snapshotLatestValues = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.latestValues) || {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = createDelta();\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = createBox();\n const isSharedLayoutAnimation = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.source) !== ((_a = this.layout) === null || _a === void 0 ? void 0 : _a.source);\n const isOnlyMember = (((_b = this.getStack()) === null || _b === void 0 ? void 0 : _b.members.length) || 0) <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n this.mixTargetDelta = (latest) => {\n var _a;\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n ((_a = this.relativeParent) === null || _a === void 0 ? void 0 : _a.layout)) {\n calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n mixValues(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(0);\n }\n startAnimation(options) {\n var _a, _b;\n this.notifyListeners(\"animationStart\");\n (_a = this.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop();\n if (this.resumingFrom) {\n (_b = this.resumingFrom.currentAnimation) === null || _b === void 0 ? void 0 : _b.stop();\n }\n if (this.pendingAnimation) {\n cancelSync.update(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = sync.update(() => {\n globalProjectionState.hasAnimatedSinceResize = true;\n this.currentAnimation = animate(0, animationTarget, {\n ...options,\n onUpdate: (latest) => {\n var _a;\n this.mixTargetDelta(latest);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, latest);\n },\n onComplete: () => {\n var _a;\n (_a = options.onComplete) === null || _a === void 0 ? void 0 : _a.call(options);\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n var _a;\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n var _a;\n if (this.currentAnimation) {\n (_a = this.mixTargetDelta) === null || _a === void 0 ? void 0 : _a.call(this, animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || createBox();\n const xLength = calcLength(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = calcLength(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n copyBoxInto(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n transformBox(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n var _a, _b, _c;\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n node.promote({\n transition: (_a = node.options.initialPromotionConfig) === null || _a === void 0 ? void 0 : _a.transition,\n preserveFollowOpacity: (_c = (_b = node.options.initialPromotionConfig) === null || _b === void 0 ? void 0 : _b.shouldPreserveFollowOpacity) === null || _c === void 0 ? void 0 : _c.call(_b, node),\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;\n }\n getPrevLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected rotation values, we can early return without a forced render.\n let hasRotate = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ) {\n hasRotate = true;\n }\n // If there's no rotation values, we don't need to do any more.\n if (!hasRotate)\n return;\n const resetValues = {};\n // Check the rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n const key = \"rotate\" + transformAxes[i];\n // Record the rotation and then temporarily set it to 0\n if (latestValues[key]) {\n resetValues[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n }\n }\n // Force a render of this element to apply the transform with all rotations\n // set to 0.\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n getProjectionStyles(styleProp = {}) {\n var _a, _b, _c;\n // TODO: Return lifecycle-persistent object\n const styles = {};\n if (!this.instance || this.isSVG)\n return styles;\n if (!this.isVisible) {\n return { visibility: \"hidden\" };\n }\n else {\n styles.visibility = \"\";\n }\n const transformTemplate = (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.getProps().transformTemplate;\n if (this.needsReset) {\n this.needsReset = false;\n styles.opacity = \"\";\n styles.pointerEvents =\n resolveMotionValue(styleProp.pointerEvents) || \"\";\n styles.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return styles;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n const emptyStyles = {};\n if (this.options.layoutId) {\n emptyStyles.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n emptyStyles.pointerEvents =\n resolveMotionValue(styleProp.pointerEvents) || \"\";\n }\n if (this.hasProjected && !hasTransform(this.latestValues)) {\n emptyStyles.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return emptyStyles;\n }\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n styles.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n styles.transform = transformTemplate(valuesToRender, styles.transform);\n }\n const { x, y } = this.projectionDelta;\n styles.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n styles.opacity =\n lead === this\n ? (_c = (_b = valuesToRender.opacity) !== null && _b !== void 0 ? _b : this.latestValues.opacity) !== null && _c !== void 0 ? _c : 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n styles.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo } = scaleCorrectors[key];\n const corrected = correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n styles[applyTo[i]] = corrected;\n }\n }\n else {\n styles[key] = corrected;\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n styles.pointerEvents =\n lead === this\n ? resolveMotionValue(styleProp.pointerEvents) || \"\"\n : \"none\";\n }\n return styles;\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => { var _a; return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop(); });\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n var _a, _b, _c;\n const snapshot = ((_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n const layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = createDelta();\n if (isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n calcBoxDelta(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !isDeltaZero(layoutDelta);\n let hasRelativeTargetChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout, parentLayout.layoutBox);\n if (!boxEquals(relativeSnapshot, relativeLayout)) {\n hasRelativeTargetChanged = true;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeTargetChanged,\n });\n }\n else if (node.isLead()) {\n (_c = (_b = node.options).onExitComplete) === null || _c === void 0 ? void 0 : _c.call(_b);\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Propagate isProjectionDirty. Nodes are ordered by depth, so if the parent here\n * is dirty we can simply pass this forward.\n */\n node.isProjectionDirty || (node.isProjectionDirty = Boolean(node.parent && node.parent.isProjectionDirty));\n /**\n * Propagate isTransformDirty.\n */\n node.isTransformDirty || (node.isTransformDirty = Boolean(node.parent && node.parent.isTransformDirty));\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement === null || visualElement === void 0 ? void 0 : visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetRotation(node) {\n node.resetRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = mix(delta.translate, 0, p);\n output.scale = mix(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = mix(from.min, to.min, p);\n output.max = mix(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nfunction mountNodeEarly(node, elementId) {\n /**\n * Rather than searching the DOM from document we can search the\n * path for the deepest mounted ancestor and search from there\n */\n let searchNode = node.root;\n for (let i = node.path.length - 1; i >= 0; i--) {\n if (Boolean(node.path[i].instance)) {\n searchNode = node.path[i];\n break;\n }\n }\n const searchElement = searchNode && searchNode !== node.root ? searchNode.instance : document;\n const element = searchElement.querySelector(`[data-projection-id=\"${elementId}\"]`);\n if (element)\n node.mount(element, true);\n}\nfunction roundAxis(axis) {\n axis.min = Math.round(axis.min);\n axis.max = Math.round(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !isNear(aspectRatio(snapshot), aspectRatio(layout), 0.2)));\n}\n\nexport { createProjectionNode, mixAxis, mixAxisDelta, mixBox, propagateDirtyNodes };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { addDomEvent } from '../../events/use-dom-event.mjs';\n\nconst DocumentProjectionNode = createProjectionNode({\n attachResizeListener: (ref, notify) => addDomEvent(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }),\n checkIsScrollRoot: () => true,\n});\n\nexport { DocumentProjectionNode };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { DocumentProjectionNode } from './DocumentProjectionNode.mjs';\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = createProjectionNode({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new DocumentProjectionNode(0, {});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\nexport { HTMLProjectionNode, rootProjectionNode };\n","import { createMotionComponent } from '../../motion/index.mjs';\nimport { createMotionProxy } from './motion-proxy.mjs';\nimport { createDomMotionConfig } from './utils/create-config.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { animations } from '../../motion/features/animations.mjs';\nimport { drag } from '../../motion/features/drag.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\nimport { layoutFeatures } from '../../motion/features/layout/index.mjs';\nimport { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\n\nconst featureBundle = {\n ...animations,\n ...gestureAnimations,\n ...drag,\n ...layoutFeatures,\n};\n/**\n * HTML & SVG components, optimised for use with gestures and animation. These can be used as\n * drop-in replacements for any HTML & SVG component, all CSS & SVG properties are supported.\n *\n * @public\n */\nconst motion = /*@__PURE__*/ createMotionProxy((Component, config) => createDomMotionConfig(Component, config, featureBundle, createDomVisualElement, HTMLProjectionNode));\n/**\n * Create a DOM `motion` component with the provided string. This is primarily intended\n * as a full alternative to `motion` for consumers who have to support environments that don't\n * support `Proxy`.\n *\n * ```javascript\n * import { createDomMotionComponent } from \"framer-motion\"\n *\n * const motion = {\n * div: createDomMotionComponent('div')\n * }\n * ```\n *\n * @public\n */\nfunction createDomMotionComponent(key) {\n return createMotionComponent(createDomMotionConfig(key, { forwardMotionProps: false }, featureBundle, createDomVisualElement, HTMLProjectionNode));\n}\n\nexport { createDomMotionComponent, motion };\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Outlet, useLocation } from \"react-router-dom\";\n\nimport Footer from \"../common/Footer\";\nimport PageHeader from \"../common/PageHeader\";\nimport SideNav from \"../common/SideNav\";\n\nimport { motion } from \"framer-motion\";\n\nfunction Layout() {\n const { t } = useTranslation();\n const location = useLocation();\n\n const headerTitle = () => {\n switch (location.pathname) {\n case \"/\":\n return `${t(\"navbar.welcome\")}`;\n case \"/overview/brands\":\n return `${t(\"navbar.brands\")}`;\n case \"/account\":\n return `${t(\"navbar.account\")}`;\n case \"/account/profile\":\n return `${t(\"navbar.account\")}`;\n\n case \"/products\":\n return `${t(\"navbar.products\")}`;\n case \"/account/address\":\n return `${t(\"navbar.account\")}`;\n case \"/account/new-address\":\n return `${t(\"navbar.account\")}`;\n case \"/account/archived-products\":\n return `${t(\"navbar.account\")}`;\n case \"/services\":\n return `${t(\"navbar.services\")}`;\n case \"/services/get-extended-warranty\":\n return `${t(\"navbar.services\")}`;\n case \"/claims\":\n return `${t(\"navbar.claims\")}`;\n case \"/claims/create\":\n return `${t(\"navbar.claims\")}`;\n default:\n return \"egaranti\";\n }\n };\n\n return (\n <div data-tour=\"0\" className=\"relative flex w-full justify-between\">\n <SideNav />\n <main className=\"flex min-h-screen w-full flex-col overflow-auto bg-[#F9FAFC]\">\n <PageHeader title={headerTitle()} />\n <div\n className=\"pb-24 md:pb-12\"\n style={{\n WebkitOverflowScrolling: \"touch\",\n }}\n >\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.4 }}\n >\n <Outlet />\n </motion.div>\n </div>\n <Footer stickyBottom={true} />\n </main>\n </div>\n );\n}\n\nexport default Layout;\n","export default \"__VITE_ASSET__99820d1a__\"","export default \"__VITE_ASSET__85ff6f7b__\"","export default \"__VITE_ASSET__0d70f4ba__\"","export default \"__VITE_ASSET__0752a677__\"","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport default function AccountMenuCard({ title, icon, text, link, ...props }) {\n return (\n <Link to={link}>\n <div\n className=\"h-full cursor-pointer rounded-lg border border-[#E3E7EF] bg-white p-6\"\n {...props}\n >\n <div className=\"flex items-center gap-2\">\n {icon}\n <h2 className=\"font-semibold text-[#111729]\">{title}</h2>\n </div>\n <p className=\"mt-4 text-sm font-medium text-[#677389]\">{text}</p>\n </div>\n </Link>\n );\n}\n","import React from \"react\";\n\nexport default function AccountMenuGrid({ children }) {\n return (\n <div className=\"grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3\">\n {children}\n </div>\n );\n}\n","import { Button } from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ReactComponent as AddressIcon } from \"../../assets/svgs/accountpage/addressicon.svg\";\nimport { ReactComponent as ArchiveIcon } from \"../../assets/svgs/accountpage/archiveicon.svg\";\nimport { ReactComponent as GlobeIcon } from \"../../assets/svgs/accountpage/globe.svg\";\nimport { ReactComponent as ProfileIcon } from \"../../assets/svgs/accountpage/profileicon.svg\";\nimport AccountMenuCard from \"../../components/Account/AccountMenuCard\";\n//import { ReactComponent as PaymentIcon } from \"../../assets/svgs/accountpage/paymenticon.svg\";\n// import { ReactComponent as SecurityIcon } from \"../../assets/svgs/accountpage/securityicon.svg\";\n// import { ReactComponent as NotificationIcon } from \"../../assets/svgs/accountpage/notificationicon.svg\";\n// import { ReactComponent as SupportIcon } from \"../../assets/svgs/accountpage/supporticon.svg\";\nimport AccountMenuGrid from \"../../components/Account/AccountMenuGrid\";\n\nimport LogoutDialog from \"@/components/Auth/LogoutDialog\";\n\nexport default function Account() {\n const { t } = useTranslation();\n const [onOpenLogout, setOnOpenLogout] = React.useState(false);\n\n return (\n <div className=\"p-5 pb-[100px] md:pb-8\">\n <AccountMenuGrid>\n <AccountMenuCard\n title={t(\"accountPage.card1Title\")}\n icon={<ProfileIcon />}\n text={t(\"accountPage.card1Desc\")}\n link=\"/account/profile\"\n />\n <AccountMenuCard\n title={t(\"accountPage.card2Title\")}\n icon={<AddressIcon />}\n text={t(\"accountPage.card2Desc\")}\n link=\"/account/address\"\n />\n <AccountMenuCard\n title={t(\"accountPage.card3Title\")}\n icon={<GlobeIcon />}\n text={t(\"accountPage.card3Desc\")}\n link=\"/account/language\"\n />\n <AccountMenuCard\n title={t(\"accountPage.archivedProducts\")}\n icon={<ArchiveIcon />}\n text={t(\"accountPage.archivedProductsDesc\")}\n link=\"/account/archived-products\"\n />\n {/* <AccountMenuCard\n title=\"Ödeme Bilgileri\"\n icon={<PaymentIcon />}\n text=\"Ödeme yöntemlerinizi buradan yönetebilirsiniz.\"\n link=\"/account\"\n /> */}\n {/* <AccountMenuCard\n title=\"Güvenlik\"\n icon={<SecurityIcon />}\n text=\"Åžifrenizi istediÄŸiniz zaman deÄŸiÅŸtirebilir, hesabınızı daha güvenli kullanabilirsiniz.\"\n link=\"/account/security\"\n /> */}\n {/* <AccountMenuCard\n title=\"Bildirimler\"\n icon={<NotificationIcon />}\n text=\"Ticari Elektronik Ä°letileri ve Bildirimlerinizi buradan yönetebilirsiniz.\"\n link=\"/account/notification\"\n />\n <AccountMenuCard\n title=\"Destek\"\n icon={<SupportIcon />}\n text=\"Herhangi bir sorunuz varsa veya daha fazla bilgi almak istiyorsanız lütfen bize ulaşın. \"\n link=\"/account/support\"\n /> */}\n {JSON.parse(localStorage.getItem(\"customizations\"))?.sourceAppName !==\n \"yapikredi\" && (\n <div className=\"md:hidden\">\n <Button className=\"w-full\" onClick={() => setOnOpenLogout(true)}>\n <svg\n width=\"17\"\n height=\"18\"\n viewBox=\"0 0 17 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.8333 13.1667L16 9M16 9L11.8333 4.83333M16 9H6M8.5 13.1667C8.5 13.9416 8.5 14.3291 8.41482 14.647C8.18365 15.5098 7.50978 16.1836 6.64705 16.4148C6.32913 16.5 5.94164 16.5 5.16667 16.5H4.75C3.58515 16.5 3.00272 16.5 2.54329 16.3097C1.93072 16.056 1.44404 15.5693 1.1903 14.9567C1 14.4973 1 13.9149 1 12.75V5.25C1 4.08515 1 3.50272 1.1903 3.04329C1.44404 2.43072 1.93072 1.94404 2.54329 1.6903C3.00272 1.5 3.58515 1.5 4.75 1.5H5.16667C5.94164 1.5 6.32913 1.5 6.64705 1.58519C7.50978 1.81635 8.18365 2.49022 8.41482 3.35295C8.5 3.67087 8.5 4.05836 8.5 4.83333\"\n stroke=\"white\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n {t(\"accountPage.logout\")}\n </Button>\n </div>\n )}\n </AccountMenuGrid>\n <LogoutDialog open={onOpenLogout} onOpenChange={setOnOpenLogout} />\n </div>\n );\n}\n","import i18n from \"@/i18n\";\n\nclass StrapiService {\n constructor() {\n this.endpoint = \"https://strapi.egaranti.co/api\";\n }\n\n async getContentList(content, options = {}) {\n const { filterString, populate, sort } = options;\n\n let url = `${this.endpoint}/${content}`;\n const queryParams = new URLSearchParams();\n\n // Add populate parameter first\n queryParams.append(\"populate\", populate || \"*\");\n\n // Add filter string directly to the URL\n if (filterString) {\n url += filterString.startsWith(\"?\") ? filterString : `&${filterString}`;\n }\n\n // Add sort parameter\n if (sort) {\n queryParams.append(\"sort\", sort);\n }\n\n // Add locale parameter\n if (i18n.language) {\n const supportedLocales = [\"tr\", \"en\", \"ru\"];\n const locale = supportedLocales.includes(i18n.language)\n ? i18n.language\n : \"tr\";\n queryParams.append(\"locale\", locale);\n }\n\n // Add query parameters to URL\n url += url.includes(\"?\")\n ? `&${queryParams.toString()}`\n : `?${queryParams.toString()}`;\n\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const { data } = await response.json();\n return data;\n } catch (error) {\n console.error(\"Error fetching data from Strapi:\", error);\n return [];\n }\n }\n}\n\nexport default new StrapiService();\n","import { useEffect, useState } from \"react\";\n\nimport strapi from \"@/lib/api/strapi\";\n\nconst useFetchContent = (contentType, options = {}) => {\n const [data, setData] = useState(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const response = await strapi.getContentList(contentType, options);\n setData(response);\n } catch (err) {\n setError(err);\n } finally {\n setLoading(false);\n }\n };\n\n fetchData();\n }, [contentType]);\n\n return { data, loading, error };\n};\n\nexport default useFetchContent;\n","function useSlideDrag(sliderRef) {\n let isDown = false;\n let startX;\n let scrollLeft;\n\n const handleMouseDown = (e) => {\n isDown = true;\n sliderRef.current.classList.add(\"active\");\n startX = e.pageX - sliderRef.current.offsetLeft;\n scrollLeft = sliderRef.current.scrollLeft;\n };\n\n const handleMouseLeave = () => {\n isDown = false;\n sliderRef.current.classList.remove(\"active\");\n };\n\n const handleMouseUp = () => {\n isDown = false;\n sliderRef.current.classList.remove(\"active\");\n };\n\n const handleMouseMove = (e) => {\n if (!isDown) return;\n e.preventDefault();\n const x = e.pageX - sliderRef.current.offsetLeft;\n const walk = (x - startX) * 3; //scroll-fast\n sliderRef.current.scrollLeft = scrollLeft - walk;\n };\n\n return { handleMouseDown, handleMouseLeave, handleMouseUp, handleMouseMove };\n}\n\nexport default useSlideDrag;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useFetchContent from \"@/lib/utils/hooks/useFetchContent\";\nimport useSlideDrag from \"@/lib/utils/hooks/useSlideDrag\";\n\nconst Brands = () => {\n const { t } = useTranslation();\n const sliderRef = useRef(null);\n const { handleMouseDown, handleMouseLeave, handleMouseUp, handleMouseMove } =\n useSlideDrag(sliderRef);\n\n const goLeft = () => {\n sliderRef.current.scrollLeft -= 100;\n };\n const goRight = () => {\n sliderRef.current.scrollLeft += 100;\n };\n\n const {\n data: brands,\n loading,\n error,\n } = useFetchContent(\"app-home-page-brands\", {\n filterString: `?sort=rank:asc`,\n });\n\n if (loading) return <div>Loading...</div>;\n if (error) return <div>Error loading content</div>;\n\n return (\n <div className=\"flex w-full flex-col gap-5 py-6\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"mb-4 font-medium text-gray-800\">\n {t(\"homePage.brands\")}\n </h2>\n <div className=\"hidden items-center justify-between gap-2 md:flex\">\n <SliderButton direction=\"left\" onClick={goLeft} />\n <SliderButton direction=\"right\" onClick={goRight} />\n </div>\n </div>\n <div className=\"w-full overflow-hidden\">\n <div\n ref={sliderRef}\n onMouseDown={handleMouseDown}\n onMouseLeave={handleMouseLeave}\n onMouseUp={handleMouseUp}\n onMouseMove={handleMouseMove}\n className=\"x-scroll flex cursor-move flex-row items-center justify-between gap-5 overflow-x-auto\"\n style={{ scrollBehavior: \"smooth\" }}\n >\n {brands?.map((brand) => (\n <div\n key={brand.id}\n className=\"flex flex-shrink-0 flex-col items-center justify-center object-cover\"\n >\n <img\n src={\n \"https://strapi.egaranti.co\" +\n (brand.attributes?.logo?.data?.attributes?.url || \"\")\n }\n alt={brand.attributes?.title || \"Brand\"}\n />\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\nconst SliderButton = ({ direction, ...rest }) => {\n return (\n <button\n {...rest}\n className=\"flex h-8 w-8 items-center justify-center rounded-full bg-[#F2F2F2]\"\n >\n {direction === \"left\" ? (\n <svg\n fill=\"none\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15 18L9 12L15 6\"\n stroke=\"#0049E6\"\n strokeWidth=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n ) : (\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=\"M9 18L15 12L9 6\"\n stroke=\"#0049E6\"\n strokeWidth=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )}\n </button>\n );\n};\n\nexport default Brands;\n","function isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction isRecord(subject) {\n return isObject(subject) || Array.isArray(subject);\n}\nfunction canUseDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\nfunction areOptionsEqual(optionsA, optionsB) {\n const optionsAKeys = Object.keys(optionsA);\n const optionsBKeys = Object.keys(optionsB);\n if (optionsAKeys.length !== optionsBKeys.length) return false;\n const breakpointsA = JSON.stringify(Object.keys(optionsA.breakpoints || {}));\n const breakpointsB = JSON.stringify(Object.keys(optionsB.breakpoints || {}));\n if (breakpointsA !== breakpointsB) return false;\n return optionsAKeys.every(key => {\n const valueA = optionsA[key];\n const valueB = optionsB[key];\n if (typeof valueA === 'function') return `${valueA}` === `${valueB}`;\n if (!isRecord(valueA) || !isRecord(valueB)) return valueA === valueB;\n return areOptionsEqual(valueA, valueB);\n });\n}\nfunction sortAndMapPluginToOptions(plugins) {\n return plugins.concat().sort((a, b) => a.name > b.name ? 1 : -1).map(plugin => plugin.options);\n}\nfunction arePluginsEqual(pluginsA, pluginsB) {\n if (pluginsA.length !== pluginsB.length) return false;\n const optionsA = sortAndMapPluginToOptions(pluginsA);\n const optionsB = sortAndMapPluginToOptions(pluginsB);\n return optionsA.every((optionA, index) => {\n const optionB = optionsB[index];\n return areOptionsEqual(optionA, optionB);\n });\n}\n\nexport { areOptionsEqual, arePluginsEqual, canUseDOM, sortAndMapPluginToOptions };\n//# sourceMappingURL=embla-carousel-reactive-utils.esm.js.map\n","function isNumber(subject) {\n return typeof subject === 'number';\n}\nfunction isString(subject) {\n return typeof subject === 'string';\n}\nfunction isBoolean(subject) {\n return typeof subject === 'boolean';\n}\nfunction isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction mathAbs(n) {\n return Math.abs(n);\n}\nfunction mathSign(n) {\n return Math.sign(n);\n}\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\nfunction roundToTwoDecimals(num) {\n return Math.round(num * 100) / 100;\n}\nfunction arrayKeys(array) {\n return objectKeys(array).map(Number);\n}\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\nfunction arrayIsLastIndex(array, index) {\n return index === arrayLastIndex(array);\n}\nfunction arrayFromNumber(n, startAt = 0) {\n return Array.from(Array(n), (_, i) => startAt + i);\n}\nfunction objectKeys(object) {\n return Object.keys(object);\n}\nfunction objectsMergeDeep(objectA, objectB) {\n return [objectA, objectB].reduce((mergedObjects, currentObject) => {\n objectKeys(currentObject).forEach(key => {\n const valueA = mergedObjects[key];\n const valueB = currentObject[key];\n const areObjects = isObject(valueA) && isObject(valueB);\n mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;\n });\n return mergedObjects;\n }, {});\n}\nfunction isMouseEvent(evt, ownerWindow) {\n return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;\n}\n\nfunction Alignment(align, viewSize) {\n const predefined = {\n start,\n center,\n end\n };\n function start() {\n return 0;\n }\n function center(n) {\n return end(n) / 2;\n }\n function end(n) {\n return viewSize - n;\n }\n function measure(n, index) {\n if (isString(align)) return predefined[align](n);\n return align(viewSize, n, index);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction EventStore() {\n let listeners = [];\n function add(node, type, handler, options = {\n passive: true\n }) {\n let removeListener;\n if ('addEventListener' in node) {\n node.addEventListener(type, handler, options);\n removeListener = () => node.removeEventListener(type, handler, options);\n } else {\n const legacyMediaQueryList = node;\n legacyMediaQueryList.addListener(handler);\n removeListener = () => legacyMediaQueryList.removeListener(handler);\n }\n listeners.push(removeListener);\n return self;\n }\n function clear() {\n listeners = listeners.filter(remove => remove());\n }\n const self = {\n add,\n clear\n };\n return self;\n}\n\nfunction Animations(ownerDocument, ownerWindow, update, render) {\n const documentVisibleHandler = EventStore();\n const fixedTimeStep = 1000 / 60;\n let lastTimeStamp = null;\n let accumulatedTime = 0;\n let animationId = 0;\n function init() {\n documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {\n if (ownerDocument.hidden) reset();\n });\n }\n function destroy() {\n stop();\n documentVisibleHandler.clear();\n }\n function animate(timeStamp) {\n if (!animationId) return;\n if (!lastTimeStamp) {\n lastTimeStamp = timeStamp;\n update();\n update();\n }\n const timeElapsed = timeStamp - lastTimeStamp;\n lastTimeStamp = timeStamp;\n accumulatedTime += timeElapsed;\n while (accumulatedTime >= fixedTimeStep) {\n update();\n accumulatedTime -= fixedTimeStep;\n }\n const alpha = accumulatedTime / fixedTimeStep;\n render(alpha);\n if (animationId) {\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n }\n function start() {\n if (animationId) return;\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n function stop() {\n ownerWindow.cancelAnimationFrame(animationId);\n lastTimeStamp = null;\n accumulatedTime = 0;\n animationId = 0;\n }\n function reset() {\n lastTimeStamp = null;\n accumulatedTime = 0;\n }\n const self = {\n init,\n destroy,\n start,\n stop,\n update,\n render\n };\n return self;\n}\n\nfunction Axis(axis, contentDirection) {\n const isRightToLeft = contentDirection === 'rtl';\n const isVertical = axis === 'y';\n const scroll = isVertical ? 'y' : 'x';\n const cross = isVertical ? 'x' : 'y';\n const sign = !isVertical && isRightToLeft ? -1 : 1;\n const startEdge = getStartEdge();\n const endEdge = getEndEdge();\n function measureSize(nodeRect) {\n const {\n height,\n width\n } = nodeRect;\n return isVertical ? height : width;\n }\n function getStartEdge() {\n if (isVertical) return 'top';\n return isRightToLeft ? 'right' : 'left';\n }\n function getEndEdge() {\n if (isVertical) return 'bottom';\n return isRightToLeft ? 'left' : 'right';\n }\n function direction(n) {\n return n * sign;\n }\n const self = {\n scroll,\n cross,\n startEdge,\n endEdge,\n measureSize,\n direction\n };\n return self;\n}\n\nfunction Limit(min = 0, max = 0) {\n const length = mathAbs(min - max);\n function reachedMin(n) {\n return n < min;\n }\n function reachedMax(n) {\n return n > max;\n }\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n const self = {\n length,\n max,\n min,\n constrain,\n reachedAny,\n reachedMax,\n reachedMin,\n removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n const {\n constrain\n } = Limit(0, max);\n const loopEnd = max + 1;\n let counter = withinLimit(start);\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n function get() {\n return counter;\n }\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n function add(n) {\n return clone().set(get() + n);\n }\n function clone() {\n return Counter(max, get(), loop);\n }\n const self = {\n get,\n set,\n add,\n clone\n };\n return self;\n}\n\nfunction DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {\n const {\n cross: crossAxis,\n direction\n } = axis;\n const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n const nonPassiveEvent = {\n passive: false\n };\n const initEvents = EventStore();\n const dragEvents = EventStore();\n const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));\n const snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n const freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n const baseSpeed = dragFree ? 43 : 25;\n let isMoving = false;\n let startScroll = 0;\n let startCross = 0;\n let pointerIsDown = false;\n let preventScroll = false;\n let preventClick = false;\n let isMouse = false;\n function init(emblaApi) {\n if (!watchDrag) return;\n function downIfAllowed(evt) {\n if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);\n }\n const node = rootNode;\n initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);\n }\n function destroy() {\n initEvents.clear();\n dragEvents.clear();\n }\n function addDragEvents() {\n const node = isMouse ? ownerDocument : rootNode;\n dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);\n }\n function isFocusNode(node) {\n const nodeName = node.nodeName || '';\n return focusNodes.includes(nodeName);\n }\n function forceBoost() {\n const boost = dragFree ? freeForceBoost : snapForceBoost;\n const type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n function allowedForce(force, targetChanged) {\n const next = index.add(mathSign(force) * -1);\n const baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n function down(evt) {\n const isMouseEvt = isMouseEvent(evt, ownerWindow);\n isMouse = isMouseEvt;\n preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;\n isMoving = deltaAbs(target.get(), location.get()) >= 2;\n if (isMouseEvt && evt.button !== 0) return;\n if (isFocusNode(evt.target)) return;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n scrollBody.useFriction(0).useDuration(0);\n target.set(location);\n addDragEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n eventHandler.emit('pointerDown');\n }\n function move(evt) {\n const isTouchEvt = !isMouseEvent(evt, ownerWindow);\n if (isTouchEvt && evt.touches.length >= 2) return up(evt);\n const lastScroll = dragTracker.readPoint(evt);\n const lastCross = dragTracker.readPoint(evt, crossAxis);\n const diffScroll = deltaAbs(lastScroll, startScroll);\n const diffCross = deltaAbs(lastCross, startCross);\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll) return up(evt);\n }\n const diff = dragTracker.pointerMove(evt);\n if (diffScroll > dragThreshold) preventClick = true;\n scrollBody.useFriction(0.3).useDuration(0.75);\n animation.start();\n target.add(direction(diff));\n evt.preventDefault();\n }\n function up(evt) {\n const currentLocation = scrollTarget.byDistance(0, false);\n const targetChanged = currentLocation.index !== index.get();\n const rawForce = dragTracker.pointerUp(evt) * forceBoost();\n const force = allowedForce(direction(rawForce), targetChanged);\n const forceFactor = factorAbs(rawForce, force);\n const speed = baseSpeed - 10 * forceFactor;\n const friction = baseFriction + forceFactor / 50;\n preventScroll = false;\n pointerIsDown = false;\n dragEvents.clear();\n scrollBody.useDuration(speed).useFriction(friction);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n eventHandler.emit('pointerUp');\n }\n function click(evt) {\n if (preventClick) {\n evt.stopPropagation();\n evt.preventDefault();\n preventClick = false;\n }\n }\n function pointerDown() {\n return pointerIsDown;\n }\n const self = {\n init,\n destroy,\n pointerDown\n };\n return self;\n}\n\nfunction DragTracker(axis, ownerWindow) {\n const logInterval = 170;\n let startEvent;\n let lastEvent;\n function readTime(evt) {\n return evt.timeStamp;\n }\n function readPoint(evt, evtAxis) {\n const property = evtAxis || axis.scroll;\n const coord = `client${property === 'x' ? 'X' : 'Y'}`;\n return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];\n }\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return readPoint(evt);\n }\n function pointerMove(evt) {\n const diff = readPoint(evt) - readPoint(lastEvent);\n const expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return diff;\n }\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n const diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n const diffTime = readTime(evt) - readTime(startEvent);\n const expired = readTime(evt) - readTime(lastEvent) > logInterval;\n const force = diffDrag / diffTime;\n const isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? force : 0;\n }\n const self = {\n pointerDown,\n pointerMove,\n pointerUp,\n readPoint\n };\n return self;\n}\n\nfunction NodeRects() {\n function measure(node) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = node;\n const offset = {\n top: offsetTop,\n right: offsetLeft + offsetWidth,\n bottom: offsetTop + offsetHeight,\n left: offsetLeft,\n width: offsetWidth,\n height: offsetHeight\n };\n return offset;\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction PercentOfView(viewSize) {\n function measure(n) {\n return viewSize * (n / 100);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {\n const observeNodes = [container].concat(slides);\n let resizeObserver;\n let containerSize;\n let slideSizes = [];\n let destroyed = false;\n function readSize(node) {\n return axis.measureSize(nodeRects.measure(node));\n }\n function init(emblaApi) {\n if (!watchResize) return;\n containerSize = readSize(container);\n slideSizes = slides.map(readSize);\n function defaultCallback(entries) {\n for (const entry of entries) {\n if (destroyed) return;\n const isContainer = entry.target === container;\n const slideIndex = slides.indexOf(entry.target);\n const lastSize = isContainer ? containerSize : slideSizes[slideIndex];\n const newSize = readSize(isContainer ? container : slides[slideIndex]);\n const diffSize = mathAbs(newSize - lastSize);\n if (diffSize >= 0.5) {\n emblaApi.reInit();\n eventHandler.emit('resize');\n break;\n }\n }\n }\n resizeObserver = new ResizeObserver(entries => {\n if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {\n defaultCallback(entries);\n }\n });\n ownerWindow.requestAnimationFrame(() => {\n observeNodes.forEach(node => resizeObserver.observe(node));\n });\n }\n function destroy() {\n destroyed = true;\n if (resizeObserver) resizeObserver.disconnect();\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {\n let scrollVelocity = 0;\n let scrollDirection = 0;\n let scrollDuration = baseDuration;\n let scrollFriction = baseFriction;\n let rawLocation = location.get();\n let rawLocationPrevious = 0;\n function seek() {\n const displacement = target.get() - location.get();\n const isInstant = !scrollDuration;\n let scrollDistance = 0;\n if (isInstant) {\n scrollVelocity = 0;\n previousLocation.set(target);\n location.set(target);\n scrollDistance = displacement;\n } else {\n previousLocation.set(location);\n scrollVelocity += displacement / scrollDuration;\n scrollVelocity *= scrollFriction;\n rawLocation += scrollVelocity;\n location.add(scrollVelocity);\n scrollDistance = rawLocation - rawLocationPrevious;\n }\n scrollDirection = mathSign(scrollDistance);\n rawLocationPrevious = rawLocation;\n return self;\n }\n function settled() {\n const diff = target.get() - offsetLocation.get();\n return mathAbs(diff) < 0.001;\n }\n function duration() {\n return scrollDuration;\n }\n function direction() {\n return scrollDirection;\n }\n function velocity() {\n return scrollVelocity;\n }\n function useBaseDuration() {\n return useDuration(baseDuration);\n }\n function useBaseFriction() {\n return useFriction(baseFriction);\n }\n function useDuration(n) {\n scrollDuration = n;\n return self;\n }\n function useFriction(n) {\n scrollFriction = n;\n return self;\n }\n const self = {\n direction,\n duration,\n velocity,\n seek,\n settled,\n useBaseFriction,\n useBaseDuration,\n useFriction,\n useDuration\n };\n return self;\n}\n\nfunction ScrollBounds(limit, location, target, scrollBody, percentOfView) {\n const pullBackThreshold = percentOfView.measure(10);\n const edgeOffsetTolerance = percentOfView.measure(50);\n const frictionLimit = Limit(0.1, 0.99);\n let disabled = false;\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(location.get())) return false;\n return true;\n }\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n const edge = limit.reachedMin(location.get()) ? 'min' : 'max';\n const diffToEdge = mathAbs(limit[edge] - location.get());\n const diffToTarget = target.get() - location.get();\n const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);\n target.subtract(diffToTarget * friction);\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useDuration(25).useBaseFriction();\n }\n }\n function toggleActive(active) {\n disabled = !active;\n }\n const self = {\n shouldConstrain,\n constrain,\n toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {\n const scrollBounds = Limit(-contentSize + viewSize, 0);\n const snapsBounded = measureBounded();\n const scrollContainLimit = findScrollContainLimit();\n const snapsContained = measureContained();\n function usePixelTolerance(bound, snap) {\n return deltaAbs(bound, snap) <= 1;\n }\n function findScrollContainLimit() {\n const startSnap = snapsBounded[0];\n const endSnap = arrayLast(snapsBounded);\n const min = snapsBounded.lastIndexOf(startSnap);\n const max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n function measureBounded() {\n return snapsAligned.map((snapAligned, index) => {\n const {\n min,\n max\n } = scrollBounds;\n const snap = scrollBounds.constrain(snapAligned);\n const isFirst = !index;\n const isLast = arrayIsLastIndex(snapsAligned, index);\n if (isFirst) return max;\n if (isLast) return min;\n if (usePixelTolerance(min, snap)) return min;\n if (usePixelTolerance(max, snap)) return max;\n return snap;\n }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));\n }\n function measureContained() {\n if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n const {\n min,\n max\n } = scrollContainLimit;\n return snapsBounded.slice(min, max);\n }\n const self = {\n snapsContained,\n scrollContainLimit\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n const max = scrollSnaps[0];\n const min = loop ? max - contentSize : arrayLast(scrollSnaps);\n const limit = Limit(min, max);\n const self = {\n limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, limit, location, vectors) {\n const jointSafety = 0.1;\n const min = limit.min + jointSafety;\n const max = limit.max + jointSafety;\n const {\n reachedMin,\n reachedMax\n } = Limit(min, max);\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(location.get());\n if (direction === -1) return reachedMin(location.get());\n return false;\n }\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n const loopDistance = contentSize * (direction * -1);\n vectors.forEach(v => v.add(loopDistance));\n }\n const self = {\n loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n const {\n max,\n length\n } = limit;\n function get(n) {\n const currentLocation = n - max;\n return length ? currentLocation / -length : 0;\n }\n const self = {\n get\n };\n return self;\n}\n\nfunction ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {\n const {\n startEdge,\n endEdge\n } = axis;\n const {\n groupSlides\n } = slidesToScroll;\n const alignments = measureSizes().map(alignment.measure);\n const snaps = measureUnaligned();\n const snapsAligned = measureAligned();\n function measureSizes() {\n return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);\n }\n function measureUnaligned() {\n return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));\n }\n function measureAligned() {\n return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);\n }\n const self = {\n snaps,\n snapsAligned\n };\n return self;\n}\n\nfunction SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {\n const {\n groupSlides\n } = slidesToScroll;\n const {\n min,\n max\n } = scrollContainLimit;\n const slideRegistry = createSlideRegistry();\n function createSlideRegistry() {\n const groupedSlideIndexes = groupSlides(slideIndexes);\n const doNotContain = !containSnaps || containScroll === 'keepSnaps';\n if (scrollSnaps.length === 1) return [slideIndexes];\n if (doNotContain) return groupedSlideIndexes;\n return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(groups, index);\n if (isFirst) {\n const range = arrayLast(groups[0]) + 1;\n return arrayFromNumber(range);\n }\n if (isLast) {\n const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;\n return arrayFromNumber(range, arrayLast(groups)[0]);\n }\n return group;\n });\n }\n const self = {\n slideRegistry\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n const {\n reachedAny,\n removeOffset,\n constrain\n } = limit;\n function minDistance(distances) {\n return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];\n }\n function findTargetSnap(target) {\n const distance = loop ? removeOffset(target) : constrain(target);\n const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({\n diff: shortcut(snap - distance, 0),\n index\n })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));\n const {\n index\n } = ascDiffsToSnaps[0];\n return {\n index,\n distance\n };\n }\n function shortcut(target, direction) {\n const targets = [target, target + contentSize, target - contentSize];\n if (!loop) return target;\n if (!direction) return minDistance(targets);\n const matchingTargets = targets.filter(t => mathSign(t) === direction);\n if (matchingTargets.length) return minDistance(matchingTargets);\n return arrayLast(targets) - contentSize;\n }\n function byIndex(index, direction) {\n const diffToSnap = scrollSnaps[index] - targetVector.get();\n const distance = shortcut(diffToSnap, direction);\n return {\n index,\n distance\n };\n }\n function byDistance(distance, snap) {\n const target = targetVector.get() + distance;\n const {\n index,\n distance: targetSnapDistance\n } = findTargetSnap(target);\n const reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index,\n distance\n };\n const diffToSnap = scrollSnaps[index] - targetSnapDistance;\n const snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index,\n distance: snapDistance\n };\n }\n const self = {\n byDistance,\n byIndex,\n shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {\n function scrollTo(target) {\n const distanceDiff = target.distance;\n const indexDiff = target.index !== indexCurrent.get();\n targetVector.add(distanceDiff);\n if (distanceDiff) {\n if (scrollBody.duration()) {\n animation.start();\n } else {\n animation.update();\n animation.render(1);\n animation.update();\n }\n }\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n eventHandler.emit('select');\n }\n }\n function distance(n, snap) {\n const target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n function index(n, direction) {\n const targetIndex = indexCurrent.clone().set(n);\n const target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n const self = {\n distance,\n index\n };\n return self;\n}\n\nfunction SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {\n const focusListenerOptions = {\n passive: true,\n capture: true\n };\n let lastTabPressTime = 0;\n function init(emblaApi) {\n if (!watchFocus) return;\n function defaultCallback(index) {\n const nowTime = new Date().getTime();\n const diffTime = nowTime - lastTabPressTime;\n if (diffTime > 10) return;\n eventHandler.emit('slideFocusStart');\n root.scrollLeft = 0;\n const group = slideRegistry.findIndex(group => group.includes(index));\n if (!isNumber(group)) return;\n scrollBody.useDuration(0);\n scrollTo.index(group, 0);\n eventHandler.emit('slideFocus');\n }\n eventStore.add(document, 'keydown', registerTabPress, false);\n slides.forEach((slide, slideIndex) => {\n eventStore.add(slide, 'focus', evt => {\n if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {\n defaultCallback(slideIndex);\n }\n }, focusListenerOptions);\n });\n }\n function registerTabPress(event) {\n if (event.code === 'Tab') lastTabPressTime = new Date().getTime();\n }\n const self = {\n init\n };\n return self;\n}\n\nfunction Vector1D(initialValue) {\n let value = initialValue;\n function get() {\n return value;\n }\n function set(n) {\n value = normalizeInput(n);\n }\n function add(n) {\n value += normalizeInput(n);\n }\n function subtract(n) {\n value -= normalizeInput(n);\n }\n function normalizeInput(n) {\n return isNumber(n) ? n : n.get();\n }\n const self = {\n get,\n set,\n add,\n subtract\n };\n return self;\n}\n\nfunction Translate(axis, container) {\n const translate = axis.scroll === 'x' ? x : y;\n const containerStyle = container.style;\n let previousTarget = null;\n let disabled = false;\n function x(n) {\n return `translate3d(${n}px,0px,0px)`;\n }\n function y(n) {\n return `translate3d(0px,${n}px,0px)`;\n }\n function to(target) {\n if (disabled) return;\n const newTarget = roundToTwoDecimals(axis.direction(target));\n if (newTarget === previousTarget) return;\n containerStyle.transform = translate(newTarget);\n previousTarget = newTarget;\n }\n function toggleActive(active) {\n disabled = !active;\n }\n function clear() {\n if (disabled) return;\n containerStyle.transform = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n const self = {\n clear,\n to,\n toggleActive\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {\n const roundingSafety = 0.5;\n const ascItems = arrayKeys(slideSizesWithGaps);\n const descItems = arrayKeys(slideSizesWithGaps).reverse();\n const loopPoints = startPoints().concat(endPoints());\n function removeSlideSizes(indexes, from) {\n return indexes.reduce((a, i) => {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n function slidesInGap(indexes, gap) {\n return indexes.reduce((a, i) => {\n const remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n function findSlideBounds(offset) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + roundingSafety + offset,\n end: snap + viewSize - roundingSafety + offset\n }));\n }\n function findLoopPoints(indexes, offset, isEndEdge) {\n const slideBounds = findSlideBounds(offset);\n return indexes.map(index => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n return {\n index,\n loopPoint,\n slideLocation: Vector1D(-1),\n translate: Translate(axis, slides[index]),\n target: () => location.get() > loopPoint ? initial : altered\n };\n });\n }\n function startPoints() {\n const gap = scrollSnaps[0];\n const indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, contentSize, false);\n }\n function endPoints() {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, -contentSize, true);\n }\n function canLoop() {\n return loopPoints.every(({\n index\n }) => {\n const otherIndexes = ascItems.filter(i => i !== index);\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n }\n function loop() {\n loopPoints.forEach(loopPoint => {\n const {\n target,\n translate,\n slideLocation\n } = loopPoint;\n const shiftLocation = target();\n if (shiftLocation === slideLocation.get()) return;\n translate.to(shiftLocation);\n slideLocation.set(shiftLocation);\n });\n }\n function clear() {\n loopPoints.forEach(loopPoint => loopPoint.translate.clear());\n }\n const self = {\n canLoop,\n clear,\n loop,\n loopPoints\n };\n return self;\n}\n\nfunction SlidesHandler(container, eventHandler, watchSlides) {\n let mutationObserver;\n let destroyed = false;\n function init(emblaApi) {\n if (!watchSlides) return;\n function defaultCallback(mutations) {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n emblaApi.reInit();\n eventHandler.emit('slidesChanged');\n break;\n }\n }\n }\n mutationObserver = new MutationObserver(mutations => {\n if (destroyed) return;\n if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {\n defaultCallback(mutations);\n }\n });\n mutationObserver.observe(container, {\n childList: true\n });\n }\n function destroy() {\n if (mutationObserver) mutationObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction SlidesInView(container, slides, eventHandler, threshold) {\n const intersectionEntryMap = {};\n let inViewCache = null;\n let notInViewCache = null;\n let intersectionObserver;\n let destroyed = false;\n function init() {\n intersectionObserver = new IntersectionObserver(entries => {\n if (destroyed) return;\n entries.forEach(entry => {\n const index = slides.indexOf(entry.target);\n intersectionEntryMap[index] = entry;\n });\n inViewCache = null;\n notInViewCache = null;\n eventHandler.emit('slidesInView');\n }, {\n root: container.parentElement,\n threshold\n });\n slides.forEach(slide => intersectionObserver.observe(slide));\n }\n function destroy() {\n if (intersectionObserver) intersectionObserver.disconnect();\n destroyed = true;\n }\n function createInViewList(inView) {\n return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {\n const index = parseInt(slideIndex);\n const {\n isIntersecting\n } = intersectionEntryMap[index];\n const inViewMatch = inView && isIntersecting;\n const notInViewMatch = !inView && !isIntersecting;\n if (inViewMatch || notInViewMatch) list.push(index);\n return list;\n }, []);\n }\n function get(inView = true) {\n if (inView && inViewCache) return inViewCache;\n if (!inView && notInViewCache) return notInViewCache;\n const slideIndexes = createInViewList(inView);\n if (inView) inViewCache = slideIndexes;\n if (!inView) notInViewCache = slideIndexes;\n return slideIndexes;\n }\n const self = {\n init,\n destroy,\n get\n };\n return self;\n}\n\nfunction SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {\n const {\n measureSize,\n startEdge,\n endEdge\n } = axis;\n const withEdgeGap = slideRects[0] && readEdgeGap;\n const startGap = measureStartGap();\n const endGap = measureEndGap();\n const slideSizes = slideRects.map(measureSize);\n const slideSizesWithGaps = measureWithGaps();\n function measureStartGap() {\n if (!withEdgeGap) return 0;\n const slideRect = slideRects[0];\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\n }\n function measureEndGap() {\n if (!withEdgeGap) return 0;\n const style = ownerWindow.getComputedStyle(arrayLast(slides));\n return parseFloat(style.getPropertyValue(`margin-${endEdge}`));\n }\n function measureWithGaps() {\n return slideRects.map((rect, index, rects) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(rects, index);\n if (isFirst) return slideSizes[index] + startGap;\n if (isLast) return slideSizes[index] + endGap;\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(mathAbs);\n }\n const self = {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n };\n return self;\n}\n\nfunction SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {\n const {\n startEdge,\n endEdge,\n direction\n } = axis;\n const groupByNumber = isNumber(slidesToScroll);\n function byNumber(array, groupSize) {\n return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));\n }\n function bySize(array) {\n if (!array.length) return [];\n return arrayKeys(array).reduce((groups, rectB, index) => {\n const rectA = arrayLast(groups) || 0;\n const isFirst = rectA === 0;\n const isLast = rectB === arrayLastIndex(array);\n const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];\n const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];\n const gapA = !loop && isFirst ? direction(startGap) : 0;\n const gapB = !loop && isLast ? direction(endGap) : 0;\n const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));\n if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);\n if (isLast) groups.push(array.length);\n return groups;\n }, []).map((currentSize, index, groups) => {\n const previousSize = Math.max(groups[index - 1] || 0);\n return array.slice(previousSize, currentSize);\n });\n }\n function groupSlides(array) {\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\n }\n const self = {\n groupSlides\n };\n return self;\n}\n\nfunction Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {\n // Options\n const {\n align,\n axis: scrollAxis,\n direction,\n startIndex,\n loop,\n duration,\n dragFree,\n dragThreshold,\n inViewThreshold,\n slidesToScroll: groupSlides,\n skipSnaps,\n containScroll,\n watchResize,\n watchSlides,\n watchDrag,\n watchFocus\n } = options;\n // Measurements\n const pixelTolerance = 2;\n const nodeRects = NodeRects();\n const containerRect = nodeRects.measure(container);\n const slideRects = slides.map(nodeRects.measure);\n const axis = Axis(scrollAxis, direction);\n const viewSize = axis.measureSize(containerRect);\n const percentOfView = PercentOfView(viewSize);\n const alignment = Alignment(align, viewSize);\n const containSnaps = !loop && !!containScroll;\n const readEdgeGap = loop || !!containScroll;\n const {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);\n const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);\n const {\n snaps,\n snapsAligned\n } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);\n const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n const {\n snapsContained,\n scrollContainLimit\n } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);\n const scrollSnaps = containSnaps ? snapsContained : snapsAligned;\n const {\n limit\n } = ScrollLimit(contentSize, scrollSnaps, loop);\n // Indexes\n const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n const indexPrevious = index.clone();\n const slideIndexes = arrayKeys(slides);\n // Animation\n const update = ({\n dragHandler,\n scrollBody,\n scrollBounds,\n options: {\n loop\n }\n }) => {\n if (!loop) scrollBounds.constrain(dragHandler.pointerDown());\n scrollBody.seek();\n };\n const render = ({\n scrollBody,\n translate,\n location,\n offsetLocation,\n previousLocation,\n scrollLooper,\n slideLooper,\n dragHandler,\n animation,\n eventHandler,\n scrollBounds,\n options: {\n loop\n }\n }, alpha) => {\n const shouldSettle = scrollBody.settled();\n const withinBounds = !scrollBounds.shouldConstrain();\n const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;\n if (hasSettled && !dragHandler.pointerDown()) {\n animation.stop();\n eventHandler.emit('settle');\n }\n if (!hasSettled) eventHandler.emit('scroll');\n const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);\n offsetLocation.set(interpolatedLocation);\n if (loop) {\n scrollLooper.loop(scrollBody.direction());\n slideLooper.loop();\n }\n translate.to(offsetLocation.get());\n };\n const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));\n // Shared\n const friction = 0.68;\n const startLocation = scrollSnaps[index.get()];\n const location = Vector1D(startLocation);\n const previousLocation = Vector1D(startLocation);\n const offsetLocation = Vector1D(startLocation);\n const target = Vector1D(startLocation);\n const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);\n const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);\n const scrollProgress = ScrollProgress(limit);\n const eventStore = EventStore();\n const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);\n const {\n slideRegistry\n } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);\n const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);\n // Engine\n const engine = {\n ownerDocument,\n ownerWindow,\n eventHandler,\n containerRect,\n slideRects,\n animation,\n axis,\n dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),\n eventStore,\n percentOfView,\n index,\n indexPrevious,\n limit,\n location,\n offsetLocation,\n previousLocation,\n options,\n resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),\n scrollBody,\n scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),\n scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),\n scrollProgress,\n scrollSnapList: scrollSnaps.map(scrollProgress.get),\n scrollSnaps,\n scrollTarget,\n scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),\n slideFocus,\n slidesHandler: SlidesHandler(container, eventHandler, watchSlides),\n slidesInView,\n slideIndexes,\n slideRegistry,\n slidesToScroll,\n target,\n translate: Translate(axis, container)\n };\n return engine;\n}\n\nfunction EventHandler() {\n let listeners = {};\n let api;\n function init(emblaApi) {\n api = emblaApi;\n }\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n function emit(evt) {\n getListeners(evt).forEach(e => e(api, evt));\n return self;\n }\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(e => e !== cb);\n return self;\n }\n function clear() {\n listeners = {};\n }\n const self = {\n init,\n emit,\n off,\n on,\n clear\n };\n return self;\n}\n\nconst defaultOptions = {\n align: 'center',\n axis: 'x',\n container: null,\n slides: null,\n containScroll: 'trimSnaps',\n direction: 'ltr',\n slidesToScroll: 1,\n inViewThreshold: 0,\n breakpoints: {},\n dragFree: false,\n dragThreshold: 10,\n loop: false,\n skipSnaps: false,\n duration: 25,\n startIndex: 0,\n active: true,\n watchDrag: true,\n watchResize: true,\n watchSlides: true,\n watchFocus: true\n};\n\nfunction OptionsHandler(ownerWindow) {\n function mergeOptions(optionsA, optionsB) {\n return objectsMergeDeep(optionsA, optionsB || {});\n }\n function optionsAtMedia(options) {\n const optionsAtMedia = options.breakpoints || {};\n const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});\n return mergeOptions(options, matchedMediaOptions);\n }\n function optionsMediaQueries(optionsList) {\n return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);\n }\n const self = {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n };\n return self;\n}\n\nfunction PluginsHandler(optionsHandler) {\n let activePlugins = [];\n function init(emblaApi, plugins) {\n activePlugins = plugins.filter(({\n options\n }) => optionsHandler.optionsAtMedia(options).active !== false);\n activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));\n return plugins.reduce((map, plugin) => Object.assign(map, {\n [plugin.name]: plugin\n }), {});\n }\n function destroy() {\n activePlugins = activePlugins.filter(plugin => plugin.destroy());\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction EmblaCarousel(root, userOptions, userPlugins) {\n const ownerDocument = root.ownerDocument;\n const ownerWindow = ownerDocument.defaultView;\n const optionsHandler = OptionsHandler(ownerWindow);\n const pluginsHandler = PluginsHandler(optionsHandler);\n const mediaHandlers = EventStore();\n const eventHandler = EventHandler();\n const {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n } = optionsHandler;\n const {\n on,\n off,\n emit\n } = eventHandler;\n const reInit = reActivate;\n let destroyed = false;\n let engine;\n let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);\n let options = mergeOptions(optionsBase);\n let pluginList = [];\n let pluginApis;\n let container;\n let slides;\n function storeElements() {\n const {\n container: userContainer,\n slides: userSlides\n } = options;\n const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;\n container = customContainer || root.children[0];\n const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;\n slides = [].slice.call(customSlides || container.children);\n }\n function createEngine(options) {\n const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);\n if (options.loop && !engine.slideLooper.canLoop()) {\n const optionsWithoutLoop = Object.assign({}, options, {\n loop: false\n });\n return createEngine(optionsWithoutLoop);\n }\n return engine;\n }\n function activate(withOptions, withPlugins) {\n if (destroyed) return;\n optionsBase = mergeOptions(optionsBase, withOptions);\n options = optionsAtMedia(optionsBase);\n pluginList = withPlugins || pluginList;\n storeElements();\n engine = createEngine(options);\n optionsMediaQueries([optionsBase, ...pluginList.map(({\n options\n }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));\n if (!options.active) return;\n engine.translate.to(engine.location.get());\n engine.animation.init();\n engine.slidesInView.init();\n engine.slideFocus.init(self);\n engine.eventHandler.init(self);\n engine.resizeHandler.init(self);\n engine.slidesHandler.init(self);\n if (engine.options.loop) engine.slideLooper.loop();\n if (container.offsetParent && slides.length) engine.dragHandler.init(self);\n pluginApis = pluginsHandler.init(self, pluginList);\n }\n function reActivate(withOptions, withPlugins) {\n const startIndex = selectedScrollSnap();\n deActivate();\n activate(mergeOptions({\n startIndex\n }, withOptions), withPlugins);\n eventHandler.emit('reInit');\n }\n function deActivate() {\n engine.dragHandler.destroy();\n engine.eventStore.clear();\n engine.translate.clear();\n engine.slideLooper.clear();\n engine.resizeHandler.destroy();\n engine.slidesHandler.destroy();\n engine.slidesInView.destroy();\n engine.animation.destroy();\n pluginsHandler.destroy();\n mediaHandlers.clear();\n }\n function destroy() {\n if (destroyed) return;\n destroyed = true;\n mediaHandlers.clear();\n deActivate();\n eventHandler.emit('destroy');\n eventHandler.clear();\n }\n function scrollTo(index, jump, direction) {\n if (!options.active || destroyed) return;\n engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);\n engine.scrollTo.index(index, direction || 0);\n }\n function scrollNext(jump) {\n const next = engine.index.add(1).get();\n scrollTo(next, jump, -1);\n }\n function scrollPrev(jump) {\n const prev = engine.index.add(-1).get();\n scrollTo(prev, jump, 1);\n }\n function canScrollNext() {\n const next = engine.index.add(1).get();\n return next !== selectedScrollSnap();\n }\n function canScrollPrev() {\n const prev = engine.index.add(-1).get();\n return prev !== selectedScrollSnap();\n }\n function scrollSnapList() {\n return engine.scrollSnapList;\n }\n function scrollProgress() {\n return engine.scrollProgress.get(engine.location.get());\n }\n function selectedScrollSnap() {\n return engine.index.get();\n }\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n function slidesInView() {\n return engine.slidesInView.get();\n }\n function slidesNotInView() {\n return engine.slidesInView.get(false);\n }\n function plugins() {\n return pluginApis;\n }\n function internalEngine() {\n return engine;\n }\n function rootNode() {\n return root;\n }\n function containerNode() {\n return container;\n }\n function slideNodes() {\n return slides;\n }\n const self = {\n canScrollNext,\n canScrollPrev,\n containerNode,\n internalEngine,\n destroy,\n off,\n on,\n emit,\n plugins,\n previousScrollSnap,\n reInit,\n rootNode,\n scrollNext,\n scrollPrev,\n scrollProgress,\n scrollSnapList,\n scrollTo,\n selectedScrollSnap,\n slideNodes,\n slidesInView,\n slidesNotInView\n };\n activate(userOptions, userPlugins);\n setTimeout(() => eventHandler.emit('init'), 0);\n return self;\n}\nEmblaCarousel.globalOptions = undefined;\n\nexport { EmblaCarousel as default };\n//# sourceMappingURL=embla-carousel.esm.js.map\n","import { useRef, useState, useCallback, useEffect } from 'react';\nimport { areOptionsEqual, arePluginsEqual, canUseDOM } from 'embla-carousel-reactive-utils';\nimport EmblaCarousel from 'embla-carousel';\n\nfunction useEmblaCarousel(options = {}, plugins = []) {\n const storedOptions = useRef(options);\n const storedPlugins = useRef(plugins);\n const [emblaApi, setEmblaApi] = useState();\n const [viewport, setViewport] = useState();\n const reInit = useCallback(() => {\n if (emblaApi) emblaApi.reInit(storedOptions.current, storedPlugins.current);\n }, [emblaApi]);\n useEffect(() => {\n if (areOptionsEqual(storedOptions.current, options)) return;\n storedOptions.current = options;\n reInit();\n }, [options, reInit]);\n useEffect(() => {\n if (arePluginsEqual(storedPlugins.current, plugins)) return;\n storedPlugins.current = plugins;\n reInit();\n }, [plugins, reInit]);\n useEffect(() => {\n if (canUseDOM() && viewport) {\n EmblaCarousel.globalOptions = useEmblaCarousel.globalOptions;\n const newEmblaApi = EmblaCarousel(viewport, storedOptions.current, storedPlugins.current);\n setEmblaApi(newEmblaApi);\n return () => newEmblaApi.destroy();\n } else {\n setEmblaApi(undefined);\n }\n }, [viewport, setEmblaApi]);\n return [setViewport, emblaApi];\n}\nuseEmblaCarousel.globalOptions = undefined;\n\nexport { useEmblaCarousel as default };\n//# sourceMappingURL=embla-carousel-react.esm.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase().trim();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = \"\", children, ...rest }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: [\"lucide\", `lucide-${toKebabCase(iconName)}`, className].join(\" \"),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ArrowLeft = createLucideIcon(\"ArrowLeft\", [\n [\"path\", { d: \"m12 19-7-7 7-7\", key: \"1l729n\" }],\n [\"path\", { d: \"M19 12H5\", key: \"x3x0zl\" }]\n]);\n\nexport { ArrowLeft as default };\n//# sourceMappingURL=arrow-left.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ArrowRight = createLucideIcon(\"ArrowRight\", [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n]);\n\nexport { ArrowRight as default };\n//# sourceMappingURL=arrow-right.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Calendar = createLucideIcon(\"Calendar\", [\n [\"path\", { d: \"M8 2v4\", key: \"1cmpym\" }],\n [\"path\", { d: \"M16 2v4\", key: \"4m81vk\" }],\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"4\", rx: \"2\", key: \"1hopcy\" }],\n [\"path\", { d: \"M3 10h18\", key: \"8toen8\" }]\n]);\n\nexport { Calendar as default };\n//# sourceMappingURL=calendar.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CheckSquare = createLucideIcon(\"CheckSquare\", [\n [\"path\", { d: \"m9 11 3 3L22 4\", key: \"1pflzl\" }],\n [\"path\", { d: \"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\", key: \"1jnkn4\" }]\n]);\n\nexport { CheckSquare as default };\n//# sourceMappingURL=check-square.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Check = createLucideIcon(\"Check\", [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]);\n\nexport { Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronDown = createLucideIcon(\"ChevronDown\", [\n [\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]\n]);\n\nexport { ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileQuestion = createLucideIcon(\"FileQuestion\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\n \"path\",\n {\n d: \"M10 10.3c.2-.4.5-.8.9-1a2.1 2.1 0 0 1 2.6.4c.3.4.5.8.5 1.3 0 1.3-2 2-2 2\",\n key: \"1umxtm\"\n }\n ],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { FileQuestion as default };\n//# sourceMappingURL=file-question.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileText = createLucideIcon(\"FileText\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n]);\n\nexport { FileText as default };\n//# sourceMappingURL=file-text.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Hash = createLucideIcon(\"Hash\", [\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"9\", y2: \"9\", key: \"4lhtct\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"15\", y2: \"15\", key: \"vyu0kd\" }],\n [\"line\", { x1: \"10\", x2: \"8\", y1: \"3\", y2: \"21\", key: \"1ggp8o\" }],\n [\"line\", { x1: \"16\", x2: \"14\", y1: \"3\", y2: \"21\", key: \"weycgp\" }]\n]);\n\nexport { Hash as default };\n//# sourceMappingURL=hash.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ListOrdered = createLucideIcon(\"ListOrdered\", [\n [\"line\", { x1: \"10\", x2: \"21\", y1: \"6\", y2: \"6\", key: \"76qw6h\" }],\n [\"line\", { x1: \"10\", x2: \"21\", y1: \"12\", y2: \"12\", key: \"16nom4\" }],\n [\"line\", { x1: \"10\", x2: \"21\", y1: \"18\", y2: \"18\", key: \"u3jurt\" }],\n [\"path\", { d: \"M4 6h1v4\", key: \"cnovpq\" }],\n [\"path\", { d: \"M4 10h2\", key: \"16xx2s\" }],\n [\"path\", { d: \"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1\", key: \"m9a95d\" }]\n]);\n\nexport { ListOrdered as default };\n//# sourceMappingURL=list-ordered.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Paperclip = createLucideIcon(\"Paperclip\", [\n [\n \"path\",\n {\n d: \"m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48\",\n key: \"1u3ebp\"\n }\n ]\n]);\n\nexport { Paperclip as default };\n//# sourceMappingURL=paperclip.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Puzzle = createLucideIcon(\"Puzzle\", [\n [\n \"path\",\n {\n d: \"M19.439 7.85c-.049.322.059.648.289.878l1.568 1.568c.47.47.706 1.087.706 1.704s-.235 1.233-.706 1.704l-1.611 1.611a.98.98 0 0 1-.837.276c-.47-.07-.802-.48-.968-.925a2.501 2.501 0 1 0-3.214 3.214c.446.166.855.497.925.968a.979.979 0 0 1-.276.837l-1.61 1.61a2.404 2.404 0 0 1-1.705.707 2.402 2.402 0 0 1-1.704-.706l-1.568-1.568a1.026 1.026 0 0 0-.877-.29c-.493.074-.84.504-1.02.968a2.5 2.5 0 1 1-3.237-3.237c.464-.18.894-.527.967-1.02a1.026 1.026 0 0 0-.289-.877l-1.568-1.568A2.402 2.402 0 0 1 1.998 12c0-.617.236-1.234.706-1.704L4.23 8.77c.24-.24.581-.353.917-.303.515.077.877.528 1.073 1.01a2.5 2.5 0 1 0 3.259-3.259c-.482-.196-.933-.558-1.01-1.073-.05-.336.062-.676.303-.917l1.525-1.525A2.402 2.402 0 0 1 12 1.998c.617 0 1.234.236 1.704.706l1.568 1.568c.23.23.556.338.877.29.493-.074.84-.504 1.02-.968a2.5 2.5 0 1 1 3.237 3.237c-.464.18-.894.527-.967 1.02Z\",\n key: \"i0oyt7\"\n }\n ]\n]);\n\nexport { Puzzle as default };\n//# sourceMappingURL=puzzle.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Send = createLucideIcon(\"Send\", [\n [\"path\", { d: \"m22 2-7 20-4-9-9-4Z\", key: \"1q3vgg\" }],\n [\"path\", { d: \"M22 2 11 13\", key: \"nzbqef\" }]\n]);\n\nexport { Send as default };\n//# sourceMappingURL=send.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Tag = createLucideIcon(\"Tag\", [\n [\n \"path\",\n {\n d: \"M12 2H2v10l9.29 9.29c.94.94 2.48.94 3.42 0l6.58-6.58c.94-.94.94-2.48 0-3.42L12 2Z\",\n key: \"14b2ls\"\n }\n ],\n [\"path\", { d: \"M7 7h.01\", key: \"7u93v4\" }]\n]);\n\nexport { Tag as default };\n//# sourceMappingURL=tag.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ToggleLeft = createLucideIcon(\"ToggleLeft\", [\n [\"rect\", { width: \"20\", height: \"12\", x: \"2\", y: \"6\", rx: \"6\", ry: \"6\", key: \"f2vt7d\" }],\n [\"circle\", { cx: \"8\", cy: \"12\", r: \"2\", key: \"1nvbw3\" }]\n]);\n\nexport { ToggleLeft as default };\n//# sourceMappingURL=toggle-left.js.map\n","/**\n * @license lucide-react v0.320.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Type = createLucideIcon(\"Type\", [\n [\"polyline\", { points: \"4 7 4 4 20 4 20 7\", key: \"1nosan\" }],\n [\"line\", { x1: \"9\", x2: \"15\", y1: \"20\", y2: \"20\", key: \"swin9y\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"4\", y2: \"20\", key: \"1tx1rr\" }]\n]);\n\nexport { Type as default };\n//# sourceMappingURL=type.js.map\n","import { Button } from \"@egaranti/components\";\n\nimport * as React from \"react\";\n\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(\n (\n {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return;\n }\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) {\n return;\n }\n\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n },\n);\nCarousel.displayName = \"Carousel\";\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation, api } = useCarousel();\n\n return (\n <div\n ref={carouselRef}\n className=\"relative w-full overflow-hidden pb-10 lg:pb-[56px]\"\n >\n <div\n ref={ref}\n className={cn(\n \"flex h-full\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className,\n )}\n {...props}\n />\n <div className=\"absolute bottom-2 left-[50%] flex h-6 w-full -translate-x-1/2 items-center justify-center md:hidden lg:bottom-4\">\n {api?.slideNodes() &&\n api.slideNodes().map((_, index) => {\n return (\n <div\n key={index}\n onClick={() => {\n api?.scrollTo(index);\n }}\n className={cn(\n \"flex h-6 w-9 cursor-pointer items-center justify-center\",\n )}\n >\n <div\n className={cn(\"h-2 w-2 rounded-full bg-[#E3E7EF]\", {\n \"bg-[#0049E6]\": api?.selectedScrollSnap() === index,\n })}\n />\n </div>\n );\n })}\n </div>\n </div>\n );\n});\nCarouselContent.displayName = \"CarouselContent\";\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className,\n )}\n {...props}\n />\n );\n});\nCarouselItem.displayName = \"CarouselItem\";\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = \"secondaryGray\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-11 w-11 rounded-full border border-[#F2F5F9] bg-white\",\n orientation === \"horizontal\"\n ? \"left-5 top-1/2 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft stroke=\"#0049E6\" className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n});\nCarouselPrevious.displayName = \"CarouselPrevious\";\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = \"secondaryGray\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-11 w-11 rounded-full border border-[#F2F5F9] bg-white\",\n orientation === \"horizontal\"\n ? \"right-5 top-1/2 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight stroke=\"#0049E6\" className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n});\nCarouselNext.displayName = \"CarouselNext\";\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\n","const defaultOptions = {\n active: true,\n breakpoints: {},\n delay: 4000,\n jump: false,\n playOnInit: true,\n stopOnFocusIn: true,\n stopOnInteraction: true,\n stopOnMouseEnter: false,\n stopOnLastSnap: false,\n rootNode: null\n};\n\nfunction normalizeDelay(emblaApi, delay) {\n const scrollSnaps = emblaApi.scrollSnapList();\n if (typeof delay === 'number') {\n return scrollSnaps.map(() => delay);\n }\n return delay(scrollSnaps, emblaApi);\n}\nfunction getAutoplayRootNode(emblaApi, rootNode) {\n const emblaRootNode = emblaApi.rootNode();\n return rootNode && rootNode(emblaRootNode) || emblaRootNode;\n}\n\nfunction Autoplay(userOptions = {}) {\n let options;\n let emblaApi;\n let destroyed;\n let delay;\n let timerStartTime = null;\n let timerId = 0;\n let autoplayActive = false;\n let mouseIsOver = false;\n let playOnDocumentVisible = false;\n let jump = false;\n function init(emblaApiInstance, optionsHandler) {\n emblaApi = emblaApiInstance;\n const {\n mergeOptions,\n optionsAtMedia\n } = optionsHandler;\n const optionsBase = mergeOptions(defaultOptions, Autoplay.globalOptions);\n const allOptions = mergeOptions(optionsBase, userOptions);\n options = optionsAtMedia(allOptions);\n if (emblaApi.scrollSnapList().length <= 1) return;\n jump = options.jump;\n destroyed = false;\n delay = normalizeDelay(emblaApi, options.delay);\n const {\n eventStore,\n ownerDocument\n } = emblaApi.internalEngine();\n const isDraggable = !!emblaApi.internalEngine().options.watchDrag;\n const root = getAutoplayRootNode(emblaApi, options.rootNode);\n eventStore.add(ownerDocument, 'visibilitychange', visibilityChange);\n if (isDraggable) {\n emblaApi.on('pointerDown', pointerDown);\n }\n if (isDraggable && !options.stopOnInteraction) {\n emblaApi.on('pointerUp', pointerUp);\n }\n if (options.stopOnMouseEnter) {\n eventStore.add(root, 'mouseenter', mouseEnter);\n }\n if (options.stopOnMouseEnter && !options.stopOnInteraction) {\n eventStore.add(root, 'mouseleave', mouseLeave);\n }\n if (options.stopOnFocusIn) {\n emblaApi.on('slideFocusStart', stopAutoplay);\n }\n if (options.stopOnFocusIn && !options.stopOnInteraction) {\n eventStore.add(emblaApi.containerNode(), 'focusout', startAutoplay);\n }\n if (options.playOnInit) startAutoplay();\n }\n function destroy() {\n emblaApi.off('pointerDown', pointerDown).off('pointerUp', pointerUp).off('slideFocusStart', stopAutoplay);\n stopAutoplay();\n destroyed = true;\n autoplayActive = false;\n }\n function setTimer() {\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearTimeout(timerId);\n timerId = ownerWindow.setTimeout(next, delay[emblaApi.selectedScrollSnap()]);\n timerStartTime = new Date().getTime();\n emblaApi.emit('autoplay:timerset');\n }\n function clearTimer() {\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearTimeout(timerId);\n timerId = 0;\n timerStartTime = null;\n emblaApi.emit('autoplay:timerstopped');\n }\n function startAutoplay() {\n if (destroyed) return;\n if (documentIsHidden()) {\n playOnDocumentVisible = true;\n return;\n }\n if (!autoplayActive) emblaApi.emit('autoplay:play');\n setTimer();\n autoplayActive = true;\n }\n function stopAutoplay() {\n if (destroyed) return;\n if (autoplayActive) emblaApi.emit('autoplay:stop');\n clearTimer();\n autoplayActive = false;\n }\n function visibilityChange() {\n if (documentIsHidden()) {\n playOnDocumentVisible = autoplayActive;\n return stopAutoplay();\n }\n if (playOnDocumentVisible) startAutoplay();\n }\n function documentIsHidden() {\n const {\n ownerDocument\n } = emblaApi.internalEngine();\n return ownerDocument.visibilityState === 'hidden';\n }\n function pointerDown() {\n if (!mouseIsOver) stopAutoplay();\n }\n function pointerUp() {\n if (!mouseIsOver) startAutoplay();\n }\n function mouseEnter() {\n mouseIsOver = true;\n stopAutoplay();\n }\n function mouseLeave() {\n mouseIsOver = false;\n startAutoplay();\n }\n function play(jumpOverride) {\n if (typeof jumpOverride !== 'undefined') jump = jumpOverride;\n startAutoplay();\n }\n function stop() {\n if (autoplayActive) stopAutoplay();\n }\n function reset() {\n if (autoplayActive) startAutoplay();\n }\n function isPlaying() {\n return autoplayActive;\n }\n function next() {\n const {\n index\n } = emblaApi.internalEngine();\n const nextIndex = index.clone().add(1).get();\n const lastIndex = emblaApi.scrollSnapList().length - 1;\n const kill = options.stopOnLastSnap && nextIndex === lastIndex;\n if (emblaApi.canScrollNext()) {\n emblaApi.scrollNext(jump);\n } else {\n emblaApi.scrollTo(0, jump);\n }\n emblaApi.emit('autoplay:select');\n if (kill) return stopAutoplay();\n startAutoplay();\n }\n function timeUntilNext() {\n if (!timerStartTime) return null;\n const currentDelay = delay[emblaApi.selectedScrollSnap()];\n const timePastSinceStart = new Date().getTime() - timerStartTime;\n return currentDelay - timePastSinceStart;\n }\n const self = {\n name: 'autoplay',\n options: userOptions,\n init,\n destroy,\n play,\n stop,\n reset,\n isPlaying,\n timeUntilNext\n };\n return self;\n}\nAutoplay.globalOptions = undefined;\n\nexport { Autoplay as default };\n//# sourceMappingURL=embla-carousel-autoplay.esm.js.map\n","import { Button } from \"@egaranti/components\";\n\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/components/common/shared/Carousel\";\n\nimport Autoplay from \"embla-carousel-autoplay\";\n\nimport useFetchContent from \"@/lib/utils/hooks/useFetchContent\";\n\nconst CarouselBanner = () => {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const [isMobile, setIsMobile] = useState(window.innerWidth < 1024);\n const {\n data: carouselContent,\n loading,\n error,\n } = useFetchContent(\"app-home-page-slides\", {\n filterString: `?filters[countries][code][$contains]=${localStorage.getItem(\n \"userCountry\",\n )}&sort=rank:asc`,\n });\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < 1024);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n if (loading)\n return (\n <div className=\"w-full overflow-hidden rounded-xl border border-[#EAECF0] bg-white shadow-sm\">\n <div className=\"flex w-full flex-col items-center lg:flex-row lg:bg-[#fafafa]\">\n <div className=\" h-64 w-full bg-gray-200 lg:w-1/2\" />\n <div className=\"mx-5 mt-4 flex w-full max-w-[400px] flex-col items-center justify-center gap-2 lg:max-w-[500px] lg:gap-6 lg:px-4\">\n <div className=\" h-8 w-full bg-gray-200\" />\n <div className=\" h-4 w-full bg-gray-200\" />\n <div className=\" h-4 w-3/4 bg-gray-200\" />\n <div className=\" h-10 w-full bg-gray-200\" />\n </div>\n </div>\n </div>\n );\n if (error) return <div>Error loading content</div>;\n\n return (\n <Carousel\n plugins={[\n Autoplay({\n delay: 5000,\n }),\n ]}\n className=\"max-w-full overflow-hidden rounded-xl border border-[#EAECF0] bg-white shadow-sm\"\n >\n <CarouselContent>\n {carouselContent?.map((item, index) => (\n <CarouselItem\n key={index}\n className=\"flex w-full flex-col items-center -justify-start lg:flex-row lg:bg-[#fafafa]\"\n >\n <img\n className=\"md:max-h-[300px] lg:-ml-4 lg:w-1/2\"\n src={\n \"https://strapi.egaranti.co\" +\n item.attributes.image.data[0].attributes.url\n }\n alt=\"banner\"\n />\n <div className=\"mx-5 mt-4 flex max-w-[400px] flex-col items-center justify-center gap-2 lg:max-w-[500px] lg:gap-6 lg:px-4\">\n <h4 className=\"w-full text-left text-sm font-semibold text-[#111729] lg:text-2xl 2xl:text-3xl\">\n {item.attributes.title}\n </h4>\n <h6 className=\"self-start text-sm font-medium text-[#677389] lg:text-base\">\n {item.attributes.desc}\n </h6>\n {item.attributes.buttonText && (\n <Button\n variant=\"secondaryGray\"\n onClick={() => {\n if (item.attributes.action) {\n if (item.attributes.action.external) {\n window.open(item.attributes.action.to, \"_blank\");\n } else {\n navigate(item.attributes.action.to);\n }\n }\n }}\n className=\"w-full text-xs\"\n >\n <span className=\"text-sm font-medium text-[#364153]\">\n {item.attributes.buttonText}\n </span>\n </Button>\n )}\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n {!isMobile && <CarouselPrevious />}\n {!isMobile && <CarouselNext />}\n </Carousel>\n );\n};\n\nexport default CarouselBanner;\n","import useFetchContent from \"@/lib/utils/hooks/useFetchContent\";\n\nconst ExtraWarrantyBanner = () => {\n const {\n data: bannerData,\n loading,\n error,\n } = useFetchContent(\"app-home-page-banner\");\n\n if (loading) return <div>Loading...</div>;\n if (error) return <div>Error loading content</div>;\n\n return (\n <div className=\"my-6 flex w-full items-center justify-between rounded-lg bg-gradient-to-r from-[#0049E6] to-[#4E984E] p-6 md:p-10\">\n <h4 className=\"text-lg font-semibold leading-8 text-white md:text-4xl\">\n {bannerData?.attributes.text}\n </h4>\n <img\n src={\n bannerData?.attributes.image.data.attributes.url\n ? \"https://strapi.egaranti.co\" +\n bannerData.attributes.image.data.attributes.url\n : \"\"\n }\n alt={bannerData?.attributes.text}\n />\n </div>\n );\n};\n\nexport default ExtraWarrantyBanner;\n","export default \"__VITE_ASSET__0e9d780e__\"","export default \"__VITE_ASSET__77190f6b__\"","import { Button } from \"@egaranti/components\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\n\nimport { ReactComponent as InsuranceIcon } from \"@/assets/svgs/insurance.svg\";\nimport { ReactComponent as RightArrow } from \"@/assets/svgs/right-arrow.svg\";\n\nconst OurServices = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const userCountry = localStorage.getItem(\"userCountry\");\n const isYapikredi =\n localStorage.getItem(\"customizations\") &&\n JSON.parse(localStorage.getItem(\"customizations\"))?.sourceAppName ===\n \"yapikredi\";\n\n const data = [\n // YAPIKREDI VEYA UZ ÃœLKESÄ° Ä°SE BU HÄ°ZMETÄ° GÖSTERME\n ...(userCountry === \"UZ\" || isYapikredi\n ? []\n : [\n {\n title: t(\"overview.ourServices.insurance\"),\n description: t(\"overview.ourServices.insuranceDescription\"),\n icon: <InsuranceIcon className=\"h-12 w-12 md:h-24 md:w-24\" />,\n link: \"/services/get-extended-warranty\",\n },\n ]),\n {\n title: t(\"overview.ourServices.claims\"),\n description: t(\"overview.ourServices.claimsDescription\"),\n icon: (\n <svg\n width=\"80\"\n height=\"80\"\n viewBox=\"0 0 80 80\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-12 w-12 md:h-24 md:w-24\"\n >\n <path\n d=\"M27.7996 69.6974L23.7181 75.7487C22.5838 77.4304 20.9984 78.6426 19.2248 79.3335C17.4066 80.0416 15.3937 80.197 13.4719 79.7443L11.5367 79.2882L12.6467 77.6429L17.8022 69.9995L15.4584 64.2121L9.18877 64.1875L4.03219 71.8325L2.92288 73.4771L1.77538 71.854C0.635468 70.2416 0.0254822 68.316 0.000968933 66.3623C-0.0226898 64.4612 0.507011 62.5388 1.64083 60.8575L5.72262 54.8062C7.20929 52.6019 9.46349 51.2061 11.8974 50.7331C14.0526 50.3143 16.35 50.6215 18.3803 51.7345L51.1296 18.985C50.6706 17.7099 50.4799 16.3491 50.5762 14.9976C50.6923 13.3671 51.2218 11.7469 52.1957 10.3026L56.2775 4.2513C57.4117 2.56955 58.9972 1.35738 60.7709 0.666458C62.5892 -0.0416183 64.6019 -0.196991 66.5234 0.255676L68.4586 0.711815L67.3489 2.35712L62.1936 10.0005L64.5372 15.7879L70.8068 15.8125L75.9634 8.16753L77.0727 6.52287L78.2204 8.14603C79.3601 9.75813 79.9698 11.684 79.9944 13.6377C80.018 15.5388 79.4885 17.4612 78.3545 19.1425L74.2727 25.1938V25.1943C72.786 27.3981 70.5318 28.7939 68.0979 29.2669C65.9429 29.6857 63.6453 29.3785 61.6153 28.2655L28.8657 61.015C29.3247 62.2901 29.5154 63.6511 29.4193 65.0022C29.303 66.6329 28.7737 68.2533 27.7996 69.6974Z\"\n fill=\"#CDD5E0\"\n />\n <path\n d=\"M18.4148 51.7002L51.129 18.9863L61.6123 28.2689L28.8793 61.002L18.4148 51.7002Z\"\n fill=\"#0040C9\"\n />\n <path\n d=\"M52.0449 24.9051L55.1029 27.9631C55.9039 28.7638 55.9039 30.0743 55.1029 30.8752L30.8952 55.083C30.0942 55.8839 28.784 55.8837 27.983 55.083L24.9251 52.025C24.1241 51.2243 24.1243 49.9138 24.9251 49.1128L49.1328 24.9051C49.9337 24.1042 51.244 24.1042 52.0449 24.9051Z\"\n fill=\"#002E90\"\n />\n <path\n d=\"M68.9152 62.1328L69.5778 65.6325L70.2406 69.1322L67.5413 71.456L64.8414 73.7797L61.4795 72.6036L58.1174 71.4278L57.4547 67.9281L56.7919 64.4284L59.4914 62.1047L62.1911 59.7809L65.5531 60.9568L68.9152 62.1328ZM23.1446 18.9912L14.2959 20.5501L6.84659 11.8963C2.85625 17.8018 8.29284 24.7818 13.8683 27.0824C15.6688 27.8254 17.6129 28.1959 19.5612 28.1428L20.4918 28.1176L52.0898 64.8246C51.5287 68.1131 51.4692 70.5541 54.7306 74.3431C57.9922 78.1319 66.2269 79.7429 71.079 75.5659C75.9311 71.3892 75.5627 63.0053 72.3018 59.2175C69.0411 55.4295 66.6226 55.1268 63.2899 55.19L31.6888 18.4791L31.8523 17.5625C32.1945 15.6438 32.1177 13.6666 31.651 11.7756C30.2045 5.91596 24.101 -0.466136 17.6886 2.58448L25.1276 11.2263L23.1446 18.9912Z\"\n fill=\"#447AED\"\n />\n <path\n d=\"M31.8677 27.202C31.2067 26.4342 30.0484 26.3478 29.2806 27.0087C28.5128 27.6696 28.4264 28.8278 29.0872 29.5956L51.4719 55.5997C52.1326 56.3675 53.2908 56.4538 54.0586 55.7929C54.8263 55.1322 54.9129 53.9741 54.2522 53.2063L31.8677 27.202Z\"\n fill=\"#0040C9\"\n />\n <path\n d=\"M69.6039 68.9076L69.0045 65.7431L69.578 65.6333L69.0018 65.7424C68.9991 65.729 68.9973 65.716 68.9956 65.7028L68.4033 62.5742L65.3606 61.5101L65.553 60.9577L65.3595 61.5111C65.3422 61.5051 65.3254 61.4983 65.3089 61.4909L62.319 60.4449L59.874 62.5498L57.4287 64.6548L58.0278 67.8192L57.4545 67.929L58.0307 67.8199C58.033 67.8331 58.035 67.8463 58.0367 67.8595L58.629 70.9881L61.672 72.0522L61.4796 72.6046L61.673 72.0512C61.6901 72.0572 61.7073 72.064 61.7236 72.0714L64.7133 73.1172L67.1586 71.0125L69.6039 68.9076ZM70.1517 65.5254L70.8038 68.9693C70.8658 69.183 70.8025 69.4228 70.6231 69.5774L67.9236 71.9011L65.2254 74.2239L65.224 74.2249C65.0704 74.3567 64.853 74.4055 64.6482 74.3338L64.8416 73.7806L64.6476 74.3311L61.338 73.1736C61.3206 73.169 61.3031 73.1641 61.2859 73.1579L61.2863 73.1566L57.9635 71.9945C57.754 71.9373 57.5845 71.7653 57.5413 71.5378L58.1173 71.4287L57.5423 71.5368L56.8872 68.0768C56.8839 68.0639 56.8812 68.0511 56.8787 68.0381L56.88 68.0379L56.8798 68.0369H56.8808L56.2288 64.593C56.1668 64.3793 56.2298 64.1395 56.4094 63.9849L59.1089 61.6612L61.8071 59.3384L61.8084 59.3374C61.9619 59.2053 62.1795 59.1568 62.3843 59.2283L62.1909 59.7817L62.3848 59.2312L65.6945 60.3887C65.7119 60.3933 65.7293 60.3982 65.7466 60.4042L65.746 60.4057L69.069 61.5678C69.2786 61.625 69.448 61.7968 69.4912 62.0245L68.9152 62.1336L69.49 62.0255L70.1453 65.4856C70.1486 65.4982 70.1513 65.5112 70.1538 65.5242L70.1526 65.5244V65.5252L70.1517 65.5254Z\"\n fill=\"#0049E6\"\n />\n <path\n d=\"M7.69028 11.976C7.47907 11.7307 7.10893 11.703 6.8634 11.9142C6.61809 12.1254 6.5904 12.4958 6.80161 12.7413L13.8519 20.9313C14.0007 21.1043 14.2282 21.169 14.4355 21.1185L23.2465 19.5663L23.2467 19.5675C23.4999 19.5229 23.6863 19.3218 23.7244 19.0814L25.6937 11.3694L25.1278 11.2252L25.696 11.3702C25.7451 11.1774 25.6927 10.9825 25.5722 10.8424L18.5219 2.65198C18.3107 2.40666 17.9406 2.37897 17.695 2.59019C17.4497 2.8014 17.422 3.17154 17.6333 3.41706L24.4861 11.3783L22.673 18.479L14.5237 19.9145L7.69028 11.976Z\"\n fill=\"#0049E6\"\n />\n </svg>\n ),\n link: \"/claims\",\n },\n ];\n\n return (\n <div className=\"flex w-full flex-col py-6\">\n <div className=\"mb-4 flex items-center justify-between\">\n <h2 className=\"mb-4 font-medium text-gray-800\">\n {t(\"navbar.services\")}\n </h2>\n {isYapikredi || userCountry === \"UZ\" ? null : (\n <Button\n size=\"sm\"\n variant=\"secondaryGray\"\n onClick={() => {\n navigate(\"/services\");\n }}\n >\n {t(\"overview.ourServicesButton\")}\n </Button>\n )}\n </div>\n\n {/* Kartların bulunduÄŸu kısım */}\n {/* Mobilde tek sütun, orta ekranlarda 2 sütun, büyük ekranlarda 3 sütun gibi ayarladık */}\n <div className=\"grid w-full grid-cols-1 gap-4 sm:grid-cols-2 md:grid-cols-3 md:gap-6\">\n {data.map((item, index) => (\n <Card\n link={item.link}\n key={index}\n title={item.title}\n description={item.description}\n icon={item.icon}\n />\n ))}\n </div>\n </div>\n );\n};\n\nconst Card = ({ link, title, icon, description }) => {\n return (\n <Link to={link} className=\"flex w-full flex-col items-center\">\n {/* aspect-square, sabit yükseklik vs. kaldırdık; içerik boyutuna göre ayarlayacak */}\n <div className=\"flex h-full w-full flex-col gap-3 rounded-lg border bg-white p-4 transition hover:border-gray-300\">\n <h3 className=\"font-semibold text-[#364153]\">{title}</h3>\n <p className=\"text-sm font-medium text-[#677389]\">{description}</p>\n <div\n aria-hidden=\"true\"\n className=\"mt-auto flex w-full items-center justify-between\"\n >\n {icon}\n <RightArrow className=\"h-10 w-10 md:h-12 md:w-12\" />\n </div>\n </div>\n </Link>\n );\n};\n\nexport default OurServices;\n","import Brands from \"@/components/Overview/Brands\";\nimport CarouselBanner from \"@/components/Overview/CarouselBanner\";\nimport ExtraWarrantyBanner from \"@/components/Overview/ExtraWarrantyBanner\";\nimport OurServices from \"@/components/Overview/OurServices\";\n\nconst Overview = () => {\n return (\n <div className=\"flex w-full flex-col items-center overflow-x-hidden p-5 pb-[100px] md:pb-8\">\n <CarouselBanner />\n <OurServices />\n <ExtraWarrantyBanner />\n <Brands />\n </div>\n );\n};\n\nexport default Overview;\n","export default \"__VITE_ASSET__f476a107__\"","export default \"__VITE_ASSET__69aa12d8__\"","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","import { create } from \"zustand\";\n\nimport axios from \"@/lib/api/axios\";\n\nconst useStore = create((set, get) => ({\n filters: {\n name: \"\",\n mainCategory: \"\",\n category: \"\",\n subCategory: \"\",\n subCategoryBrand: \"\",\n brand: \"\",\n },\n setFilters: (filters) => set({ filters }),\n openFilterSheet: false,\n setOpenFilterSheet: (open) => set({ openFilterSheet: open }),\n openAddProductSheet: false,\n setOpenAddProductSheet: (open) => set({ openAddProductSheet: open }),\n selectedProduct: {},\n setSelectedProduct: (product) => set({ selectedProduct: product }),\n openDetailSheet: false,\n setOpenDetailSheet: (open) => set({ openDetailSheet: open }),\n\n stateSelectedFilters: {\n name: \"\",\n mainCategory: { name: \"\", id: \"\" },\n category: { name: \"\", id: \"\" },\n subCategory: { name: \"\", id: \"\" },\n brand: { name: \"\", id: \"\" },\n },\n setStateSelectedFilters: (filters) => set({ stateSelectedFilters: filters }),\n\n verifiedProducts: [],\n unVerifiedProducts: [],\n loading: false,\n\n selectedUnverifiedProduct: null,\n openUnverifiedDetailSheet: false,\n setSelectedUnverifiedProduct: (product) =>\n set({ selectedUnverifiedProduct: product }),\n setOpenUnverifiedDetailSheet: (open) =>\n set({ openUnverifiedDetailSheet: open }),\n\n selectedVerifiedProduct: null,\n openVerifiedDetailSheet: false,\n setSelectedVerifiedProduct: (product) =>\n set({ selectedVerifiedProduct: product }),\n setOpenVerifiedDetailSheet: (open) => set({ openVerifiedDetailSheet: open }),\n\n fetchProducts: async (filters = {}) => {\n set({ loading: true });\n\n try {\n await new Promise((resolve) => setTimeout(resolve, 500)); // Keep the fake wait\n const [verifiedRes, unverifiedRes] = await Promise.all([\n axios.get(\"/individual-customer-products/list\", { params: filters }),\n axios.get(\"/unverified-products\", { params: filters }),\n ]);\n\n set({\n verifiedProducts: verifiedRes.data || [],\n // Make sure we're accessing the correct property and provide a default empty array\n unVerifiedProducts: unverifiedRes.data?.content || [],\n loading: false,\n });\n } catch (error) {\n console.error(\"Error fetching products\", error);\n set({ loading: false });\n }\n },\n\n clearFilters: () => {\n set({\n filters: {\n name: \"\",\n mainCategory: \"\",\n category: \"\",\n subCategory: \"\",\n subCategoryBrand: \"\",\n brand: \"\",\n },\n });\n get().fetchProducts({});\n },\n}));\n\nexport default useStore;\n","import React from \"react\";\n\nconst FilterPill = ({ text, onClick }) => {\n return (\n <button\n aria-label=\"Filtreleri Temizle\"\n onClick={onClick}\n className=\"flex items-center justify-center rounded-full bg-[#E3E7EF] px-3 py-2 font-medium hover:opacity-75\"\n >\n <span className=\"whitespace-nowrap text-xs text-[#111729]\">{text}</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"ml-1 h-3 w-3 text-[#111729]\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n );\n};\n\nexport default FilterPill;\n","import { Button } from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ReactComponent as AddIcon } from \"../../assets/svgs/addplusicon.svg\";\nimport { ReactComponent as FilterIcon } from \"../../assets/svgs/filtericon.svg\";\nimport useProductStore from \"../../store/useProductStore\";\nimport FilterPill from \"../common/FilterPill\";\n\nconst ProductListHeader = ({ fetchProducts }) => {\n const { t } = useTranslation();\n const { filters, setFilters, setOpenFilterSheet, setOpenAddProductSheet } =\n useProductStore();\n\n const filterPills = [\n {\n name: \"name\",\n text: filters.name,\n },\n {\n name: \"mainCategory\",\n text: filters.mainCategory,\n },\n {\n name: \"category\",\n text: filters.category,\n },\n {\n name: \"subCategory\",\n text: filters.subCategory,\n },\n {\n name: \"brand\",\n text: filters.brand,\n },\n ];\n\n const handleClearFilters = () => {\n setFilters({\n name: \"\",\n mainCategory: \"\",\n category: \"\",\n subCategory: \"\",\n brand: \"\",\n });\n\n fetchProducts({\n name: \"\",\n mainCategory: \"\",\n category: \"\",\n subCategory: \"\",\n brand: \"\",\n });\n };\n\n return (\n <div className=\"flex w-full flex-col gap-2 md:flex-row md:justify-end\">\n <h2 className=\"font-medium text-gray-800 md:hidden\">{t(\"Ãœrünler\")}</h2>\n <div className=\"flex w-full flex-col-reverse items-center gap-4 md:flex-row md:justify-end\">\n <div className=\"flex w-full items-center gap-2 overflow-y-auto md:justify-end\">\n {filterPills.map((pill) => {\n if (!pill.text || pill.text === \"{}\" || pill.text === \"[]\")\n return null;\n return (\n <FilterPill\n onClick={() => {\n handleClearFilters();\n }}\n key={pill.name}\n text={pill.text}\n name={pill.name}\n />\n );\n })}\n </div>\n <div className=\"flex w-full items-center justify-center gap-2 md:max-w-xs\">\n <Button\n className=\"w-full\"\n onClick={() => setOpenFilterSheet(true)}\n variant=\"secondaryGray\"\n >\n <FilterIcon /> {t(\"filter.filter\")}\n </Button>\n <Button\n className=\"w-full text-nowrap\"\n onClick={() => setOpenAddProductSheet(true)}\n >\n <AddIcon /> {t(\"productsPage.addProduct\")}\n </Button>\n </div>\n </div>\n </div>\n );\n};\n\nexport default ProductListHeader;\n","import React from \"react\";\n\nimport { ReactComponent as InfoEmptyIcon } from \"../../../assets/svgs/infoemptyicon.svg\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst EmptyData = ({\n children,\n title = \"Veri bulunamadı\",\n description,\n className,\n ...rest\n}) => {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center gap-2 py-8 text-[#111729]\",\n className,\n )}\n {...rest}\n >\n <InfoEmptyIcon className=\"mb-4\" />\n <h2 className=\"font-semibold\">{title}</h2>\n <p className=\"text-center text-[#677389]\">{description}</p>\n <div className=\"mt-4 flex flex-col items-center justify-center gap-2\">\n {children}\n </div>\n </div>\n );\n};\n\nexport default EmptyData;\n","import { useToast } from \"@egaranti/components\";\n\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useOnClickOutside from \"../../lib/utils/hooks/useOnClickOutside\";\n\nimport { motion } from \"framer-motion\";\n\nconst ProductCard = ({ product, verified = true, onClick, ...rest }) => {\n const { t } = useTranslation();\n const { toast } = useToast();\n const ref = React.useRef();\n useOnClickOutside(ref, () => setIsCollapsed(false));\n const [isCollapsed, setIsCollapsed] = useState(false);\n const verifiedCardButtons = [\n {\n icon: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.0002 12.0836V7.08363M7.50016 9.58363H12.5002M16.6668 10.0003C16.6668 14.0907 12.2052 17.0656 10.5818 18.0127C10.3973 18.1203 10.3051 18.1741 10.1749 18.2021C10.0739 18.2237 9.92646 18.2237 9.82543 18.2021C9.69524 18.1741 9.603 18.1203 9.4185 18.0127C7.79513 17.0656 3.3335 14.0907 3.3335 10.0003V6.01497C3.3335 5.34871 3.3335 5.01558 3.44246 4.72922C3.53872 4.47625 3.69515 4.25053 3.89821 4.07157C4.12808 3.869 4.43999 3.75203 5.06383 3.51809L9.532 1.84253C9.70524 1.77756 9.79187 1.74508 9.88098 1.7322C9.96003 1.72078 10.0403 1.72078 10.1193 1.7322C10.2085 1.74508 10.2951 1.77756 10.4683 1.84253L14.9365 3.51809C15.5603 3.75203 15.8722 3.869 16.1021 4.07157C16.3052 4.25053 16.4616 4.47625 16.5579 4.72922C16.6668 5.01558 16.6668 5.34871 16.6668 6.01497V10.0003Z\"\n stroke=\"#364153\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n onClick: () => {\n toastInform(t(\"productsPage.tooltips.text1\"));\n },\n },\n {\n icon: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.0262 6.3598C12.6962 6.02979 12.5311 5.86478 12.4693 5.67451C12.4149 5.50714 12.4149 5.32685 12.4693 5.15948C12.5311 4.9692 12.6962 4.8042 13.0262 4.47418L15.3915 2.10887C14.7638 1.82501 14.067 1.66699 13.3334 1.66699C10.5719 1.66699 8.33336 3.90557 8.33336 6.66699C8.33336 7.07619 8.38252 7.47391 8.47524 7.85456C8.57454 8.26219 8.62419 8.46601 8.61538 8.59477C8.60615 8.72957 8.58605 8.80129 8.52389 8.92125C8.46451 9.03584 8.35074 9.14961 8.12321 9.37714L2.91669 14.5837C2.22634 15.274 2.22634 16.3933 2.91669 17.0837C3.60705 17.774 4.72634 17.774 5.41669 17.0837L10.6232 11.8771C10.8507 11.6496 10.9645 11.5358 11.0791 11.4765C11.1991 11.4143 11.2708 11.3942 11.4056 11.385C11.5343 11.3762 11.7382 11.4258 12.1458 11.5251C12.5264 11.6178 12.9242 11.667 13.3334 11.667C16.0948 11.667 18.3334 9.42842 18.3334 6.66699C18.3334 5.93332 18.1753 5.23655 17.8915 4.60887L15.5262 6.97418C15.1962 7.3042 15.0311 7.4692 14.8409 7.53103C14.6735 7.58541 14.4932 7.58541 14.3258 7.53103C14.1356 7.4692 13.9706 7.3042 13.6405 6.97418L13.0262 6.3598Z\"\n stroke=\"#364153\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n onClick: () => {\n toastInform(t(\"productsPage.tooltips.text2\"));\n },\n },\n {\n icon: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M17.0833 6.06527L9.99997 10.0005M9.99997 10.0005L2.91664 6.06527M9.99997 10.0005L10 17.9171M11.6667 17.4079L10.6475 17.9741C10.4112 18.1054 10.293 18.171 10.1679 18.1968C10.0571 18.2195 9.94288 18.2195 9.83213 18.1968C9.70698 18.171 9.58881 18.1054 9.35248 17.9741L3.18581 14.5481C2.93621 14.4095 2.8114 14.3401 2.72053 14.2415C2.64013 14.1543 2.57929 14.0509 2.54207 13.9382C2.5 13.8109 2.5 13.6681 2.5 13.3826V6.61835C2.5 6.33281 2.5 6.19005 2.54207 6.06271C2.57929 5.95007 2.64013 5.84667 2.72053 5.75942C2.8114 5.66081 2.93621 5.59148 3.18581 5.45281L9.35248 2.02688C9.58881 1.89558 9.70698 1.82993 9.83213 1.80419C9.94288 1.78141 10.0571 1.78141 10.1679 1.80419C10.293 1.82993 10.4112 1.89558 10.6475 2.02688L16.8142 5.4528C17.0638 5.59147 17.1886 5.66081 17.2795 5.75942C17.3599 5.84666 17.4207 5.95007 17.4579 6.06271C17.5 6.19004 17.5 6.33281 17.5 6.61835L17.5 10.4171M6.25 3.75048L13.75 7.91714M15.8333 17.5005V12.5005M13.3333 15.0005H18.3333\"\n stroke=\"#364153\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n onClick: () => {\n toastInform(t(\"productsPage.tooltips.text3\"));\n },\n },\n {\n icon: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.6668 8.75033V5.66699C16.6668 4.26686 16.6668 3.5668 16.3943 3.03202C16.1547 2.56161 15.7722 2.17916 15.3018 1.93948C14.767 1.66699 14.067 1.66699 12.6668 1.66699H7.3335C5.93336 1.66699 5.2333 1.66699 4.69852 1.93948C4.22811 2.17916 3.84566 2.56161 3.60598 3.03202C3.3335 3.5668 3.3335 4.26686 3.3335 5.66699V14.3337C3.3335 15.7338 3.3335 16.4339 3.60598 16.9686C3.84566 17.439 4.22811 17.8215 4.69852 18.0612C5.2333 18.3337 5.93336 18.3337 7.3335 18.3337H10.0002M15.0002 17.5003V12.5003M12.5002 15.0003H17.5002\"\n stroke=\"#364153\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n onClick: () => {\n toastInform(t(\"productsPage.tooltips.text4\"));\n },\n },\n ];\n\n const unverifiedCardButtons = [\n {\n icon: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.3335 14.1667H16.6668M16.6668 14.1667L13.3335 10.8333M16.6668 14.1667L13.3335 17.5M16.6668 5.83333H3.3335M3.3335 5.83333L6.66683 2.5M3.3335 5.83333L6.66683 9.16667\"\n stroke=\"#364153\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n onClick: () => {\n toastInform(t(\"productsPage.tooltips.text5\"));\n },\n },\n {\n icon: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.6668 8.75033V5.66699C16.6668 4.26686 16.6668 3.5668 16.3943 3.03202C16.1547 2.56161 15.7722 2.17916 15.3018 1.93948C14.767 1.66699 14.067 1.66699 12.6668 1.66699H7.3335C5.93336 1.66699 5.2333 1.66699 4.69852 1.93948C4.22811 2.17916 3.84566 2.56161 3.60598 3.03202C3.3335 3.5668 3.3335 4.26686 3.3335 5.66699V14.3337C3.3335 15.7338 3.3335 16.4339 3.60598 16.9686C3.84566 17.439 4.22811 17.8215 4.69852 18.0612C5.2333 18.3337 5.93336 18.3337 7.3335 18.3337H10.0002M15.0002 17.5003V12.5003M12.5002 15.0003H17.5002\"\n stroke=\"#364153\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n onClick: () => {\n toastInform(t(\"productsPage.tooltips.text6\"));\n },\n },\n ];\n\n const timeColorVariants = (color) => {\n if (color === 0) {\n return {\n color: \"#7A271A\",\n backgroundColor: \"#FEF3F2\",\n };\n }\n if (color === 1) {\n return {\n color: \"#7A2E0E\",\n backgroundColor: \"#FEF0C7\",\n };\n }\n if (color === 2) {\n return {\n color: \"#002573\",\n backgroundColor: \"#CCDBFA\",\n };\n }\n };\n\n const toastInform = (msg) => {\n toast({\n description: msg,\n variant: \"primary\",\n });\n };\n\n const color =\n product?.remainingWarrantyDay > 90\n ? 2\n : product?.remainingWarrantyDay > 60\n ? 1\n : product?.remainingWarrantyDay >= 0\n ? 0\n : 0;\n\n const category =\n product?.category?.split(\">\").pop().trim() || product?.categoryName;\n\n return (\n <motion.div\n ref={ref}\n whileTap={{ scale: 0.97 }}\n className=\"flex w-full cursor-pointer flex-col rounded-lg bg-white md:shadow-default\"\n {...rest}\n >\n <div\n style={{\n backgroundColor: verified\n ? timeColorVariants(color).backgroundColor\n : timeColorVariants(color).backgroundColor,\n color: verified\n ? timeColorVariants(color).color\n : timeColorVariants(color).color,\n }}\n className=\"flex items-center justify-end gap-1 rounded-t-lg bg-[#CCDBFA] px-3 py-1 text-xs font-medium\"\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.24992 6.70805L6.41659 7.87472L9.04159 5.24972M11.6666 6.99972C11.6666 9.86298 8.54344 11.9455 7.40708 12.6084C7.27794 12.6837 7.21336 12.7214 7.12223 12.741C7.05151 12.7561 6.94833 12.7561 6.87761 12.741C6.78648 12.7214 6.7219 12.6837 6.59276 12.6084C5.4564 11.9455 2.33325 9.86298 2.33325 6.99972V4.20999C2.33325 3.74361 2.33325 3.51042 2.40953 3.30997C2.47691 3.13289 2.58641 2.97488 2.72855 2.84961C2.88946 2.70781 3.1078 2.62593 3.54449 2.46217L6.6722 1.28928C6.79348 1.2438 6.85411 1.22107 6.91649 1.21205C6.97182 1.20406 7.02801 1.20406 7.08334 1.21205C7.14573 1.22107 7.20636 1.2438 7.32763 1.28928L10.4553 2.46217C10.892 2.62593 11.1104 2.70781 11.2713 2.84961C11.4134 2.97488 11.5229 3.13289 11.5903 3.30997C11.6666 3.51042 11.6666 3.74361 11.6666 4.20999V6.99972Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.6\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>{product?.remainingWarrantyText}</span>\n </div>\n <div onClick={onClick} className=\"flex items-center p-4\">\n <div className=\"flex w-full flex-col gap-2\">\n <span className=\"text-sm font-medium text-[#97A2B6]\">\n {t(category)}\n </span>\n <span className=\"font-medium text-[#111729]\">{product?.name}</span>\n <span className=\"text-sm font-medium text-[#677389]\">\n {product?.brandName || product?.brand}\n </span>\n </div>\n </div>\n {isCollapsed && (\n <motion.div\n initial={{\n opacity: 0,\n overflow: \"hidden\",\n }}\n animate={{\n opacity: 1,\n overflow: \"visible\",\n }}\n transition={{ duration: 0.3 }}\n className=\"flex-col gap-2 border-t border-t-[#E3E7EF] py-3\"\n >\n <div className=\"flex flex-col items-center gap-3\">\n <h2 className=\"text-sm font-medium text-[#111729]\">\n {t(\"Ek Hizmetler\")}\n </h2>\n <div className=\"flex items-center justify-center gap-6\">\n {verified &&\n verifiedCardButtons.map((button, index) => (\n <button\n key={index}\n onClick={() => button.onClick()}\n aria-label={button.text}\n className=\"flex h-10 w-10 items-center justify-center gap-2 rounded-lg bg-[#F5F7FA] p-2 transition-all hover:bg-slate-200\"\n >\n {button.icon}\n </button>\n ))}\n {!verified &&\n unverifiedCardButtons.map((button, index) => (\n <button\n key={index}\n onClick={() => button.onClick()}\n aria-label={button.text}\n className=\"flex h-10 w-10 items-center justify-center gap-2 rounded-lg bg-[#F5F7FA] p-2 transition-all hover:bg-slate-200\"\n >\n {button.icon}\n </button>\n ))}\n </div>\n </div>\n </motion.div>\n )}\n <motion.button\n transition={{ duration: 0.3 }}\n onClick={() => setIsCollapsed(!isCollapsed)}\n className=\"flex items-center justify-center rounded-b-lg p-2\"\n >\n <svg\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={`transform ${isCollapsed ? \"rotate-180\" : \"\"}`}\n >\n <path\n d=\"M6.5 9L12.5 15L18.5 9\"\n stroke=\"#4A5567\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </motion.button>\n </motion.div>\n );\n};\n\nexport default ProductCard;\n","const ProductSkeleton = () => {\n return (\n <div className=\"animate-pulse flex h-[168px] w-full flex-col rounded-lg border border-gray-200 bg-white p-4\">\n <div className=\"flex items-center gap-3\">\n <div className=\"h-12 w-12 rounded-lg bg-gray-200\"></div>\n <div className=\"flex flex-col gap-2\">\n <div className=\"h-4 w-32 rounded bg-gray-200\"></div>\n <div className=\"h-3 w-24 rounded bg-gray-200\"></div>\n </div>\n </div>\n <div className=\"mt-4 flex flex-col gap-2\">\n <div className=\"h-3 w-full rounded bg-gray-200\"></div>\n <div className=\"h-3 w-3/4 rounded bg-gray-200\"></div>\n </div>\n <div className=\"mt-auto flex items-center justify-between\">\n <div className=\"h-6 w-24 rounded-full bg-gray-200\"></div>\n <div className=\"h-6 w-6 rounded bg-gray-200\"></div>\n </div>\n </div>\n );\n};\n\nexport default ProductSkeleton;\n","import{get as t,set as e}from\"react-hook-form\";const s=(e,s,o)=>{if(e&&\"reportValidity\"in e){const r=t(o,s);e.setCustomValidity(r&&r.message||\"\"),e.reportValidity()}},o=(t,e)=>{for(const o in e.fields){const r=e.fields[o];r&&r.ref&&\"reportValidity\"in r.ref?s(r.ref,o,t):r.refs&&r.refs.forEach(e=>s(e,o,t))}},r=(s,r)=>{r.shouldUseNativeValidation&&o(s,r);const f={};for(const o in s){const n=t(r.fields,o),a=Object.assign(s[o]||{},{ref:n&&n.ref});if(i(r.names||Object.keys(s),o)){const s=Object.assign({},t(f,o));e(s,\"root\",a),e(f,o,s)}else e(f,o,a)}return f},i=(t,e)=>t.some(t=>t.startsWith(e+\".\"));export{r as toNestErrors,o as validateFieldsNatively};\n//# sourceMappingURL=resolvers.mjs.map\n","import{validateFieldsNatively as e,toNestErrors as t}from\"@hookform/resolvers\";import{appendErrors as r}from\"react-hook-form\";function o(o,n,a){return void 0===n&&(n={}),void 0===a&&(a={}),function(s,i,c){try{return Promise.resolve(function(t,r){try{var u=(n.context&&\"development\"===process.env.NODE_ENV&&console.warn(\"You should not used the yup options context. Please, use the 'useForm' context object instead\"),Promise.resolve(o[\"sync\"===a.mode?\"validateSync\":\"validate\"](s,Object.assign({abortEarly:!1},n,{context:i}))).then(function(t){return c.shouldUseNativeValidation&&e({},c),{values:a.raw?s:t,errors:{}}}))}catch(e){return r(e)}return u&&u.then?u.then(void 0,r):u}(0,function(e){if(!e.inner)throw e;return{values:{},errors:t((o=e,n=!c.shouldUseNativeValidation&&\"all\"===c.criteriaMode,(o.inner||[]).reduce(function(e,t){if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),n){var o=e[t.path].types,a=o&&o[t.type];e[t.path]=r(t.path,n,e,t.type,a?[].concat(a,t.message):t.message)}return e},{})),c)};var o,n}))}catch(e){return Promise.reject(e)}}}export{o as yupResolver};\n//# sourceMappingURL=yup.module.js.map\n","export default \"data:image/png;base64,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\"","import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"@egaranti/components\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst DeleteDialog = ({ on, triggerValue, desc }) => {\n const { t } = useTranslation();\n\n return (\n <AlertDialog>\n <AlertDialogTrigger asChild>{triggerValue}</AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{desc}</AlertDialogTitle>\n </AlertDialogHeader>\n <AlertDialogFooter className=\"flex flex-col gap-2\">\n <AlertDialogCancel>{t(\"common.cancel\")}</AlertDialogCancel>\n <AlertDialogAction onClick={on}>\n {t(\"common.delete\")}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n\nexport default DeleteDialog;\n","import { useToast } from \"@egaranti/components\";\n\nimport { useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport DummyFileIcon from \"../../assets/images/dummyfile.png\";\nimport axios from \"../../lib/api/axios\";\nimport DeleteDialog from \"./UnVerifiedProductDetailSheet/deleteDialog\";\n\nimport { parseError } from \"@/lib/utils\";\n\nconst DocumentItem = ({\n document: { name = \"Fatura Belgesi\", url, type },\n product,\n getUnverifiedProduct,\n}) => {\n const navigate = useNavigate();\n const { t } = useTranslation();\n\n const [selectedFile, setSelectedFile] = useState(null);\n const { toast } = useToast();\n const inputRef = useRef(null);\n\n const onFileChange = async (e, name) => {\n e.preventDefault();\n\n const file = e.target.files[0];\n\n if (file) {\n const formData = new FormData();\n formData.append(\"file\", file);\n\n handleUploadDocument(formData, type);\n }\n };\n\n const handleUploadDocument = async (formData, type) => {\n // /unverified-products/{unverifiedProductId}/warranty\n\n try {\n const res = await axios.post(\n `/unverified-products/${product.id}/${type}`,\n formData,\n );\n getUnverifiedProduct();\n } catch (err) {\n const errorText = parseError(err.response.data?.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n }\n };\n\n const onDeleteFile = (type) => {\n setSelectedFile({ fileName: type });\n\n DeleteFileModalHook.handleToggle();\n };\n\n const handleDeleteDocument = async () => {\n try {\n const res = await axios.delete(\n `/unverified-products/${product.id}/${selectedFile.fileName}`,\n );\n getUnverifiedProduct();\n } catch (err) {\n const errorText = parseError(err.response.data?.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n }\n };\n\n if (url) {\n return (\n <div className=\"flex w-full items-center justify-between rounded-lg border border-[#E3E7EF] bg-[#F2F5F9] p-4\">\n <div className=\"flex items-center gap-2\">\n <img src={DummyFileIcon} alt=\"dummy file icon\" className=\"h-8 w-8\" />\n <div className=\"flex flex-col gap-2\">\n <h3 className=\"text-sm font-medium text-[#111729]\">{name}</h3>\n {/* <span className=\"text-[#677389] text-xs font-medium \">200KB</span> */}\n </div>\n </div>\n <div className=\"flex items-center\">\n <button\n onClick={() => navigate(`/file-preview?url=${url}`)}\n aria-label=\"Ä°ndir\"\n className=\"flex shrink-0 items-center justify-center p-2\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.6667 8.33333L17.5 2.5M17.5 2.5H12.5M17.5 2.5V7.5M8.33333 11.6667L2.5 17.5M2.5 17.5H7.5M2.5 17.5L2.5 12.5\"\n stroke=\"#111729\"\n strokeWidth=\"1.67\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n <DeleteDialog\n triggerValue={\n <button\n onClick={() => onDeleteFile(type)}\n aria-label=\"Sil\"\n className=\"flex shrink-0 items-center justify-center p-2\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 3H15M3 6H21M19 6L18.2987 16.5193C18.1935 18.0975 18.1409 18.8867 17.8 19.485C17.4999 20.0118 17.0472 20.4353 16.5017 20.6997C15.882 21 15.0911 21 13.5093 21H10.4907C8.90891 21 8.11803 21 7.49834 20.6997C6.95276 20.4353 6.50009 20.0118 6.19998 19.485C5.85911 18.8867 5.8065 18.0975 5.70129 16.5193L5 6\"\n stroke=\"#D92D20\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n }\n desc={t(\"productsPage.youAreAboutToDeleteDocument\")}\n on={handleDeleteDocument}\n />\n </div>\n </div>\n );\n } else {\n return (\n <div\n onClick={(e) => {\n inputRef.current.click();\n }}\n className=\"flex w-full cursor-pointer items-center justify-between rounded-lg border border-dashed border-[#E3E7EF] bg-white p-4\"\n >\n <input\n onChange={(e) => onFileChange(e, name)}\n ref={inputRef}\n type=\"file\"\n accept=\".pdf,.jpg,.jpeg,.png\"\n className=\"hidden\"\n />\n <div className=\"flex items-center gap-2\">\n <svg\n width=\"37\"\n height=\"36\"\n viewBox=\"0 0 37 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect x=\"2.5\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" fill=\"#AAC2F7\" />\n <path\n d=\"M19.8337 11.5131V14.2668C19.8337 14.6402 19.8337 14.8269 19.9063 14.9695C19.9702 15.0949 20.0722 15.1969 20.1977 15.2608C20.3403 15.3335 20.527 15.3335 20.9003 15.3335H23.654M23.8337 16.659V21.4668C23.8337 22.5869 23.8337 23.147 23.6157 23.5748C23.4239 23.9511 23.118 24.2571 22.7416 24.4488C22.3138 24.6668 21.7538 24.6668 20.6337 24.6668H16.367C15.2469 24.6668 14.6868 24.6668 14.259 24.4488C13.8827 24.2571 13.5767 23.9511 13.385 23.5748C13.167 23.147 13.167 22.5869 13.167 21.4668V14.5335C13.167 13.4134 13.167 12.8533 13.385 12.4255C13.5767 12.0492 13.8827 11.7432 14.259 11.5515C14.6868 11.3335 15.2469 11.3335 16.367 11.3335H18.5082C18.9974 11.3335 19.2419 11.3335 19.4721 11.3888C19.6762 11.4377 19.8713 11.5186 20.0502 11.6282C20.2521 11.7519 20.425 11.9249 20.7709 12.2708L22.8964 14.3962C23.2423 14.7421 23.4153 14.9151 23.5389 15.1169C23.6486 15.2959 23.7294 15.491 23.7784 15.695C23.8337 15.9252 23.8337 16.1698 23.8337 16.659Z\"\n stroke=\"#0049E6\"\n strokeWidth=\"1.33333\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <rect\n x=\"2.5\"\n y=\"2\"\n width=\"32\"\n height=\"32\"\n rx=\"16\"\n stroke=\"#CCDBFA\"\n strokeWidth=\"4\"\n />\n </svg>\n <div className=\"flex flex-col gap-2\">\n <h3 className=\"text-sm font-medium text-[#667085]\">\n {name} {t(\"productsPage.forUploadClickHere\")}{\" \"}\n <span className=\"cursor-pointer text-[#0049E6]\">\n {t(\"productsPage.clickHere\")}\n </span>\n </h3>\n <span className=\"text-xs font-medium text-[#677389] \">\n {t(\"productsPage.maxFileSize\")}\n </span>\n </div>\n </div>\n </div>\n );\n }\n};\n\nexport default DocumentItem;\n","export default \"__VITE_ASSET__6a02bedb__\"","export default \"__VITE_ASSET__55c4ad74__\"","export default \"__VITE_ASSET__dd8fd383__\"","export default \"__VITE_ASSET__77d18825__\"","export default \"__VITE_ASSET__264b8628__\"","export default \"__VITE_ASSET__c9f63663__\"","export default \"__VITE_ASSET__965b4234__\"","export default \"__VITE_ASSET__d0ed2e5c__\"","export default \"__VITE_ASSET__e3b082fb__\"","export default \"__VITE_ASSET__db47764e__\"","const categories = [\n {\n id: 1,\n label: \"Bilgisayar / Tablet\",\n value: \"Bilgisayar / Tablet\",\n },\n {\n id: 2,\n label: \"Yazıcılar & Projeksiyon\",\n value: \"Yazıcılar & Projeksiyon\",\n },\n {\n id: 3,\n label: \"Telefon & Telefon Aksesuarları\",\n value: \"Telefon & Telefon Aksesuarları\",\n },\n {\n id: 4,\n label: \"TV, Görüntü & Ses Sistemleri\",\n value: \"TV, Görüntü & Ses Sistemleri\",\n },\n {\n id: 5,\n label: \"Beyaz EÅŸya\",\n value: \"Beyaz EÅŸya\",\n },\n {\n id: 6,\n label: \"Klima ve Isıtıcılar\",\n value: \"Klima ve Isıtıcılar\",\n },\n {\n id: 7,\n label: \"Elektrikli Ev Aletleri\",\n value: \"Elektrikli Ev Aletleri\",\n },\n {\n id: 8,\n label: \"Foto & Kamera\",\n value: \"Foto & Kamera\",\n },\n {\n id: 9,\n label: \"Oyun & Oyun Konsolları\",\n value: \"Oyun & Oyun Konsolları\",\n },\n {\n id: 10,\n label: \"DiÄŸer\",\n value: \"DiÄŸer\",\n },\n];\n\nexport default categories;\n","import React from \"react\";\n\nimport { ReactComponent as BeyazEÅŸyaIcon } from \"../../assets/svgs/categories/beyazesyaicon.svg\";\nimport { ReactComponent as DigerIcon } from \"../../assets/svgs/categories/digericon.svg\";\nimport { ReactComponent as ElektrikliEvAletleriIcon } from \"../../assets/svgs/categories/elektrikliicon.svg\";\nimport { ReactComponent as FotoKameraIcon } from \"../../assets/svgs/categories/fotoicon.svg\";\nimport { ReactComponent as KlimaIcon } from \"../../assets/svgs/categories/klimaicon.svg\";\nimport { ReactComponent as LaptopIcon } from \"../../assets/svgs/categories/laptopicon.svg\";\nimport { ReactComponent as OyunKonsollarıIcon } from \"../../assets/svgs/categories/oyunicon.svg\";\nimport { ReactComponent as TelefonTelefonAksesuarlarıIcon } from \"../../assets/svgs/categories/telefonicon.svg\";\nimport { ReactComponent as TVGörüntüSistemleriIcon } from \"../../assets/svgs/categories/tvicon.svg\";\nimport { ReactComponent as YazıcılarProjeksiyonIcon } from \"../../assets/svgs/categories/yaziciicon.svg\";\n\nimport categories from \"@/lib/utils/data/categories\";\n\nfunction ProductIcon({ productType, ...props }) {\n const category = categories.find((c) => c.label === productType)?.id;\n\n if (category) {\n switch (category) {\n case 1:\n return <LaptopIcon {...props} />;\n case 2:\n return <YazıcılarProjeksiyonIcon {...props} />;\n case 3:\n return <TelefonTelefonAksesuarlarıIcon {...props} />;\n case 4:\n return <TVGörüntüSistemleriIcon {...props} />;\n case 5:\n return <BeyazEÅŸyaIcon {...props} />;\n case 6:\n return <KlimaIcon {...props} />;\n case 7:\n return <ElektrikliEvAletleriIcon {...props} />;\n case 8:\n return <FotoKameraIcon {...props} />;\n case 9:\n return <OyunKonsollarıIcon {...props} />;\n case 10:\n return <DigerIcon {...props} />;\n default:\n return <DigerIcon {...props} />;\n }\n } else {\n return <DigerIcon {...props} />;\n }\n}\n\nexport default ProductIcon;\n","import React, { forwardRef, useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\n\nconst InputBox = forwardRef(\n (\n { className, value, onChange, placeholder, type = \"text\", ...rest },\n ref,\n ) => {\n const [isFocused, setIsFocused] = useState(false);\n\n const toggleFocus = (focusState) => setIsFocused(focusState);\n\n return (\n <div className=\"relative w-full\">\n <label\n onClick={() => ref.current.focus()}\n className={classNames(\n \"absolute left-4 cursor-text select-none text-sm font-medium text-[#677389] transition-all\",\n {\n \"top-1\": isFocused || value,\n \"top-5\": !isFocused && !value,\n },\n )}\n >\n {placeholder}\n </label>\n <input\n ref={ref}\n type={type}\n className={classNames(\n \"w-full rounded-md border border-[#cdd5e0] p-4 shadow-sm\",\n className,\n )}\n onFocus={() => toggleFocus(true)}\n onBlur={() => toggleFocus(false)}\n value={value}\n onChange={onChange}\n {...rest}\n />\n </div>\n );\n },\n);\n\nexport default InputBox;\n","import * as DropdownMenu from \"@radix-ui/react-dropdown-menu\";\n\nimport React, { forwardRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport InputBox from \"./InputBox\";\n\nconst PriceInputPrice = forwardRef(\n ({ value, onChange, placeholder, onChangeUnit, valueUnit }, ref) => {\n const formatNumberWithCommas = (number) =>\n number?.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\n\n const handleChange = (event) => {\n const enteredValue = event.target.value.replace(/[^\\d]/g, \"\").trim();\n const numericValue = parseInt(enteredValue, 10);\n\n if (enteredValue === \"\") {\n onChange(null);\n } else if (!isNaN(numericValue) && numericValue <= 99999999) {\n onChange(numericValue);\n }\n };\n\n return (\n <div className=\"flex h-full w-full items-center\">\n <CurrencySelect valueUnit={valueUnit} onChangeUnit={onChangeUnit} />\n <InputBox\n ref={ref}\n type=\"text\"\n inputMode=\"numeric\"\n value={formatNumberWithCommas(value)}\n onChange={handleChange}\n placeholder={placeholder}\n className=\"rounded-l-none border-l-0\"\n />\n </div>\n );\n },\n);\n\nconst CurrencySelect = ({ valueUnit, onChangeUnit }) => {\n const { t } = useTranslation();\n const options = [\n { value: \"TRY\", label: \"₺\" },\n { value: \"USD\", label: \"$\" },\n { value: \"EUR\", label: \"€\" },\n { value: \"GBP\", label: \"£\" },\n { value: \"UZS\", label: t(\"common.currencyUZS\") },\n ];\n\n return (\n <DropdownMenu.Root value={valueUnit} onValueChange={onChangeUnit}>\n <DropdownMenu.Trigger asChild>\n <button className=\"h-full\" aria-label=\"Para birimi seçin\">\n <div className=\"flex items-center justify-center rounded-md rounded-r-none border border-r-0 border-gray-300 p-4\">\n <span className=\"text-gray-700\">\n {options.find((option) => option.value === valueUnit)?.label}\n </span>\n </div>\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content\n side=\"top\"\n sideOffset={2}\n className=\"max-w-20 rounded-md border bg-white p-2 shadow\"\n >\n <DropdownMenu.Group>\n {options.map((option) => (\n <DropdownMenu.Item\n key={option.value}\n value={option.value}\n onSelect={() => onChangeUnit(option.value)}\n className=\"flex cursor-pointer items-center rounded-md p-2 hover:bg-gray-100\"\n >\n <span className=\"text-gray-700\">{option.label}</span>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Group>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n );\n};\n\nexport default PriceInputPrice;\n","import { useRef, useEffect } from 'react';\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar inputmask$2 = {exports: {}};\n\n/*!\n * dist/inputmask\n * https://github.com/RobinHerbots/Inputmask\n * Copyright (c) 2010 - 2024 Robin Herbots\n * Licensed under the MIT license\n * Version: 5.0.10-beta.11\n */\nvar inputmask$1 = inputmask$2.exports;\n\nvar hasRequiredInputmask;\n\nfunction requireInputmask () {\n\tif (hasRequiredInputmask) return inputmask$2.exports;\n\thasRequiredInputmask = 1;\n\t(function (module, exports) {\n\t\t!function(e, t) {\n\t\t module.exports = t();\n\t\t}(\"undefined\" != typeof self ? self : inputmask$1, (function() {\n\t\t return function() {\n\t\t var e = {\n\t\t 3976: function(e, t) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.default = void 0;\n\t\t t.default = {\n\t\t _maxTestPos: 500,\n\t\t placeholder: \"_\",\n\t\t optionalmarker: [ \"[\", \"]\" ],\n\t\t quantifiermarker: [ \"{\", \"}\" ],\n\t\t groupmarker: [ \"(\", \")\" ],\n\t\t alternatormarker: \"|\",\n\t\t escapeChar: \"\\\\\",\n\t\t mask: null,\n\t\t regex: null,\n\t\t oncomplete: function() {},\n\t\t onincomplete: function() {},\n\t\t oncleared: function() {},\n\t\t repeat: 0,\n\t\t greedy: !1,\n\t\t autoUnmask: !1,\n\t\t removeMaskOnSubmit: !1,\n\t\t clearMaskOnLostFocus: !0,\n\t\t insertMode: !0,\n\t\t insertModeVisual: !0,\n\t\t clearIncomplete: !1,\n\t\t alias: null,\n\t\t onKeyDown: function() {},\n\t\t onBeforeMask: null,\n\t\t onBeforePaste: function(e, t) {\n\t\t return \"function\" == typeof t.onBeforeMask ? t.onBeforeMask.call(this, e, t) : e;\n\t\t },\n\t\t onBeforeWrite: null,\n\t\t onUnMask: null,\n\t\t showMaskOnFocus: !0,\n\t\t showMaskOnHover: !0,\n\t\t onKeyValidation: function() {},\n\t\t skipOptionalPartCharacter: \" \",\n\t\t numericInput: !1,\n\t\t rightAlign: !1,\n\t\t undoOnEscape: !0,\n\t\t radixPoint: \"\",\n\t\t _radixDance: !1,\n\t\t groupSeparator: \"\",\n\t\t keepStatic: null,\n\t\t positionCaretOnTab: !0,\n\t\t tabThrough: !1,\n\t\t supportsInputType: [ \"text\", \"tel\", \"url\", \"password\", \"search\" ],\n\t\t isComplete: null,\n\t\t preValidation: null,\n\t\t postValidation: null,\n\t\t staticDefinitionSymbol: void 0,\n\t\t jitMasking: !1,\n\t\t nullable: !0,\n\t\t inputEventOnly: !1,\n\t\t noValuePatching: !1,\n\t\t positionCaretOnClick: \"lvp\",\n\t\t casing: null,\n\t\t inputmode: \"text\",\n\t\t importDataAttributes: !0,\n\t\t shiftPositions: !0,\n\t\t usePrototypeDefinitions: !0,\n\t\t validationEventTimeOut: 3e3,\n\t\t substitutes: {}\n\t\t };\n\t\t },\n\t\t 7392: function(e, t) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.default = void 0;\n\t\t t.default = {\n\t\t 9: {\n\t\t validator: \"[0-9\\uff10-\\uff19]\",\n\t\t definitionSymbol: \"*\"\n\t\t },\n\t\t a: {\n\t\t validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n\t\t definitionSymbol: \"*\"\n\t\t },\n\t\t \"*\": {\n\t\t validator: \"[0-9\\uff10-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\"\n\t\t }\n\t\t };\n\t\t },\n\t\t 253: function(e, t) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.default = function(e, t, n) {\n\t\t if (void 0 === n) return e.__data ? e.__data[t] : null;\n\t\t e.__data = e.__data || {}, e.__data[t] = n;\n\t\t };\n\t\t },\n\t\t 3776: function(e, t, n) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.Event = void 0, t.off = function(e, t) {\n\t\t var n, i;\n\t\t u(this[0]) && e && (n = this[0].eventRegistry, i = this[0], e.split(\" \").forEach((function(e) {\n\t\t var a = o(e.split(\".\"), 2);\n\t\t (function(e, i) {\n\t\t var a, r, o = [];\n\t\t if (e.length > 0) if (void 0 === t) for (a = 0, r = n[e][i].length; a < r; a++) o.push({\n\t\t ev: e,\n\t\t namespace: i && i.length > 0 ? i : \"global\",\n\t\t handler: n[e][i][a]\n\t\t }); else o.push({\n\t\t ev: e,\n\t\t namespace: i && i.length > 0 ? i : \"global\",\n\t\t handler: t\n\t\t }); else if (i.length > 0) for (var l in n) for (var s in n[l]) if (s === i) if (void 0 === t) for (a = 0, \n\t\t r = n[l][s].length; a < r; a++) o.push({\n\t\t ev: l,\n\t\t namespace: s,\n\t\t handler: n[l][s][a]\n\t\t }); else o.push({\n\t\t ev: l,\n\t\t namespace: s,\n\t\t handler: t\n\t\t });\n\t\t return o;\n\t\t })(a[0], a[1]).forEach((function(e) {\n\t\t var t = e.ev, a = e.handler;\n\t\t !function(e, t, a) {\n\t\t if (e in n == 1) if (i.removeEventListener ? i.removeEventListener(e, a, !1) : i.detachEvent && i.detachEvent(\"on\".concat(e), a), \n\t\t \"global\" === t) for (var r in n[e]) n[e][r].splice(n[e][r].indexOf(a), 1); else n[e][t].splice(n[e][t].indexOf(a), 1);\n\t\t }(t, e.namespace, a);\n\t\t }));\n\t\t })));\n\t\t return this;\n\t\t }, t.on = function(e, t) {\n\t\t if (u(this[0])) {\n\t\t var n = this[0].eventRegistry, i = this[0];\n\t\t e.split(\" \").forEach((function(e) {\n\t\t var a = o(e.split(\".\"), 2), r = a[0], l = a[1];\n\t\t !function(e, a) {\n\t\t i.addEventListener ? i.addEventListener(e, t, !1) : i.attachEvent && i.attachEvent(\"on\".concat(e), t), \n\t\t n[e] = n[e] || {}, n[e][a] = n[e][a] || [], n[e][a].push(t);\n\t\t }(r, void 0 === l ? \"global\" : l);\n\t\t }));\n\t\t }\n\t\t return this;\n\t\t }, t.trigger = function(e) {\n\t\t var t = arguments;\n\t\t if (u(this[0])) for (var n = this[0].eventRegistry, i = this[0], o = \"string\" == typeof e ? e.split(\" \") : [ e.type ], l = 0; l < o.length; l++) {\n\t\t var s = o[l].split(\".\"), f = s[0], p = s[1] || \"global\";\n\t\t if (void 0 !== c && \"global\" === p) {\n\t\t var d, h = {\n\t\t bubbles: !0,\n\t\t cancelable: !0,\n\t\t composed: !0,\n\t\t detail: arguments[1]\n\t\t };\n\t\t if (c.createEvent) {\n\t\t try {\n\t\t if (\"input\" === f) h.inputType = \"insertText\", d = new InputEvent(f, h); else d = new CustomEvent(f, h);\n\t\t } catch (e) {\n\t\t (d = c.createEvent(\"CustomEvent\")).initCustomEvent(f, h.bubbles, h.cancelable, h.detail);\n\t\t }\n\t\t e.type && (0, a.default)(d, e), i.dispatchEvent(d);\n\t\t } else (d = c.createEventObject()).eventType = f, d.detail = arguments[1], e.type && (0, a.default)(d, e), i.fireEvent(\"on\" + d.eventType, d);\n\t\t } else if (void 0 !== n[f]) {\n\t\t arguments[0] = arguments[0].type ? arguments[0] : r.default.Event(arguments[0]), \n\t\t arguments[0].detail = arguments.slice(1);\n\t\t var v = n[f];\n\t\t (\"global\" === p ? Object.values(v).flat() : v[p]).forEach((function(e) {\n\t\t return e.apply(i, t);\n\t\t }));\n\t\t }\n\t\t }\n\t\t return this;\n\t\t };\n\t\t var i = s(n(9380)), a = s(n(600)), r = s(n(4963));\n\t\t function o(e, t) {\n\t\t return function(e) {\n\t\t if (Array.isArray(e)) return e;\n\t\t }(e) || function(e, t) {\n\t\t var n = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n\t\t if (null != n) {\n\t\t var i, a, r, o, l = [], s = !0, c = !1;\n\t\t try {\n\t\t if (r = (n = n.call(e)).next, 0 === t) ; else for (;!(s = (i = r.call(n)).done) && (l.push(i.value), l.length !== t); s = !0) ;\n\t\t } catch (e) {\n\t\t c = !0, a = e;\n\t\t } finally {\n\t\t try {\n\t\t if (!s && null != n.return && (o = n.return(), Object(o) !== o)) return;\n\t\t } finally {\n\t\t if (c) throw a;\n\t\t }\n\t\t }\n\t\t return l;\n\t\t }\n\t\t }(e, t) || function(e, t) {\n\t\t if (!e) return;\n\t\t if (\"string\" == typeof e) return l(e, t);\n\t\t var n = Object.prototype.toString.call(e).slice(8, -1);\n\t\t \"Object\" === n && e.constructor && (n = e.constructor.name);\n\t\t if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n\t\t if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return l(e, t);\n\t\t }(e, t) || function() {\n\t\t throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n\t\t }();\n\t\t }\n\t\t function l(e, t) {\n\t\t (null == t || t > e.length) && (t = e.length);\n\t\t for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n\t\t return i;\n\t\t }\n\t\t function s(e) {\n\t\t return e && e.__esModule ? e : {\n\t\t default: e\n\t\t };\n\t\t }\n\t\t var c = i.default.document;\n\t\t function u(e) {\n\t\t return e instanceof Element;\n\t\t }\n\t\t var f = t.Event = void 0;\n\t\t \"function\" == typeof i.default.CustomEvent ? t.Event = f = i.default.CustomEvent : i.default.Event && c && c.createEvent ? (t.Event = f = function(e, t) {\n\t\t t = t || {\n\t\t bubbles: !1,\n\t\t cancelable: !1,\n\t\t composed: !0,\n\t\t detail: void 0\n\t\t };\n\t\t var n = c.createEvent(\"CustomEvent\");\n\t\t return n.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), n;\n\t\t }, f.prototype = i.default.Event.prototype) : \"undefined\" != typeof Event && (t.Event = f = Event);\n\t\t },\n\t\t 600: function(e, t) {\n\t\t function n(e) {\n\t\t return n = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n\t\t return typeof e;\n\t\t } : function(e) {\n\t\t return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n\t\t }, n(e);\n\t\t }\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.default = function e() {\n\t\t var t, i, a, r, o, l, s = arguments[0] || {}, c = 1, u = arguments.length, f = !1;\n\t\t \"boolean\" == typeof s && (f = s, s = arguments[c] || {}, c++);\n\t\t \"object\" !== n(s) && \"function\" != typeof s && (s = {});\n\t\t for (;c < u; c++) if (null != (t = arguments[c])) for (i in t) a = s[i], s !== (r = t[i]) && (f && r && (\"[object Object]\" === Object.prototype.toString.call(r) || (o = Array.isArray(r))) ? (o ? (o = !1, \n\t\t l = a && Array.isArray(a) ? a : []) : l = a && \"[object Object]\" === Object.prototype.toString.call(a) ? a : {}, \n\t\t s[i] = e(f, l, r)) : void 0 !== r && (s[i] = r));\n\t\t return s;\n\t\t };\n\t\t },\n\t\t 4963: function(e, t, n) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.default = void 0;\n\t\t var i = l(n(9380)), a = l(n(253)), r = n(3776), o = l(n(600));\n\t\t function l(e) {\n\t\t return e && e.__esModule ? e : {\n\t\t default: e\n\t\t };\n\t\t }\n\t\t var s = i.default.document;\n\t\t function c(e) {\n\t\t return e instanceof c ? e : this instanceof c ? void (null != e && e !== i.default && (this[0] = e.nodeName ? e : void 0 !== e[0] && e[0].nodeName ? e[0] : s.querySelector(e), \n\t\t void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {}))) : new c(e);\n\t\t }\n\t\t c.prototype = {\n\t\t on: r.on,\n\t\t off: r.off,\n\t\t trigger: r.trigger\n\t\t }, c.extend = o.default, c.data = a.default, c.Event = r.Event;\n\t\t t.default = c;\n\t\t },\n\t\t 9845: function(e, t, n) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.mobile = t.iphone = t.ie = void 0;\n\t\t var i, a = (i = n(9380)) && i.__esModule ? i : {\n\t\t default: i\n\t\t };\n\t\t var r = a.default.navigator && a.default.navigator.userAgent || \"\";\n\t\t t.ie = r.indexOf(\"MSIE \") > 0 || r.indexOf(\"Trident/\") > 0, t.mobile = a.default.navigator && a.default.navigator.userAgentData && a.default.navigator.userAgentData.mobile || a.default.navigator && a.default.navigator.maxTouchPoints || \"ontouchstart\" in a.default, \n\t\t t.iphone = /iphone/i.test(r);\n\t\t },\n\t\t 7184: function(e, t) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.escapeRegex = function(e) {\n\t\t return e.replace(n, \"\\\\$1\");\n\t\t };\n\t\t var n = new RegExp(\"(\\\\\" + [ \"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\" ].join(\"|\\\\\") + \")\", \"gim\");\n\t\t },\n\t\t 6030: function(e, t, n) {\n\t\t function i(e) {\n\t\t return i = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n\t\t return typeof e;\n\t\t } : function(e) {\n\t\t return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n\t\t }, i(e);\n\t\t }\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.EventHandlers = void 0;\n\t\t var a, r = n(9845), o = (a = n(9380)) && a.__esModule ? a : {\n\t\t default: a\n\t\t }, l = n(7760), s = n(2839), c = n(8711), u = n(7215), f = n(4713);\n\t\t function p() {\n\t\t /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ p = function() {\n\t\t return t;\n\t\t };\n\t\t var e, t = {}, n = Object.prototype, a = n.hasOwnProperty, r = Object.defineProperty || function(e, t, n) {\n\t\t e[t] = n.value;\n\t\t }, o = \"function\" == typeof Symbol ? Symbol : {}, l = o.iterator || \"@@iterator\", s = o.asyncIterator || \"@@asyncIterator\", c = o.toStringTag || \"@@toStringTag\";\n\t\t function u(e, t, n) {\n\t\t return Object.defineProperty(e, t, {\n\t\t value: n,\n\t\t enumerable: !0,\n\t\t configurable: !0,\n\t\t writable: !0\n\t\t }), e[t];\n\t\t }\n\t\t try {\n\t\t u({}, \"\");\n\t\t } catch (e) {\n\t\t u = function(e, t, n) {\n\t\t return e[t] = n;\n\t\t };\n\t\t }\n\t\t function f(e, t, n, i) {\n\t\t var a = t && t.prototype instanceof k ? t : k, o = Object.create(a.prototype), l = new D(i || []);\n\t\t return r(o, \"_invoke\", {\n\t\t value: E(e, n, l)\n\t\t }), o;\n\t\t }\n\t\t function d(e, t, n) {\n\t\t try {\n\t\t return {\n\t\t type: \"normal\",\n\t\t arg: e.call(t, n)\n\t\t };\n\t\t } catch (e) {\n\t\t return {\n\t\t type: \"throw\",\n\t\t arg: e\n\t\t };\n\t\t }\n\t\t }\n\t\t t.wrap = f;\n\t\t var h = \"suspendedStart\", v = \"suspendedYield\", m = \"executing\", g = \"completed\", y = {};\n\t\t function k() {}\n\t\t function b() {}\n\t\t function x() {}\n\t\t var w = {};\n\t\t u(w, l, (function() {\n\t\t return this;\n\t\t }));\n\t\t var P = Object.getPrototypeOf, S = P && P(P(L([])));\n\t\t S && S !== n && a.call(S, l) && (w = S);\n\t\t var O = x.prototype = k.prototype = Object.create(w);\n\t\t function _(e) {\n\t\t [ \"next\", \"throw\", \"return\" ].forEach((function(t) {\n\t\t u(e, t, (function(e) {\n\t\t return this._invoke(t, e);\n\t\t }));\n\t\t }));\n\t\t }\n\t\t function M(e, t) {\n\t\t function n(r, o, l, s) {\n\t\t var c = d(e[r], e, o);\n\t\t if (\"throw\" !== c.type) {\n\t\t var u = c.arg, f = u.value;\n\t\t return f && \"object\" == i(f) && a.call(f, \"__await\") ? t.resolve(f.__await).then((function(e) {\n\t\t n(\"next\", e, l, s);\n\t\t }), (function(e) {\n\t\t n(\"throw\", e, l, s);\n\t\t })) : t.resolve(f).then((function(e) {\n\t\t u.value = e, l(u);\n\t\t }), (function(e) {\n\t\t return n(\"throw\", e, l, s);\n\t\t }));\n\t\t }\n\t\t s(c.arg);\n\t\t }\n\t\t var o;\n\t\t r(this, \"_invoke\", {\n\t\t value: function(e, i) {\n\t\t function a() {\n\t\t return new t((function(t, a) {\n\t\t n(e, i, t, a);\n\t\t }));\n\t\t }\n\t\t return o = o ? o.then(a, a) : a();\n\t\t }\n\t\t });\n\t\t }\n\t\t function E(t, n, i) {\n\t\t var a = h;\n\t\t return function(r, o) {\n\t\t if (a === m) throw new Error(\"Generator is already running\");\n\t\t if (a === g) {\n\t\t if (\"throw\" === r) throw o;\n\t\t return {\n\t\t value: e,\n\t\t done: !0\n\t\t };\n\t\t }\n\t\t for (i.method = r, i.arg = o; ;) {\n\t\t var l = i.delegate;\n\t\t if (l) {\n\t\t var s = j(l, i);\n\t\t if (s) {\n\t\t if (s === y) continue;\n\t\t return s;\n\t\t }\n\t\t }\n\t\t if (\"next\" === i.method) i.sent = i._sent = i.arg; else if (\"throw\" === i.method) {\n\t\t if (a === h) throw a = g, i.arg;\n\t\t i.dispatchException(i.arg);\n\t\t } else \"return\" === i.method && i.abrupt(\"return\", i.arg);\n\t\t a = m;\n\t\t var c = d(t, n, i);\n\t\t if (\"normal\" === c.type) {\n\t\t if (a = i.done ? g : v, c.arg === y) continue;\n\t\t return {\n\t\t value: c.arg,\n\t\t done: i.done\n\t\t };\n\t\t }\n\t\t \"throw\" === c.type && (a = g, i.method = \"throw\", i.arg = c.arg);\n\t\t }\n\t\t };\n\t\t }\n\t\t function j(t, n) {\n\t\t var i = n.method, a = t.iterator[i];\n\t\t if (a === e) return n.delegate = null, \"throw\" === i && t.iterator.return && (n.method = \"return\", \n\t\t n.arg = e, j(t, n), \"throw\" === n.method) || \"return\" !== i && (n.method = \"throw\", \n\t\t n.arg = new TypeError(\"The iterator does not provide a '\" + i + \"' method\")), y;\n\t\t var r = d(a, t.iterator, n.arg);\n\t\t if (\"throw\" === r.type) return n.method = \"throw\", n.arg = r.arg, n.delegate = null, \n\t\t y;\n\t\t var o = r.arg;\n\t\t return o ? o.done ? (n[t.resultName] = o.value, n.next = t.nextLoc, \"return\" !== n.method && (n.method = \"next\", \n\t\t n.arg = e), n.delegate = null, y) : o : (n.method = \"throw\", n.arg = new TypeError(\"iterator result is not an object\"), \n\t\t n.delegate = null, y);\n\t\t }\n\t\t function T(e) {\n\t\t var t = {\n\t\t tryLoc: e[0]\n\t\t };\n\t\t 1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), \n\t\t this.tryEntries.push(t);\n\t\t }\n\t\t function A(e) {\n\t\t var t = e.completion || {};\n\t\t t.type = \"normal\", delete t.arg, e.completion = t;\n\t\t }\n\t\t function D(e) {\n\t\t this.tryEntries = [ {\n\t\t tryLoc: \"root\"\n\t\t } ], e.forEach(T, this), this.reset(!0);\n\t\t }\n\t\t function L(t) {\n\t\t if (t || \"\" === t) {\n\t\t var n = t[l];\n\t\t if (n) return n.call(t);\n\t\t if (\"function\" == typeof t.next) return t;\n\t\t if (!isNaN(t.length)) {\n\t\t var r = -1, o = function n() {\n\t\t for (;++r < t.length; ) if (a.call(t, r)) return n.value = t[r], n.done = !1, n;\n\t\t return n.value = e, n.done = !0, n;\n\t\t };\n\t\t return o.next = o;\n\t\t }\n\t\t }\n\t\t throw new TypeError(i(t) + \" is not iterable\");\n\t\t }\n\t\t return b.prototype = x, r(O, \"constructor\", {\n\t\t value: x,\n\t\t configurable: !0\n\t\t }), r(x, \"constructor\", {\n\t\t value: b,\n\t\t configurable: !0\n\t\t }), b.displayName = u(x, c, \"GeneratorFunction\"), t.isGeneratorFunction = function(e) {\n\t\t var t = \"function\" == typeof e && e.constructor;\n\t\t return !!t && (t === b || \"GeneratorFunction\" === (t.displayName || t.name));\n\t\t }, t.mark = function(e) {\n\t\t return Object.setPrototypeOf ? Object.setPrototypeOf(e, x) : (e.__proto__ = x, u(e, c, \"GeneratorFunction\")), \n\t\t e.prototype = Object.create(O), e;\n\t\t }, t.awrap = function(e) {\n\t\t return {\n\t\t __await: e\n\t\t };\n\t\t }, _(M.prototype), u(M.prototype, s, (function() {\n\t\t return this;\n\t\t })), t.AsyncIterator = M, t.async = function(e, n, i, a, r) {\n\t\t void 0 === r && (r = Promise);\n\t\t var o = new M(f(e, n, i, a), r);\n\t\t return t.isGeneratorFunction(n) ? o : o.next().then((function(e) {\n\t\t return e.done ? e.value : o.next();\n\t\t }));\n\t\t }, _(O), u(O, c, \"Generator\"), u(O, l, (function() {\n\t\t return this;\n\t\t })), u(O, \"toString\", (function() {\n\t\t return \"[object Generator]\";\n\t\t })), t.keys = function(e) {\n\t\t var t = Object(e), n = [];\n\t\t for (var i in t) n.push(i);\n\t\t return n.reverse(), function e() {\n\t\t for (;n.length; ) {\n\t\t var i = n.pop();\n\t\t if (i in t) return e.value = i, e.done = !1, e;\n\t\t }\n\t\t return e.done = !0, e;\n\t\t };\n\t\t }, t.values = L, D.prototype = {\n\t\t constructor: D,\n\t\t reset: function(t) {\n\t\t if (this.prev = 0, this.next = 0, this.sent = this._sent = e, this.done = !1, this.delegate = null, \n\t\t this.method = \"next\", this.arg = e, this.tryEntries.forEach(A), !t) for (var n in this) \"t\" === n.charAt(0) && a.call(this, n) && !isNaN(+n.slice(1)) && (this[n] = e);\n\t\t },\n\t\t stop: function() {\n\t\t this.done = !0;\n\t\t var e = this.tryEntries[0].completion;\n\t\t if (\"throw\" === e.type) throw e.arg;\n\t\t return this.rval;\n\t\t },\n\t\t dispatchException: function(t) {\n\t\t if (this.done) throw t;\n\t\t var n = this;\n\t\t function i(i, a) {\n\t\t return l.type = \"throw\", l.arg = t, n.next = i, a && (n.method = \"next\", n.arg = e), \n\t\t !!a;\n\t\t }\n\t\t for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n\t\t var o = this.tryEntries[r], l = o.completion;\n\t\t if (\"root\" === o.tryLoc) return i(\"end\");\n\t\t if (o.tryLoc <= this.prev) {\n\t\t var s = a.call(o, \"catchLoc\"), c = a.call(o, \"finallyLoc\");\n\t\t if (s && c) {\n\t\t if (this.prev < o.catchLoc) return i(o.catchLoc, !0);\n\t\t if (this.prev < o.finallyLoc) return i(o.finallyLoc);\n\t\t } else if (s) {\n\t\t if (this.prev < o.catchLoc) return i(o.catchLoc, !0);\n\t\t } else {\n\t\t if (!c) throw new Error(\"try statement without catch or finally\");\n\t\t if (this.prev < o.finallyLoc) return i(o.finallyLoc);\n\t\t }\n\t\t }\n\t\t }\n\t\t },\n\t\t abrupt: function(e, t) {\n\t\t for (var n = this.tryEntries.length - 1; n >= 0; --n) {\n\t\t var i = this.tryEntries[n];\n\t\t if (i.tryLoc <= this.prev && a.call(i, \"finallyLoc\") && this.prev < i.finallyLoc) {\n\t\t var r = i;\n\t\t break;\n\t\t }\n\t\t }\n\t\t r && (\"break\" === e || \"continue\" === e) && r.tryLoc <= t && t <= r.finallyLoc && (r = null);\n\t\t var o = r ? r.completion : {};\n\t\t return o.type = e, o.arg = t, r ? (this.method = \"next\", this.next = r.finallyLoc, \n\t\t y) : this.complete(o);\n\t\t },\n\t\t complete: function(e, t) {\n\t\t if (\"throw\" === e.type) throw e.arg;\n\t\t return \"break\" === e.type || \"continue\" === e.type ? this.next = e.arg : \"return\" === e.type ? (this.rval = this.arg = e.arg, \n\t\t this.method = \"return\", this.next = \"end\") : \"normal\" === e.type && t && (this.next = t), \n\t\t y;\n\t\t },\n\t\t finish: function(e) {\n\t\t for (var t = this.tryEntries.length - 1; t >= 0; --t) {\n\t\t var n = this.tryEntries[t];\n\t\t if (n.finallyLoc === e) return this.complete(n.completion, n.afterLoc), A(n), y;\n\t\t }\n\t\t },\n\t\t catch: function(e) {\n\t\t for (var t = this.tryEntries.length - 1; t >= 0; --t) {\n\t\t var n = this.tryEntries[t];\n\t\t if (n.tryLoc === e) {\n\t\t var i = n.completion;\n\t\t if (\"throw\" === i.type) {\n\t\t var a = i.arg;\n\t\t A(n);\n\t\t }\n\t\t return a;\n\t\t }\n\t\t }\n\t\t throw new Error(\"illegal catch attempt\");\n\t\t },\n\t\t delegateYield: function(t, n, i) {\n\t\t return this.delegate = {\n\t\t iterator: L(t),\n\t\t resultName: n,\n\t\t nextLoc: i\n\t\t }, \"next\" === this.method && (this.arg = e), y;\n\t\t }\n\t\t }, t;\n\t\t }\n\t\t function d(e, t) {\n\t\t var n = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n\t\t if (!n) {\n\t\t if (Array.isArray(e) || (n = function(e, t) {\n\t\t if (!e) return;\n\t\t if (\"string\" == typeof e) return h(e, t);\n\t\t var n = Object.prototype.toString.call(e).slice(8, -1);\n\t\t \"Object\" === n && e.constructor && (n = e.constructor.name);\n\t\t if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n\t\t if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return h(e, t);\n\t\t }(e)) || t) {\n\t\t n && (e = n);\n\t\t var i = 0, a = function() {};\n\t\t return {\n\t\t s: a,\n\t\t n: function() {\n\t\t return i >= e.length ? {\n\t\t done: !0\n\t\t } : {\n\t\t done: !1,\n\t\t value: e[i++]\n\t\t };\n\t\t },\n\t\t e: function(e) {\n\t\t throw e;\n\t\t },\n\t\t f: a\n\t\t };\n\t\t }\n\t\t throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n\t\t }\n\t\t var r, o = !0, l = !1;\n\t\t return {\n\t\t s: function() {\n\t\t n = n.call(e);\n\t\t },\n\t\t n: function() {\n\t\t var e = n.next();\n\t\t return o = e.done, e;\n\t\t },\n\t\t e: function(e) {\n\t\t l = !0, r = e;\n\t\t },\n\t\t f: function() {\n\t\t try {\n\t\t o || null == n.return || n.return();\n\t\t } finally {\n\t\t if (l) throw r;\n\t\t }\n\t\t }\n\t\t };\n\t\t }\n\t\t function h(e, t) {\n\t\t (null == t || t > e.length) && (t = e.length);\n\t\t for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n\t\t return i;\n\t\t }\n\t\t function v(e, t, n, i, a, r, o) {\n\t\t try {\n\t\t var l = e[r](o), s = l.value;\n\t\t } catch (e) {\n\t\t return void n(e);\n\t\t }\n\t\t l.done ? t(s) : Promise.resolve(s).then(i, a);\n\t\t }\n\t\t var m, g, y = t.EventHandlers = {\n\t\t keyEvent: function(e, t, n, i, a) {\n\t\t var o = this.inputmask, p = o.opts, d = o.dependencyLib, h = o.maskset, v = this, m = d(v), g = e.key, k = c.caret.call(o, v), b = p.onKeyDown.call(this, e, c.getBuffer.call(o), k, p);\n\t\t if (void 0 !== b) return b;\n\t\t if (g === s.keys.Backspace || g === s.keys.Delete || r.iphone && g === s.keys.BACKSPACE_SAFARI || e.ctrlKey && g === s.keys.x && !(\"oncut\" in v)) e.preventDefault(), \n\t\t u.handleRemove.call(o, v, g, k), (0, l.writeBuffer)(v, c.getBuffer.call(o, !0), h.p, e, v.inputmask._valueGet() !== c.getBuffer.call(o).join(\"\")); else if (g === s.keys.End || g === s.keys.PageDown) {\n\t\t e.preventDefault();\n\t\t var x = c.seekNext.call(o, c.getLastValidPosition.call(o));\n\t\t c.caret.call(o, v, e.shiftKey ? k.begin : x, x, !0);\n\t\t } else g === s.keys.Home && !e.shiftKey || g === s.keys.PageUp ? (e.preventDefault(), \n\t\t c.caret.call(o, v, 0, e.shiftKey ? k.begin : 0, !0)) : p.undoOnEscape && g === s.keys.Escape && !0 !== e.altKey ? ((0, l.checkVal)(v, !0, !1, o.undoValue.split(\"\")), m.trigger(\"click\")) : g !== s.keys.Insert || e.shiftKey || e.ctrlKey || void 0 !== o.userOptions.insertMode ? !0 === p.tabThrough && g === s.keys.Tab ? !0 === e.shiftKey ? (k.end = c.seekPrevious.call(o, k.end, !0), \n\t\t !0 === f.getTest.call(o, k.end - 1).match.static && k.end--, k.begin = c.seekPrevious.call(o, k.end, !0), \n\t\t k.begin >= 0 && k.end > 0 && (e.preventDefault(), c.caret.call(o, v, k.begin, k.end))) : (k.begin = c.seekNext.call(o, k.begin, !0), \n\t\t k.end = c.seekNext.call(o, k.begin, !0), k.end < h.maskLength && k.end--, k.begin <= h.maskLength && (e.preventDefault(), \n\t\t c.caret.call(o, v, k.begin, k.end))) : e.shiftKey || (p.insertModeVisual && !1 === p.insertMode ? g === s.keys.ArrowRight ? setTimeout((function() {\n\t\t var e = c.caret.call(o, v);\n\t\t c.caret.call(o, v, e.begin);\n\t\t }), 0) : g === s.keys.ArrowLeft && setTimeout((function() {\n\t\t var e = c.translatePosition.call(o, v.inputmask.caretPos.begin);\n\t\t c.translatePosition.call(o, v.inputmask.caretPos.end);\n\t\t o.isRTL ? c.caret.call(o, v, e + (e === h.maskLength ? 0 : 1)) : c.caret.call(o, v, e - (0 === e ? 0 : 1));\n\t\t }), 0) : void 0 === o.keyEventHook || o.keyEventHook(e)) : u.isSelection.call(o, k) ? p.insertMode = !p.insertMode : (p.insertMode = !p.insertMode, \n\t\t c.caret.call(o, v, k.begin, k.begin));\n\t\t return o.isComposing = g == s.keys.Process || g == s.keys.Unidentified, o.ignorable = void 0 === g || g.length > 1 && !(\"textarea\" === v.tagName.toLowerCase() && g == s.keys.Enter), \n\t\t y.keypressEvent.call(this, e, t, n, i, a);\n\t\t },\n\t\t keypressEvent: function(e, t, n, i, a) {\n\t\t var r = this.inputmask || this, o = r.opts, f = r.dependencyLib, p = r.maskset, d = r.el, h = f(d), v = e.key;\n\t\t if (!0 === t || e.ctrlKey && e.altKey && !r.ignorable || !(e.ctrlKey || e.metaKey || r.ignorable)) {\n\t\t if (v) {\n\t\t var m, g = t ? {\n\t\t begin: a,\n\t\t end: a\n\t\t } : c.caret.call(r, d);\n\t\t t || (v = o.substitutes[v] || v), p.writeOutBuffer = !0;\n\t\t var y = u.isValid.call(r, g, v, i, void 0, void 0, void 0, t);\n\t\t if (!1 !== y && (c.resetMaskSet.call(r, !0), m = void 0 !== y.caret ? y.caret : c.seekNext.call(r, y.pos.begin ? y.pos.begin : y.pos), \n\t\t p.p = m), m = o.numericInput && void 0 === y.caret ? c.seekPrevious.call(r, m) : m, \n\t\t !1 !== n && (setTimeout((function() {\n\t\t o.onKeyValidation.call(d, v, y);\n\t\t }), 0), p.writeOutBuffer && !1 !== y)) {\n\t\t var k = c.getBuffer.call(r);\n\t\t (0, l.writeBuffer)(d, k, m, e, !0 !== t);\n\t\t }\n\t\t if (e.preventDefault(), t) return !1 !== y && (y.forwardPosition = m), y;\n\t\t }\n\t\t } else v === s.keys.Enter && r.undoValue !== r._valueGet(!0) && (r.undoValue = r._valueGet(!0), \n\t\t setTimeout((function() {\n\t\t h.trigger(\"change\");\n\t\t }), 0));\n\t\t },\n\t\t pasteEvent: (m = p().mark((function e(t) {\n\t\t var n, i, a, r, s, u;\n\t\t return p().wrap((function(e) {\n\t\t for (;;) switch (e.prev = e.next) {\n\t\t case 0:\n\t\t n = function(e, n, i, a, o) {\n\t\t var s = c.caret.call(e, n, void 0, void 0, !0), u = i.substr(0, s.begin), f = i.substr(s.end, i.length);\n\t\t if (u == (e.isRTL ? c.getBufferTemplate.call(e).slice().reverse() : c.getBufferTemplate.call(e)).slice(0, s.begin).join(\"\") && (u = \"\"), \n\t\t f == (e.isRTL ? c.getBufferTemplate.call(e).slice().reverse() : c.getBufferTemplate.call(e)).slice(s.end).join(\"\") && (f = \"\"), \n\t\t a = u + a + f, e.isRTL && !0 !== r.numericInput) {\n\t\t a = a.split(\"\");\n\t\t var p, h = d(c.getBufferTemplate.call(e));\n\t\t try {\n\t\t for (h.s(); !(p = h.n()).done; ) {\n\t\t var v = p.value;\n\t\t a[0] === v && a.shift();\n\t\t }\n\t\t } catch (e) {\n\t\t h.e(e);\n\t\t } finally {\n\t\t h.f();\n\t\t }\n\t\t a = a.reverse().join(\"\");\n\t\t }\n\t\t var m = a;\n\t\t if (\"function\" == typeof o) {\n\t\t if (!1 === (m = o.call(e, m, r))) return !1;\n\t\t m || (m = i);\n\t\t }\n\t\t (0, l.checkVal)(n, !0, !1, m.toString().split(\"\"), t);\n\t\t }, i = this, a = this.inputmask, r = a.opts, s = a._valueGet(!0), a.skipInputEvent = !0, \n\t\t t.clipboardData && t.clipboardData.getData ? u = t.clipboardData.getData(\"text/plain\") : o.default.clipboardData && o.default.clipboardData.getData && (u = o.default.clipboardData.getData(\"Text\")), \n\t\t n(a, i, s, u, r.onBeforePaste), t.preventDefault();\n\n\t\t case 7:\n\t\t case \"end\":\n\t\t return e.stop();\n\t\t }\n\t\t }), e, this);\n\t\t })), g = function() {\n\t\t var e = this, t = arguments;\n\t\t return new Promise((function(n, i) {\n\t\t var a = m.apply(e, t);\n\t\t function r(e) {\n\t\t v(a, n, i, r, o, \"next\", e);\n\t\t }\n\t\t function o(e) {\n\t\t v(a, n, i, r, o, \"throw\", e);\n\t\t }\n\t\t r(void 0);\n\t\t }));\n\t\t }, function(e) {\n\t\t return g.apply(this, arguments);\n\t\t }),\n\t\t inputFallBackEvent: function(e) {\n\t\t var t = this.inputmask, n = t.opts, i = t.dependencyLib;\n\t\t var a, o = this, u = o.inputmask._valueGet(!0), p = (t.isRTL ? c.getBuffer.call(t).slice().reverse() : c.getBuffer.call(t)).join(\"\"), d = c.caret.call(t, o, void 0, void 0, !0);\n\t\t if (p !== u) {\n\t\t if (a = function(e, i, a) {\n\t\t for (var r, o, l, s = e.substr(0, a.begin).split(\"\"), u = e.substr(a.begin).split(\"\"), p = i.substr(0, a.begin).split(\"\"), d = i.substr(a.begin).split(\"\"), h = s.length >= p.length ? s.length : p.length, v = u.length >= d.length ? u.length : d.length, m = \"\", g = [], y = \"~\"; s.length < h; ) s.push(y);\n\t\t for (;p.length < h; ) p.push(y);\n\t\t for (;u.length < v; ) u.unshift(y);\n\t\t for (;d.length < v; ) d.unshift(y);\n\t\t var k = s.concat(u), b = p.concat(d);\n\t\t for (o = 0, r = k.length; o < r; o++) switch (l = f.getPlaceholder.call(t, c.translatePosition.call(t, o)), \n\t\t m) {\n\t\t case \"insertText\":\n\t\t b[o - 1] === k[o] && a.begin == k.length - 1 && g.push(k[o]), o = r;\n\t\t break;\n\n\t\t case \"insertReplacementText\":\n\t\t case \"deleteContentBackward\":\n\t\t k[o] === y ? a.end++ : o = r;\n\t\t break;\n\n\t\t default:\n\t\t k[o] !== b[o] && (k[o + 1] !== y && k[o + 1] !== l && void 0 !== k[o + 1] || (b[o] !== l || b[o + 1] !== y) && b[o] !== y ? b[o + 1] === y && b[o] === k[o + 1] ? (m = \"insertText\", \n\t\t g.push(k[o]), a.begin--, a.end--) : k[o] !== l && k[o] !== y && (k[o + 1] === y || b[o] !== k[o] && b[o + 1] === k[o + 1]) ? (m = \"insertReplacementText\", \n\t\t g.push(k[o]), a.begin--) : k[o] === y ? (m = \"deleteContentBackward\", (c.isMask.call(t, c.translatePosition.call(t, o), !0) || b[o] === n.radixPoint) && a.end++) : o = r : (m = \"insertText\", \n\t\t g.push(k[o]), a.begin--, a.end--));\n\t\t }\n\t\t return {\n\t\t action: m,\n\t\t data: g,\n\t\t caret: a\n\t\t };\n\t\t }(u, p, d), (o.inputmask.shadowRoot || o.ownerDocument).activeElement !== o && o.focus(), \n\t\t (0, l.writeBuffer)(o, c.getBuffer.call(t)), c.caret.call(t, o, d.begin, d.end, !0), \n\t\t !r.mobile && t.skipNextInsert && \"insertText\" === e.inputType && \"insertText\" === a.action && t.isComposing) return !1;\n\t\t switch (\"insertCompositionText\" === e.inputType && \"insertText\" === a.action && t.isComposing ? t.skipNextInsert = !0 : t.skipNextInsert = !1, \n\t\t a.action) {\n\t\t case \"insertText\":\n\t\t case \"insertReplacementText\":\n\t\t a.data.forEach((function(e, n) {\n\t\t var a = new i.Event(\"keypress\");\n\t\t a.key = e, t.ignorable = !1, y.keypressEvent.call(o, a);\n\t\t })), setTimeout((function() {\n\t\t t.$el.trigger(\"keyup\");\n\t\t }), 0);\n\t\t break;\n\n\t\t case \"deleteContentBackward\":\n\t\t var h = new i.Event(\"keydown\");\n\t\t h.key = s.keys.Backspace, y.keyEvent.call(o, h);\n\t\t break;\n\n\t\t default:\n\t\t (0, l.applyInputValue)(o, u), c.caret.call(t, o, d.begin, d.end, !0);\n\t\t }\n\t\t e.preventDefault();\n\t\t }\n\t\t },\n\t\t setValueEvent: function(e) {\n\t\t var t = this.inputmask, n = t.dependencyLib, i = this, a = e && e.detail ? e.detail[0] : arguments[1];\n\t\t void 0 === a && (a = i.inputmask._valueGet(!0)), (0, l.applyInputValue)(i, a, new n.Event(\"input\"), void 0 !== (e && e.detail ? e.detail[0] : arguments[1])), \n\t\t (e.detail && void 0 !== e.detail[1] || void 0 !== arguments[2]) && c.caret.call(t, i, e.detail ? e.detail[1] : arguments[2]);\n\t\t },\n\t\t focusEvent: function(e) {\n\t\t var t = this.inputmask, n = t.opts, i = t && t._valueGet();\n\t\t n.showMaskOnFocus && i !== c.getBuffer.call(t).join(\"\") && (0, l.writeBuffer)(this, c.getBuffer.call(t), c.seekNext.call(t, c.getLastValidPosition.call(t))), \n\t\t !0 !== n.positionCaretOnTab || !1 !== t.mouseEnter || u.isComplete.call(t, c.getBuffer.call(t)) && -1 !== c.getLastValidPosition.call(t) || y.clickEvent.apply(this, [ e, !0 ]), \n\t\t t.undoValue = t && t._valueGet(!0);\n\t\t },\n\t\t invalidEvent: function(e) {\n\t\t this.inputmask.validationEvent = !0;\n\t\t },\n\t\t mouseleaveEvent: function() {\n\t\t var e = this.inputmask, t = e.opts, n = this;\n\t\t e.mouseEnter = !1, t.clearMaskOnLostFocus && (n.inputmask.shadowRoot || n.ownerDocument).activeElement !== n && (0, l.HandleNativePlaceholder)(n, e.originalPlaceholder);\n\t\t },\n\t\t clickEvent: function(e, t) {\n\t\t var n = this.inputmask;\n\t\t n.clicked++;\n\t\t var i = this;\n\t\t if ((i.inputmask.shadowRoot || i.ownerDocument).activeElement === i) {\n\t\t var a = c.determineNewCaretPosition.call(n, c.caret.call(n, i), t);\n\t\t void 0 !== a && c.caret.call(n, i, a);\n\t\t }\n\t\t },\n\t\t cutEvent: function(e) {\n\t\t var t = this.inputmask, n = t.maskset, i = this, a = c.caret.call(t, i), r = t.isRTL ? c.getBuffer.call(t).slice(a.end, a.begin) : c.getBuffer.call(t).slice(a.begin, a.end), f = t.isRTL ? r.reverse().join(\"\") : r.join(\"\");\n\t\t o.default.navigator && o.default.navigator.clipboard ? o.default.navigator.clipboard.writeText(f) : o.default.clipboardData && o.default.clipboardData.getData && o.default.clipboardData.setData(\"Text\", f), \n\t\t u.handleRemove.call(t, i, s.keys.Delete, a), (0, l.writeBuffer)(i, c.getBuffer.call(t), n.p, e, t.undoValue !== t._valueGet(!0));\n\t\t },\n\t\t blurEvent: function(e) {\n\t\t var t = this.inputmask, n = t.opts, i = t.dependencyLib;\n\t\t t.clicked = 0;\n\t\t var a = i(this), r = this;\n\t\t if (r.inputmask) {\n\t\t (0, l.HandleNativePlaceholder)(r, t.originalPlaceholder);\n\t\t var o = r.inputmask._valueGet(), s = c.getBuffer.call(t).slice();\n\t\t \"\" !== o && (n.clearMaskOnLostFocus && (-1 === c.getLastValidPosition.call(t) && o === c.getBufferTemplate.call(t).join(\"\") ? s = [] : l.clearOptionalTail.call(t, s)), \n\t\t !1 === u.isComplete.call(t, s) && (setTimeout((function() {\n\t\t a.trigger(\"incomplete\");\n\t\t }), 0), n.clearIncomplete && (c.resetMaskSet.call(t, !1), s = n.clearMaskOnLostFocus ? [] : c.getBufferTemplate.call(t).slice())), \n\t\t (0, l.writeBuffer)(r, s, void 0, e)), o = t._valueGet(!0), t.undoValue !== o && (\"\" != o || t.undoValue != c.getBufferTemplate.call(t).join(\"\") || t.undoValue == c.getBufferTemplate.call(t).join(\"\") && t.maskset.validPositions.length > 0) && (t.undoValue = o, \n\t\t a.trigger(\"change\"));\n\t\t }\n\t\t },\n\t\t mouseenterEvent: function() {\n\t\t var e = this.inputmask, t = e.opts.showMaskOnHover, n = this;\n\t\t if (e.mouseEnter = !0, (n.inputmask.shadowRoot || n.ownerDocument).activeElement !== n) {\n\t\t var i = (e.isRTL ? c.getBufferTemplate.call(e).slice().reverse() : c.getBufferTemplate.call(e)).join(\"\");\n\t\t t && (0, l.HandleNativePlaceholder)(n, i);\n\t\t }\n\t\t },\n\t\t submitEvent: function() {\n\t\t var e = this.inputmask, t = e.opts;\n\t\t e.undoValue !== e._valueGet(!0) && e.$el.trigger(\"change\"), -1 === c.getLastValidPosition.call(e) && e._valueGet && e._valueGet() === c.getBufferTemplate.call(e).join(\"\") && e._valueSet(\"\"), \n\t\t t.clearIncomplete && !1 === u.isComplete.call(e, c.getBuffer.call(e)) && e._valueSet(\"\"), \n\t\t t.removeMaskOnSubmit && (e._valueSet(e.unmaskedvalue(), !0), setTimeout((function() {\n\t\t (0, l.writeBuffer)(e.el, c.getBuffer.call(e));\n\t\t }), 0));\n\t\t },\n\t\t resetEvent: function() {\n\t\t var e = this.inputmask;\n\t\t e.refreshValue = !0, setTimeout((function() {\n\t\t (0, l.applyInputValue)(e.el, e._valueGet(!0));\n\t\t }), 0);\n\t\t }\n\t\t };\n\t\t },\n\t\t 9716: function(e, t, n) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.EventRuler = void 0;\n\t\t var i, a = n(7760), r = (i = n(2394)) && i.__esModule ? i : {\n\t\t default: i\n\t\t }, o = n(2839), l = n(8711);\n\t\t t.EventRuler = {\n\t\t on: function(e, t, n) {\n\t\t var i = e.inputmask.dependencyLib, s = function(t) {\n\t\t t.originalEvent && (t = t.originalEvent || t, arguments[0] = t);\n\t\t var s, c = this, u = c.inputmask, f = u ? u.opts : void 0;\n\t\t if (void 0 === u && \"FORM\" !== this.nodeName) {\n\t\t var p = i.data(c, \"_inputmask_opts\");\n\t\t i(c).off(), p && new r.default(p).mask(c);\n\t\t } else {\n\t\t if ([ \"submit\", \"reset\", \"setvalue\" ].includes(t.type) || \"FORM\" === this.nodeName || !(c.disabled || c.readOnly && !(\"keydown\" === t.type && t.ctrlKey && t.key === o.keys.c || !1 === f.tabThrough && t.key === o.keys.Tab))) {\n\t\t switch (t.type) {\n\t\t case \"input\":\n\t\t if (!0 === u.skipInputEvent) return u.skipInputEvent = !1, t.preventDefault();\n\t\t break;\n\n\t\t case \"click\":\n\t\t case \"focus\":\n\t\t return u.validationEvent ? (u.validationEvent = !1, e.blur(), (0, a.HandleNativePlaceholder)(e, (u.isRTL ? l.getBufferTemplate.call(u).slice().reverse() : l.getBufferTemplate.call(u)).join(\"\")), \n\t\t setTimeout((function() {\n\t\t e.focus();\n\t\t }), f.validationEventTimeOut), !1) : (s = arguments, void setTimeout((function() {\n\t\t e.inputmask && n.apply(c, s);\n\t\t }), 0));\n\t\t }\n\t\t var d = n.apply(c, arguments);\n\t\t return !1 === d && (t.preventDefault(), t.stopPropagation()), d;\n\t\t }\n\t\t t.preventDefault();\n\t\t }\n\t\t };\n\t\t [ \"submit\", \"reset\" ].includes(t) ? (s = s.bind(e), null !== e.form && i(e.form).on(t, s)) : i(e).on(t, s), \n\t\t e.inputmask.events[t] = e.inputmask.events[t] || [], e.inputmask.events[t].push(s);\n\t\t },\n\t\t off: function(e, t) {\n\t\t if (e.inputmask && e.inputmask.events) {\n\t\t var n = e.inputmask.dependencyLib, i = e.inputmask.events;\n\t\t for (var a in t && ((i = [])[t] = e.inputmask.events[t]), i) {\n\t\t for (var r = i[a]; r.length > 0; ) {\n\t\t var o = r.pop();\n\t\t [ \"submit\", \"reset\" ].includes(a) ? null !== e.form && n(e.form).off(a, o) : n(e).off(a, o);\n\t\t }\n\t\t delete e.inputmask.events[a];\n\t\t }\n\t\t }\n\t\t }\n\t\t };\n\t\t },\n\t\t 219: function(e, t, n) {\n\t\t var i, a = n(7184), r = (i = n(2394)) && i.__esModule ? i : {\n\t\t default: i\n\t\t }, o = n(2839), l = n(8711), s = n(4713);\n\t\t function c(e, t) {\n\t\t return function(e) {\n\t\t if (Array.isArray(e)) return e;\n\t\t }(e) || function(e, t) {\n\t\t var n = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n\t\t if (null != n) {\n\t\t var i, a, r, o, l = [], s = !0, c = !1;\n\t\t try {\n\t\t if (r = (n = n.call(e)).next, 0 === t) ; else for (;!(s = (i = r.call(n)).done) && (l.push(i.value), l.length !== t); s = !0) ;\n\t\t } catch (e) {\n\t\t c = !0, a = e;\n\t\t } finally {\n\t\t try {\n\t\t if (!s && null != n.return && (o = n.return(), Object(o) !== o)) return;\n\t\t } finally {\n\t\t if (c) throw a;\n\t\t }\n\t\t }\n\t\t return l;\n\t\t }\n\t\t }(e, t) || function(e, t) {\n\t\t if (!e) return;\n\t\t if (\"string\" == typeof e) return u(e, t);\n\t\t var n = Object.prototype.toString.call(e).slice(8, -1);\n\t\t \"Object\" === n && e.constructor && (n = e.constructor.name);\n\t\t if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n\t\t if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return u(e, t);\n\t\t }(e, t) || function() {\n\t\t throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n\t\t }();\n\t\t }\n\t\t function u(e, t) {\n\t\t (null == t || t > e.length) && (t = e.length);\n\t\t for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n\t\t return i;\n\t\t }\n\t\t function f(e) {\n\t\t return f = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n\t\t return typeof e;\n\t\t } : function(e) {\n\t\t return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n\t\t }, f(e);\n\t\t }\n\t\t function p(e, t) {\n\t\t for (var n = 0; n < t.length; n++) {\n\t\t var i = t[n];\n\t\t i.enumerable = i.enumerable || !1, i.configurable = !0, \"value\" in i && (i.writable = !0), \n\t\t Object.defineProperty(e, (a = i.key, r = void 0, r = function(e, t) {\n\t\t if (\"object\" !== f(e) || null === e) return e;\n\t\t var n = e[Symbol.toPrimitive];\n\t\t if (void 0 !== n) {\n\t\t var i = n.call(e, t || \"default\");\n\t\t if (\"object\" !== f(i)) return i;\n\t\t throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n\t\t }\n\t\t return (\"string\" === t ? String : Number)(e);\n\t\t }(a, \"string\"), \"symbol\" === f(r) ? r : String(r)), i);\n\t\t }\n\t\t var a, r;\n\t\t }\n\t\t n(1313);\n\t\t var d = r.default.dependencyLib, h = function() {\n\t\t function e(t, n, i, a) {\n\t\t !function(e, t) {\n\t\t if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n\t\t }(this, e), this.mask = t, this.format = n, this.opts = i, this.inputmask = a, this._date = new Date(1, 0, 1), \n\t\t this.initDateObject(t, this.opts, this.inputmask);\n\t\t }\n\t\t var t, n;\n\t\t return t = e, (n = [ {\n\t\t key: \"date\",\n\t\t get: function() {\n\t\t return void 0 === this._date && (this._date = new Date(1, 0, 1), this.initDateObject(void 0, this.opts, this.inputmask)), \n\t\t this._date;\n\t\t }\n\t\t }, {\n\t\t key: \"initDateObject\",\n\t\t value: function(e, t, n) {\n\t\t var i, a = -1;\n\t\t for (P(t).lastIndex = 0; i = P(t).exec(this.format); ) if (i.index >= a) {\n\t\t var r = /\\d+$/.exec(i[0]), o = r ? i[0][0] + \"x\" : i[0], l = void 0;\n\t\t if (void 0 !== e) {\n\t\t if (r) {\n\t\t var c = P(t).lastIndex, u = j.call(n, i.index, t, n && n.maskset);\n\t\t P(t).lastIndex = c, l = e.slice(0, e.indexOf(u.nextMatch[0]));\n\t\t } else {\n\t\t for (var f = i[0][0], p = i.index; n && (t.placeholder[\"\".concat(i.index, \"'\").concat(s.getTest.call(n, p).match.placeholder)] || s.getTest.call(n, p).match.placeholder) === f; ) p++;\n\t\t a = p;\n\t\t var d = p - i.index;\n\t\t l = e.slice(0, d || y[o] && y[o][4] || o.length);\n\t\t }\n\t\t e = e.slice(l.length);\n\t\t }\n\t\t Object.prototype.hasOwnProperty.call(y, o) && this.setValue(this, l, o, y[o][2], y[o][1]);\n\t\t }\n\t\t }\n\t\t }, {\n\t\t key: \"setValue\",\n\t\t value: function(e, t, n, i, a) {\n\t\t if (void 0 !== t) switch (i) {\n\t\t case \"ampm\":\n\t\t e[i] = t, e[\"raw\" + i] = t.replace(/\\s/g, \"_\");\n\t\t break;\n\n\t\t case \"month\":\n\t\t if (\"mmm\" === n || \"mmmm\" === n) {\n\t\t e[i] = _(\"mmm\" === n ? m.monthNames.slice(0, 12).findIndex((function(e) {\n\t\t return t.toLowerCase() === e.toLowerCase();\n\t\t })) + 1 : m.monthNames.slice(12, 24).findIndex((function(e) {\n\t\t return t.toLowerCase() === e.toLowerCase();\n\t\t })) + 1, 2), e[i] = \"00\" === e[i] ? \"\" : e[i].toString(), e[\"raw\" + i] = e[i];\n\t\t break;\n\t\t }\n\n\t\t default:\n\t\t e[i] = t.replace(/[^0-9]/g, \"0\"), e[\"raw\" + i] = t.replace(/\\s/g, \"_\");\n\t\t }\n\t\t if (void 0 !== a) {\n\t\t var r = e[i];\n\t\t (\"day\" === i && 29 === parseInt(r) || \"month\" === i && 2 === parseInt(r)) && (29 !== parseInt(e.day) || 2 !== parseInt(e.month) || \"\" !== e.year && void 0 !== e.year || e._date.setFullYear(2012, 1, 29)), \n\t\t \"day\" === i && (g = !0, 0 === parseInt(r) && (r = 1)), \"month\" === i && (g = !0), \n\t\t \"year\" === i && (g = !0, r.length < y[n][4] && (r = _(r, y[n][4], !0))), (\"\" !== r && !isNaN(r) || \"ampm\" === i) && a.call(e._date, r);\n\t\t }\n\t\t }\n\t\t }, {\n\t\t key: \"reset\",\n\t\t value: function() {\n\t\t this._date = new Date(1, 0, 1);\n\t\t }\n\t\t }, {\n\t\t key: \"reInit\",\n\t\t value: function() {\n\t\t this._date = void 0, this.date;\n\t\t }\n\t\t } ]) && p(t.prototype, n), Object.defineProperty(t, \"prototype\", {\n\t\t writable: !1\n\t\t }), e;\n\t\t }(), v = (new Date).getFullYear(), m = r.default.prototype.i18n, g = !1, y = {\n\t\t d: [ \"[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", Date.prototype.getDate ],\n\t\t dd: [ \"0[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", function() {\n\t\t return _(Date.prototype.getDate.call(this), 2);\n\t\t } ],\n\t\t ddd: [ \"\" ],\n\t\t dddd: [ \"\" ],\n\t\t m: [ \"[1-9]|1[012]\", function(e) {\n\t\t var t = e ? parseInt(e) : 0;\n\t\t return t > 0 && t--, Date.prototype.setMonth.call(this, t);\n\t\t }, \"month\", function() {\n\t\t return Date.prototype.getMonth.call(this) + 1;\n\t\t } ],\n\t\t mm: [ \"0[1-9]|1[012]\", function(e) {\n\t\t var t = e ? parseInt(e) : 0;\n\t\t return t > 0 && t--, Date.prototype.setMonth.call(this, t);\n\t\t }, \"month\", function() {\n\t\t return _(Date.prototype.getMonth.call(this) + 1, 2);\n\t\t } ],\n\t\t mmm: [ m.monthNames.slice(0, 12).join(\"|\"), function(e) {\n\t\t var t = m.monthNames.slice(0, 12).findIndex((function(t) {\n\t\t return e.toLowerCase() === t.toLowerCase();\n\t\t }));\n\t\t return -1 !== t && Date.prototype.setMonth.call(this, t);\n\t\t }, \"month\", function() {\n\t\t return m.monthNames.slice(0, 12)[Date.prototype.getMonth.call(this)];\n\t\t } ],\n\t\t mmmm: [ m.monthNames.slice(12, 24).join(\"|\"), function(e) {\n\t\t var t = m.monthNames.slice(12, 24).findIndex((function(t) {\n\t\t return e.toLowerCase() === t.toLowerCase();\n\t\t }));\n\t\t return -1 !== t && Date.prototype.setMonth.call(this, t);\n\t\t }, \"month\", function() {\n\t\t return m.monthNames.slice(12, 24)[Date.prototype.getMonth.call(this)];\n\t\t } ],\n\t\t yy: [ \"[0-9]{2}\", function(e) {\n\t\t var t = (new Date).getFullYear().toString().slice(0, 2);\n\t\t Date.prototype.setFullYear.call(this, \"\".concat(t).concat(e));\n\t\t }, \"year\", function() {\n\t\t return _(Date.prototype.getFullYear.call(this), 2);\n\t\t }, 2 ],\n\t\t yyyy: [ \"[0-9]{4}\", Date.prototype.setFullYear, \"year\", function() {\n\t\t return _(Date.prototype.getFullYear.call(this), 4);\n\t\t }, 4 ],\n\t\t h: [ \"[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n\t\t hh: [ \"0[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", function() {\n\t\t return _(Date.prototype.getHours.call(this), 2);\n\t\t } ],\n\t\t hx: [ function(e) {\n\t\t return \"[0-9]{\".concat(e, \"}\");\n\t\t }, Date.prototype.setHours, \"hours\", function(e) {\n\t\t return Date.prototype.getHours;\n\t\t } ],\n\t\t H: [ \"1?[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n\t\t HH: [ \"0[0-9]|1[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", function() {\n\t\t return _(Date.prototype.getHours.call(this), 2);\n\t\t } ],\n\t\t Hx: [ function(e) {\n\t\t return \"[0-9]{\".concat(e, \"}\");\n\t\t }, Date.prototype.setHours, \"hours\", function(e) {\n\t\t return function() {\n\t\t return _(Date.prototype.getHours.call(this), e);\n\t\t };\n\t\t } ],\n\t\t M: [ \"[1-5]?[0-9]\", Date.prototype.setMinutes, \"minutes\", Date.prototype.getMinutes ],\n\t\t MM: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setMinutes, \"minutes\", function() {\n\t\t return _(Date.prototype.getMinutes.call(this), 2);\n\t\t } ],\n\t\t s: [ \"[1-5]?[0-9]\", Date.prototype.setSeconds, \"seconds\", Date.prototype.getSeconds ],\n\t\t ss: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setSeconds, \"seconds\", function() {\n\t\t return _(Date.prototype.getSeconds.call(this), 2);\n\t\t } ],\n\t\t l: [ \"[0-9]{3}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n\t\t return _(Date.prototype.getMilliseconds.call(this), 3);\n\t\t }, 3 ],\n\t\t L: [ \"[0-9]{2}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n\t\t return _(Date.prototype.getMilliseconds.call(this), 2);\n\t\t }, 2 ],\n\t\t t: [ \"[ap]\", b, \"ampm\", x, 1 ],\n\t\t tt: [ \"[ap]m\", b, \"ampm\", x, 2 ],\n\t\t T: [ \"[AP]\", b, \"ampm\", x, 1 ],\n\t\t TT: [ \"[AP]M\", b, \"ampm\", x, 2 ],\n\t\t Z: [ \".*\", void 0, \"Z\", function() {\n\t\t var e = this.toString().match(/\\((.+)\\)/)[1];\n\t\t e.includes(\" \") && (e = (e = e.replace(\"-\", \" \").toUpperCase()).split(\" \").map((function(e) {\n\t\t return c(e, 1)[0];\n\t\t })).join(\"\"));\n\t\t return e;\n\t\t } ],\n\t\t o: [ \"\" ],\n\t\t S: [ \"\" ]\n\t\t }, k = {\n\t\t isoDate: \"yyyy-mm-dd\",\n\t\t isoTime: \"HH:MM:ss\",\n\t\t isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\n\t\t isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\"\n\t\t };\n\t\t function b(e) {\n\t\t var t = this.getHours();\n\t\t e.toLowerCase().includes(\"p\") ? this.setHours(t + 12) : e.toLowerCase().includes(\"a\") && t >= 12 && this.setHours(t - 12);\n\t\t }\n\t\t function x() {\n\t\t var e = this.getHours();\n\t\t return (e = e || 12) >= 12 ? \"PM\" : \"AM\";\n\t\t }\n\t\t function w(e) {\n\t\t var t = /\\d+$/.exec(e[0]);\n\t\t if (t && void 0 !== t[0]) {\n\t\t var n = y[e[0][0] + \"x\"].slice(\"\");\n\t\t return n[0] = n[0](t[0]), n[3] = n[3](t[0]), n;\n\t\t }\n\t\t if (y[e[0]]) return y[e[0]];\n\t\t }\n\t\t function P(e) {\n\t\t if (!e.tokenizer) {\n\t\t var t = [], n = [];\n\t\t for (var i in y) if (/\\.*x$/.test(i)) {\n\t\t var a = i[0] + \"\\\\d+\";\n\t\t -1 === n.indexOf(a) && n.push(a);\n\t\t } else -1 === t.indexOf(i[0]) && t.push(i[0]);\n\t\t e.tokenizer = \"(\" + (n.length > 0 ? n.join(\"|\") + \"|\" : \"\") + t.join(\"+|\") + \")+?|.\", \n\t\t e.tokenizer = new RegExp(e.tokenizer, \"g\");\n\t\t }\n\t\t return e.tokenizer;\n\t\t }\n\t\t function S(e, t, n) {\n\t\t if (!g) return !0;\n\t\t if (void 0 === e.rawday || !isFinite(e.rawday) && new Date(e.date.getFullYear(), isFinite(e.rawmonth) ? e.month : e.date.getMonth() + 1, 0).getDate() >= e.day || \"29\" == e.day && (!isFinite(e.rawyear) || void 0 === e.rawyear || \"\" === e.rawyear) || new Date(e.date.getFullYear(), isFinite(e.rawmonth) ? e.month : e.date.getMonth() + 1, 0).getDate() >= e.day) return t;\n\t\t if (\"29\" == e.day) {\n\t\t var i = j.call(this, t.pos, n, this.maskset);\n\t\t if (i.targetMatch && \"yyyy\" === i.targetMatch[0] && t.pos - i.targetMatchIndex == 2) return t.remove = t.pos + 1, \n\t\t t;\n\t\t } else if (2 == e.date.getMonth() && \"30\" == e.day && void 0 !== t.c) return e.day = \"03\", \n\t\t e.date.setDate(3), e.date.setMonth(1), t.insert = [ {\n\t\t pos: t.pos,\n\t\t c: \"0\"\n\t\t }, {\n\t\t pos: t.pos + 1,\n\t\t c: t.c\n\t\t } ], t.caret = l.seekNext.call(this, t.pos + 1), t;\n\t\t return !1;\n\t\t }\n\t\t function O(e, t, n, i) {\n\t\t var r, o, l = \"\", s = 0, c = !1, u = {};\n\t\t for (P(n).lastIndex = 0; r = P(n).exec(e); ) if (\"\\\\\" === r[0]) c = !0; else {\n\t\t if (void 0 === t) if (!c && (o = w(r))) l += \"(\" + o[0] + \")\", n.placeholder && \"\" !== n.placeholder ? (u[s] = n.placeholder[r.index % n.placeholder.length], \n\t\t u[\"\".concat(r.index, \"'\").concat(n.placeholder[r.index % n.placeholder.length])] = r[0].charAt(0)) : u[s] = r[0].charAt(0); else switch (r[0]) {\n\t\t case \"[\":\n\t\t l += \"(\";\n\t\t break;\n\n\t\t case \"]\":\n\t\t l += \")?\";\n\t\t break;\n\n\t\t default:\n\t\t l += (0, a.escapeRegex)(r[0]), u[s] = r[0].charAt(0);\n\t\t } else if (!c && (o = w(r))) if (!0 !== i && o[3]) l += o[3].call(t.date); else o[2] ? l += t[\"raw\" + o[2]] : l += r[0]; else l += \"\".concat(c ? \"\\\\\" : \"\").concat(r[0]);\n\t\t s++, c = !1;\n\t\t }\n\t\t return void 0 === t && (n.placeholder = u), l;\n\t\t }\n\t\t function _(e, t, n) {\n\t\t for (e = String(e), t = t || 2; e.length < t; ) e = n ? e + \"0\" : \"0\" + e;\n\t\t return e;\n\t\t }\n\t\t function M(e, t, n) {\n\t\t return \"string\" == typeof e ? new h(e, t, n, this) : e && \"object\" === f(e) && Object.prototype.hasOwnProperty.call(e, \"date\") ? e : void 0;\n\t\t }\n\t\t function E(e, t) {\n\t\t return O(t.inputFormat, {\n\t\t date: e\n\t\t }, t);\n\t\t }\n\t\t function j(e, t, n) {\n\t\t var i, a, r = this, o = 0, l = 0;\n\t\t for (P(t).lastIndex = 0; a = P(t).exec(t.inputFormat); ) {\n\t\t var c = /\\d+$/.exec(a[0]);\n\t\t if (c) l = parseInt(c[0]); else {\n\t\t for (var u = a[0][0], f = o; r && (t.placeholder[\"\".concat(a.index, \"'\").concat(s.getTest.call(r, f).match.placeholder)] || s.getTest.call(r, f).match.placeholder) === u; ) f++;\n\t\t 0 === (l = f - o) && (l = a[0].length);\n\t\t }\n\t\t if ((o += l) >= e + 1) {\n\t\t var p = \"\";\n\t\t if (n && n.tests[e]) {\n\t\t var d = Object.keys(t.placeholder).filter((function(t) {\n\t\t for (var i = a.index - 1; i < o; i++) if (t === \"\".concat(i, \"'\").concat(n.tests[e][0].match.placeholder)) return !0;\n\t\t return !1;\n\t\t }));\n\t\t p = d.length > 0 ? t.placeholder[d[0]] : n.tests[e][0].match.placeholder;\n\t\t }\n\t\t if (-1 !== a[0].indexOf(p)) {\n\t\t i = a, a = P(t).exec(t.inputFormat);\n\t\t break;\n\t\t }\n\t\t }\n\t\t }\n\t\t return {\n\t\t targetMatchIndex: o - l,\n\t\t nextMatch: a,\n\t\t targetMatch: i\n\t\t };\n\t\t }\n\t\t r.default.extendAliases({\n\t\t datetime: {\n\t\t mask: function(e) {\n\t\t if (e.numericInput = !1, y.S = m.ordinalSuffix.join(\"|\"), e.inputFormat = k[e.inputFormat] || e.inputFormat, \n\t\t e.repeat && (e.repeat = parseInt(e.repeat.toString()), e.repeat > 0)) {\n\t\t for (var t = \"\", n = 0; n < e.repeat; n++) t += e.inputFormat;\n\t\t e.inputFormat = t, e.repeat = 0;\n\t\t }\n\t\t return e.displayFormat = k[e.displayFormat] || e.displayFormat || e.inputFormat, \n\t\t e.outputFormat = k[e.outputFormat] || e.outputFormat || e.inputFormat, e.regex = O(e.inputFormat, void 0, e), \n\t\t e.min = M(e.min, e.inputFormat, e), e.max = M(e.max, e.inputFormat, e), null;\n\t\t },\n\t\t placeholder: \"\",\n\t\t inputFormat: \"isoDateTime\",\n\t\t displayFormat: null,\n\t\t outputFormat: null,\n\t\t min: null,\n\t\t max: null,\n\t\t skipOptionalPartCharacter: \"\",\n\t\t preValidation: function(e, t, n, i, a, r, o, l) {\n\t\t if (l) return !0;\n\t\t if (isNaN(n) && e[t] !== n) {\n\t\t var s = j.call(this, t, a, r);\n\t\t if (s.nextMatch && s.nextMatch[0] === n && s.targetMatch[0].length > 1) {\n\t\t var c = w(s.targetMatch)[0];\n\t\t if (new RegExp(c).test(\"0\" + e[t - 1])) return e[t] = e[t - 1], e[t - 1] = \"0\", \n\t\t {\n\t\t fuzzy: !0,\n\t\t buffer: e,\n\t\t refreshFromBuffer: {\n\t\t start: t - 1,\n\t\t end: t + 1\n\t\t },\n\t\t pos: t + 1\n\t\t };\n\t\t }\n\t\t }\n\t\t return !0;\n\t\t },\n\t\t postValidation: function(e, t, n, i, a, r, o, l) {\n\t\t var c, u, f = this;\n\t\t if (o) return !0;\n\t\t if (!1 === i && (((c = j.call(f, t + 1, a, r)).targetMatch && c.targetMatchIndex === t && c.targetMatch[0].length > 1 && void 0 !== y[c.targetMatch[0]] || (c = j.call(f, t + 2, a, r)).targetMatch && c.targetMatchIndex === t + 1 && c.targetMatch[0].length > 1 && void 0 !== y[c.targetMatch[0]]) && (u = w(c.targetMatch)[0]), \n\t\t void 0 !== u && (void 0 !== r.validPositions[t + 1] && new RegExp(u).test(n + \"0\") ? (e[t] = n, \n\t\t e[t + 1] = \"0\", i = {\n\t\t pos: t + 2,\n\t\t caret: t\n\t\t }) : new RegExp(u).test(\"0\" + n) && (e[t] = \"0\", e[t + 1] = n, i = {\n\t\t pos: t + 2\n\t\t })), !1 === i)) return i;\n\t\t if (i.fuzzy && (e = i.buffer, t = i.pos), (c = j.call(f, t, a, r)).targetMatch && c.targetMatch[0] && void 0 !== y[c.targetMatch[0]]) {\n\t\t var p = w(c.targetMatch);\n\t\t u = p[0];\n\t\t var d = e.slice(c.targetMatchIndex, c.targetMatchIndex + c.targetMatch[0].length);\n\t\t if (!1 === new RegExp(u).test(d.join(\"\")) && 2 === c.targetMatch[0].length && r.validPositions[c.targetMatchIndex] && r.validPositions[c.targetMatchIndex + 1] && (r.validPositions[c.targetMatchIndex + 1].input = \"0\"), \n\t\t \"year\" == p[2]) for (var h = s.getMaskTemplate.call(f, !1, 1, void 0, !0), m = t + 1; m < e.length; m++) e[m] = h[m], \n\t\t r.validPositions.splice(t + 1, 1);\n\t\t }\n\t\t var g = i, k = M.call(f, e.join(\"\"), a.inputFormat, a);\n\t\t return g && !isNaN(k.date.getTime()) && (a.prefillYear && (g = function(e, t, n) {\n\t\t if (e.year !== e.rawyear) {\n\t\t var i = v.toString(), a = e.rawyear.replace(/[^0-9]/g, \"\"), r = i.slice(0, a.length), o = i.slice(a.length);\n\t\t if (2 === a.length && a === r) {\n\t\t var l = new Date(v, e.month - 1, e.day);\n\t\t e.day == l.getDate() && (!n.max || n.max.date.getTime() >= l.getTime()) && (e.date.setFullYear(v), \n\t\t e.year = i, t.insert = [ {\n\t\t pos: t.pos + 1,\n\t\t c: o[0]\n\t\t }, {\n\t\t pos: t.pos + 2,\n\t\t c: o[1]\n\t\t } ]);\n\t\t }\n\t\t }\n\t\t return t;\n\t\t }(k, g, a)), g = function(e, t, n, i, a) {\n\t\t if (!t) return t;\n\t\t if (t && n.min && !isNaN(n.min.date.getTime())) {\n\t\t var r;\n\t\t for (e.reset(), P(n).lastIndex = 0; r = P(n).exec(n.inputFormat); ) {\n\t\t var o;\n\t\t if ((o = w(r)) && o[3]) {\n\t\t for (var l = o[1], s = e[o[2]], c = n.min[o[2]], u = n.max ? n.max[o[2]] : c + 1, f = [], p = !1, d = 0; d < c.length; d++) void 0 !== i.validPositions[d + r.index] || p ? (f[d] = s[d], \n\t\t p = p || s[d] > c[d]) : (d + r.index == 0 && s[d] < c[d] ? (f[d] = s[d], p = !0) : f[d] = c[d], \n\t\t \"year\" === o[2] && s.length - 1 == d && c != u && (f = (parseInt(f.join(\"\")) + 1).toString().split(\"\")), \n\t\t \"ampm\" === o[2] && c != u && n.min.date.getTime() > e.date.getTime() && (f[d] = u[d]));\n\t\t l.call(e._date, f.join(\"\"));\n\t\t }\n\t\t }\n\t\t t = n.min.date.getTime() <= e.date.getTime(), e.reInit();\n\t\t }\n\t\t return t && n.max && (isNaN(n.max.date.getTime()) || (t = n.max.date.getTime() >= e.date.getTime())), \n\t\t t;\n\t\t }(k, g = S.call(f, k, g, a), a, r)), void 0 !== t && g && i.pos !== t ? {\n\t\t buffer: O(a.inputFormat, k, a).split(\"\"),\n\t\t refreshFromBuffer: {\n\t\t start: t,\n\t\t end: i.pos\n\t\t },\n\t\t pos: i.caret || i.pos\n\t\t } : g;\n\t\t },\n\t\t onKeyDown: function(e, t, n, i) {\n\t\t e.ctrlKey && e.key === o.keys.ArrowRight && (this.inputmask._valueSet(E(new Date, i)), \n\t\t d(this).trigger(\"setvalue\"));\n\t\t },\n\t\t onUnMask: function(e, t, n) {\n\t\t return t ? O(n.outputFormat, M.call(this, e, n.inputFormat, n), n, !0) : t;\n\t\t },\n\t\t casing: function(e, t, n, i) {\n\t\t if (0 == t.nativeDef.indexOf(\"[ap]\")) return e.toLowerCase();\n\t\t if (0 == t.nativeDef.indexOf(\"[AP]\")) return e.toUpperCase();\n\t\t var a = s.getTest.call(this, [ n - 1 ]);\n\t\t return 0 == a.match.def.indexOf(\"[AP]\") || 0 === n || a && a.input === String.fromCharCode(o.keyCode.Space) || a && a.match.def === String.fromCharCode(o.keyCode.Space) ? e.toUpperCase() : e.toLowerCase();\n\t\t },\n\t\t onBeforeMask: function(e, t) {\n\t\t return \"[object Date]\" === Object.prototype.toString.call(e) && (e = E(e, t)), e;\n\t\t },\n\t\t insertMode: !1,\n\t\t insertModeVisual: !1,\n\t\t shiftPositions: !1,\n\t\t keepStatic: !1,\n\t\t inputmode: \"numeric\",\n\t\t prefillYear: !0\n\t\t }\n\t\t });\n\t\t },\n\t\t 1313: function(e, t, n) {\n\t\t var i, a = (i = n(2394)) && i.__esModule ? i : {\n\t\t default: i\n\t\t };\n\t\t a.default.dependencyLib.extend(!0, a.default.prototype.i18n, {\n\t\t dayNames: [ \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\" ],\n\t\t monthNames: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n\t\t ordinalSuffix: [ \"st\", \"nd\", \"rd\", \"th\" ]\n\t\t });\n\t\t },\n\t\t 3851: function(e, t, n) {\n\t\t var i, a = (i = n(2394)) && i.__esModule ? i : {\n\t\t default: i\n\t\t }, r = n(8711), o = n(4713);\n\t\t function l(e) {\n\t\t return function(e) {\n\t\t if (Array.isArray(e)) return s(e);\n\t\t }(e) || function(e) {\n\t\t if (\"undefined\" != typeof Symbol && null != e[Symbol.iterator] || null != e[\"@@iterator\"]) return Array.from(e);\n\t\t }(e) || function(e, t) {\n\t\t if (!e) return;\n\t\t if (\"string\" == typeof e) return s(e, t);\n\t\t var n = Object.prototype.toString.call(e).slice(8, -1);\n\t\t \"Object\" === n && e.constructor && (n = e.constructor.name);\n\t\t if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n\t\t if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return s(e, t);\n\t\t }(e) || function() {\n\t\t throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n\t\t }();\n\t\t }\n\t\t function s(e, t) {\n\t\t (null == t || t > e.length) && (t = e.length);\n\t\t for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n\t\t return i;\n\t\t }\n\t\t a.default.extendDefinitions({\n\t\t A: {\n\t\t validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n\t\t casing: \"upper\"\n\t\t },\n\t\t \"&\": {\n\t\t validator: \"[0-9A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n\t\t casing: \"upper\"\n\t\t },\n\t\t \"#\": {\n\t\t validator: \"[0-9A-Fa-f]\",\n\t\t casing: \"upper\"\n\t\t }\n\t\t });\n\t\t var c = /25[0-5]|2[0-4][0-9]|[01][0-9][0-9]/;\n\t\t function u(e, t, n, i, a) {\n\t\t if (n - 1 > -1 && \".\" !== t.buffer[n - 1] ? (e = t.buffer[n - 1] + e, e = n - 2 > -1 && \".\" !== t.buffer[n - 2] ? t.buffer[n - 2] + e : \"0\" + e) : e = \"00\" + e, \n\t\t a.greedy && parseInt(e) > 255 && c.test(\"00\" + e.charAt(2))) {\n\t\t var r = [].concat(l(t.buffer.slice(0, n)), [ \".\", e.charAt(2) ]);\n\t\t if (r.join(\"\").match(/\\./g).length < 4) return {\n\t\t refreshFromBuffer: !0,\n\t\t buffer: r,\n\t\t caret: n + 2\n\t\t };\n\t\t }\n\t\t return c.test(e);\n\t\t }\n\t\t a.default.extendAliases({\n\t\t cssunit: {\n\t\t regex: \"[+-]?[0-9]+\\\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)\"\n\t\t },\n\t\t url: {\n\t\t regex: \"(https?|ftp)://.*\",\n\t\t autoUnmask: !1,\n\t\t keepStatic: !1,\n\t\t tabThrough: !0\n\t\t },\n\t\t ip: {\n\t\t mask: \"i{1,3}.j{1,3}.k{1,3}.l{1,3}\",\n\t\t definitions: {\n\t\t i: {\n\t\t validator: u\n\t\t },\n\t\t j: {\n\t\t validator: u\n\t\t },\n\t\t k: {\n\t\t validator: u\n\t\t },\n\t\t l: {\n\t\t validator: u\n\t\t }\n\t\t },\n\t\t onUnMask: function(e, t, n) {\n\t\t return e;\n\t\t },\n\t\t inputmode: \"decimal\",\n\t\t substitutes: {\n\t\t \",\": \".\"\n\t\t }\n\t\t },\n\t\t email: {\n\t\t mask: function(e) {\n\t\t var t = e.separator, n = e.quantifier, i = \"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]\", a = i;\n\t\t if (t) for (var r = 0; r < n; r++) a += \"[\".concat(t).concat(i, \"]\");\n\t\t return a;\n\t\t },\n\t\t greedy: !1,\n\t\t casing: \"lower\",\n\t\t separator: null,\n\t\t quantifier: 5,\n\t\t skipOptionalPartCharacter: \"\",\n\t\t onBeforePaste: function(e, t) {\n\t\t return (e = e.toLowerCase()).replace(\"mailto:\", \"\");\n\t\t },\n\t\t definitions: {\n\t\t \"*\": {\n\t\t validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5!#$%&'*+/=?^_`{|}~-]\"\n\t\t },\n\t\t \"-\": {\n\t\t validator: \"[0-9A-Za-z-]\"\n\t\t }\n\t\t },\n\t\t onUnMask: function(e, t, n) {\n\t\t return e;\n\t\t },\n\t\t inputmode: \"email\"\n\t\t },\n\t\t mac: {\n\t\t mask: \"##:##:##:##:##:##\"\n\t\t },\n\t\t vin: {\n\t\t mask: \"V{13}9{4}\",\n\t\t definitions: {\n\t\t V: {\n\t\t validator: \"[A-HJ-NPR-Za-hj-npr-z\\\\d]\",\n\t\t casing: \"upper\"\n\t\t }\n\t\t },\n\t\t clearIncomplete: !0,\n\t\t autoUnmask: !0\n\t\t },\n\t\t ssn: {\n\t\t mask: \"999-99-9999\",\n\t\t postValidation: function(e, t, n, i, a, l, s) {\n\t\t var c = o.getMaskTemplate.call(this, !0, r.getLastValidPosition.call(this), !0, !0);\n\t\t return /^(?!219-09-9999|078-05-1120)(?!666|000|9.{2}).{3}-(?!00).{2}-(?!0{4}).{4}$/.test(c.join(\"\"));\n\t\t }\n\t\t }\n\t\t });\n\t\t },\n\t\t 207: function(e, t, n) {\n\t\t var i, a = n(7184), r = (i = n(2394)) && i.__esModule ? i : {\n\t\t default: i\n\t\t }, o = n(2839), l = n(8711);\n\t\t var s = r.default.dependencyLib;\n\t\t function c(e, t) {\n\t\t for (var n = \"\", i = 0; i < e.length; i++) r.default.prototype.definitions[e.charAt(i)] || t.definitions[e.charAt(i)] || t.optionalmarker[0] === e.charAt(i) || t.optionalmarker[1] === e.charAt(i) || t.quantifiermarker[0] === e.charAt(i) || t.quantifiermarker[1] === e.charAt(i) || t.groupmarker[0] === e.charAt(i) || t.groupmarker[1] === e.charAt(i) || t.alternatormarker === e.charAt(i) ? n += \"\\\\\" + e.charAt(i) : n += e.charAt(i);\n\t\t return n;\n\t\t }\n\t\t function u(e, t, n, i) {\n\t\t if (e.length > 0 && t > 0 && (!n.digitsOptional || i)) {\n\t\t var a = e.indexOf(n.radixPoint), r = !1;\n\t\t n.negationSymbol.back === e[e.length - 1] && (r = !0, e.length--), -1 === a && (e.push(n.radixPoint), \n\t\t a = e.length - 1);\n\t\t for (var o = 1; o <= t; o++) isFinite(e[a + o]) || (e[a + o] = \"0\");\n\t\t }\n\t\t return r && e.push(n.negationSymbol.back), e;\n\t\t }\n\t\t function f(e, t) {\n\t\t var n = 0;\n\t\t for (var i in \"+\" === e && (n = l.seekNext.call(this, t.validPositions.length - 1)), \n\t\t t.tests) if ((i = parseInt(i)) >= n) for (var a = 0, r = t.tests[i].length; a < r; a++) if ((void 0 === t.validPositions[i] || \"-\" === e) && t.tests[i][a].match.def === e) return i + (void 0 !== t.validPositions[i] && \"-\" !== e ? 1 : 0);\n\t\t return n;\n\t\t }\n\t\t function p(e, t) {\n\t\t for (var n = -1, i = 0, a = t.validPositions.length; i < a; i++) {\n\t\t var r = t.validPositions[i];\n\t\t if (r && r.match.def === e) {\n\t\t n = i;\n\t\t break;\n\t\t }\n\t\t }\n\t\t return n;\n\t\t }\n\t\t function d(e, t, n, i, a) {\n\t\t var r = t.buffer ? t.buffer.indexOf(a.radixPoint) : -1, o = (-1 !== r || i && a.jitMasking) && new RegExp(a.definitions[9].validator).test(e);\n\t\t return !i && a._radixDance && -1 !== r && o && null == t.validPositions[r] ? {\n\t\t insert: {\n\t\t pos: r === n ? r + 1 : r,\n\t\t c: a.radixPoint\n\t\t },\n\t\t pos: n\n\t\t } : o;\n\t\t }\n\t\t r.default.extendAliases({\n\t\t numeric: {\n\t\t mask: function(e) {\n\t\t e.repeat = 0, e.groupSeparator === e.radixPoint && e.digits && \"0\" !== e.digits && (\".\" === e.radixPoint ? e.groupSeparator = \",\" : \",\" === e.radixPoint ? e.groupSeparator = \".\" : e.groupSeparator = \"\"), \n\t\t \" \" === e.groupSeparator && (e.skipOptionalPartCharacter = void 0), e.placeholder.length > 1 && (e.placeholder = e.placeholder.charAt(0)), \n\t\t \"radixFocus\" === e.positionCaretOnClick && \"\" === e.placeholder && (e.positionCaretOnClick = \"lvp\");\n\t\t var t = \"0\", n = e.radixPoint;\n\t\t !0 === e.numericInput && void 0 === e.__financeInput ? (t = \"1\", e.positionCaretOnClick = \"radixFocus\" === e.positionCaretOnClick ? \"lvp\" : e.positionCaretOnClick, \n\t\t e.digitsOptional = !1, isNaN(e.digits) && (e.digits = 2), e._radixDance = !1, n = \",\" === e.radixPoint ? \"?\" : \"!\", \n\t\t \"\" !== e.radixPoint && void 0 === e.definitions[n] && (e.definitions[n] = {}, e.definitions[n].validator = \"[\" + e.radixPoint + \"]\", \n\t\t e.definitions[n].placeholder = e.radixPoint, e.definitions[n].static = !0, e.definitions[n].generated = !0)) : (e.__financeInput = !1, \n\t\t e.numericInput = !0);\n\t\t var i, r = \"[+]\";\n\t\t if (r += c(e.prefix, e), \"\" !== e.groupSeparator ? (void 0 === e.definitions[e.groupSeparator] && (e.definitions[e.groupSeparator] = {}, \n\t\t e.definitions[e.groupSeparator].validator = \"[\" + e.groupSeparator + \"]\", e.definitions[e.groupSeparator].placeholder = e.groupSeparator, \n\t\t e.definitions[e.groupSeparator].static = !0, e.definitions[e.groupSeparator].generated = !0), \n\t\t r += e._mask(e)) : r += \"9{+}\", void 0 !== e.digits && 0 !== e.digits) {\n\t\t var o = e.digits.toString().split(\",\");\n\t\t isFinite(o[0]) && o[1] && isFinite(o[1]) ? r += n + t + \"{\" + e.digits + \"}\" : (isNaN(e.digits) || parseInt(e.digits) > 0) && (e.digitsOptional || e.jitMasking ? (i = r + n + t + \"{0,\" + e.digits + \"}\", \n\t\t e.keepStatic = !0) : r += n + t + \"{\" + e.digits + \"}\");\n\t\t } else e.inputmode = \"numeric\";\n\t\t return r += c(e.suffix, e), r += \"[-]\", i && (r = [ i + c(e.suffix, e) + \"[-]\", r ]), \n\t\t e.greedy = !1, function(e) {\n\t\t void 0 === e.parseMinMaxOptions && (null !== e.min && (e.min = e.min.toString().replace(new RegExp((0, a.escapeRegex)(e.groupSeparator), \"g\"), \"\"), \",\" === e.radixPoint && (e.min = e.min.replace(e.radixPoint, \".\")), \n\t\t e.min = isFinite(e.min) ? parseFloat(e.min) : NaN, isNaN(e.min) && (e.min = Number.MIN_VALUE)), \n\t\t null !== e.max && (e.max = e.max.toString().replace(new RegExp((0, a.escapeRegex)(e.groupSeparator), \"g\"), \"\"), \n\t\t \",\" === e.radixPoint && (e.max = e.max.replace(e.radixPoint, \".\")), e.max = isFinite(e.max) ? parseFloat(e.max) : NaN, \n\t\t isNaN(e.max) && (e.max = Number.MAX_VALUE)), e.parseMinMaxOptions = \"done\");\n\t\t }(e), \"\" !== e.radixPoint && e.substituteRadixPoint && (e.substitutes[\".\" == e.radixPoint ? \",\" : \".\"] = e.radixPoint), \n\t\t r;\n\t\t },\n\t\t _mask: function(e) {\n\t\t return \"(\" + e.groupSeparator + \"999){+|1}\";\n\t\t },\n\t\t digits: \"*\",\n\t\t digitsOptional: !0,\n\t\t enforceDigitsOnBlur: !1,\n\t\t radixPoint: \".\",\n\t\t positionCaretOnClick: \"radixFocus\",\n\t\t _radixDance: !0,\n\t\t groupSeparator: \"\",\n\t\t allowMinus: !0,\n\t\t negationSymbol: {\n\t\t front: \"-\",\n\t\t back: \"\"\n\t\t },\n\t\t prefix: \"\",\n\t\t suffix: \"\",\n\t\t min: null,\n\t\t max: null,\n\t\t SetMaxOnOverflow: !1,\n\t\t step: 1,\n\t\t inputType: \"text\",\n\t\t unmaskAsNumber: !1,\n\t\t roundingFN: Math.round,\n\t\t inputmode: \"decimal\",\n\t\t shortcuts: {\n\t\t k: \"1000\",\n\t\t m: \"1000000\"\n\t\t },\n\t\t placeholder: \"0\",\n\t\t greedy: !1,\n\t\t rightAlign: !0,\n\t\t insertMode: !0,\n\t\t autoUnmask: !1,\n\t\t skipOptionalPartCharacter: \"\",\n\t\t usePrototypeDefinitions: !1,\n\t\t stripLeadingZeroes: !0,\n\t\t substituteRadixPoint: !0,\n\t\t definitions: {\n\t\t 0: {\n\t\t validator: d\n\t\t },\n\t\t 1: {\n\t\t validator: d,\n\t\t definitionSymbol: \"9\"\n\t\t },\n\t\t 9: {\n\t\t validator: \"[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]\",\n\t\t definitionSymbol: \"*\"\n\t\t },\n\t\t \"+\": {\n\t\t validator: function(e, t, n, i, a) {\n\t\t return a.allowMinus && (\"-\" === e || e === a.negationSymbol.front);\n\t\t }\n\t\t },\n\t\t \"-\": {\n\t\t validator: function(e, t, n, i, a) {\n\t\t return a.allowMinus && e === a.negationSymbol.back;\n\t\t }\n\t\t }\n\t\t },\n\t\t preValidation: function(e, t, n, i, a, r, o, l) {\n\t\t var s = this;\n\t\t if (!1 !== a.__financeInput && n === a.radixPoint) return !1;\n\t\t var c = e.indexOf(a.radixPoint), u = t;\n\t\t if (t = function(e, t, n, i, a) {\n\t\t return a._radixDance && a.numericInput && t !== a.negationSymbol.back && e <= n && (n > 0 || t == a.radixPoint) && (void 0 === i.validPositions[e - 1] || i.validPositions[e - 1].input !== a.negationSymbol.back) && (e -= 1), \n\t\t e;\n\t\t }(t, n, c, r, a), \"-\" === n || n === a.negationSymbol.front) {\n\t\t if (!0 !== a.allowMinus) return !1;\n\t\t var d = !1, h = p(\"+\", r), v = p(\"-\", r);\n\t\t return -1 !== h && (d = [ h ], -1 !== v && d.push(v)), !1 !== d ? {\n\t\t remove: d,\n\t\t caret: u - a.negationSymbol.back.length\n\t\t } : {\n\t\t insert: [ {\n\t\t pos: f.call(s, \"+\", r),\n\t\t c: a.negationSymbol.front,\n\t\t fromIsValid: !0\n\t\t }, {\n\t\t pos: f.call(s, \"-\", r),\n\t\t c: a.negationSymbol.back,\n\t\t fromIsValid: void 0\n\t\t } ],\n\t\t caret: u + a.negationSymbol.back.length\n\t\t };\n\t\t }\n\t\t if (n === a.groupSeparator) return {\n\t\t caret: u\n\t\t };\n\t\t if (l) return !0;\n\t\t if (-1 !== c && !0 === a._radixDance && !1 === i && n === a.radixPoint && void 0 !== a.digits && (isNaN(a.digits) || parseInt(a.digits) > 0) && c !== t) {\n\t\t var m = f.call(s, a.radixPoint, r);\n\t\t return r.validPositions[m] && (r.validPositions[m].generatedInput = r.validPositions[m].generated || !1), \n\t\t {\n\t\t caret: a._radixDance && t === c - 1 ? c + 1 : c\n\t\t };\n\t\t }\n\t\t if (!1 === a.__financeInput) if (i) {\n\t\t if (a.digitsOptional) return {\n\t\t rewritePosition: o.end\n\t\t };\n\t\t if (!a.digitsOptional) {\n\t\t if (o.begin > c && o.end <= c) return n === a.radixPoint ? {\n\t\t insert: {\n\t\t pos: c + 1,\n\t\t c: \"0\",\n\t\t fromIsValid: !0\n\t\t },\n\t\t rewritePosition: c\n\t\t } : {\n\t\t rewritePosition: c + 1\n\t\t };\n\t\t if (o.begin < c) return {\n\t\t rewritePosition: o.begin - 1\n\t\t };\n\t\t }\n\t\t } else if (!a.showMaskOnHover && !a.showMaskOnFocus && !a.digitsOptional && a.digits > 0 && \"\" === this.__valueGet.call(this.el)) return {\n\t\t rewritePosition: c\n\t\t };\n\t\t return {\n\t\t rewritePosition: t\n\t\t };\n\t\t },\n\t\t postValidation: function(e, t, n, i, a, r, o, l, c) {\n\t\t if (!1 === i) return i;\n\t\t if (o) return !0;\n\t\t if (null !== a.min || null !== a.max) {\n\t\t var f = a.onUnMask(e.slice().reverse().join(\"\"), void 0, s.extend({}, a, {\n\t\t unmaskAsNumber: !0\n\t\t }));\n\t\t if (null !== a.min && f < a.min && !0 !== c && (f.toString().length > a.min.toString().length || e[0] === a.radixPoint || f < 0)) return !1;\n\t\t if (null !== a.max && f > a.max) return !!a.SetMaxOnOverflow && {\n\t\t refreshFromBuffer: !0,\n\t\t buffer: u(a.max.toString().replace(\".\", a.radixPoint).split(\"\"), a.digits, a).reverse()\n\t\t };\n\t\t }\n\t\t return i;\n\t\t },\n\t\t onUnMask: function(e, t, n) {\n\t\t if (\"\" === t && !0 === n.nullable) return t;\n\t\t var i = e.replace(n.prefix, \"\");\n\t\t return i = (i = i.replace(n.suffix, \"\")).replace(new RegExp((0, a.escapeRegex)(n.groupSeparator), \"g\"), \"\"), \n\t\t \"\" !== n.placeholder.charAt(0) && (i = i.replace(new RegExp(n.placeholder.charAt(0), \"g\"), \"0\")), \n\t\t n.unmaskAsNumber ? (\"\" !== n.radixPoint && -1 !== i.indexOf(n.radixPoint) && (i = i.replace(a.escapeRegex.call(this, n.radixPoint), \".\")), \n\t\t i = (i = i.replace(new RegExp(\"^\" + (0, a.escapeRegex)(n.negationSymbol.front)), \"-\")).replace(new RegExp((0, a.escapeRegex)(n.negationSymbol.back) + \"$\"), \"\"), Number(i)) : i;\n\t\t },\n\t\t isComplete: function(e, t) {\n\t\t var n = (t.numericInput ? e.slice().reverse() : e).join(\"\");\n\t\t return n = (n = (n = (n = (n = n.replace(new RegExp(\"^\" + (0, a.escapeRegex)(t.negationSymbol.front)), \"-\")).replace(new RegExp((0, a.escapeRegex)(t.negationSymbol.back) + \"$\"), \"\")).replace(t.prefix, \"\")).replace(t.suffix, \"\")).replace(new RegExp((0, a.escapeRegex)(t.groupSeparator) + \"([0-9]{3})\", \"g\"), \"$1\"), \",\" === t.radixPoint && (n = n.replace((0, a.escapeRegex)(t.radixPoint), \".\")), isFinite(n);\n\t\t },\n\t\t onBeforeMask: function(e, t) {\n\t\t var n;\n\t\t e = null !== (n = e) && void 0 !== n ? n : \"\";\n\t\t var i = t.radixPoint || \",\";\n\t\t isFinite(t.digits) && (t.digits = parseInt(t.digits)), \"number\" != typeof e && \"number\" !== t.inputType || \"\" === i || (e = e.toString().replace(\".\", i));\n\t\t var r = \"-\" === e.charAt(0) || e.charAt(0) === t.negationSymbol.front, o = e.split(i), l = o[0].replace(/[^\\-0-9]/g, \"\"), s = o.length > 1 ? o[1].replace(/[^0-9]/g, \"\") : \"\", c = o.length > 1;\n\t\t e = l + (\"\" !== s ? i + s : s);\n\t\t var f = 0;\n\t\t if (\"\" !== i && (f = t.digitsOptional ? t.digits < s.length ? t.digits : s.length : t.digits, \n\t\t \"\" !== s || !t.digitsOptional)) {\n\t\t var p = Math.pow(10, f || 1);\n\t\t e = e.replace((0, a.escapeRegex)(i), \".\"), isNaN(parseFloat(e)) || (e = (t.roundingFN(parseFloat(e) * p) / p).toFixed(f)), \n\t\t e = e.toString().replace(\".\", i);\n\t\t }\n\t\t if (0 === t.digits && -1 !== e.indexOf(i) && (e = e.substring(0, e.indexOf(i))), \n\t\t null !== t.min || null !== t.max) {\n\t\t var d = e.toString().replace(i, \".\");\n\t\t null !== t.min && d < t.min ? e = t.min.toString().replace(\".\", i) : null !== t.max && d > t.max && (e = t.max.toString().replace(\".\", i));\n\t\t }\n\t\t return r && \"-\" !== e.charAt(0) && (e = \"-\" + e), u(e.toString().split(\"\"), f, t, c).join(\"\");\n\t\t },\n\t\t onBeforeWrite: function(e, t, n, i) {\n\t\t function r(e, t) {\n\t\t if (!1 !== i.__financeInput || t) {\n\t\t var n = e.indexOf(i.radixPoint);\n\t\t -1 !== n && e.splice(n, 1);\n\t\t }\n\t\t if (\"\" !== i.groupSeparator) for (;-1 !== (n = e.indexOf(i.groupSeparator)); ) e.splice(n, 1);\n\t\t return e;\n\t\t }\n\t\t var o, l;\n\t\t if (i.stripLeadingZeroes && (l = function(e, t) {\n\t\t var n = new RegExp(\"(^\" + (\"\" !== t.negationSymbol.front ? (0, a.escapeRegex)(t.negationSymbol.front) + \"?\" : \"\") + (0, a.escapeRegex)(t.prefix) + \")(.*)(\" + (0, a.escapeRegex)(t.suffix) + (\"\" != t.negationSymbol.back ? (0, a.escapeRegex)(t.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(e.slice().reverse().join(\"\")), i = n ? n[2] : \"\", r = !1;\n\t\t return i && (i = i.split(t.radixPoint.charAt(0))[0], r = new RegExp(\"^[0\" + t.groupSeparator + \"]*\").exec(i)), \n\t\t !(!r || !(r[0].length > 1 || r[0].length > 0 && r[0].length < i.length)) && r;\n\t\t }(t, i))) for (var c = t.join(\"\").lastIndexOf(l[0].split(\"\").reverse().join(\"\")) - (l[0] == l.input ? 0 : 1), f = l[0] == l.input ? 1 : 0, p = l[0].length - f; p > 0; p--) this.maskset.validPositions.splice(c + p, 1), \n\t\t delete t[c + p];\n\t\t if (e) switch (e.type) {\n\t\t case \"blur\":\n\t\t case \"checkval\":\n\t\t if (null !== i.min) {\n\t\t var d = i.onUnMask(t.slice().reverse().join(\"\"), void 0, s.extend({}, i, {\n\t\t unmaskAsNumber: !0\n\t\t }));\n\t\t if (null !== i.min && d < i.min) return {\n\t\t refreshFromBuffer: !0,\n\t\t buffer: u(i.min.toString().replace(\".\", i.radixPoint).split(\"\"), i.digits, i).reverse()\n\t\t };\n\t\t }\n\t\t if (t[t.length - 1] === i.negationSymbol.front) {\n\t\t var h = new RegExp(\"(^\" + (\"\" != i.negationSymbol.front ? (0, a.escapeRegex)(i.negationSymbol.front) + \"?\" : \"\") + (0, a.escapeRegex)(i.prefix) + \")(.*)(\" + (0, a.escapeRegex)(i.suffix) + (\"\" != i.negationSymbol.back ? (0, a.escapeRegex)(i.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(r(t.slice(), !0).reverse().join(\"\"));\n\t\t 0 == (h ? h[2] : \"\") && (o = {\n\t\t refreshFromBuffer: !0,\n\t\t buffer: [ 0 ]\n\t\t });\n\t\t } else if (\"\" !== i.radixPoint) {\n\t\t t.indexOf(i.radixPoint) === i.suffix.length && (o && o.buffer ? o.buffer.splice(0, 1 + i.suffix.length) : (t.splice(0, 1 + i.suffix.length), \n\t\t o = {\n\t\t refreshFromBuffer: !0,\n\t\t buffer: r(t)\n\t\t }));\n\t\t }\n\t\t if (i.enforceDigitsOnBlur) {\n\t\t var v = (o = o || {}) && o.buffer || t.slice().reverse();\n\t\t o.refreshFromBuffer = !0, o.buffer = u(v, i.digits, i, !0).reverse();\n\t\t }\n\t\t }\n\t\t return o;\n\t\t },\n\t\t onKeyDown: function(e, t, n, i) {\n\t\t var a, r = s(this);\n\t\t if (3 != e.location) {\n\t\t var l, c = e.key;\n\t\t if ((l = i.shortcuts && i.shortcuts[c]) && l.length > 1) return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) * parseInt(l)), \n\t\t r.trigger(\"setvalue\"), !1;\n\t\t }\n\t\t if (e.ctrlKey) switch (e.key) {\n\t\t case o.keys.ArrowUp:\n\t\t return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) + parseInt(i.step)), \n\t\t r.trigger(\"setvalue\"), !1;\n\n\t\t case o.keys.ArrowDown:\n\t\t return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) - parseInt(i.step)), \n\t\t r.trigger(\"setvalue\"), !1;\n\t\t }\n\t\t if (!e.shiftKey && (e.key === o.keys.Delete || e.key === o.keys.Backspace || e.key === o.keys.BACKSPACE_SAFARI) && n.begin !== t.length) {\n\t\t if (t[e.key === o.keys.Delete ? n.begin - 1 : n.end] === i.negationSymbol.front) return a = t.slice().reverse(), \n\t\t \"\" !== i.negationSymbol.front && a.shift(), \"\" !== i.negationSymbol.back && a.pop(), \n\t\t r.trigger(\"setvalue\", [ a.join(\"\"), n.begin ]), !1;\n\t\t if (!0 === i._radixDance) {\n\t\t var f, p = t.indexOf(i.radixPoint);\n\t\t if (i.digitsOptional) {\n\t\t if (0 === p) return (a = t.slice().reverse()).pop(), r.trigger(\"setvalue\", [ a.join(\"\"), n.begin >= a.length ? a.length : n.begin ]), \n\t\t !1;\n\t\t } else if (-1 !== p && (n.begin < p || n.end < p || e.key === o.keys.Delete && (n.begin === p || n.begin - 1 === p))) return n.begin === n.end && (e.key === o.keys.Backspace || e.key === o.keys.BACKSPACE_SAFARI ? n.begin++ : e.key === o.keys.Delete && n.begin - 1 === p && (f = s.extend({}, n), \n\t\t n.begin--, n.end--)), (a = t.slice().reverse()).splice(a.length - n.begin, n.begin - n.end + 1), \n\t\t a = u(a, i.digits, i).join(\"\"), f && (n = f), r.trigger(\"setvalue\", [ a, n.begin >= a.length ? p + 1 : n.begin ]), \n\t\t !1;\n\t\t }\n\t\t }\n\t\t }\n\t\t },\n\t\t currency: {\n\t\t prefix: \"\",\n\t\t groupSeparator: \",\",\n\t\t alias: \"numeric\",\n\t\t digits: 2,\n\t\t digitsOptional: !1\n\t\t },\n\t\t decimal: {\n\t\t alias: \"numeric\"\n\t\t },\n\t\t integer: {\n\t\t alias: \"numeric\",\n\t\t inputmode: \"numeric\",\n\t\t digits: 0\n\t\t },\n\t\t percentage: {\n\t\t alias: \"numeric\",\n\t\t min: 0,\n\t\t max: 100,\n\t\t suffix: \" %\",\n\t\t digits: 0,\n\t\t allowMinus: !1\n\t\t },\n\t\t indianns: {\n\t\t alias: \"numeric\",\n\t\t _mask: function(e) {\n\t\t return \"(\" + e.groupSeparator + \"99){*|1}(\" + e.groupSeparator + \"999){1|1}\";\n\t\t },\n\t\t groupSeparator: \",\",\n\t\t radixPoint: \".\",\n\t\t placeholder: \"0\",\n\t\t digits: 2,\n\t\t digitsOptional: !1\n\t\t }\n\t\t });\n\t\t },\n\t\t 9380: function(e, t) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.default = void 0;\n\t\t var n = !(\"undefined\" == typeof window || !window.document || !window.document.createElement);\n\t\t t.default = n ? window : {};\n\t\t },\n\t\t 7760: function(e, t, n) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.HandleNativePlaceholder = function(e, t) {\n\t\t var n = e ? e.inputmask : this;\n\t\t if (i.ie) {\n\t\t if (e.inputmask._valueGet() !== t && (e.placeholder !== t || \"\" === e.placeholder)) {\n\t\t var a = o.getBuffer.call(n).slice(), r = e.inputmask._valueGet();\n\t\t if (r !== t) {\n\t\t var l = o.getLastValidPosition.call(n);\n\t\t -1 === l && r === o.getBufferTemplate.call(n).join(\"\") ? a = [] : -1 !== l && u.call(n, a), \n\t\t p(e, a);\n\t\t }\n\t\t }\n\t\t } else e.placeholder !== t && (e.placeholder = t, \"\" === e.placeholder && e.removeAttribute(\"placeholder\"));\n\t\t }, t.applyInputValue = c, t.checkVal = f, t.clearOptionalTail = u, t.unmaskedvalue = function(e) {\n\t\t var t = e ? e.inputmask : this, n = t.opts, i = t.maskset;\n\t\t if (e) {\n\t\t if (void 0 === e.inputmask) return e.value;\n\t\t e.inputmask && e.inputmask.refreshValue && c(e, e.inputmask._valueGet(!0));\n\t\t }\n\t\t for (var a = [], r = i.validPositions, l = 0, s = r.length; l < s; l++) r[l] && r[l].match && (1 != r[l].match.static || Array.isArray(i.metadata) && !0 !== r[l].generatedInput) && a.push(r[l].input);\n\t\t var u = 0 === a.length ? \"\" : (t.isRTL ? a.reverse() : a).join(\"\");\n\t\t if (\"function\" == typeof n.onUnMask) {\n\t\t var f = (t.isRTL ? o.getBuffer.call(t).slice().reverse() : o.getBuffer.call(t)).join(\"\");\n\t\t u = n.onUnMask.call(t, f, u, n);\n\t\t }\n\t\t return u;\n\t\t }, t.writeBuffer = p;\n\t\t var i = n(9845), a = n(6030), r = n(2839), o = n(8711), l = n(7215), s = n(4713);\n\t\t function c(e, t, n, i) {\n\t\t var a = e ? e.inputmask : this, r = a.opts;\n\t\t e.inputmask.refreshValue = !1, !0 !== i && \"function\" == typeof r.onBeforeMask && (t = r.onBeforeMask.call(a, t, r) || t), \n\t\t f(e, !0, !1, t = (t || \"\").toString().split(\"\"), n), a.undoValue = a._valueGet(!0), \n\t\t (r.clearMaskOnLostFocus || r.clearIncomplete) && e.inputmask._valueGet() === o.getBufferTemplate.call(a).join(\"\") && -1 === o.getLastValidPosition.call(a) && e.inputmask._valueSet(\"\");\n\t\t }\n\t\t function u(e) {\n\t\t e.length = 0;\n\t\t for (var t, n = s.getMaskTemplate.call(this, !0, 0, !0, void 0, !0); void 0 !== (t = n.shift()); ) e.push(t);\n\t\t return e;\n\t\t }\n\t\t function f(e, t, n, i, r) {\n\t\t var c, u = e ? e.inputmask : this, f = u.maskset, d = u.opts, h = u.dependencyLib, v = i.slice(), m = \"\", g = -1, y = d.skipOptionalPartCharacter;\n\t\t d.skipOptionalPartCharacter = \"\", o.resetMaskSet.call(u, !1), u.clicked = 0, g = d.radixPoint ? o.determineNewCaretPosition.call(u, {\n\t\t begin: 0,\n\t\t end: 0\n\t\t }, !1, !1 === d.__financeInput ? \"radixFocus\" : void 0).begin : 0, f.p = g, u.caretPos = {\n\t\t begin: g\n\t\t };\n\t\t var k = [], b = u.caretPos;\n\t\t if (v.forEach((function(e, t) {\n\t\t if (void 0 !== e) {\n\t\t var i = new h.Event(\"_checkval\");\n\t\t i.key = e, m += e;\n\t\t var r = o.getLastValidPosition.call(u, void 0, !0);\n\t\t !function(e, t) {\n\t\t for (var n = s.getMaskTemplate.call(u, !0, 0).slice(e, o.seekNext.call(u, e, !1, !1)).join(\"\").replace(/'/g, \"\"), i = n.indexOf(t); i > 0 && \" \" === n[i - 1]; ) i--;\n\t\t var a = 0 === i && !o.isMask.call(u, e) && (s.getTest.call(u, e).match.nativeDef === t.charAt(0) || !0 === s.getTest.call(u, e).match.static && s.getTest.call(u, e).match.nativeDef === \"'\" + t.charAt(0) || \" \" === s.getTest.call(u, e).match.nativeDef && (s.getTest.call(u, e + 1).match.nativeDef === t.charAt(0) || !0 === s.getTest.call(u, e + 1).match.static && s.getTest.call(u, e + 1).match.nativeDef === \"'\" + t.charAt(0)));\n\t\t if (!a && i > 0 && !o.isMask.call(u, e, !1, !0)) {\n\t\t var r = o.seekNext.call(u, e);\n\t\t u.caretPos.begin < r && (u.caretPos = {\n\t\t begin: r\n\t\t });\n\t\t }\n\t\t return a;\n\t\t }(g, m) ? (c = a.EventHandlers.keypressEvent.call(u, i, !0, !1, n, u.caretPos.begin)) && (g = u.caretPos.begin + 1, \n\t\t m = \"\") : c = a.EventHandlers.keypressEvent.call(u, i, !0, !1, n, r + 1), c ? (void 0 !== c.pos && f.validPositions[c.pos] && !0 === f.validPositions[c.pos].match.static && void 0 === f.validPositions[c.pos].alternation && (k.push(c.pos), \n\t\t u.isRTL || (c.forwardPosition = c.pos + 1)), p.call(u, void 0, o.getBuffer.call(u), c.forwardPosition, i, !1), \n\t\t u.caretPos = {\n\t\t begin: c.forwardPosition,\n\t\t end: c.forwardPosition\n\t\t }, b = u.caretPos) : void 0 === f.validPositions[t] && v[t] === s.getPlaceholder.call(u, t) && o.isMask.call(u, t, !0) ? u.caretPos.begin++ : u.caretPos = b;\n\t\t }\n\t\t })), k.length > 0) {\n\t\t var x, w, P = o.seekNext.call(u, -1, void 0, !1);\n\t\t if (!l.isComplete.call(u, o.getBuffer.call(u)) && k.length <= P || l.isComplete.call(u, o.getBuffer.call(u)) && k.length > 0 && k.length !== P && 0 === k[0]) for (var S = P; void 0 !== (x = k.shift()); ) if (x < S) {\n\t\t var O = new h.Event(\"_checkval\");\n\t\t if ((w = f.validPositions[x]).generatedInput = !0, O.key = w.input, (c = a.EventHandlers.keypressEvent.call(u, O, !0, !1, n, S)) && void 0 !== c.pos && c.pos !== x && f.validPositions[c.pos] && !0 === f.validPositions[c.pos].match.static) k.push(c.pos); else if (!c) break;\n\t\t S++;\n\t\t }\n\t\t }\n\t\t t && p.call(u, e, o.getBuffer.call(u), c ? c.forwardPosition : u.caretPos.begin, r || new h.Event(\"checkval\"), r && (\"input\" === r.type && u.undoValue !== o.getBuffer.call(u).join(\"\") || \"paste\" === r.type)), \n\t\t d.skipOptionalPartCharacter = y;\n\t\t }\n\t\t function p(e, t, n, i, a) {\n\t\t var s = e ? e.inputmask : this, c = s.opts, u = s.dependencyLib;\n\t\t if (i && \"function\" == typeof c.onBeforeWrite) {\n\t\t var f = c.onBeforeWrite.call(s, i, t, n, c);\n\t\t if (f) {\n\t\t if (f.refreshFromBuffer) {\n\t\t var p = f.refreshFromBuffer;\n\t\t l.refreshFromBuffer.call(s, !0 === p ? p : p.start, p.end, f.buffer || t), t = o.getBuffer.call(s, !0);\n\t\t }\n\t\t void 0 !== n && (n = void 0 !== f.caret ? f.caret : n);\n\t\t }\n\t\t }\n\t\t if (void 0 !== e && (e.inputmask._valueSet(t.join(\"\")), void 0 === n || void 0 !== i && \"blur\" === i.type || o.caret.call(s, e, n, void 0, void 0, void 0 !== i && \"keydown\" === i.type && (i.key === r.keys.Delete || i.key === r.keys.Backspace)), \n\t\t void 0 === e.inputmask.writeBufferHook || e.inputmask.writeBufferHook(n), !0 === a)) {\n\t\t var d = u(e), h = e.inputmask._valueGet();\n\t\t e.inputmask.skipInputEvent = !0, d.trigger(\"input\"), setTimeout((function() {\n\t\t h === o.getBufferTemplate.call(s).join(\"\") ? d.trigger(\"cleared\") : !0 === l.isComplete.call(s, t) && d.trigger(\"complete\");\n\t\t }), 0);\n\t\t }\n\t\t }\n\t\t },\n\t\t 2394: function(e, t, n) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.default = void 0;\n\t\t var i = v(n(3976)), a = v(n(7392)), r = v(n(4963)), o = n(9716), l = v(n(9380)), s = n(7760), c = n(157), u = n(2391), f = n(8711), p = n(7215), d = n(4713);\n\t\t function h(e) {\n\t\t return h = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n\t\t return typeof e;\n\t\t } : function(e) {\n\t\t return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n\t\t }, h(e);\n\t\t }\n\t\t function v(e) {\n\t\t return e && e.__esModule ? e : {\n\t\t default: e\n\t\t };\n\t\t }\n\t\t var m = l.default.document, g = \"_inputmask_opts\";\n\t\t function y(e, t, n) {\n\t\t if (!(this instanceof y)) return new y(e, t, n);\n\t\t this.dependencyLib = r.default, this.el = void 0, this.events = {}, this.maskset = void 0, \n\t\t !0 !== n && (\"[object Object]\" === Object.prototype.toString.call(e) ? t = e : (t = t || {}, \n\t\t e && (t.alias = e)), this.opts = r.default.extend(!0, {}, this.defaults, t), this.noMasksCache = t && void 0 !== t.definitions, \n\t\t this.userOptions = t || {}, k(this.opts.alias, t, this.opts)), this.refreshValue = !1, \n\t\t this.undoValue = void 0, this.$el = void 0, this.skipInputEvent = !1, this.validationEvent = !1, \n\t\t this.ignorable = !1, this.maxLength, this.mouseEnter = !1, this.clicked = 0, this.originalPlaceholder = void 0, \n\t\t this.isComposing = !1, this.hasAlternator = !1;\n\t\t }\n\t\t function k(e, t, n) {\n\t\t var i = y.prototype.aliases[e];\n\t\t return i ? (i.alias && k(i.alias, void 0, n), r.default.extend(!0, n, i), r.default.extend(!0, n, t), \n\t\t !0) : (null === n.mask && (n.mask = e), !1);\n\t\t }\n\t\t y.prototype = {\n\t\t dataAttribute: \"data-inputmask\",\n\t\t defaults: i.default,\n\t\t definitions: a.default,\n\t\t aliases: {},\n\t\t masksCache: {},\n\t\t i18n: {},\n\t\t get isRTL() {\n\t\t return this.opts.isRTL || this.opts.numericInput;\n\t\t },\n\t\t mask: function(e) {\n\t\t var t = this;\n\t\t return \"string\" == typeof e && (e = m.getElementById(e) || m.querySelectorAll(e)), \n\t\t (e = e.nodeName ? [ e ] : Array.isArray(e) ? e : [].slice.call(e)).forEach((function(e, n) {\n\t\t var i = r.default.extend(!0, {}, t.opts);\n\t\t if (function(e, t, n, i) {\n\t\t function a(t, a) {\n\t\t var r = \"\" === i ? t : i + \"-\" + t;\n\t\t null !== (a = void 0 !== a ? a : e.getAttribute(r)) && (\"string\" == typeof a && (0 === t.indexOf(\"on\") ? a = l.default[a] : \"false\" === a ? a = !1 : \"true\" === a && (a = !0)), \n\t\t n[t] = a);\n\t\t }\n\t\t if (!0 === t.importDataAttributes) {\n\t\t var o, s, c, u, f = e.getAttribute(i);\n\t\t if (f && \"\" !== f && (f = f.replace(/'/g, '\"'), s = JSON.parse(\"{\" + f + \"}\")), \n\t\t s) for (u in c = void 0, s) if (\"alias\" === u.toLowerCase()) {\n\t\t c = s[u];\n\t\t break;\n\t\t }\n\t\t for (o in a(\"alias\", c), n.alias && k(n.alias, n, t), t) {\n\t\t if (s) for (u in c = void 0, s) if (u.toLowerCase() === o.toLowerCase()) {\n\t\t c = s[u];\n\t\t break;\n\t\t }\n\t\t a(o, c);\n\t\t }\n\t\t }\n\t\t r.default.extend(!0, t, n), (\"rtl\" === e.dir || t.rightAlign) && (e.style.textAlign = \"right\");\n\t\t (\"rtl\" === e.dir || t.numericInput) && (e.dir = \"ltr\", e.removeAttribute(\"dir\"), \n\t\t t.isRTL = !0);\n\t\t return Object.keys(n).length;\n\t\t }(e, i, r.default.extend(!0, {}, t.userOptions), t.dataAttribute)) {\n\t\t var a = (0, u.generateMaskSet)(i, t.noMasksCache);\n\t\t void 0 !== a && (void 0 !== e.inputmask && (e.inputmask.opts.autoUnmask = !0, e.inputmask.remove()), \n\t\t e.inputmask = new y(void 0, void 0, !0), e.inputmask.opts = i, e.inputmask.noMasksCache = t.noMasksCache, \n\t\t e.inputmask.userOptions = r.default.extend(!0, {}, t.userOptions), e.inputmask.el = e, \n\t\t e.inputmask.$el = (0, r.default)(e), e.inputmask.maskset = a, r.default.data(e, g, t.userOptions), \n\t\t c.mask.call(e.inputmask));\n\t\t }\n\t\t })), e && e[0] && e[0].inputmask || this;\n\t\t },\n\t\t option: function(e, t) {\n\t\t return \"string\" == typeof e ? this.opts[e] : \"object\" === h(e) ? (r.default.extend(this.userOptions, e), \n\t\t this.el && !0 !== t && this.mask(this.el), this) : void 0;\n\t\t },\n\t\t unmaskedvalue: function(e) {\n\t\t if (this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache), \n\t\t void 0 === this.el || void 0 !== e) {\n\t\t var t = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n\t\t s.checkVal.call(this, void 0, !1, !1, t), \"function\" == typeof this.opts.onBeforeWrite && this.opts.onBeforeWrite.call(this, void 0, f.getBuffer.call(this), 0, this.opts);\n\t\t }\n\t\t return s.unmaskedvalue.call(this, this.el);\n\t\t },\n\t\t remove: function() {\n\t\t if (this.el) {\n\t\t r.default.data(this.el, g, null);\n\t\t var e = this.opts.autoUnmask ? (0, s.unmaskedvalue)(this.el) : this._valueGet(this.opts.autoUnmask);\n\t\t e !== f.getBufferTemplate.call(this).join(\"\") ? this._valueSet(e, this.opts.autoUnmask) : this._valueSet(\"\"), \n\t\t o.EventRuler.off(this.el), Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this.el), \"value\") && this.__valueGet && Object.defineProperty(this.el, \"value\", {\n\t\t get: this.__valueGet,\n\t\t set: this.__valueSet,\n\t\t configurable: !0\n\t\t }) : m.__lookupGetter__ && this.el.__lookupGetter__(\"value\") && this.__valueGet && (this.el.__defineGetter__(\"value\", this.__valueGet), \n\t\t this.el.__defineSetter__(\"value\", this.__valueSet)), this.el.inputmask = void 0;\n\t\t }\n\t\t return this.el;\n\t\t },\n\t\t getemptymask: function() {\n\t\t return this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache), \n\t\t (this.isRTL ? f.getBufferTemplate.call(this).reverse() : f.getBufferTemplate.call(this)).join(\"\");\n\t\t },\n\t\t hasMaskedValue: function() {\n\t\t return !this.opts.autoUnmask;\n\t\t },\n\t\t isComplete: function() {\n\t\t return this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache), \n\t\t p.isComplete.call(this, f.getBuffer.call(this));\n\t\t },\n\t\t getmetadata: function() {\n\t\t if (this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache), \n\t\t Array.isArray(this.maskset.metadata)) {\n\t\t var e = d.getMaskTemplate.call(this, !0, 0, !1).join(\"\");\n\t\t return this.maskset.metadata.forEach((function(t) {\n\t\t return t.mask !== e || (e = t, !1);\n\t\t })), e;\n\t\t }\n\t\t return this.maskset.metadata;\n\t\t },\n\t\t isValid: function(e) {\n\t\t if (this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache), \n\t\t e) {\n\t\t var t = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n\t\t s.checkVal.call(this, void 0, !0, !1, t);\n\t\t } else e = this.isRTL ? f.getBuffer.call(this).slice().reverse().join(\"\") : f.getBuffer.call(this).join(\"\");\n\t\t for (var n = f.getBuffer.call(this), i = f.determineLastRequiredPosition.call(this), a = n.length - 1; a > i && !f.isMask.call(this, a); a--) ;\n\t\t return n.splice(i, a + 1 - i), p.isComplete.call(this, n) && e === (this.isRTL ? f.getBuffer.call(this).slice().reverse().join(\"\") : f.getBuffer.call(this).join(\"\"));\n\t\t },\n\t\t format: function(e, t) {\n\t\t this.maskset = this.maskset || (0, u.generateMaskSet)(this.opts, this.noMasksCache);\n\t\t var n = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n\t\t s.checkVal.call(this, void 0, !0, !1, n);\n\t\t var i = this.isRTL ? f.getBuffer.call(this).slice().reverse().join(\"\") : f.getBuffer.call(this).join(\"\");\n\t\t return t ? {\n\t\t value: i,\n\t\t metadata: this.getmetadata()\n\t\t } : i;\n\t\t },\n\t\t setValue: function(e) {\n\t\t this.el && (0, r.default)(this.el).trigger(\"setvalue\", [ e ]);\n\t\t },\n\t\t analyseMask: u.analyseMask\n\t\t }, y.extendDefaults = function(e) {\n\t\t r.default.extend(!0, y.prototype.defaults, e);\n\t\t }, y.extendDefinitions = function(e) {\n\t\t r.default.extend(!0, y.prototype.definitions, e);\n\t\t }, y.extendAliases = function(e) {\n\t\t r.default.extend(!0, y.prototype.aliases, e);\n\t\t }, y.format = function(e, t, n) {\n\t\t return y(t).format(e, n);\n\t\t }, y.unmask = function(e, t) {\n\t\t return y(t).unmaskedvalue(e);\n\t\t }, y.isValid = function(e, t) {\n\t\t return y(t).isValid(e);\n\t\t }, y.remove = function(e) {\n\t\t \"string\" == typeof e && (e = m.getElementById(e) || m.querySelectorAll(e)), (e = e.nodeName ? [ e ] : e).forEach((function(e) {\n\t\t e.inputmask && e.inputmask.remove();\n\t\t }));\n\t\t }, y.setValue = function(e, t) {\n\t\t \"string\" == typeof e && (e = m.getElementById(e) || m.querySelectorAll(e)), (e = e.nodeName ? [ e ] : e).forEach((function(e) {\n\t\t e.inputmask ? e.inputmask.setValue(t) : (0, r.default)(e).trigger(\"setvalue\", [ t ]);\n\t\t }));\n\t\t }, y.dependencyLib = r.default, l.default.Inputmask = y;\n\t\t t.default = y;\n\t\t },\n\t\t 5296: function(e, t, n) {\n\t\t function i(e) {\n\t\t return i = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n\t\t return typeof e;\n\t\t } : function(e) {\n\t\t return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n\t\t }, i(e);\n\t\t }\n\t\t var a = d(n(9380)), r = d(n(2394));\n\t\t function o(e, t) {\n\t\t for (var n = 0; n < t.length; n++) {\n\t\t var a = t[n];\n\t\t a.enumerable = a.enumerable || !1, a.configurable = !0, \"value\" in a && (a.writable = !0), \n\t\t Object.defineProperty(e, (r = a.key, o = void 0, o = function(e, t) {\n\t\t if (\"object\" !== i(e) || null === e) return e;\n\t\t var n = e[Symbol.toPrimitive];\n\t\t if (void 0 !== n) {\n\t\t var a = n.call(e, t || \"default\");\n\t\t if (\"object\" !== i(a)) return a;\n\t\t throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n\t\t }\n\t\t return (\"string\" === t ? String : Number)(e);\n\t\t }(r, \"string\"), \"symbol\" === i(o) ? o : String(o)), a);\n\t\t }\n\t\t var r, o;\n\t\t }\n\t\t function l(e) {\n\t\t var t = u();\n\t\t return function() {\n\t\t var n, a = p(e);\n\t\t if (t) {\n\t\t var r = p(this).constructor;\n\t\t n = Reflect.construct(a, arguments, r);\n\t\t } else n = a.apply(this, arguments);\n\t\t return function(e, t) {\n\t\t if (t && (\"object\" === i(t) || \"function\" == typeof t)) return t;\n\t\t if (void 0 !== t) throw new TypeError(\"Derived constructors may only return object or undefined\");\n\t\t return function(e) {\n\t\t if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n\t\t return e;\n\t\t }(e);\n\t\t }(this, n);\n\t\t };\n\t\t }\n\t\t function s(e) {\n\t\t var t = \"function\" == typeof Map ? new Map : void 0;\n\t\t return s = function(e) {\n\t\t if (null === e || !function(e) {\n\t\t try {\n\t\t return -1 !== Function.toString.call(e).indexOf(\"[native code]\");\n\t\t } catch (t) {\n\t\t return \"function\" == typeof e;\n\t\t }\n\t\t }(e)) return e;\n\t\t if (\"function\" != typeof e) throw new TypeError(\"Super expression must either be null or a function\");\n\t\t if (void 0 !== t) {\n\t\t if (t.has(e)) return t.get(e);\n\t\t t.set(e, n);\n\t\t }\n\t\t function n() {\n\t\t return c(e, arguments, p(this).constructor);\n\t\t }\n\t\t return n.prototype = Object.create(e.prototype, {\n\t\t constructor: {\n\t\t value: n,\n\t\t enumerable: !1,\n\t\t writable: !0,\n\t\t configurable: !0\n\t\t }\n\t\t }), f(n, e);\n\t\t }, s(e);\n\t\t }\n\t\t function c(e, t, n) {\n\t\t return c = u() ? Reflect.construct.bind() : function(e, t, n) {\n\t\t var i = [ null ];\n\t\t i.push.apply(i, t);\n\t\t var a = new (Function.bind.apply(e, i));\n\t\t return n && f(a, n.prototype), a;\n\t\t }, c.apply(null, arguments);\n\t\t }\n\t\t function u() {\n\t\t if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n\t\t if (Reflect.construct.sham) return !1;\n\t\t if (\"function\" == typeof Proxy) return !0;\n\t\t try {\n\t\t return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), \n\t\t !0;\n\t\t } catch (e) {\n\t\t return !1;\n\t\t }\n\t\t }\n\t\t function f(e, t) {\n\t\t return f = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e, t) {\n\t\t return e.__proto__ = t, e;\n\t\t }, f(e, t);\n\t\t }\n\t\t function p(e) {\n\t\t return p = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(e) {\n\t\t return e.__proto__ || Object.getPrototypeOf(e);\n\t\t }, p(e);\n\t\t }\n\t\t function d(e) {\n\t\t return e && e.__esModule ? e : {\n\t\t default: e\n\t\t };\n\t\t }\n\t\t var h = a.default.document;\n\t\t if (h && h.head && h.head.attachShadow && a.default.customElements && void 0 === a.default.customElements.get(\"input-mask\")) {\n\t\t var v = function(e) {\n\t\t !function(e, t) {\n\t\t if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n\t\t e.prototype = Object.create(t && t.prototype, {\n\t\t constructor: {\n\t\t value: e,\n\t\t writable: !0,\n\t\t configurable: !0\n\t\t }\n\t\t }), Object.defineProperty(e, \"prototype\", {\n\t\t writable: !1\n\t\t }), t && f(e, t);\n\t\t }(s, e);\n\t\t var t, n, a = l(s);\n\t\t function s() {\n\t\t var e;\n\t\t !function(e, t) {\n\t\t if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n\t\t }(this, s);\n\t\t var t = (e = a.call(this)).getAttributeNames(), n = e.attachShadow({\n\t\t mode: \"closed\"\n\t\t });\n\t\t for (var i in e.input = h.createElement(\"input\"), e.input.type = \"text\", n.appendChild(e.input), \n\t\t t) Object.prototype.hasOwnProperty.call(t, i) && e.input.setAttribute(t[i], e.getAttribute(t[i]));\n\t\t var o = new r.default;\n\t\t return o.dataAttribute = \"\", o.mask(e.input), e.input.inputmask.shadowRoot = n, \n\t\t e;\n\t\t }\n\t\t return t = s, (n = [ {\n\t\t key: \"attributeChangedCallback\",\n\t\t value: function(e, t, n) {\n\t\t this.input.setAttribute(e, n);\n\t\t }\n\t\t }, {\n\t\t key: \"value\",\n\t\t get: function() {\n\t\t return this.input.value;\n\t\t },\n\t\t set: function(e) {\n\t\t this.input.value = e;\n\t\t }\n\t\t } ]) && o(t.prototype, n), Object.defineProperty(t, \"prototype\", {\n\t\t writable: !1\n\t\t }), s;\n\t\t }(s(HTMLElement));\n\t\t a.default.customElements.define(\"input-mask\", v);\n\t\t }\n\t\t },\n\t\t 2839: function(e, t) {\n\t\t function n(e) {\n\t\t return n = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n\t\t return typeof e;\n\t\t } : function(e) {\n\t\t return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n\t\t }, n(e);\n\t\t }\n\t\t function i(e, t) {\n\t\t return function(e) {\n\t\t if (Array.isArray(e)) return e;\n\t\t }(e) || function(e, t) {\n\t\t var n = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n\t\t if (null != n) {\n\t\t var i, a, r, o, l = [], s = !0, c = !1;\n\t\t try {\n\t\t if (r = (n = n.call(e)).next, 0 === t) ; else for (;!(s = (i = r.call(n)).done) && (l.push(i.value), l.length !== t); s = !0) ;\n\t\t } catch (e) {\n\t\t c = !0, a = e;\n\t\t } finally {\n\t\t try {\n\t\t if (!s && null != n.return && (o = n.return(), Object(o) !== o)) return;\n\t\t } finally {\n\t\t if (c) throw a;\n\t\t }\n\t\t }\n\t\t return l;\n\t\t }\n\t\t }(e, t) || function(e, t) {\n\t\t if (!e) return;\n\t\t if (\"string\" == typeof e) return a(e, t);\n\t\t var n = Object.prototype.toString.call(e).slice(8, -1);\n\t\t \"Object\" === n && e.constructor && (n = e.constructor.name);\n\t\t if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n\t\t if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return a(e, t);\n\t\t }(e, t) || function() {\n\t\t throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n\t\t }();\n\t\t }\n\t\t function a(e, t) {\n\t\t (null == t || t > e.length) && (t = e.length);\n\t\t for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n\t\t return i;\n\t\t }\n\t\t function r(e, t) {\n\t\t var n = Object.keys(e);\n\t\t if (Object.getOwnPropertySymbols) {\n\t\t var i = Object.getOwnPropertySymbols(e);\n\t\t t && (i = i.filter((function(t) {\n\t\t return Object.getOwnPropertyDescriptor(e, t).enumerable;\n\t\t }))), n.push.apply(n, i);\n\t\t }\n\t\t return n;\n\t\t }\n\t\t function o(e, t, i) {\n\t\t return (t = function(e) {\n\t\t var t = function(e, t) {\n\t\t if (\"object\" !== n(e) || null === e) return e;\n\t\t var i = e[Symbol.toPrimitive];\n\t\t if (void 0 !== i) {\n\t\t var a = i.call(e, t || \"default\");\n\t\t if (\"object\" !== n(a)) return a;\n\t\t throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n\t\t }\n\t\t return (\"string\" === t ? String : Number)(e);\n\t\t }(e, \"string\");\n\t\t return \"symbol\" === n(t) ? t : String(t);\n\t\t }(t)) in e ? Object.defineProperty(e, t, {\n\t\t value: i,\n\t\t enumerable: !0,\n\t\t configurable: !0,\n\t\t writable: !0\n\t\t }) : e[t] = i, e;\n\t\t }\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.keys = t.keyCode = void 0, t.toKey = function(e, t) {\n\t\t return s[e] || (t ? String.fromCharCode(e) : String.fromCharCode(e).toLowerCase());\n\t\t }, t.toKeyCode = function(e) {\n\t\t return l[e];\n\t\t };\n\t\t var l = t.keyCode = function(e) {\n\t\t for (var t = 1; t < arguments.length; t++) {\n\t\t var n = null != arguments[t] ? arguments[t] : {};\n\t\t t % 2 ? r(Object(n), !0).forEach((function(t) {\n\t\t o(e, t, n[t]);\n\t\t })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : r(Object(n)).forEach((function(t) {\n\t\t Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));\n\t\t }));\n\t\t }\n\t\t return e;\n\t\t }({\n\t\t c: 67,\n\t\t x: 88,\n\t\t z: 90,\n\t\t BACKSPACE_SAFARI: 127,\n\t\t Enter: 13,\n\t\t Meta_LEFT: 91,\n\t\t Meta_RIGHT: 92,\n\t\t Space: 32\n\t\t }, {\n\t\t Alt: 18,\n\t\t AltGraph: 18,\n\t\t ArrowDown: 40,\n\t\t ArrowLeft: 37,\n\t\t ArrowRight: 39,\n\t\t ArrowUp: 38,\n\t\t Backspace: 8,\n\t\t CapsLock: 20,\n\t\t Control: 17,\n\t\t ContextMenu: 93,\n\t\t Dead: 221,\n\t\t Delete: 46,\n\t\t End: 35,\n\t\t Escape: 27,\n\t\t F1: 112,\n\t\t F2: 113,\n\t\t F3: 114,\n\t\t F4: 115,\n\t\t F5: 116,\n\t\t F6: 117,\n\t\t F7: 118,\n\t\t F8: 119,\n\t\t F9: 120,\n\t\t F10: 121,\n\t\t F11: 122,\n\t\t F12: 123,\n\t\t Home: 36,\n\t\t Insert: 45,\n\t\t NumLock: 144,\n\t\t PageDown: 34,\n\t\t PageUp: 33,\n\t\t Pause: 19,\n\t\t PrintScreen: 44,\n\t\t Process: 229,\n\t\t Shift: 16,\n\t\t ScrollLock: 145,\n\t\t Tab: 9,\n\t\t Unidentified: 229\n\t\t }), s = Object.entries(l).reduce((function(e, t) {\n\t\t var n = i(t, 2), a = n[0], r = n[1];\n\t\t return e[r] = void 0 === e[r] ? a : e[r], e;\n\t\t }), {});\n\t\t t.keys = Object.entries(l).reduce((function(e, t) {\n\t\t var n = i(t, 2), a = n[0];\n\t\t n[1];\n\t\t return e[a] = \"Space\" === a ? \" \" : a, e;\n\t\t }), {});\n\t\t },\n\t\t 2391: function(e, t, n) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.analyseMask = function(e, t, n) {\n\t\t var i, a, s, c, u, f, p = /(?:[?*+]|\\{[0-9+*]+(?:,[0-9+*]*)?(?:\\|[0-9+*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g, d = /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g, h = !1, v = new o.default, m = [], g = [], y = !1;\n\t\t function k(e, i, a) {\n\t\t a = void 0 !== a ? a : e.matches.length;\n\t\t var o = e.matches[a - 1];\n\t\t if (t) {\n\t\t if (0 === i.indexOf(\"[\") || h && /\\\\d|\\\\s|\\\\w|\\\\p/i.test(i) || \".\" === i) {\n\t\t var s = n.casing ? \"i\" : \"\";\n\t\t /\\\\p\\{.*}/i.test(i) && (s += \"u\"), e.matches.splice(a++, 0, {\n\t\t fn: new RegExp(i, s),\n\t\t static: !1,\n\t\t optionality: !1,\n\t\t newBlockMarker: void 0 === o ? \"master\" : o.def !== i,\n\t\t casing: null,\n\t\t def: i,\n\t\t placeholder: \"object\" === l(n.placeholder) ? n.placeholder[v.matches.length] : void 0,\n\t\t nativeDef: i\n\t\t });\n\t\t } else h && (i = i[i.length - 1]), i.split(\"\").forEach((function(t, i) {\n\t\t o = e.matches[a - 1], e.matches.splice(a++, 0, {\n\t\t fn: /[a-z]/i.test(n.staticDefinitionSymbol || t) ? new RegExp(\"[\" + (n.staticDefinitionSymbol || t) + \"]\", n.casing ? \"i\" : \"\") : null,\n\t\t static: !0,\n\t\t optionality: !1,\n\t\t newBlockMarker: void 0 === o ? \"master\" : o.def !== t && !0 !== o.static,\n\t\t casing: null,\n\t\t def: n.staticDefinitionSymbol || t,\n\t\t placeholder: void 0 !== n.staticDefinitionSymbol ? t : \"object\" === l(n.placeholder) ? n.placeholder[v.matches.length] : void 0,\n\t\t nativeDef: (h ? \"'\" : \"\") + t\n\t\t });\n\t\t }));\n\t\t h = !1;\n\t\t } else {\n\t\t var c = n.definitions && n.definitions[i] || n.usePrototypeDefinitions && r.default.prototype.definitions[i];\n\t\t c && !h ? e.matches.splice(a++, 0, {\n\t\t fn: c.validator ? \"string\" == typeof c.validator ? new RegExp(c.validator, n.casing ? \"i\" : \"\") : new function() {\n\t\t this.test = c.validator;\n\t\t } : /./,\n\t\t static: c.static || !1,\n\t\t optionality: c.optional || !1,\n\t\t defOptionality: c.optional || !1,\n\t\t newBlockMarker: void 0 === o || c.optional ? \"master\" : o.def !== (c.definitionSymbol || i),\n\t\t casing: c.casing,\n\t\t def: c.definitionSymbol || i,\n\t\t placeholder: c.placeholder,\n\t\t nativeDef: i,\n\t\t generated: c.generated\n\t\t }) : (e.matches.splice(a++, 0, {\n\t\t fn: /[a-z]/i.test(n.staticDefinitionSymbol || i) ? new RegExp(\"[\" + (n.staticDefinitionSymbol || i) + \"]\", n.casing ? \"i\" : \"\") : null,\n\t\t static: !0,\n\t\t optionality: !1,\n\t\t newBlockMarker: void 0 === o ? \"master\" : o.def !== i && !0 !== o.static,\n\t\t casing: null,\n\t\t def: n.staticDefinitionSymbol || i,\n\t\t placeholder: void 0 !== n.staticDefinitionSymbol ? i : void 0,\n\t\t nativeDef: (h ? \"'\" : \"\") + i\n\t\t }), h = !1);\n\t\t }\n\t\t }\n\t\t function b() {\n\t\t if (m.length > 0) {\n\t\t if (k(c = m[m.length - 1], a), c.isAlternator) {\n\t\t u = m.pop();\n\t\t for (var e = 0; e < u.matches.length; e++) u.matches[e].isGroup && (u.matches[e].isGroup = !1);\n\t\t m.length > 0 ? (c = m[m.length - 1]).matches.push(u) : v.matches.push(u);\n\t\t }\n\t\t } else k(v, a);\n\t\t }\n\t\t function x(e) {\n\t\t var t = new o.default(!0);\n\t\t return t.openGroup = !1, t.matches = e, t;\n\t\t }\n\t\t function w() {\n\t\t if ((s = m.pop()).openGroup = !1, void 0 !== s) if (m.length > 0) {\n\t\t if ((c = m[m.length - 1]).matches.push(s), c.isAlternator) {\n\t\t u = m.pop();\n\t\t for (var e = 0; e < u.matches.length; e++) u.matches[e].isGroup = !1, u.matches[e].alternatorGroup = !1;\n\t\t m.length > 0 ? (c = m[m.length - 1]).matches.push(u) : v.matches.push(u);\n\t\t }\n\t\t } else v.matches.push(s); else b();\n\t\t }\n\t\t function P(e) {\n\t\t var t = e.pop();\n\t\t return t.isQuantifier && (t = x([ e.pop(), t ])), t;\n\t\t }\n\t\t t && (n.optionalmarker[0] = void 0, n.optionalmarker[1] = void 0);\n\t\t for (;i = t ? d.exec(e) : p.exec(e); ) {\n\t\t if (a = i[0], t) {\n\t\t switch (a.charAt(0)) {\n\t\t case \"?\":\n\t\t a = \"{0,1}\";\n\t\t break;\n\n\t\t case \"+\":\n\t\t case \"*\":\n\t\t a = \"{\" + a + \"}\";\n\t\t break;\n\n\t\t case \"|\":\n\t\t if (0 === m.length) {\n\t\t var S = x(v.matches);\n\t\t S.openGroup = !0, m.push(S), v.matches = [], y = !0;\n\t\t }\n\t\t }\n\t\t switch (a) {\n\t\t case \"\\\\d\":\n\t\t a = \"[0-9]\";\n\t\t break;\n\n\t\t case \"\\\\p\":\n\t\t a += d.exec(e)[0], a += d.exec(e)[0];\n\t\t }\n\t\t }\n\t\t if (h) b(); else switch (a.charAt(0)) {\n\t\t case \"$\":\n\t\t case \"^\":\n\t\t t || b();\n\t\t break;\n\n\t\t case n.escapeChar:\n\t\t h = !0, t && b();\n\t\t break;\n\n\t\t case n.optionalmarker[1]:\n\t\t case n.groupmarker[1]:\n\t\t w();\n\t\t break;\n\n\t\t case n.optionalmarker[0]:\n\t\t m.push(new o.default(!1, !0));\n\t\t break;\n\n\t\t case n.groupmarker[0]:\n\t\t m.push(new o.default(!0));\n\t\t break;\n\n\t\t case n.quantifiermarker[0]:\n\t\t var O = new o.default(!1, !1, !0), _ = (a = a.replace(/[{}?]/g, \"\")).split(\"|\"), M = _[0].split(\",\"), E = isNaN(M[0]) ? M[0] : parseInt(M[0]), j = 1 === M.length ? E : isNaN(M[1]) ? M[1] : parseInt(M[1]), T = isNaN(_[1]) ? _[1] : parseInt(_[1]);\n\t\t \"*\" !== E && \"+\" !== E || (E = \"*\" === j ? 0 : 1), O.quantifier = {\n\t\t min: E,\n\t\t max: j,\n\t\t jit: T\n\t\t };\n\t\t var A = m.length > 0 ? m[m.length - 1].matches : v.matches;\n\t\t (i = A.pop()).isGroup || (i = x([ i ])), A.push(i), A.push(O);\n\t\t break;\n\n\t\t case n.alternatormarker:\n\t\t if (m.length > 0) {\n\t\t var D = (c = m[m.length - 1]).matches[c.matches.length - 1];\n\t\t f = c.openGroup && (void 0 === D.matches || !1 === D.isGroup && !1 === D.isAlternator) ? m.pop() : P(c.matches);\n\t\t } else f = P(v.matches);\n\t\t if (f.isAlternator) m.push(f); else if (f.alternatorGroup ? (u = m.pop(), f.alternatorGroup = !1) : u = new o.default(!1, !1, !1, !0), \n\t\t u.matches.push(f), m.push(u), f.openGroup) {\n\t\t f.openGroup = !1;\n\t\t var L = new o.default(!0);\n\t\t L.alternatorGroup = !0, m.push(L);\n\t\t }\n\t\t break;\n\n\t\t default:\n\t\t b();\n\t\t }\n\t\t }\n\t\t y && w();\n\t\t for (;m.length > 0; ) s = m.pop(), v.matches.push(s);\n\t\t v.matches.length > 0 && (!function e(i) {\n\t\t i && i.matches && i.matches.forEach((function(a, r) {\n\t\t var o = i.matches[r + 1];\n\t\t (void 0 === o || void 0 === o.matches || !1 === o.isQuantifier) && a && a.isGroup && (a.isGroup = !1, \n\t\t t || (k(a, n.groupmarker[0], 0), !0 !== a.openGroup && k(a, n.groupmarker[1]))), \n\t\t e(a);\n\t\t }));\n\t\t }(v), g.push(v));\n\t\t (n.numericInput || n.isRTL) && function e(t) {\n\t\t for (var i in t.matches = t.matches.reverse(), t.matches) if (Object.prototype.hasOwnProperty.call(t.matches, i)) {\n\t\t var a = parseInt(i);\n\t\t if (t.matches[i].isQuantifier && t.matches[a + 1] && t.matches[a + 1].isGroup) {\n\t\t var r = t.matches[i];\n\t\t t.matches.splice(i, 1), t.matches.splice(a + 1, 0, r);\n\t\t }\n\t\t void 0 !== t.matches[i].matches ? t.matches[i] = e(t.matches[i]) : t.matches[i] = ((o = t.matches[i]) === n.optionalmarker[0] ? o = n.optionalmarker[1] : o === n.optionalmarker[1] ? o = n.optionalmarker[0] : o === n.groupmarker[0] ? o = n.groupmarker[1] : o === n.groupmarker[1] && (o = n.groupmarker[0]), \n\t\t o);\n\t\t }\n\t\t var o;\n\t\t return t;\n\t\t }(g[0]);\n\t\t return g;\n\t\t }, t.generateMaskSet = function(e, t) {\n\t\t var n;\n\t\t function o(e, t) {\n\t\t var n = t.repeat, i = t.groupmarker, r = t.quantifiermarker, o = t.keepStatic;\n\t\t if (n > 0 || \"*\" === n || \"+\" === n) {\n\t\t var l = \"*\" === n ? 0 : \"+\" === n ? 1 : n;\n\t\t if (l != n) e = i[0] + e + i[1] + r[0] + l + \",\" + n + r[1]; else for (var c = e, u = 1; u < l; u++) e += c;\n\t\t }\n\t\t if (!0 === o) {\n\t\t var f = e.match(new RegExp(\"(.)\\\\[([^\\\\]]*)\\\\]\", \"g\"));\n\t\t f && f.forEach((function(t, n) {\n\t\t var i = function(e, t) {\n\t\t return function(e) {\n\t\t if (Array.isArray(e)) return e;\n\t\t }(e) || function(e, t) {\n\t\t var n = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n\t\t if (null != n) {\n\t\t var i, a, r, o, l = [], s = !0, c = !1;\n\t\t try {\n\t\t if (r = (n = n.call(e)).next, 0 === t) ; else for (;!(s = (i = r.call(n)).done) && (l.push(i.value), l.length !== t); s = !0) ;\n\t\t } catch (e) {\n\t\t c = !0, a = e;\n\t\t } finally {\n\t\t try {\n\t\t if (!s && null != n.return && (o = n.return(), Object(o) !== o)) return;\n\t\t } finally {\n\t\t if (c) throw a;\n\t\t }\n\t\t }\n\t\t return l;\n\t\t }\n\t\t }(e, t) || function(e, t) {\n\t\t if (!e) return;\n\t\t if (\"string\" == typeof e) return s(e, t);\n\t\t var n = Object.prototype.toString.call(e).slice(8, -1);\n\t\t \"Object\" === n && e.constructor && (n = e.constructor.name);\n\t\t if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n\t\t if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return s(e, t);\n\t\t }(e, t) || function() {\n\t\t throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n\t\t }();\n\t\t }(t.split(\"[\"), 2), r = i[0], o = i[1];\n\t\t o = o.replace(\"]\", \"\"), e = e.replace(new RegExp(\"\".concat((0, a.escapeRegex)(r), \"\\\\[\").concat((0, a.escapeRegex)(o), \"\\\\]\")), r.charAt(0) === o.charAt(0) ? \"(\".concat(r, \"|\").concat(r).concat(o, \")\") : \"\".concat(r, \"[\").concat(o, \"]\"));\n\t\t }));\n\t\t }\n\t\t return e;\n\t\t }\n\t\t function c(e, n, a) {\n\t\t var s, c, u = !1;\n\t\t return null !== e && \"\" !== e || ((u = null !== a.regex) ? e = (e = a.regex).replace(/^(\\^)(.*)(\\$)$/, \"$2\") : (u = !0, \n\t\t e = \".*\")), 1 === e.length && !1 === a.greedy && 0 !== a.repeat && (a.placeholder = \"\"), \n\t\t e = o(e, a), c = u ? \"regex_\" + a.regex : a.numericInput ? e.split(\"\").reverse().join(\"\") : e, \n\t\t null !== a.keepStatic && (c = \"ks_\" + a.keepStatic + c), \"object\" === l(a.placeholder) && (c = \"ph_\" + JSON.stringify(a.placeholder) + c), \n\t\t void 0 === r.default.prototype.masksCache[c] || !0 === t ? (s = {\n\t\t mask: e,\n\t\t maskToken: r.default.prototype.analyseMask(e, u, a),\n\t\t validPositions: [],\n\t\t _buffer: void 0,\n\t\t buffer: void 0,\n\t\t tests: {},\n\t\t excludes: {},\n\t\t metadata: n,\n\t\t maskLength: void 0,\n\t\t jitOffset: {}\n\t\t }, !0 !== t && (r.default.prototype.masksCache[c] = s, s = i.default.extend(!0, {}, r.default.prototype.masksCache[c]))) : s = i.default.extend(!0, {}, r.default.prototype.masksCache[c]), \n\t\t s;\n\t\t }\n\t\t \"function\" == typeof e.mask && (e.mask = e.mask(e));\n\t\t if (Array.isArray(e.mask)) {\n\t\t if (e.mask.length > 1) {\n\t\t null === e.keepStatic && (e.keepStatic = !0);\n\t\t var u = e.groupmarker[0];\n\t\t return (e.isRTL ? e.mask.reverse() : e.mask).forEach((function(t) {\n\t\t u.length > 1 && (u += e.alternatormarker), void 0 !== t.mask && \"function\" != typeof t.mask ? u += t.mask : u += t;\n\t\t })), c(u += e.groupmarker[1], e.mask, e);\n\t\t }\n\t\t e.mask = e.mask.pop();\n\t\t }\n\t\t n = e.mask && void 0 !== e.mask.mask && \"function\" != typeof e.mask.mask ? c(e.mask.mask, e.mask, e) : c(e.mask, e.mask, e);\n\t\t null === e.keepStatic && (e.keepStatic = !1);\n\t\t return n;\n\t\t };\n\t\t var i = c(n(4963)), a = n(7184), r = c(n(2394)), o = c(n(9695));\n\t\t function l(e) {\n\t\t return l = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n\t\t return typeof e;\n\t\t } : function(e) {\n\t\t return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n\t\t }, l(e);\n\t\t }\n\t\t function s(e, t) {\n\t\t (null == t || t > e.length) && (t = e.length);\n\t\t for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];\n\t\t return i;\n\t\t }\n\t\t function c(e) {\n\t\t return e && e.__esModule ? e : {\n\t\t default: e\n\t\t };\n\t\t }\n\t\t },\n\t\t 157: function(e, t, n) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.mask = function() {\n\t\t var e = this, t = this.opts, n = this.el, c = this.dependencyLib;\n\t\t r.EventRuler.off(n);\n\t\t var u = function(t, n) {\n\t\t var i = t.getAttribute(\"type\"), a = \"input\" === t.tagName.toLowerCase() && n.supportsInputType.includes(i) || t.isContentEditable || \"textarea\" === t.tagName.toLowerCase();\n\t\t if (!a) if (\"input\" === t.tagName.toLowerCase()) {\n\t\t var s = document.createElement(\"input\");\n\t\t s.setAttribute(\"type\", i), a = \"text\" === s.type, s = null;\n\t\t } else a = \"partial\";\n\t\t return !1 !== a ? function(t) {\n\t\t var i, a;\n\t\t function s() {\n\t\t return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== l.getLastValidPosition.call(e) || !0 !== n.nullable ? (this.inputmask.shadowRoot || this.ownerDocument).activeElement === this && n.clearMaskOnLostFocus ? (e.isRTL ? o.clearOptionalTail.call(e, l.getBuffer.call(e).slice()).reverse() : o.clearOptionalTail.call(e, l.getBuffer.call(e).slice())).join(\"\") : i.call(this) : \"\" : i.call(this);\n\t\t }\n\t\t function u(e) {\n\t\t a.call(this, e), this.inputmask && (0, o.applyInputValue)(this, e);\n\t\t }\n\t\t if (!t.inputmask.__valueGet) {\n\t\t if (!0 !== n.noValuePatching) {\n\t\t if (Object.getOwnPropertyDescriptor) {\n\t\t var f = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t), \"value\") : void 0;\n\t\t f && f.get && f.set ? (i = f.get, a = f.set, Object.defineProperty(t, \"value\", {\n\t\t get: s,\n\t\t set: u,\n\t\t configurable: !0\n\t\t })) : \"input\" !== t.tagName.toLowerCase() && (i = function() {\n\t\t return this.textContent;\n\t\t }, a = function(e) {\n\t\t this.textContent = e;\n\t\t }, Object.defineProperty(t, \"value\", {\n\t\t get: s,\n\t\t set: u,\n\t\t configurable: !0\n\t\t }));\n\t\t } else document.__lookupGetter__ && t.__lookupGetter__(\"value\") && (i = t.__lookupGetter__(\"value\"), \n\t\t a = t.__lookupSetter__(\"value\"), t.__defineGetter__(\"value\", s), t.__defineSetter__(\"value\", u));\n\t\t t.inputmask.__valueGet = i, t.inputmask.__valueSet = a;\n\t\t }\n\t\t t.inputmask._valueGet = function(t) {\n\t\t return e.isRTL && !0 !== t ? i.call(this.el).split(\"\").reverse().join(\"\") : i.call(this.el);\n\t\t }, t.inputmask._valueSet = function(t, n) {\n\t\t a.call(this.el, null == t ? \"\" : !0 !== n && e.isRTL ? t.split(\"\").reverse().join(\"\") : t);\n\t\t }, void 0 === i && (i = function() {\n\t\t return this.value;\n\t\t }, a = function(e) {\n\t\t this.value = e;\n\t\t }, function(t) {\n\t\t if (c.valHooks && (void 0 === c.valHooks[t] || !0 !== c.valHooks[t].inputmaskpatch)) {\n\t\t var i = c.valHooks[t] && c.valHooks[t].get ? c.valHooks[t].get : function(e) {\n\t\t return e.value;\n\t\t }, a = c.valHooks[t] && c.valHooks[t].set ? c.valHooks[t].set : function(e, t) {\n\t\t return e.value = t, e;\n\t\t };\n\t\t c.valHooks[t] = {\n\t\t get: function(t) {\n\t\t if (t.inputmask) {\n\t\t if (t.inputmask.opts.autoUnmask) return t.inputmask.unmaskedvalue();\n\t\t var a = i(t);\n\t\t return -1 !== l.getLastValidPosition.call(e, void 0, void 0, t.inputmask.maskset.validPositions) || !0 !== n.nullable ? a : \"\";\n\t\t }\n\t\t return i(t);\n\t\t },\n\t\t set: function(e, t) {\n\t\t var n = a(e, t);\n\t\t return e.inputmask && (0, o.applyInputValue)(e, t), n;\n\t\t },\n\t\t inputmaskpatch: !0\n\t\t };\n\t\t }\n\t\t }(t.type), function(e) {\n\t\t r.EventRuler.on(e, \"mouseenter\", (function() {\n\t\t var e = this, t = e.inputmask._valueGet(!0);\n\t\t t != (e.inputmask.isRTL ? l.getBuffer.call(e.inputmask).slice().reverse() : l.getBuffer.call(e.inputmask)).join(\"\") && (0, o.applyInputValue)(e, t);\n\t\t }));\n\t\t }(t));\n\t\t }\n\t\t }(t) : t.inputmask = void 0, a;\n\t\t }(n, t);\n\t\t if (!1 !== u) {\n\t\t e.originalPlaceholder = n.placeholder, e.maxLength = void 0 !== n ? n.maxLength : void 0, \n\t\t -1 === e.maxLength && (e.maxLength = void 0), \"inputMode\" in n && null === n.getAttribute(\"inputmode\") && (n.inputMode = t.inputmode, \n\t\t n.setAttribute(\"inputmode\", t.inputmode)), !0 === u && (t.showMaskOnFocus = t.showMaskOnFocus && -1 === [ \"cc-number\", \"cc-exp\" ].indexOf(n.autocomplete), \n\t\t i.iphone && (t.insertModeVisual = !1, n.setAttribute(\"autocorrect\", \"off\")), r.EventRuler.on(n, \"submit\", a.EventHandlers.submitEvent), \n\t\t r.EventRuler.on(n, \"reset\", a.EventHandlers.resetEvent), r.EventRuler.on(n, \"blur\", a.EventHandlers.blurEvent), \n\t\t r.EventRuler.on(n, \"focus\", a.EventHandlers.focusEvent), r.EventRuler.on(n, \"invalid\", a.EventHandlers.invalidEvent), \n\t\t r.EventRuler.on(n, \"click\", a.EventHandlers.clickEvent), r.EventRuler.on(n, \"mouseleave\", a.EventHandlers.mouseleaveEvent), \n\t\t r.EventRuler.on(n, \"mouseenter\", a.EventHandlers.mouseenterEvent), r.EventRuler.on(n, \"paste\", a.EventHandlers.pasteEvent), \n\t\t r.EventRuler.on(n, \"cut\", a.EventHandlers.cutEvent), r.EventRuler.on(n, \"complete\", t.oncomplete), \n\t\t r.EventRuler.on(n, \"incomplete\", t.onincomplete), r.EventRuler.on(n, \"cleared\", t.oncleared), \n\t\t !0 !== t.inputEventOnly && r.EventRuler.on(n, \"keydown\", a.EventHandlers.keyEvent), \n\t\t (i.mobile || t.inputEventOnly) && n.removeAttribute(\"maxLength\"), r.EventRuler.on(n, \"input\", a.EventHandlers.inputFallBackEvent)), \n\t\t r.EventRuler.on(n, \"setvalue\", a.EventHandlers.setValueEvent), void 0 === e.applyMaskHook || e.applyMaskHook(), \n\t\t l.getBufferTemplate.call(e).join(\"\"), e.undoValue = e._valueGet(!0);\n\t\t var f = (n.inputmask.shadowRoot || n.ownerDocument).activeElement;\n\t\t if (\"\" !== n.inputmask._valueGet(!0) || !1 === t.clearMaskOnLostFocus || f === n) {\n\t\t (0, o.applyInputValue)(n, n.inputmask._valueGet(!0), t);\n\t\t var p = l.getBuffer.call(e).slice();\n\t\t !1 === s.isComplete.call(e, p) && t.clearIncomplete && l.resetMaskSet.call(e, !1), \n\t\t t.clearMaskOnLostFocus && f !== n && (-1 === l.getLastValidPosition.call(e) ? p = [] : o.clearOptionalTail.call(e, p)), \n\t\t (!1 === t.clearMaskOnLostFocus || t.showMaskOnFocus && f === n || \"\" !== n.inputmask._valueGet(!0)) && (0, o.writeBuffer)(n, p), f === n && l.caret.call(e, n, l.seekNext.call(e, l.getLastValidPosition.call(e)));\n\t\t }\n\t\t }\n\t\t };\n\t\t var i = n(9845), a = n(6030), r = n(9716), o = n(7760), l = n(8711), s = n(7215);\n\t\t },\n\t\t 9695: function(e, t) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.default = function(e, t, n, i) {\n\t\t this.matches = [], this.openGroup = e || !1, this.alternatorGroup = !1, this.isGroup = e || !1, \n\t\t this.isOptional = t || !1, this.isQuantifier = n || !1, this.isAlternator = i || !1, \n\t\t this.quantifier = {\n\t\t min: 1,\n\t\t max: 1\n\t\t };\n\t\t };\n\t\t },\n\t\t 3194: function() {\n\t\t Array.prototype.includes || Object.defineProperty(Array.prototype, \"includes\", {\n\t\t value: function(e, t) {\n\t\t if (null == this) throw new TypeError('\"this\" is null or not defined');\n\t\t var n = Object(this), i = n.length >>> 0;\n\t\t if (0 === i) return !1;\n\t\t for (var a = 0 | t, r = Math.max(a >= 0 ? a : i - Math.abs(a), 0); r < i; ) {\n\t\t if (n[r] === e) return !0;\n\t\t r++;\n\t\t }\n\t\t return !1;\n\t\t }\n\t\t });\n\t\t },\n\t\t 9302: function() {\n\t\t var e = Function.bind.call(Function.call, Array.prototype.reduce), t = Function.bind.call(Function.call, Object.prototype.propertyIsEnumerable), n = Function.bind.call(Function.call, Array.prototype.concat), i = Object.keys;\n\t\t Object.entries || (Object.entries = function(a) {\n\t\t return e(i(a), (function(e, i) {\n\t\t return n(e, \"string\" == typeof i && t(a, i) ? [ [ i, a[i] ] ] : []);\n\t\t }), []);\n\t\t });\n\t\t },\n\t\t 7149: function() {\n\t\t function e(t) {\n\t\t return e = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n\t\t return typeof e;\n\t\t } : function(e) {\n\t\t return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n\t\t }, e(t);\n\t\t }\n\t\t \"function\" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = \"object\" === e(\"test\".__proto__) ? function(e) {\n\t\t return e.__proto__;\n\t\t } : function(e) {\n\t\t return e.constructor.prototype;\n\t\t });\n\t\t },\n\t\t 4013: function() {\n\t\t String.prototype.includes || (String.prototype.includes = function(e, t) {\n\t\t return \"number\" != typeof t && (t = 0), !(t + e.length > this.length) && -1 !== this.indexOf(e, t);\n\t\t });\n\t\t },\n\t\t 8711: function(e, t, n) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.caret = function(e, t, n, i, r) {\n\t\t var o, l = this, s = this.opts;\n\t\t if (void 0 === t) return \"selectionStart\" in e && \"selectionEnd\" in e ? (t = e.selectionStart, \n\t\t n = e.selectionEnd) : a.default.getSelection ? (o = a.default.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode !== e && o.commonAncestorContainer !== e || (t = o.startOffset, \n\t\t n = o.endOffset) : document.selection && document.selection.createRange && (n = (t = 0 - (o = document.selection.createRange()).duplicate().moveStart(\"character\", -e.inputmask._valueGet().length)) + o.text.length), \n\t\t {\n\t\t begin: i ? t : f.call(l, t),\n\t\t end: i ? n : f.call(l, n)\n\t\t };\n\t\t if (Array.isArray(t) && (n = l.isRTL ? t[0] : t[1], t = l.isRTL ? t[1] : t[0]), \n\t\t void 0 !== t.begin && (n = l.isRTL ? t.begin : t.end, t = l.isRTL ? t.end : t.begin), \n\t\t \"number\" == typeof t) {\n\t\t t = i ? t : f.call(l, t), n = \"number\" == typeof (n = i ? n : f.call(l, n)) ? n : t;\n\t\t var c = parseInt(((e.ownerDocument.defaultView || a.default).getComputedStyle ? (e.ownerDocument.defaultView || a.default).getComputedStyle(e, null) : e.currentStyle).fontSize) * n;\n\t\t if (e.scrollLeft = c > e.scrollWidth ? c : 0, e.inputmask.caretPos = {\n\t\t begin: t,\n\t\t end: n\n\t\t }, s.insertModeVisual && !1 === s.insertMode && t === n && (r || n++), e === (e.inputmask.shadowRoot || e.ownerDocument).activeElement) {\n\t\t if (\"setSelectionRange\" in e) e.setSelectionRange(t, n); else if (a.default.getSelection) {\n\t\t if (o = document.createRange(), void 0 === e.firstChild || null === e.firstChild) {\n\t\t var u = document.createTextNode(\"\");\n\t\t e.appendChild(u);\n\t\t }\n\t\t o.setStart(e.firstChild, t < e.inputmask._valueGet().length ? t : e.inputmask._valueGet().length), \n\t\t o.setEnd(e.firstChild, n < e.inputmask._valueGet().length ? n : e.inputmask._valueGet().length), \n\t\t o.collapse(!0);\n\t\t var p = a.default.getSelection();\n\t\t p.removeAllRanges(), p.addRange(o);\n\t\t } else e.createTextRange && ((o = e.createTextRange()).collapse(!0), o.moveEnd(\"character\", n), \n\t\t o.moveStart(\"character\", t), o.select());\n\t\t void 0 === e.inputmask.caretHook || e.inputmask.caretHook.call(l, {\n\t\t begin: t,\n\t\t end: n\n\t\t });\n\t\t }\n\t\t }\n\t\t }, t.determineLastRequiredPosition = function(e) {\n\t\t var t, n, i = this, a = i.maskset, l = i.dependencyLib, c = s.call(i), u = {}, f = a.validPositions[c], p = o.getMaskTemplate.call(i, !0, s.call(i), !0, !0), d = p.length, h = void 0 !== f ? f.locator.slice() : void 0;\n\t\t for (t = c + 1; t < p.length; t++) h = (n = o.getTestTemplate.call(i, t, h, t - 1)).locator.slice(), \n\t\t u[t] = l.extend(!0, {}, n);\n\t\t var v = f && void 0 !== f.alternation ? f.locator[f.alternation] : void 0;\n\t\t for (t = d - 1; t > c && (((n = u[t]).match.optionality || n.match.optionalQuantifier && n.match.newBlockMarker || v && (v !== u[t].locator[f.alternation] && !0 !== n.match.static || !0 === n.match.static && n.locator[f.alternation] && r.checkAlternationMatch.call(i, n.locator[f.alternation].toString().split(\",\"), v.toString().split(\",\")) && \"\" !== o.getTests.call(i, t)[0].def)) && p[t] === o.getPlaceholder.call(i, t, n.match)); t--) d--;\n\t\t return e ? {\n\t\t l: d,\n\t\t def: u[d] ? u[d].match : void 0\n\t\t } : d;\n\t\t }, t.determineNewCaretPosition = function(e, t, n) {\n\t\t var i, a, r, f = this, p = f.maskset, d = f.opts;\n\t\t t && (f.isRTL ? e.end = e.begin : e.begin = e.end);\n\t\t if (e.begin === e.end) {\n\t\t switch (n = n || d.positionCaretOnClick) {\n\t\t case \"none\":\n\t\t break;\n\n\t\t case \"select\":\n\t\t e = {\n\t\t begin: 0,\n\t\t end: l.call(f).length\n\t\t };\n\t\t break;\n\n\t\t case \"ignore\":\n\t\t e.end = e.begin = u.call(f, s.call(f));\n\t\t break;\n\n\t\t case \"radixFocus\":\n\t\t if (f.clicked > 1 && 0 === p.validPositions.length) break;\n\t\t if (function(e) {\n\t\t if (\"\" !== d.radixPoint && 0 !== d.digits) {\n\t\t var t = p.validPositions;\n\t\t if (void 0 === t[e] || void 0 === t[e].input) {\n\t\t if (e < u.call(f, -1)) return !0;\n\t\t var n = l.call(f).indexOf(d.radixPoint);\n\t\t if (-1 !== n) {\n\t\t for (var i = 0, a = t.length; i < a; i++) if (t[i] && n < i && t[i].input !== o.getPlaceholder.call(f, i)) return !1;\n\t\t return !0;\n\t\t }\n\t\t }\n\t\t }\n\t\t return !1;\n\t\t }(e.begin)) {\n\t\t var h = l.call(f).join(\"\").indexOf(d.radixPoint);\n\t\t e.end = e.begin = d.numericInput ? u.call(f, h) : h;\n\t\t break;\n\t\t }\n\n\t\t default:\n\t\t if (i = e.begin, a = s.call(f, i, !0), i <= (r = u.call(f, -1 !== a || c.call(f, 0) ? a : -1))) e.end = e.begin = c.call(f, i, !1, !0) ? i : u.call(f, i); else {\n\t\t var v = p.validPositions[a], m = o.getTestTemplate.call(f, r, v ? v.match.locator : void 0, v), g = o.getPlaceholder.call(f, r, m.match);\n\t\t if (\"\" !== g && l.call(f)[r] !== g && !0 !== m.match.optionalQuantifier && !0 !== m.match.newBlockMarker || !c.call(f, r, d.keepStatic, !0) && m.match.def === g) {\n\t\t var y = u.call(f, r);\n\t\t (i >= y || i === r) && (r = y);\n\t\t }\n\t\t e.end = e.begin = r;\n\t\t }\n\t\t }\n\t\t return e;\n\t\t }\n\t\t }, t.getBuffer = l, t.getBufferTemplate = function() {\n\t\t var e = this.maskset;\n\t\t void 0 === e._buffer && (e._buffer = o.getMaskTemplate.call(this, !1, 1), void 0 === e.buffer && (e.buffer = e._buffer.slice()));\n\t\t return e._buffer;\n\t\t }, t.getLastValidPosition = s, t.isMask = c, t.resetMaskSet = function(e) {\n\t\t var t = this.maskset;\n\t\t t.buffer = void 0, !0 !== e && (t.validPositions = [], t.p = 0);\n\t\t !1 === e && (t.tests = {}, t.jitOffset = {});\n\t\t }, t.seekNext = u, t.seekPrevious = function(e, t) {\n\t\t var n = this, i = e - 1;\n\t\t if (e <= 0) return 0;\n\t\t for (;i > 0 && (!0 === t && (!0 !== o.getTest.call(n, i).match.newBlockMarker || !c.call(n, i, void 0, !0)) || !0 !== t && !c.call(n, i, void 0, !0)); ) i--;\n\t\t return i;\n\t\t }, t.translatePosition = f;\n\t\t var i, a = (i = n(9380)) && i.__esModule ? i : {\n\t\t default: i\n\t\t }, r = n(7215), o = n(4713);\n\t\t function l(e) {\n\t\t var t = this, n = t.maskset;\n\t\t return void 0 !== n.buffer && !0 !== e || (n.buffer = o.getMaskTemplate.call(t, !0, s.call(t), !0), \n\t\t void 0 === n._buffer && (n._buffer = n.buffer.slice())), n.buffer;\n\t\t }\n\t\t function s(e, t, n) {\n\t\t var i = this.maskset, a = -1, r = -1, o = n || i.validPositions;\n\t\t void 0 === e && (e = -1);\n\t\t for (var l = 0, s = o.length; l < s; l++) o[l] && (t || !0 !== o[l].generatedInput) && (l <= e && (a = l), \n\t\t l >= e && (r = l));\n\t\t return -1 === a || a === e ? r : -1 === r || e - a < r - e ? a : r;\n\t\t }\n\t\t function c(e, t, n) {\n\t\t var i = this, a = this.maskset, r = o.getTestTemplate.call(i, e).match;\n\t\t if (\"\" === r.def && (r = o.getTest.call(i, e).match), !0 !== r.static) return r.fn;\n\t\t if (!0 === n && void 0 !== a.validPositions[e] && !0 !== a.validPositions[e].generatedInput) return !0;\n\t\t if (!0 !== t && e > -1) {\n\t\t if (n) {\n\t\t var l = o.getTests.call(i, e);\n\t\t return l.length > 1 + (\"\" === l[l.length - 1].match.def ? 1 : 0);\n\t\t }\n\t\t var s = o.determineTestTemplate.call(i, e, o.getTests.call(i, e)), c = o.getPlaceholder.call(i, e, s.match);\n\t\t return s.match.def !== c;\n\t\t }\n\t\t return !1;\n\t\t }\n\t\t function u(e, t, n) {\n\t\t var i = this;\n\t\t void 0 === n && (n = !0);\n\t\t for (var a = e + 1; \"\" !== o.getTest.call(i, a).match.def && (!0 === t && (!0 !== o.getTest.call(i, a).match.newBlockMarker || !c.call(i, a, void 0, !0)) || !0 !== t && !c.call(i, a, void 0, n)); ) a++;\n\t\t return a;\n\t\t }\n\t\t function f(e) {\n\t\t var t = this.opts, n = this.el;\n\t\t return !this.isRTL || \"number\" != typeof e || t.greedy && \"\" === t.placeholder || !n || (e = this._valueGet().length - e) < 0 && (e = 0), \n\t\t e;\n\t\t }\n\t\t },\n\t\t 4713: function(e, t, n) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.determineTestTemplate = f, t.getDecisionTaker = s, t.getMaskTemplate = function(e, t, n, i, a) {\n\t\t var r = this, o = this.opts, l = this.maskset, s = o.greedy;\n\t\t a && o.greedy && (o.greedy = !1, r.maskset.tests = {});\n\t\t t = t || 0;\n\t\t var p, d, v, m, g = [], y = 0;\n\t\t do {\n\t\t if (!0 === e && l.validPositions[y]) d = (v = a && l.validPositions[y].match.optionality && void 0 === l.validPositions[y + 1] && (!0 === l.validPositions[y].generatedInput || l.validPositions[y].input == o.skipOptionalPartCharacter && y > 0) ? f.call(r, y, h.call(r, y, p, y - 1)) : l.validPositions[y]).match, \n\t\t p = v.locator.slice(), g.push(!0 === n ? v.input : !1 === n ? d.nativeDef : c.call(r, y, d)); else {\n\t\t d = (v = u.call(r, y, p, y - 1)).match, p = v.locator.slice();\n\t\t var k = !0 !== i && (!1 !== o.jitMasking ? o.jitMasking : d.jit);\n\t\t (m = (m || l.validPositions[y - 1]) && d.static && d.def !== o.groupSeparator && null === d.fn) || !1 === k || void 0 === k || \"number\" == typeof k && isFinite(k) && k > y ? g.push(!1 === n ? d.nativeDef : c.call(r, g.length, d)) : m = !1;\n\t\t }\n\t\t y++;\n\t\t } while (!0 !== d.static || \"\" !== d.def || t > y);\n\t\t \"\" === g[g.length - 1] && g.pop();\n\t\t !1 === n && void 0 !== l.maskLength || (l.maskLength = y - 1);\n\t\t return o.greedy = s, g;\n\t\t }, t.getPlaceholder = c, t.getTest = p, t.getTestTemplate = u, t.getTests = h, t.isSubsetOf = d;\n\t\t var i, a = (i = n(2394)) && i.__esModule ? i : {\n\t\t default: i\n\t\t }, r = n(8711);\n\t\t function o(e) {\n\t\t return o = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n\t\t return typeof e;\n\t\t } : function(e) {\n\t\t return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n\t\t }, o(e);\n\t\t }\n\t\t function l(e, t) {\n\t\t var n = (null != e.alternation ? e.mloc[s(e)] : e.locator).join(\"\");\n\t\t if (\"\" !== n) for (n = n.split(\":\")[0]; n.length < t; ) n += \"0\";\n\t\t return n;\n\t\t }\n\t\t function s(e) {\n\t\t var t = e.locator[e.alternation];\n\t\t return \"string\" == typeof t && t.length > 0 && (t = t.split(\",\")[0]), void 0 !== t ? t.toString() : \"\";\n\t\t }\n\t\t function c(e, t, n) {\n\t\t var i = this, a = this.opts, l = this.maskset;\n\t\t if (void 0 !== (t = t || p.call(i, e).match).placeholder || !0 === n) {\n\t\t if (\"\" !== t.placeholder && !0 === t.static && !0 !== t.generated) {\n\t\t var s = r.getLastValidPosition.call(i, e), c = r.seekNext.call(i, s);\n\t\t return (n ? e <= c : e < c) ? a.staticDefinitionSymbol && t.static ? t.nativeDef : t.def : \"function\" == typeof t.placeholder ? t.placeholder(a) : t.placeholder;\n\t\t }\n\t\t return \"function\" == typeof t.placeholder ? t.placeholder(a) : t.placeholder;\n\t\t }\n\t\t if (!0 === t.static) {\n\t\t if (e > -1 && void 0 === l.validPositions[e]) {\n\t\t var u, f = h.call(i, e), d = [];\n\t\t if (\"string\" == typeof a.placeholder && f.length > 1 + (\"\" === f[f.length - 1].match.def ? 1 : 0)) for (var v = 0; v < f.length; v++) if (\"\" !== f[v].match.def && !0 !== f[v].match.optionality && !0 !== f[v].match.optionalQuantifier && (!0 === f[v].match.static || void 0 === u || !1 !== f[v].match.fn.test(u.match.def, l, e, !0, a)) && (d.push(f[v]), \n\t\t !0 === f[v].match.static && (u = f[v]), d.length > 1 && /[0-9a-bA-Z]/.test(d[0].match.def))) return a.placeholder.charAt(e % a.placeholder.length);\n\t\t }\n\t\t return t.def;\n\t\t }\n\t\t return \"object\" === o(a.placeholder) ? t.def : a.placeholder.charAt(e % a.placeholder.length);\n\t\t }\n\t\t function u(e, t, n) {\n\t\t return this.maskset.validPositions[e] || f.call(this, e, h.call(this, e, t ? t.slice() : t, n));\n\t\t }\n\t\t function f(e, t) {\n\t\t var n = this.opts, i = 0, a = function(e, t) {\n\t\t var n = 0, i = !1;\n\t\t t.forEach((function(e) {\n\t\t e.match.optionality && (0 !== n && n !== e.match.optionality && (i = !0), (0 === n || n > e.match.optionality) && (n = e.match.optionality));\n\t\t })), n && (0 == e || 1 == t.length ? n = 0 : i || (n = 0));\n\t\t return n;\n\t\t }(e, t);\n\t\t e = e > 0 ? e - 1 : 0;\n\t\t var r, o, s, c = l(p.call(this, e));\n\t\t n.greedy && t.length > 1 && \"\" === t[t.length - 1].match.def && (i = 1);\n\t\t for (var u = 0; u < t.length - i; u++) {\n\t\t var f = t[u];\n\t\t r = l(f, c.length);\n\t\t var d = Math.abs(r - c);\n\t\t (!0 !== f.unMatchedAlternationStopped || t.filter((function(e) {\n\t\t return !0 !== e.unMatchedAlternationStopped;\n\t\t })).length <= 1) && (void 0 === o || \"\" !== r && d < o || s && !n.greedy && s.match.optionality && s.match.optionality - a > 0 && \"master\" === s.match.newBlockMarker && (!f.match.optionality || f.match.optionality - a < 1 || !f.match.newBlockMarker) || s && !n.greedy && s.match.optionalQuantifier && !f.match.optionalQuantifier) && (o = d, \n\t\t s = f);\n\t\t }\n\t\t return s;\n\t\t }\n\t\t function p(e, t) {\n\t\t var n = this.maskset;\n\t\t return n.validPositions[e] ? n.validPositions[e] : (t || h.call(this, e))[0];\n\t\t }\n\t\t function d(e, t, n) {\n\t\t function i(e) {\n\t\t for (var t, n = [], i = -1, a = 0, r = e.length; a < r; a++) if (\"-\" === e.charAt(a)) for (t = e.charCodeAt(a + 1); ++i < t; ) n.push(String.fromCharCode(i)); else i = e.charCodeAt(a), \n\t\t n.push(e.charAt(a));\n\t\t return n.join(\"\");\n\t\t }\n\t\t return e.match.def === t.match.nativeDef || !(!(n.regex || e.match.fn instanceof RegExp && t.match.fn instanceof RegExp) || !0 === e.match.static || !0 === t.match.static) && (\".\" === t.match.fn.source || -1 !== i(t.match.fn.source.replace(/[[\\]/]/g, \"\")).indexOf(i(e.match.fn.source.replace(/[[\\]/]/g, \"\"))));\n\t\t }\n\t\t function h(e, t, n) {\n\t\t var i, r, o = this, l = this.dependencyLib, s = this.maskset, c = this.opts, u = this.el, p = s.maskToken, h = t ? n : 0, v = t ? t.slice() : [ 0 ], m = [], g = !1, y = t ? t.join(\"\") : \"\", k = !1;\n\t\t function b(t, n, r, l) {\n\t\t function f(r, l, p) {\n\t\t function v(e, t) {\n\t\t var n = 0 === t.matches.indexOf(e);\n\t\t return n || t.matches.every((function(i, a) {\n\t\t return !0 === i.isQuantifier ? n = v(e, t.matches[a - 1]) : Object.prototype.hasOwnProperty.call(i, \"matches\") && (n = v(e, i)), \n\t\t !n;\n\t\t })), n;\n\t\t }\n\t\t function w(e, t, n) {\n\t\t var i, a;\n\t\t if ((s.tests[e] || s.validPositions[e]) && (s.validPositions[e] ? [ s.validPositions[e] ] : s.tests[e]).every((function(e, r) {\n\t\t if (e.mloc[t]) return i = e, !1;\n\t\t var o = void 0 !== n ? n : e.alternation, l = void 0 !== e.locator[o] ? e.locator[o].toString().indexOf(t) : -1;\n\t\t return (void 0 === a || l < a) && -1 !== l && (i = e, a = l), !0;\n\t\t })), i) {\n\t\t var r = i.locator[i.alternation], o = i.mloc[t] || i.mloc[r] || i.locator;\n\t\t if (-1 !== o[o.length - 1].toString().indexOf(\":\")) o.pop();\n\t\t return o.slice((void 0 !== n ? n : i.alternation) + 1);\n\t\t }\n\t\t return void 0 !== n ? w(e, t) : void 0;\n\t\t }\n\t\t function P(t, n) {\n\t\t return !0 === t.match.static && !0 !== n.match.static && n.match.fn.test(t.match.def, s, e, !1, c, !1);\n\t\t }\n\t\t function S(e, t) {\n\t\t var n = e.alternation, i = void 0 === t || n <= t.alternation && -1 === e.locator[n].toString().indexOf(t.locator[n]);\n\t\t if (!i && n > t.alternation) for (var a = 0; a < n; a++) if (e.locator[a] !== t.locator[a]) {\n\t\t n = a, i = !0;\n\t\t break;\n\t\t }\n\t\t return !!i && function(n) {\n\t\t e.mloc = e.mloc || {};\n\t\t var i = e.locator[n];\n\t\t if (void 0 !== i) {\n\t\t if (\"string\" == typeof i && (i = i.split(\",\")[0]), void 0 === e.mloc[i] && (e.mloc[i] = e.locator.slice(), \n\t\t e.mloc[i].push(\":\".concat(e.alternation))), void 0 !== t) {\n\t\t for (var a in t.mloc) \"string\" == typeof a && (a = parseInt(a.split(\",\")[0])), e.mloc[a + 0] = t.mloc[a];\n\t\t e.locator[n] = Object.keys(e.mloc).join(\",\");\n\t\t }\n\t\t return e.alternation > n && (e.alternation = n), !0;\n\t\t }\n\t\t return e.alternation = void 0, !1;\n\t\t }(n);\n\t\t }\n\t\t function O(e, t) {\n\t\t if (e.locator.length !== t.locator.length) return !1;\n\t\t for (var n = e.alternation + 1; n < e.locator.length; n++) if (e.locator[n] !== t.locator[n]) return !1;\n\t\t return !0;\n\t\t }\n\t\t if (h > e + c._maxTestPos) throw new Error(\"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \".concat(s.mask));\n\t\t if (h === e && void 0 === r.matches) {\n\t\t if (m.push({\n\t\t match: r,\n\t\t locator: l.reverse(),\n\t\t cd: y,\n\t\t mloc: {}\n\t\t }), !r.optionality || void 0 !== p || !(c.definitions && c.definitions[r.nativeDef] && c.definitions[r.nativeDef].optional || a.default.prototype.definitions[r.nativeDef] && a.default.prototype.definitions[r.nativeDef].optional)) return !0;\n\t\t g = !0, h = e;\n\t\t } else if (void 0 !== r.matches) {\n\t\t if (r.isGroup && p !== r) return function() {\n\t\t if (r = f(t.matches[t.matches.indexOf(r) + 1], l, p)) return !0;\n\t\t }();\n\t\t if (r.isOptional) return function() {\n\t\t var t = r, a = m.length;\n\t\t if (r = b(r, n, l, p), m.length > 0) {\n\t\t if (m.forEach((function(e, t) {\n\t\t t >= a && (e.match.optionality = e.match.optionality ? e.match.optionality + 1 : 1);\n\t\t })), i = m[m.length - 1].match, void 0 !== p || !v(i, t)) return r;\n\t\t g = !0, h = e;\n\t\t }\n\t\t }();\n\t\t if (r.isAlternator) return function() {\n\t\t function i(e) {\n\t\t for (var t, n = e.matches[0].matches ? e.matches[0].matches.length : 1, i = 0; i < e.matches.length && n === (t = e.matches[i].matches ? e.matches[i].matches.length : 1); i++) ;\n\t\t return n !== t;\n\t\t }\n\t\t o.hasAlternator = !0;\n\t\t var a, v = r, y = [], b = m.slice(), x = l.length, _ = n.length > 0 ? n.shift() : -1;\n\t\t if (-1 === _ || \"string\" == typeof _) {\n\t\t var M, E = h, j = n.slice(), T = [];\n\t\t if (\"string\" == typeof _) T = _.split(\",\"); else for (M = 0; M < v.matches.length; M++) T.push(M.toString());\n\t\t if (void 0 !== s.excludes[e]) {\n\t\t for (var A = T.slice(), D = 0, L = s.excludes[e].length; D < L; D++) {\n\t\t var C = s.excludes[e][D].toString().split(\":\");\n\t\t l.length == C[1] && T.splice(T.indexOf(C[0]), 1);\n\t\t }\n\t\t 0 === T.length && (delete s.excludes[e], T = A);\n\t\t }\n\t\t (!0 === c.keepStatic || isFinite(parseInt(c.keepStatic)) && E >= c.keepStatic) && (T = T.slice(0, 1));\n\t\t for (var R = 0; R < T.length; R++) {\n\t\t M = parseInt(T[R]), m = [], n = \"string\" == typeof _ && w(h, M, x) || j.slice();\n\t\t var B = v.matches[M];\n\t\t if (B && f(B, [ M ].concat(l), p)) r = !0; else if (0 === R && (k = i(v)), B && B.matches && B.matches.length > v.matches[0].matches.length) break;\n\t\t a = m.slice(), h = E, m = [];\n\t\t for (var I = 0; I < a.length; I++) {\n\t\t var F = a[I], N = !1;\n\t\t F.alternation = F.alternation || x, S(F);\n\t\t for (var V = 0; V < y.length; V++) {\n\t\t var G = y[V];\n\t\t if (\"string\" != typeof _ || void 0 !== F.alternation && T.includes(F.locator[F.alternation].toString())) {\n\t\t if (F.match.nativeDef === G.match.nativeDef) {\n\t\t N = !0, S(G, F);\n\t\t break;\n\t\t }\n\t\t if (d(F, G, c)) {\n\t\t S(F, G) && (N = !0, y.splice(y.indexOf(G), 0, F));\n\t\t break;\n\t\t }\n\t\t if (d(G, F, c)) {\n\t\t S(G, F);\n\t\t break;\n\t\t }\n\t\t if (P(F, G)) {\n\t\t O(F, G) || void 0 !== u.inputmask.userOptions.keepStatic ? S(F, G) && (N = !0, y.splice(y.indexOf(G), 0, F)) : c.keepStatic = !0;\n\t\t break;\n\t\t }\n\t\t if (P(G, F)) {\n\t\t S(G, F);\n\t\t break;\n\t\t }\n\t\t }\n\t\t }\n\t\t N || y.push(F);\n\t\t }\n\t\t }\n\t\t m = b.concat(y), h = e, g = m.length > 0 && k, r = y.length > 0 && !k, k && g && !r && m.forEach((function(e, t) {\n\t\t e.unMatchedAlternationStopped = !0;\n\t\t })), n = j.slice();\n\t\t } else r = f(v.matches[_] || t.matches[_], [ _ ].concat(l), p);\n\t\t if (r) return !0;\n\t\t }();\n\t\t if (r.isQuantifier && p !== t.matches[t.matches.indexOf(r) - 1]) return function() {\n\t\t for (var a = r, o = !1, u = n.length > 0 ? n.shift() : 0; u < (isNaN(a.quantifier.max) ? u + 1 : a.quantifier.max) && h <= e; u++) {\n\t\t var p = t.matches[t.matches.indexOf(a) - 1];\n\t\t if (r = f(p, [ u ].concat(l), p)) {\n\t\t if (m.forEach((function(t, n) {\n\t\t (i = x(p, t.match) ? t.match : m[m.length - 1].match).optionalQuantifier = u >= a.quantifier.min, \n\t\t i.jit = (u + 1) * (p.matches.indexOf(i) + 1) > a.quantifier.jit, i.optionalQuantifier && v(i, p) && (g = !0, \n\t\t h = e, c.greedy && null == s.validPositions[e - 1] && u > a.quantifier.min && -1 != [ \"*\", \"+\" ].indexOf(a.quantifier.max) && (m.pop(), \n\t\t y = void 0), o = !0, r = !1), !o && i.jit && (s.jitOffset[e] = p.matches.length - p.matches.indexOf(i));\n\t\t })), o) break;\n\t\t return !0;\n\t\t }\n\t\t }\n\t\t }();\n\t\t if (r = b(r, n, l, p)) return !0;\n\t\t } else h++;\n\t\t }\n\t\t for (var p = n.length > 0 ? n.shift() : 0; p < t.matches.length; p++) if (!0 !== t.matches[p].isQuantifier) {\n\t\t var v = f(t.matches[p], [ p ].concat(r), l);\n\t\t if (v && h === e) return v;\n\t\t if (h > e) break;\n\t\t }\n\t\t }\n\t\t function x(e, t) {\n\t\t var n = -1 != e.matches.indexOf(t);\n\t\t return n || e.matches.forEach((function(e, i) {\n\t\t void 0 === e.matches || n || (n = x(e, t));\n\t\t })), n;\n\t\t }\n\t\t if (e > -1) {\n\t\t if (void 0 === t) {\n\t\t for (var w, P = e - 1; void 0 === (w = s.validPositions[P] || s.tests[P]) && P > -1; ) P--;\n\t\t void 0 !== w && P > -1 && (v = function(e, t) {\n\t\t var n, i = [];\n\t\t return Array.isArray(t) || (t = [ t ]), t.length > 0 && (void 0 === t[0].alternation || !0 === c.keepStatic ? 0 === (i = f.call(o, e, t.slice()).locator.slice()).length && (i = t[0].locator.slice()) : t.forEach((function(e) {\n\t\t \"\" !== e.def && (0 === i.length ? (n = e.alternation, i = e.locator.slice()) : e.locator[n] && -1 === i[n].toString().indexOf(e.locator[n]) && (i[n] += \",\" + e.locator[n]));\n\t\t }))), i;\n\t\t }(P, w), y = v.join(\"\"), h = P);\n\t\t }\n\t\t if (s.tests[e] && s.tests[e][0].cd === y) return s.tests[e];\n\t\t for (var S = v.shift(); S < p.length; S++) {\n\t\t if (b(p[S], v, [ S ]) && h === e || h > e) break;\n\t\t }\n\t\t }\n\t\t return (0 === m.length || g) && m.push({\n\t\t match: {\n\t\t fn: null,\n\t\t static: !0,\n\t\t optionality: !1,\n\t\t casing: null,\n\t\t def: \"\",\n\t\t placeholder: \"\"\n\t\t },\n\t\t locator: k && 0 === m.filter((function(e) {\n\t\t return !0 !== e.unMatchedAlternationStopped;\n\t\t })).length ? [ 0 ] : [],\n\t\t mloc: {},\n\t\t cd: y\n\t\t }), void 0 !== t && s.tests[e] ? r = l.extend(!0, [], m) : (s.tests[e] = l.extend(!0, [], m), \n\t\t r = s.tests[e]), m.forEach((function(e) {\n\t\t e.match.optionality = e.match.defOptionality || !1;\n\t\t })), r;\n\t\t }\n\t\t },\n\t\t 7215: function(e, t, n) {\n\t\t Object.defineProperty(t, \"__esModule\", {\n\t\t value: !0\n\t\t }), t.alternate = l, t.checkAlternationMatch = function(e, t, n) {\n\t\t for (var i, a = this.opts.greedy ? t : t.slice(0, 1), r = !1, o = void 0 !== n ? n.split(\",\") : [], l = 0; l < o.length; l++) -1 !== (i = e.indexOf(o[l])) && e.splice(i, 1);\n\t\t for (var s = 0; s < e.length; s++) if (a.includes(e[s])) {\n\t\t r = !0;\n\t\t break;\n\t\t }\n\t\t return r;\n\t\t }, t.handleRemove = function(e, t, n, i, s) {\n\t\t var c = this, u = this.maskset, f = this.opts;\n\t\t if ((f.numericInput || c.isRTL) && (t === a.keys.Backspace ? t = a.keys.Delete : t === a.keys.Delete && (t = a.keys.Backspace), \n\t\t c.isRTL)) {\n\t\t var p = n.end;\n\t\t n.end = n.begin, n.begin = p;\n\t\t }\n\t\t var d, h = r.getLastValidPosition.call(c, void 0, !0);\n\t\t n.end >= r.getBuffer.call(c).length && h >= n.end && (n.end = h + 1);\n\t\t t === a.keys.Backspace ? n.end - n.begin < 1 && (n.begin = r.seekPrevious.call(c, n.begin)) : t === a.keys.Delete && n.begin === n.end && (n.end = r.isMask.call(c, n.end, !0, !0) ? n.end + 1 : r.seekNext.call(c, n.end) + 1);\n\t\t !1 !== (d = v.call(c, n)) && ((!0 !== i && !1 !== f.keepStatic || null !== f.regex && -1 !== o.getTest.call(c, n.begin).match.def.indexOf(\"|\")) && l.call(c, !0), \n\t\t !0 !== i && (u.p = t === a.keys.Delete ? n.begin + d : n.begin, u.p = r.determineNewCaretPosition.call(c, {\n\t\t begin: u.p,\n\t\t end: u.p\n\t\t }, !1, !1 === f.insertMode && t === a.keys.Backspace ? \"none\" : void 0).begin));\n\t\t }, t.isComplete = c, t.isSelection = u, t.isValid = f, t.refreshFromBuffer = d, \n\t\t t.revalidateMask = v;\n\t\t var i = n(6030), a = n(2839), r = n(8711), o = n(4713);\n\t\t function l(e, t, n, i, a, s) {\n\t\t var c = this, u = this.dependencyLib, p = this.opts, d = c.maskset;\n\t\t if (!c.hasAlternator) return !1;\n\t\t var h, v, m, g, y, k, b, x, w, P, S, O = u.extend(!0, [], d.validPositions), _ = u.extend(!0, {}, d.tests), M = !1, E = !1, j = void 0 !== a ? a : r.getLastValidPosition.call(c);\n\t\t if (s && (P = s.begin, S = s.end, s.begin > s.end && (P = s.end, S = s.begin)), \n\t\t -1 === j && void 0 === a) h = 0, v = (g = o.getTest.call(c, h)).alternation; else for (;j >= 0; j--) if ((m = d.validPositions[j]) && void 0 !== m.alternation) {\n\t\t if (j <= (e || 0) && g && g.locator[m.alternation] !== m.locator[m.alternation]) break;\n\t\t h = j, v = d.validPositions[h].alternation, g = m;\n\t\t }\n\t\t if (void 0 !== v) {\n\t\t b = parseInt(h), d.excludes[b] = d.excludes[b] || [], !0 !== e && d.excludes[b].push((0, o.getDecisionTaker)(g) + \":\" + g.alternation);\n\t\t var T = [], A = -1;\n\t\t for (y = b; b < r.getLastValidPosition.call(c, void 0, !0) + 1; y++) -1 === A && e <= y && void 0 !== t && (T.push(t), \n\t\t A = T.length - 1), (k = d.validPositions[b]) && !0 !== k.generatedInput && (void 0 === s || y < P || y >= S) && T.push(k.input), \n\t\t d.validPositions.splice(b, 1);\n\t\t for (-1 === A && void 0 !== t && (T.push(t), A = T.length - 1); void 0 !== d.excludes[b] && d.excludes[b].length < 10; ) {\n\t\t for (d.tests = {}, r.resetMaskSet.call(c, !0), M = !0, y = 0; y < T.length && (x = M.caret || 0 == p.insertMode && null != x ? r.seekNext.call(c, x) : r.getLastValidPosition.call(c, void 0, !0) + 1, \n\t\t w = T[y], M = f.call(c, x, w, !1, i, !0)); y++) y === A && (E = M), 1 == e && M && (E = {\n\t\t caretPos: y\n\t\t });\n\t\t if (M) break;\n\t\t if (r.resetMaskSet.call(c), g = o.getTest.call(c, b), d.validPositions = u.extend(!0, [], O), \n\t\t d.tests = u.extend(!0, {}, _), !d.excludes[b]) {\n\t\t E = l.call(c, e, t, n, i, b - 1, s);\n\t\t break;\n\t\t }\n\t\t if (null != g.alternation) {\n\t\t var D = (0, o.getDecisionTaker)(g);\n\t\t if (-1 !== d.excludes[b].indexOf(D + \":\" + g.alternation)) {\n\t\t E = l.call(c, e, t, n, i, b - 1, s);\n\t\t break;\n\t\t }\n\t\t for (d.excludes[b].push(D + \":\" + g.alternation), y = b; y < r.getLastValidPosition.call(c, void 0, !0) + 1; y++) d.validPositions.splice(b);\n\t\t } else delete d.excludes[b];\n\t\t }\n\t\t }\n\t\t return E && !1 === p.keepStatic || delete d.excludes[b], E;\n\t\t }\n\t\t function s(e, t, n) {\n\t\t var i = this.opts, r = this.maskset;\n\t\t switch (i.casing || t.casing) {\n\t\t case \"upper\":\n\t\t e = e.toUpperCase();\n\t\t break;\n\n\t\t case \"lower\":\n\t\t e = e.toLowerCase();\n\t\t break;\n\n\t\t case \"title\":\n\t\t var o = r.validPositions[n - 1];\n\t\t e = 0 === n || o && o.input === String.fromCharCode(a.keyCode.Space) ? e.toUpperCase() : e.toLowerCase();\n\t\t break;\n\n\t\t default:\n\t\t if (\"function\" == typeof i.casing) {\n\t\t var l = Array.prototype.slice.call(arguments);\n\t\t l.push(r.validPositions), e = i.casing.apply(this, l);\n\t\t }\n\t\t }\n\t\t return e;\n\t\t }\n\t\t function c(e) {\n\t\t var t = this, n = this.opts, i = this.maskset;\n\t\t if (\"function\" == typeof n.isComplete) return n.isComplete(e, n);\n\t\t if (\"*\" !== n.repeat) {\n\t\t var a = !1, l = r.determineLastRequiredPosition.call(t, !0), s = l.l;\n\t\t if (void 0 === l.def || l.def.newBlockMarker || l.def.optionality || l.def.optionalQuantifier) {\n\t\t a = !0;\n\t\t for (var c = 0; c <= s; c++) {\n\t\t var u = o.getTestTemplate.call(t, c).match;\n\t\t if (!0 !== u.static && void 0 === i.validPositions[c] && (!1 === u.optionality || void 0 === u.optionality || u.optionality && 0 == u.newBlockMarker) && (!1 === u.optionalQuantifier || void 0 === u.optionalQuantifier) || !0 === u.static && \"\" != u.def && e[c] !== o.getPlaceholder.call(t, c, u)) {\n\t\t a = !1;\n\t\t break;\n\t\t }\n\t\t }\n\t\t }\n\t\t return a;\n\t\t }\n\t\t }\n\t\t function u(e) {\n\t\t var t = this.opts.insertMode ? 0 : 1;\n\t\t return this.isRTL ? e.begin - e.end > t : e.end - e.begin > t;\n\t\t }\n\t\t function f(e, t, n, i, a, p, m) {\n\t\t var g = this, y = this.dependencyLib, k = this.opts, b = g.maskset;\n\t\t n = !0 === n;\n\t\t var x = e;\n\t\t function w(e) {\n\t\t if (void 0 !== e) {\n\t\t if (void 0 !== e.remove && (Array.isArray(e.remove) || (e.remove = [ e.remove ]), \n\t\t e.remove.sort((function(e, t) {\n\t\t return g.isRTL ? e.pos - t.pos : t.pos - e.pos;\n\t\t })).forEach((function(e) {\n\t\t v.call(g, {\n\t\t begin: e,\n\t\t end: e + 1\n\t\t });\n\t\t })), e.remove = void 0), void 0 !== e.insert && (Array.isArray(e.insert) || (e.insert = [ e.insert ]), \n\t\t e.insert.sort((function(e, t) {\n\t\t return g.isRTL ? t.pos - e.pos : e.pos - t.pos;\n\t\t })).forEach((function(e) {\n\t\t \"\" !== e.c && f.call(g, e.pos, e.c, void 0 === e.strict || e.strict, void 0 !== e.fromIsValid ? e.fromIsValid : i);\n\t\t })), e.insert = void 0), e.refreshFromBuffer && e.buffer) {\n\t\t var t = e.refreshFromBuffer;\n\t\t d.call(g, !0 === t ? t : t.start, t.end, e.buffer), e.refreshFromBuffer = void 0;\n\t\t }\n\t\t void 0 !== e.rewritePosition && (x = e.rewritePosition, e = !0);\n\t\t }\n\t\t return e;\n\t\t }\n\t\t function P(t, n, a) {\n\t\t var l = !1;\n\t\t return o.getTests.call(g, t).every((function(c, f) {\n\t\t var p = c.match;\n\t\t if (r.getBuffer.call(g, !0), !1 !== (l = (!p.jit || void 0 !== b.validPositions[r.seekPrevious.call(g, t)]) && (null != p.fn ? p.fn.test(n, b, t, a, k, u.call(g, e)) : (n === p.def || n === k.skipOptionalPartCharacter) && \"\" !== p.def && {\n\t\t c: o.getPlaceholder.call(g, t, p, !0) || p.def,\n\t\t pos: t\n\t\t }))) {\n\t\t var d = void 0 !== l.c ? l.c : n, h = t;\n\t\t return d = d === k.skipOptionalPartCharacter && !0 === p.static ? o.getPlaceholder.call(g, t, p, !0) || p.def : d, \n\t\t !0 !== (l = w(l)) && void 0 !== l.pos && l.pos !== t && (h = l.pos), !0 !== l && void 0 === l.pos && void 0 === l.c ? !1 : (!1 === v.call(g, e, y.extend({}, c, {\n\t\t input: s.call(g, d, p, h)\n\t\t }), i, h) && (l = !1), !1);\n\t\t }\n\t\t return !0;\n\t\t })), l;\n\t\t }\n\t\t void 0 !== e.begin && (x = g.isRTL ? e.end : e.begin);\n\t\t var S = !0, O = y.extend(!0, [], b.validPositions);\n\t\t if (!1 === k.keepStatic && void 0 !== b.excludes[x] && !0 !== a && !0 !== i) for (var _ = x; _ < (g.isRTL ? e.begin : e.end); _++) void 0 !== b.excludes[_] && (b.excludes[_] = void 0, \n\t\t delete b.tests[_]);\n\t\t if (\"function\" == typeof k.preValidation && !0 !== i && !0 !== p && (S = w(S = k.preValidation.call(g, r.getBuffer.call(g), x, t, u.call(g, e), k, b, e, n || a))), \n\t\t !0 === S) {\n\t\t if (S = P(x, t, n), (!n || !0 === i) && !1 === S && !0 !== p) {\n\t\t var M = b.validPositions[x];\n\t\t if (!M || !0 !== M.match.static || M.match.def !== t && t !== k.skipOptionalPartCharacter) {\n\t\t if (k.insertMode || void 0 === b.validPositions[r.seekNext.call(g, x)] || e.end > x) {\n\t\t var E = !1;\n\t\t if (b.jitOffset[x] && void 0 === b.validPositions[r.seekNext.call(g, x)] && !1 !== (S = f.call(g, x + b.jitOffset[x], t, !0, !0)) && (!0 !== a && (S.caret = x), \n\t\t E = !0), e.end > x && (b.validPositions[x] = void 0), !E && !r.isMask.call(g, x, k.keepStatic && 0 === x)) for (var j = x + 1, T = r.seekNext.call(g, x, !1, 0 !== x); j <= T; j++) if (!1 !== (S = P(j, t, n))) {\n\t\t S = h.call(g, x, void 0 !== S.pos ? S.pos : j) || S, x = j;\n\t\t break;\n\t\t }\n\t\t }\n\t\t } else S = {\n\t\t caret: r.seekNext.call(g, x)\n\t\t };\n\t\t }\n\t\t if (g.hasAlternator && !0 !== a && !n && (a = !0, !1 === S && k.keepStatic && (c.call(g, r.getBuffer.call(g)) || 0 === x) ? S = l.call(g, x, t, n, i, void 0, e) : (u.call(g, e) && b.tests[x] && b.tests[x].length > 1 && k.keepStatic || !0 === S && !0 !== k.numericInput && b.tests[x] && b.tests[x].length > 1 && r.getLastValidPosition.call(g, void 0, !0) > x) && (S = l.call(g, !0))), \n\t\t !0 === S && (S = {\n\t\t pos: x\n\t\t }), \"function\" == typeof k.postValidation && !0 !== i && !0 !== p) {\n\t\t var A = k.postValidation.call(g, r.getBuffer.call(g, !0), void 0 !== e.begin ? g.isRTL ? e.end : e.begin : e, t, S, k, b, n, m, a);\n\t\t void 0 !== A && (S = !0 === A ? S : A);\n\t\t }\n\t\t }\n\t\t S && void 0 === S.pos && (S.pos = x), !1 === S || !0 === p ? (r.resetMaskSet.call(g, !0), \n\t\t b.validPositions = y.extend(!0, [], O)) : h.call(g, void 0, x, !0);\n\t\t var D = w(S);\n\t\t void 0 !== g.maxLength && (r.getBuffer.call(g).length > g.maxLength && !i && (r.resetMaskSet.call(g, !0), \n\t\t b.validPositions = y.extend(!0, [], O), D = !1));\n\t\t return D;\n\t\t }\n\t\t function p(e, t, n) {\n\t\t for (var i = this.maskset, a = !1, r = o.getTests.call(this, e), l = 0; l < r.length; l++) {\n\t\t if (r[l].match && (r[l].match.nativeDef === t.match[n.shiftPositions ? \"def\" : \"nativeDef\"] && (!n.shiftPositions || !t.match.static) || r[l].match.nativeDef === t.match.nativeDef || n.regex && !r[l].match.static && r[l].match.fn.test(t.input, i, e, !1, n))) {\n\t\t a = !0;\n\t\t break;\n\t\t }\n\t\t if (r[l].match && r[l].match.def === t.match.nativeDef) {\n\t\t a = void 0;\n\t\t break;\n\t\t }\n\t\t }\n\t\t return !1 === a && void 0 !== i.jitOffset[e] && (a = p.call(this, e + i.jitOffset[e], t, n)), \n\t\t a;\n\t\t }\n\t\t function d(e, t, n) {\n\t\t var a, o, l = this, s = this.maskset, c = this.opts, u = this.dependencyLib, f = c.skipOptionalPartCharacter, p = l.isRTL ? n.slice().reverse() : n;\n\t\t if (c.skipOptionalPartCharacter = \"\", !0 === e) r.resetMaskSet.call(l, !1), e = 0, \n\t\t t = n.length, o = r.determineNewCaretPosition.call(l, {\n\t\t begin: 0,\n\t\t end: 0\n\t\t }, !1).begin; else {\n\t\t for (a = e; a < t; a++) s.validPositions.splice(e, 0);\n\t\t o = e;\n\t\t }\n\t\t var d = new u.Event(\"keypress\");\n\t\t for (a = e; a < t; a++) {\n\t\t d.key = p[a].toString(), l.ignorable = !1;\n\t\t var h = i.EventHandlers.keypressEvent.call(l, d, !0, !1, !1, o);\n\t\t !1 !== h && void 0 !== h && (o = h.forwardPosition);\n\t\t }\n\t\t c.skipOptionalPartCharacter = f;\n\t\t }\n\t\t function h(e, t, n) {\n\t\t var i = this, a = this.maskset, l = this.dependencyLib;\n\t\t if (void 0 === e) for (e = t - 1; e > 0 && !a.validPositions[e]; e--) ;\n\t\t for (var s = e; s < t; s++) {\n\t\t if (void 0 === a.validPositions[s] && !r.isMask.call(i, s, !1)) if (0 == s ? o.getTest.call(i, s) : a.validPositions[s - 1]) {\n\t\t var c = o.getTests.call(i, s).slice();\n\t\t \"\" === c[c.length - 1].match.def && c.pop();\n\t\t var u, p = o.determineTestTemplate.call(i, s, c);\n\t\t if (p && (!0 !== p.match.jit || \"master\" === p.match.newBlockMarker && (u = a.validPositions[s + 1]) && !0 === u.match.optionalQuantifier) && ((p = l.extend({}, p, {\n\t\t input: o.getPlaceholder.call(i, s, p.match, !0) || p.match.def\n\t\t })).generatedInput = !0, v.call(i, s, p, !0), !0 !== n)) {\n\t\t var d = a.validPositions[t].input;\n\t\t return a.validPositions[t] = void 0, f.call(i, t, d, !0, !0);\n\t\t }\n\t\t }\n\t\t }\n\t\t }\n\t\t function v(e, t, n, i) {\n\t\t var a = this, l = this.maskset, s = this.opts, c = this.dependencyLib;\n\t\t function d(e, t, n) {\n\t\t var i = t[e];\n\t\t if (void 0 !== i && !0 === i.match.static && !0 !== i.match.optionality && (void 0 === t[0] || void 0 === t[0].alternation)) {\n\t\t var a = n.begin <= e - 1 ? t[e - 1] && !0 === t[e - 1].match.static && t[e - 1] : t[e - 1], r = n.end > e + 1 ? t[e + 1] && !0 === t[e + 1].match.static && t[e + 1] : t[e + 1];\n\t\t return a && r;\n\t\t }\n\t\t return !1;\n\t\t }\n\t\t var h = 0, v = void 0 !== e.begin ? e.begin : e, m = void 0 !== e.end ? e.end : e, g = !0;\n\t\t if (e.begin > e.end && (v = e.end, m = e.begin), i = void 0 !== i ? i : v, void 0 === n && (v !== m || s.insertMode && void 0 !== l.validPositions[i] || void 0 === t || t.match.optionalQuantifier || t.match.optionality)) {\n\t\t var y, k = c.extend(!0, [], l.validPositions), b = r.getLastValidPosition.call(a, void 0, !0);\n\t\t l.p = v;\n\t\t var x = u.call(a, e) ? v : i;\n\t\t for (y = b; y >= x; y--) l.validPositions.splice(y, 1), void 0 === t && delete l.tests[y + 1];\n\t\t var w, P, S = i, O = S;\n\t\t for (t && (l.validPositions[i] = c.extend(!0, {}, t), O++, S++), null == k[m] && l.jitOffset[m] && (m += l.jitOffset[m] + 1), \n\t\t y = t ? m : m - 1; y <= b; y++) {\n\t\t if (void 0 !== (w = k[y]) && !0 !== w.generatedInput && (y >= m || y >= v && d(y, k, {\n\t\t begin: v,\n\t\t end: m\n\t\t }))) {\n\t\t for (;\"\" !== o.getTest.call(a, O).match.def; ) {\n\t\t if (!1 !== (P = p.call(a, O, w, s)) || \"+\" === w.match.def) {\n\t\t \"+\" === w.match.def && r.getBuffer.call(a, !0);\n\t\t var _ = f.call(a, O, w.input, \"+\" !== w.match.def, !0);\n\t\t if (g = !1 !== _, S = (_.pos || O) + 1, !g && P) break;\n\t\t } else g = !1;\n\t\t if (g) {\n\t\t void 0 === t && w.match.static && y === e.begin && h++;\n\t\t break;\n\t\t }\n\t\t if (!g && r.getBuffer.call(a), O > l.maskLength) break;\n\t\t O++;\n\t\t }\n\t\t \"\" == o.getTest.call(a, O).match.def && (g = !1), O = S;\n\t\t }\n\t\t if (!g) break;\n\t\t }\n\t\t if (!g) return l.validPositions = c.extend(!0, [], k), r.resetMaskSet.call(a, !0), \n\t\t !1;\n\t\t } else t && o.getTest.call(a, i).match.cd === t.match.cd && (l.validPositions[i] = c.extend(!0, {}, t));\n\t\t return r.resetMaskSet.call(a, !0), h;\n\t\t }\n\t\t }\n\t\t }, t = {};\n\t\t function n(i) {\n\t\t var a = t[i];\n\t\t if (void 0 !== a) return a.exports;\n\t\t var r = t[i] = {\n\t\t exports: {}\n\t\t };\n\t\t return e[i](r, r.exports, n), r.exports;\n\t\t }\n\t\t var i = {};\n\t\t return function() {\n\t\t var e = i;\n\t\t Object.defineProperty(e, \"__esModule\", {\n\t\t value: !0\n\t\t }), e.default = void 0, n(7149), n(3194), n(9302), n(4013), n(3851), n(219), n(207), \n\t\t n(5296);\n\t\t var t, a = (t = n(2394)) && t.__esModule ? t : {\n\t\t default: t\n\t\t };\n\t\t e.default = a.default;\n\t\t }(), i;\n\t\t }();\n\t\t})); \n\t} (inputmask$2));\n\treturn inputmask$2.exports;\n}\n\nvar inputmaskExports = requireInputmask();\nvar inputmask = /*@__PURE__*/getDefaultExportFromCjs(inputmaskExports);\n\nfunction flow(...funcs) {\n const { length } = funcs;\n let index = length;\n while (index--) {\n if (typeof funcs[index] !== \"function\") {\n throw new TypeError(\"Expected a function\");\n }\n }\n return (...args) => {\n let i = 0;\n let result = length ? funcs[i].apply(this, args) : args[0];\n while (++i < length) {\n result = funcs[i].call(this, result);\n }\n return result;\n };\n}\n\nconst isServer = !(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nconst getMaskOptions = (mask, _options) => {\n const options = {\n jitMasking: false,\n ..._options\n };\n if (!mask) return options;\n const masks = {\n datetime: {\n alias: \"datetime\",\n ...options\n },\n email: {\n alias: \"email\",\n placeholder: \"\",\n ...options\n },\n numeric: {\n alias: \"numeric\",\n placeholder: \"\",\n ...options\n },\n currency: {\n alias: \"currency\",\n prefix: \"$ \",\n placeholder: \"\",\n ...options\n },\n decimal: {\n alias: \"decimal\",\n placeholder: \"\",\n ...options\n },\n integer: {\n alias: \"integer\",\n placeholder: \"\",\n ...options\n },\n percentage: {\n alias: \"percentage\",\n placeholder: \" %\",\n suffix: \" %\",\n ...options\n },\n url: {\n alias: \"url\",\n placeholder: \"https://\",\n ...options\n },\n ip: {\n alias: \"ip\",\n ...options\n },\n mac: {\n alias: \"mac\",\n ...options\n },\n ssn: {\n alias: \"ssn\",\n ...options\n },\n // alias for brazilians <3\n // ty <3\n \"brl-currency\": {\n alias: \"currency\",\n prefix: \"R$ \",\n placeholder: \"0,00\",\n displayFormat: \"currency\",\n radixPoint: \",\",\n autoUnmask: true,\n ...options\n },\n cpf: {\n mask: \"999.999.999-99\",\n placeholder: \"___.___.___-__\",\n ...options\n },\n cnpj: {\n mask: \"99.999.999/9999-99\",\n placeholder: \"__.___.___/____-__\",\n ...options\n }\n };\n if (typeof mask === \"string\" && masks[mask]) return masks[mask];\n return {\n mask,\n ...options\n };\n};\n\nconst withHookFormMask = (register, mask, options) => {\n let newRef;\n if (register) {\n const { ref } = register;\n const maskInput = inputmask(getMaskOptions(mask, options));\n newRef = flow((_ref) => {\n if (_ref) maskInput.mask(_ref);\n return _ref;\n }, ref);\n }\n return {\n ...register,\n ref: newRef\n };\n};\n\nconst withMask = (mask, options) => (input) => {\n if (isServer) return;\n if (mask === null) return;\n const maskInput = inputmask(getMaskOptions(mask, options));\n if (input) {\n maskInput.mask(input);\n }\n};\n\nfunction useHookFormMask(registerFn) {\n return (fieldName, mask, options) => {\n if (!registerFn) throw new Error(\"registerFn is required\");\n const { ref, ...restRegister } = registerFn(fieldName, options);\n const maskInput = inputmask(getMaskOptions(mask, options));\n const newRef = flow((_ref) => {\n if (_ref) {\n const { nodeName } = _ref;\n if (nodeName !== \"INPUT\") {\n maskInput.mask(_ref.querySelector(\"input\"));\n } else {\n maskInput.mask(_ref);\n }\n }\n return _ref;\n }, ref);\n return {\n ...restRegister,\n ref: newRef\n };\n };\n}\n\nconst useInputMask = (props) => {\n const { mask, register, options } = props;\n const ref = useRef(null);\n if (isServer) return ref;\n useEffect(() => {\n if (!isServer) {\n if (!ref.current) return;\n const maskInput = inputmask(getMaskOptions(mask, options));\n maskInput.mask(ref.current);\n if (register && ref.current) {\n register(ref.current);\n }\n }\n }, [mask, register, options]);\n return ref;\n};\n\nexport { useHookFormMask, useInputMask, withHookFormMask, withMask };\n//# sourceMappingURL=index.js.map\n","// ES6 Map\nvar map\ntry {\n map = Map\n} catch (_) { }\nvar set\n\n// ES6 Set\ntry {\n set = Set\n} catch (_) { }\n\nfunction baseClone (src, circulars, clones) {\n // Null/undefined/functions/etc\n if (!src || typeof src !== 'object' || typeof src === 'function') {\n return src\n }\n\n // DOM Node\n if (src.nodeType && 'cloneNode' in src) {\n return src.cloneNode(true)\n }\n\n // Date\n if (src instanceof Date) {\n return new Date(src.getTime())\n }\n\n // RegExp\n if (src instanceof RegExp) {\n return new RegExp(src)\n }\n\n // Arrays\n if (Array.isArray(src)) {\n return src.map(clone)\n }\n\n // ES6 Maps\n if (map && src instanceof map) {\n return new Map(Array.from(src.entries()))\n }\n\n // ES6 Sets\n if (set && src instanceof set) {\n return new Set(Array.from(src.values()))\n }\n\n // Object\n if (src instanceof Object) {\n circulars.push(src)\n var obj = Object.create(src)\n clones.push(obj)\n for (var key in src) {\n var idx = circulars.findIndex(function (i) {\n return i === src[key]\n })\n obj[key] = idx > -1 ? clones[idx] : baseClone(src[key], circulars, clones)\n }\n return obj\n }\n\n // ???\n return src\n}\n\nexport default function clone (src) {\n return baseClone(src, [], [])\n}\n","const toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\n\nexport default function printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}","import printValue from './util/printValue';\nexport let mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n let isCast = originalValue != null && originalValue !== value;\n let msg = `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + (isCast ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.');\n\n if (value === null) {\n msg += `\\n If \"null\" is intended as an empty value be sure to mark the schema as \\`.nullable()\\``;\n }\n\n return msg;\n },\n defined: '${path} must be defined'\n};\nexport let string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nexport let number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nexport let date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nexport let boolean = {\n isValue: '${path} field must be ${value}'\n};\nexport let object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nexport let array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nexport default Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean\n});","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\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\nmodule.exports = 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\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\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\nmodule.exports = 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\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\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\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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 * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\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 * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\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/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","const isSchema = obj => obj && obj.__isYupSchema__;\n\nexport default isSchema;","import has from 'lodash/has';\nimport isSchema from './util/isSchema';\n\nclass Condition {\n constructor(refs, options) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n\n if (typeof options === 'function') {\n this.fn = options;\n return;\n }\n\n if (!has(options, 'is')) throw new TypeError('`is:` is required for `when()` conditions');\n if (!options.then && !options.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = options;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n\n this.fn = function (...args) {\n let options = args.pop();\n let schema = args.pop();\n let branch = check(...args) ? then : otherwise;\n if (!branch) return undefined;\n if (typeof branch === 'function') return branch(schema);\n return schema.concat(branch.resolve(options));\n };\n }\n\n resolve(base, options) {\n let values = this.refs.map(ref => ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn.apply(base, values.concat(base, options));\n if (schema === undefined || schema === base) return base;\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n\n}\n\nexport default Condition;","export default function toArray(value) {\n return value == null ? [] : [].concat(value);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport printValue from './util/printValue';\nimport toArray from './util/toArray';\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\nexport default class ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = _extends({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n\n constructor(errorOrErrors, value, field, type) {\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.errors = void 0;\n this.params = void 0;\n this.inner = void 0;\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n this.inner = this.inner.concat(err.inner.length ? err.inner : err);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n }\n\n}","import ValidationError from '../ValidationError';\n\nconst once = cb => {\n let fired = false;\n return (...args) => {\n if (fired) return;\n fired = true;\n cb(...args);\n };\n};\n\nexport default function runTests(options, cb) {\n let {\n endEarly,\n tests,\n args,\n value,\n errors,\n sort,\n path\n } = options;\n let callback = once(cb);\n let count = tests.length;\n const nestedErrors = [];\n errors = errors ? errors : [];\n if (!count) return errors.length ? callback(new ValidationError(errors, value, path)) : callback(null, value);\n\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, function finishTestRun(err) {\n if (err) {\n // always return early for non validation errors\n if (!ValidationError.isError(err)) {\n return callback(err, value);\n }\n\n if (endEarly) {\n err.value = value;\n return callback(err, value);\n }\n\n nestedErrors.push(err);\n }\n\n if (--count <= 0) {\n if (nestedErrors.length) {\n if (sort) nestedErrors.sort(sort); //show parent errors after the nested ones: name.first, name\n\n if (errors.length) nestedErrors.push(...errors);\n errors = nestedErrors;\n }\n\n if (errors.length) {\n callback(new ValidationError(errors, value, path), value);\n return;\n }\n\n callback(null, value);\n }\n });\n }\n}","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\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 * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\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 * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\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 * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","/**\n * Based on Kendo UI Core expression code <https://github.com/telerik/kendo-ui-core#license-information>\n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","import { getter } from 'property-expr';\nconst prefixes = {\n context: '$',\n value: '.'\n};\nexport function create(key, options) {\n return new Reference(key, options);\n}\nexport default class Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n\n\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n\n resolve() {\n return this;\n }\n\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n\n toString() {\n return `Ref(${this.key})`;\n }\n\n static isRef(value) {\n return value && value.__isYupRef;\n }\n\n} // @ts-ignore\n\nReference.prototype.__isYupRef = true;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport mapValues from 'lodash/mapValues';\nimport ValidationError from '../ValidationError';\nimport Ref from '../Reference';\nexport default function createValidation(config) {\n function validate(_ref, cb) {\n let {\n value,\n path = '',\n label,\n options,\n originalValue,\n sync\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"value\", \"path\", \"label\", \"options\", \"originalValue\", \"sync\"]);\n\n const {\n name,\n test,\n params,\n message\n } = config;\n let {\n parent,\n context\n } = options;\n\n function resolve(item) {\n return Ref.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n\n function createError(overrides = {}) {\n const nextParams = mapValues(_extends({\n value,\n originalValue,\n label,\n path: overrides.path || path\n }, params, overrides.params), resolve);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name);\n error.params = nextParams;\n return error;\n }\n\n let ctx = _extends({\n path,\n parent,\n type: name,\n createError,\n resolve,\n options,\n originalValue\n }, rest);\n\n if (!sync) {\n try {\n Promise.resolve(test.call(ctx, value, ctx)).then(validOrError => {\n if (ValidationError.isError(validOrError)) cb(validOrError);else if (!validOrError) cb(createError());else cb(null, validOrError);\n }).catch(cb);\n } catch (err) {\n cb(err);\n }\n\n return;\n }\n\n let result;\n\n try {\n var _ref2;\n\n result = test.call(ctx, value, ctx);\n\n if (typeof ((_ref2 = result) == null ? void 0 : _ref2.then) === 'function') {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n } catch (err) {\n cb(err);\n return;\n }\n\n if (ValidationError.isError(result)) cb(result);else if (!result) cb(createError());else cb(null, result);\n }\n\n validate.OPTIONS = config;\n return validate;\n}","import { forEach } from 'property-expr';\n\nlet trim = part => part.substr(0, part.length - 1).substr(1);\n\nexport function getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug; // root path: ''\n\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? trim(_part) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n\n if (schema.innerType) {\n let idx = isArray ? parseInt(part, 10) : 0;\n\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n\n parent = value;\n value = value && value[idx];\n schema = schema.innerType;\n } // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n\n\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema._type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\n\nconst reach = (obj, path, value, context) => getIn(obj, path, value, context).schema;\n\nexport default reach;","import Reference from '../Reference';\nexport default class ReferenceSet {\n constructor() {\n this.list = void 0;\n this.refs = void 0;\n this.list = new Set();\n this.refs = new Map();\n }\n\n get size() {\n return this.list.size + this.refs.size;\n }\n\n describe() {\n const description = [];\n\n for (const item of this.list) description.push(item);\n\n for (const [, ref] of this.refs) description.push(ref.describe());\n\n return description;\n }\n\n toArray() {\n return Array.from(this.list).concat(Array.from(this.refs.values()));\n }\n\n resolveAll(resolve) {\n return this.toArray().reduce((acc, e) => acc.concat(Reference.isRef(e) ? resolve(e) : e), []);\n }\n\n add(value) {\n Reference.isRef(value) ? this.refs.set(value.key, value) : this.list.add(value);\n }\n\n delete(value) {\n Reference.isRef(value) ? this.refs.delete(value.key) : this.list.delete(value);\n }\n\n clone() {\n const next = new ReferenceSet();\n next.list = new Set(this.list);\n next.refs = new Map(this.refs);\n return next;\n }\n\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.list.forEach(value => next.add(value));\n newItems.refs.forEach(value => next.add(value));\n removeItems.list.forEach(value => next.delete(value));\n removeItems.refs.forEach(value => next.delete(value));\n return next;\n }\n\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n// @ts-ignore\nimport cloneDeep from 'nanoclone';\nimport { mixed as locale } from './locale';\nimport Condition from './Condition';\nimport runTests from './util/runTests';\nimport createValidation from './util/createValidation';\nimport printValue from './util/printValue';\nimport Ref from './Reference';\nimport { getIn } from './util/reach';\nimport ValidationError from './ValidationError';\nimport ReferenceSet from './util/ReferenceSet';\nimport toArray from './util/toArray'; // const UNSET = 'unset' as const;\n\nexport default class BaseSchema {\n constructor(options) {\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this._typeError = void 0;\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(locale.notType);\n });\n this.type = (options == null ? void 0 : options.type) || 'mixed';\n this.spec = _extends({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n nullable: false,\n presence: 'optional'\n }, options == null ? void 0 : options.spec);\n } // TODO: remove\n\n\n get _type() {\n return this.type;\n }\n\n _typeCheck(_value) {\n return true;\n }\n\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n } // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n\n\n const next = Object.create(Object.getPrototypeOf(this)); // @ts-expect-error this is readonly\n\n next.type = this.type;\n next._typeError = this._typeError;\n next._whitelistError = this._whitelistError;\n next._blacklistError = this._blacklistError;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.exclusiveTests = _extends({}, this.exclusiveTests); // @ts-expect-error this is readonly\n\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = cloneDeep(_extends({}, this.spec, spec));\n return next;\n }\n\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n } // withContext<TContext extends AnyObject>(): BaseSchema<\n // TCast,\n // TContext,\n // TOutput\n // > {\n // return this as any;\n // }\n\n\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n\n const mergedSpec = _extends({}, base.spec, combined.spec); // if (combined.spec.nullable === UNSET)\n // mergedSpec.nullable = base.spec.nullable;\n // if (combined.spec.presence === UNSET)\n // mergedSpec.presence = base.spec.presence;\n\n\n combined.spec = mergedSpec;\n combined._typeError || (combined._typeError = base._typeError);\n combined._whitelistError || (combined._whitelistError = base._whitelistError);\n combined._blacklistError || (combined._blacklistError = base._blacklistError); // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist); // start with the current tests\n\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests; // manually add the new tests to ensure\n // the deduping logic is consistent\n\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n\n isType(v) {\n if (this.spec.nullable && v === null) return true;\n return this._typeCheck(v);\n }\n\n resolve(options) {\n let schema = this;\n\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((schema, condition) => condition.resolve(schema, options), schema);\n schema = schema.resolve(options);\n }\n\n return schema;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {*=} options.parent\n * @param {*=} options.context\n */\n\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(_extends({\n value\n }, options));\n\n let result = resolvedSchema._cast(value, options);\n\n if (value !== undefined && options.assert !== false && resolvedSchema.isType(result) !== true) {\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema._type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n\n return result;\n }\n\n _cast(rawValue, _options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((value, fn) => fn.call(this, value, rawValue, this), rawValue);\n\n if (value === undefined) {\n value = this.getDefault();\n }\n\n return value;\n }\n\n _validate(_value, options = {}, cb) {\n let {\n sync,\n path,\n from = [],\n originalValue = _value,\n strict = this.spec.strict,\n abortEarly = this.spec.abortEarly\n } = options;\n let value = _value;\n\n if (!strict) {\n // this._validating = true;\n value = this._cast(value, _extends({\n assert: false\n }, options)); // this._validating = false;\n } // value is cast, we can check if it meets type requirements\n\n\n let args = {\n value,\n path,\n options,\n originalValue,\n schema: this,\n label: this.spec.label,\n sync,\n from\n };\n let initialTests = [];\n if (this._typeError) initialTests.push(this._typeError);\n let finalTests = [];\n if (this._whitelistError) finalTests.push(this._whitelistError);\n if (this._blacklistError) finalTests.push(this._blacklistError);\n runTests({\n args,\n value,\n path,\n sync,\n tests: initialTests,\n endEarly: abortEarly\n }, err => {\n if (err) return void cb(err, value);\n runTests({\n tests: this.tests.concat(finalTests),\n args,\n path,\n sync,\n value,\n endEarly: abortEarly\n }, cb);\n });\n }\n\n validate(value, options, maybeCb) {\n let schema = this.resolve(_extends({}, options, {\n value\n })); // callback case is for nested validations\n\n return typeof maybeCb === 'function' ? schema._validate(value, options, maybeCb) : new Promise((resolve, reject) => schema._validate(value, options, (err, value) => {\n if (err) reject(err);else resolve(value);\n }));\n }\n\n validateSync(value, options) {\n let schema = this.resolve(_extends({}, options, {\n value\n }));\n let result;\n\n schema._validate(value, _extends({}, options, {\n sync: true\n }), (err, value) => {\n if (err) throw err;\n result = value;\n });\n\n return result;\n }\n\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n\n _getDefault() {\n let defaultValue = this.spec.default;\n\n if (defaultValue == null) {\n return defaultValue;\n }\n\n return typeof defaultValue === 'function' ? defaultValue.call(this) : cloneDeep(defaultValue);\n }\n\n getDefault(options) {\n let schema = this.resolve(options || {});\n return schema._getDefault();\n }\n\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n\n let next = this.clone({\n default: def\n });\n return next;\n }\n\n strict(isStrict = true) {\n let next = this.clone();\n next.spec.strict = isStrict;\n return next;\n }\n\n _isPresent(value) {\n return value != null;\n }\n\n defined(message = locale.defined) {\n return this.test({\n message,\n name: 'defined',\n exclusive: true,\n\n test(value) {\n return value !== undefined;\n }\n\n });\n }\n\n required(message = locale.required) {\n return this.clone({\n presence: 'required'\n }).withMutation(s => s.test({\n message,\n name: 'required',\n exclusive: true,\n\n test(value) {\n return this.schema._isPresent(value);\n }\n\n }));\n }\n\n notRequired() {\n let next = this.clone({\n presence: 'optional'\n });\n next.tests = next.tests.filter(test => test.OPTIONS.name !== 'required');\n return next;\n }\n\n nullable(isNullable = true) {\n let next = this.clone({\n nullable: isNullable !== false\n });\n return next;\n }\n\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n\n test(...args) {\n let opts;\n\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n\n if (opts.message === undefined) opts.message = locale.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n\n let next = this.clone();\n let deps = toArray(keys).map(key => new Ref(key));\n deps.forEach(dep => {\n // @ts-ignore\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(new Condition(deps, options));\n return next;\n }\n\n typeError(message) {\n let next = this.clone();\n next._typeError = createValidation({\n message,\n name: 'typeError',\n\n test(value) {\n if (value !== undefined && !this.schema.isType(value)) return this.createError({\n params: {\n type: this.schema._type\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n oneOf(enums, message = locale.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n\n next._blacklist.delete(val);\n });\n next._whitelistError = createValidation({\n message,\n name: 'oneOf',\n\n test(value) {\n if (value === undefined) return true;\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: valids.toArray().join(', '),\n resolved\n }\n });\n }\n\n });\n return next;\n }\n\n notOneOf(enums, message = locale.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n\n next._whitelist.delete(val);\n });\n next._blacklistError = createValidation({\n message,\n name: 'notOneOf',\n\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: invalids.toArray().join(', '),\n resolved\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n describe() {\n const next = this.clone();\n const {\n label,\n meta\n } = next.spec;\n const description = {\n meta,\n label,\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n\n} // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n// @ts-expect-error\nBaseSchema.prototype.__isYupSchema__ = true;\n\nfor (const method of ['validate', 'validateSync']) BaseSchema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], _extends({}, options, {\n parent,\n path\n }));\n};\n\nfor (const alias of ['equals', 'is']) BaseSchema.prototype[alias] = BaseSchema.prototype.oneOf;\n\nfor (const alias of ['not', 'nope']) BaseSchema.prototype[alias] = BaseSchema.prototype.notOneOf;\n\nBaseSchema.prototype.optional = BaseSchema.prototype.notRequired;","import BaseSchema from './schema';\nconst Mixed = BaseSchema;\nexport default Mixed;\nexport function create() {\n return new Mixed();\n} // XXX: this is using the Base schema so that `addMethod(mixed)` works as a base class\n\ncreate.prototype = Mixed.prototype;","const isAbsent = value => value == null;\n\nexport default isAbsent;","import BaseSchema from './schema';\nimport { boolean as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nexport function create() {\n return new BooleanSchema();\n}\nexport default class BooleanSchema extends BaseSchema {\n constructor() {\n super({\n type: 'boolean'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (!this.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n\n return value;\n });\n });\n }\n\n _typeCheck(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n\n isTrue(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n\n test(value) {\n return isAbsent(value) || value === true;\n }\n\n });\n }\n\n isFalse(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n\n test(value) {\n return isAbsent(value) || value === false;\n }\n\n });\n }\n\n}\ncreate.prototype = BooleanSchema.prototype;","import { string as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema'; // eslint-disable-next-line\n\nlet rEmail = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i; // eslint-disable-next-line\n\nlet rUrl = /^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i; // eslint-disable-next-line\n\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\n\nlet objStringTag = {}.toString();\nexport function create() {\n return new StringSchema();\n}\nexport default class StringSchema extends BaseSchema {\n constructor() {\n super({\n type: 'string'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n\n _isPresent(value) {\n return super._isPresent(value) && !!value.length;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n\n return this.test({\n name: name || 'matches',\n message: message || locale.matches,\n params: {\n regex\n },\n test: value => isAbsent(value) || value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n\n email(message = locale.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n\n url(message = locale.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n\n uuid(message = locale.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n } //-- transforms --\n\n\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n\n trim(message = locale.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n\n lowercase(message = locale.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n\n uppercase(message = locale.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n\n}\ncreate.prototype = StringSchema.prototype; //\n// String Interfaces\n//","import { number as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema';\n\nlet isNaN = value => value != +value;\n\nexport function create() {\n return new NumberSchema();\n}\nexport default class NumberSchema extends BaseSchema {\n constructor() {\n super({\n type: 'number'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n let parsed = value;\n\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN; // don't use parseFloat to avoid positives on alpha-numeric strings\n\n parsed = +parsed;\n }\n\n if (this.isType(parsed)) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN(value);\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(max);\n }\n\n });\n }\n\n lessThan(less, message = locale.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n\n test(value) {\n return isAbsent(value) || value < this.resolve(less);\n }\n\n });\n }\n\n moreThan(more, message = locale.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n\n test(value) {\n return isAbsent(value) || value > this.resolve(more);\n }\n\n });\n }\n\n positive(msg = locale.positive) {\n return this.moreThan(0, msg);\n }\n\n negative(msg = locale.negative) {\n return this.lessThan(0, msg);\n }\n\n integer(message = locale.integer) {\n return this.test({\n name: 'integer',\n message,\n test: val => isAbsent(val) || Number.isInteger(val)\n });\n }\n\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n\n round(method) {\n var _method;\n\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round'; // this exists for symemtry with the new Math.trunc\n\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n\n}\ncreate.prototype = NumberSchema.prototype; //\n// Number Interfaces\n//","/* eslint-disable */\n\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 <https://github.com/csnover/js-iso8601>\n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover <http://zetafleet.com>\n * Released under MIT license.\n */\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nexport default function parseIsoDate(date) {\n var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n minutesOffset = 0,\n timestamp,\n struct;\n\n if (struct = isoReg.exec(date)) {\n // avoid NaN timestamps caused by “undefined†values being passed to Date.UTC\n for (var i = 0, k; k = numericKeys[i]; ++i) struct[k] = +struct[k] || 0; // allow undefined days and months\n\n\n struct[2] = (+struct[2] || 1) - 1;\n struct[3] = +struct[3] || 1; // allow arbitrary sub-second precision beyond milliseconds\n\n struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0; // timestamps without timezone identifiers should be considered local time\n\n if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n if (struct[8] !== 'Z' && struct[9] !== undefined) {\n minutesOffset = struct[10] * 60 + struct[11];\n if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n }\n\n timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n }\n } else timestamp = Date.parse ? Date.parse(date) : NaN;\n\n return timestamp;\n}","// @ts-ignore\nimport isoParse from './util/isodate';\nimport { date as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport Ref from './Reference';\nimport BaseSchema from './schema';\nlet invalidDate = new Date('');\n\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\n\nexport function create() {\n return new DateSchema();\n}\nexport default class DateSchema extends BaseSchema {\n constructor() {\n super({\n type: 'date'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n value = isoParse(value); // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n\n return !isNaN(value) ? new Date(value) : invalidDate;\n });\n });\n }\n\n _typeCheck(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n\n prepareParam(ref, name) {\n let param;\n\n if (!Ref.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n\n return param;\n }\n\n min(min, message = locale.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(limit);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(limit);\n }\n\n });\n }\n\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate.prototype = DateSchema.prototype;\ncreate.INVALID_DATE = invalidDate;","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nmodule.exports = snakeCase;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nmodule.exports = mapKeys;\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","import has from 'lodash/has'; // @ts-expect-error\n\nimport toposort from 'toposort';\nimport { split } from 'property-expr';\nimport Ref from '../Reference';\nimport isSchema from './isSchema';\nexport default function sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n\n for (const key in fields) if (has(fields, key)) {\n let value = fields[key];\n nodes.add(key);\n if (Ref.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n\n return toposort.array(Array.from(nodes), edges).reverse();\n}","function findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n\n if (((_err$path = err.path) == null ? void 0 : _err$path.indexOf(key)) !== -1) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\n\nexport default function sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport has from 'lodash/has';\nimport snakeCase from 'lodash/snakeCase';\nimport camelCase from 'lodash/camelCase';\nimport mapKeys from 'lodash/mapKeys';\nimport mapValues from 'lodash/mapValues';\nimport { getter } from 'property-expr';\nimport { object as locale } from './locale';\nimport sortFields from './util/sortFields';\nimport sortByKeyOrder from './util/sortByKeyOrder';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\n\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\n\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\n\nconst defaultSort = sortByKeyOrder([]);\nexport default class ObjectSchema extends BaseSchema {\n constructor(spec) {\n super({\n type: 'object'\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n this.transform(function coerce(value) {\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch (err) {\n value = null;\n }\n }\n\n if (this.isType(value)) return value;\n return null;\n });\n\n if (spec) {\n this.shape(spec);\n }\n });\n }\n\n _typeCheck(value) {\n return isObject(value) || typeof value === 'function';\n }\n\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n\n let value = super._cast(_value, options); //should ignore nulls here\n\n\n if (value === undefined) return this.getDefault();\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n\n let props = this._nodes.concat(Object.keys(value).filter(v => this._nodes.indexOf(v) === -1));\n\n let intermediateValue = {}; // is filled during the transform below\n\n let innerOptions = _extends({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n\n let isChanged = false;\n\n for (const prop of props) {\n let field = fields[prop];\n let exists = has(value, prop);\n\n if (field) {\n let fieldValue;\n let inputValue = value[prop]; // safe to mutate since this is fired in sequence\n\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop; // innerOptions.value = value[prop];\n\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = 'spec' in field ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n\n if (fieldSpec == null ? void 0 : fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n\n fieldValue = !options.__validating || !strict ? // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n\n if (intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n\n return isChanged ? intermediateValue : value;\n }\n\n _validate(_value, opts = {}, callback) {\n let errors = [];\n let {\n sync,\n from = [],\n originalValue = _value,\n abortEarly = this.spec.abortEarly,\n recursive = this.spec.recursive\n } = opts;\n from = [{\n schema: this,\n value: originalValue\n }, ...from]; // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n\n opts.__validating = true;\n opts.originalValue = originalValue;\n opts.from = from;\n\n super._validate(_value, opts, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || abortEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !isObject(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value;\n\n let tests = this._nodes.map(key => (_, cb) => {\n let path = key.indexOf('.') === -1 ? (opts.path ? `${opts.path}.` : '') + key : `${opts.path || ''}[\"${key}\"]`;\n let field = this.fields[key];\n\n if (field && 'validate' in field) {\n field.validate(value[key], _extends({}, opts, {\n // @ts-ignore\n path,\n from,\n // inner fields are always strict:\n // 1. this isn't strict so the casting will also have cast inner values\n // 2. this is strict in which case the nested values weren't cast either\n strict: true,\n parent: value,\n originalValue: originalValue[key]\n }), cb);\n return;\n }\n\n cb(null);\n });\n\n runTests({\n sync,\n tests,\n value,\n errors,\n endEarly: abortEarly,\n sort: this._sortErrors,\n path: opts.path\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.fields = _extends({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n\n if (target === undefined) {\n nextFields[field] = schemaOrRef;\n } else if (target instanceof BaseSchema && schemaOrRef instanceof BaseSchema) {\n nextFields[field] = schemaOrRef.concat(target);\n }\n }\n\n return next.withMutation(() => next.shape(nextFields, this._excludedEdges));\n }\n\n getDefaultFromShape() {\n let dft = {};\n\n this._nodes.forEach(key => {\n const field = this.fields[key];\n dft[key] = 'default' in field ? field.getDefault() : undefined;\n });\n\n return dft;\n }\n\n _getDefault() {\n if ('default' in this.spec) {\n return super._getDefault();\n } // if there is no default set invent one\n\n\n if (!this._nodes.length) {\n return undefined;\n }\n\n return this.getDefaultFromShape();\n }\n\n shape(additions, excludes = []) {\n let next = this.clone();\n let fields = Object.assign(next.fields, additions);\n next.fields = fields;\n next._sortErrors = sortByKeyOrder(Object.keys(fields));\n\n if (excludes.length) {\n // this is a convenience for when users only supply a single pair\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n next._excludedEdges = [...next._excludedEdges, ...excludes];\n }\n\n next._nodes = sortFields(fields, next._excludedEdges);\n return next;\n }\n\n pick(keys) {\n const picked = {};\n\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n\n return this.clone().withMutation(next => {\n next.fields = {};\n return next.shape(picked);\n });\n }\n\n omit(keys) {\n const next = this.clone();\n const fields = next.fields;\n next.fields = {};\n\n for (const key of keys) {\n delete fields[key];\n }\n\n return next.withMutation(() => next.shape(fields));\n }\n\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (obj == null) return obj;\n let newObj = obj;\n\n if (has(obj, from)) {\n newObj = _extends({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n\n return newObj;\n });\n }\n\n noUnknown(noAllow = true, message = locale.noUnknown) {\n if (typeof noAllow === 'string') {\n message = noAllow;\n noAllow = true;\n }\n\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n\n unknown(allow = true, message = locale.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n\n transformKeys(fn) {\n return this.transform(obj => obj && mapKeys(obj, (_, key) => fn(key)));\n }\n\n camelCase() {\n return this.transformKeys(camelCase);\n }\n\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n\n describe() {\n let base = super.describe();\n base.fields = mapValues(this.fields, value => value.describe());\n return base;\n }\n\n}\nexport function create(spec) {\n return new ObjectSchema(spec);\n}\ncreate.prototype = ObjectSchema.prototype;","import {\n Button,\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n Input,\n Label,\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n useToast,\n} from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport { useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport axios from \"../../../lib/api/axios\";\nimport DocumentItem from \"../DocumentItem\";\nimport ProductIcon from \"../ProductIcon\";\nimport DeleteDialog from \"./deleteDialog\";\n\nimport PriceInputPrice from \"@/components/common/PriceInputBox\";\n\nimport moment from \"moment\";\nimport { useHookFormMask } from \"use-mask-input\";\nimport * as yup from \"yup\";\n\nimport useMediaQuery from \"@/lib/utils/hooks/useMediaQuery\";\n\nconst UnVerifiedProductDetailSheet = ({\n open,\n onOpenChange,\n selectedProduct,\n fetchProducts,\n}) => {\n const { t } = useTranslation();\n const { toast } = useToast();\n const [sheetState, setSheetState] = useState(\"overview\");\n const [product, setProduct] = useState(null);\n\n useState([]);\n const [loading, setLoading] = useState(true);\n const validationSchema = yup.object().shape({\n name: yup\n .string()\n .required(\n t(\"addNewProductSchema.productNameRequired\", \"Ãœrün adı zorunludur\"),\n ),\n priceUnit: yup\n .string()\n .required(\n t(\"addNewProductSchema.priceUnitRequired\", \"Para birimi zorunludur\"),\n ),\n productPrice: yup\n .number()\n .nullable()\n .transform((value) => (isNaN(value) ? null : value))\n .required(t(\"addNewProductSchema.priceRequired\", \"Fiyat zorunludur\"))\n .typeError(t(\"addNewProductSchema.priceRequired\", \"Fiyat zorunludur\")),\n warrantyYear: yup\n .number()\n .required(\n t(\n \"addNewProductSchema.warrantyYearRequired\",\n \"Garanti süresi zorunludur\",\n ),\n ),\n warrantyStartDate: yup\n .string()\n .required(\n t(\n \"addNewProductSchema.purchaseDateRequired\",\n \"Satın alma tarihi zorunludur\",\n ),\n )\n .matches(\n /^(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[0-2])[/]\\d{4}$/,\n t(\n \"addNewProductSchema.invalidDate\",\n \"Geçerli bir tarih giriniz (GG/AA/YYYY)\",\n ),\n ),\n });\n const form = useForm({\n resolver: yupResolver(validationSchema),\n defaultValues: {\n name: \"\",\n priceUnit: \"TRY\",\n productPrice: 0,\n warrantyYear: \"\",\n warrantyStartDate: \"\",\n unverifiedProductCategoryId: \"\",\n },\n });\n\n const handleDeleteProduct = async () => {\n await axios\n .delete(`/unverified-products/${selectedProduct.id}`)\n .then((res) => {\n fetchProducts();\n onOpenChange();\n });\n };\n\n const getUnverifiedProduct = async () => {\n setLoading(true);\n try {\n const res = await axios.get(\n `/unverified-products/${selectedProduct?.id}`,\n );\n setProduct(res.data);\n form.setValue(\"name\", res.data.name);\n form.setValue(\"brandName\", res.data.brandName);\n form.setValue(\"priceUnit\", res.data.priceUnit || \"TRY\");\n form.setValue(\"productPrice\", res.data.productPrice);\n form.setValue(\"warrantyYear\", res.data.warrantyYear);\n form.setValue(\n \"warrantyStartDate\",\n moment(res.data.warrantyStartDate, \"YYYY-MM-DD\").format(\"DD/MM/YYYY\"),\n );\n form.setValue(\"unverifiedProductCategoryId\", res.data.categoryId);\n\n setLoading(false);\n } catch (err) {\n console.log(err);\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (open && selectedProduct?.id) {\n getUnverifiedProduct();\n }\n return () => {\n setProduct(null);\n };\n }, [open, selectedProduct]);\n\n const isMobile = useMediaQuery(\"(max-width: 768px)\");\n\n const onSubmit = async (data) => {\n const bodyObj = {\n ...data,\n warrantyStartDate: moment(data.warrantyStartDate, \"DD/MM/YYYY\").format(\n \"YYYY-MM-DD\",\n ),\n };\n setLoading(true);\n try {\n await axios.put(`/unverified-products/${selectedProduct.id}`, bodyObj);\n onOpenChange();\n fetchProducts();\n } catch (err) {\n toast({\n variant: \"error\",\n title: err.response.data?.errors[0]?.message,\n });\n } finally {\n setLoading(false);\n }\n };\n const registerWithMask = useHookFormMask(form.register);\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent\n side={isMobile ? \"bottom\" : \"right\"}\n className=\"rounded-lg bg-white p-0 md:m-4 \"\n >\n {sheetState === \"overview\" && (\n <>\n <SheetHeader className=\"p-4\">\n <SheetTitle>{t(\"productsPage.productDetail\")}</SheetTitle>\n </SheetHeader>\n <div className=\"flex w-full flex-col pb-4\">\n <div className=\"flex flex-col items-center justify-center border-b pb-8 pt-2\">\n <ProductIcon\n className=\"text-[#4A5567]\"\n productType={product?.category}\n />\n <div className=\"mt-3 flex items-center justify-between gap-2\">\n <h2 className=\"text-center text-xl font-semibold\">\n {product?.brandName}\n </h2>\n <hr className=\"h-4 w-px bg-gray-200\" />\n <h2 className=\"text-center text-base font-medium text-[#677389]\">\n {product?.name}\n </h2>\n </div>\n </div>\n <div className=\"flex flex-col items-center gap-4 border-b py-6\">\n <h2 className=\"text-sm font-medium text-[#111729]\">\n {t(\"productsPage.actions\")}\n </h2>\n <div className=\"flex items-center justify-center gap-6\">\n <button\n onClick={() => setSheetState(\"edit\")}\n aria-label=\"Düzenle\"\n className=\"flex h-10 w-10 items-center justify-center gap-2 rounded-lg bg-[#F5F7FA] p-2 transition-all hover:bg-slate-200\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_4128_97237)\">\n <path\n d=\"M9.16699 3.3332H5.66699C4.26686 3.3332 3.5668 3.3332 3.03202 3.60568C2.56161 3.84536 2.17916 4.22782 1.93948 4.69822C1.66699 5.233 1.66699 5.93307 1.66699 7.3332V14.3332C1.66699 15.7333 1.66699 16.4334 1.93948 16.9682C2.17916 17.4386 2.56161 17.821 3.03202 18.0607C3.5668 18.3332 4.26686 18.3332 5.66699 18.3332H12.667C14.0671 18.3332 14.7672 18.3332 15.302 18.0607C15.7724 17.821 16.1548 17.4386 16.3945 16.9682C16.667 16.4334 16.667 15.7333 16.667 14.3332V10.8332M6.66697 13.3332H8.06242C8.47007 13.3332 8.6739 13.3332 8.86571 13.2871C9.03577 13.2463 9.19835 13.179 9.34747 13.0876C9.51566 12.9845 9.65979 12.8404 9.94804 12.5521L17.917 4.5832C18.6073 3.89284 18.6073 2.77355 17.917 2.0832C17.2266 1.39284 16.1073 1.39284 15.417 2.0832L7.44802 10.0521C7.15977 10.3404 7.01564 10.4845 6.91257 10.6527C6.82119 10.8018 6.75385 10.9644 6.71302 11.1345C6.66697 11.3263 6.66697 11.5301 6.66697 11.9378V13.3332Z\"\n stroke=\"#364153\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4128_97237\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </button>\n <DeleteDialog\n triggerValue={\n <button\n aria-label=\"Düzenle\"\n className=\"flex h-10 w-10 items-center justify-center gap-2 rounded-lg bg-[#F5F7FA] p-2 transition-all hover:bg-slate-200\"\n >\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=\"M9 3H15M3 6H21M19 6L18.2987 16.5193C18.1935 18.0975 18.1409 18.8867 17.8 19.485C17.4999 20.0118 17.0472 20.4353 16.5017 20.6997C15.882 21 15.0911 21 13.5093 21H10.4907C8.90891 21 8.11803 21 7.49834 20.6997C6.95276 20.4353 6.50009 20.0118 6.19998 19.485C5.85911 18.8867 5.8065 18.0975 5.70129 16.5193L5 6\"\n stroke=\"#D92D20\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n }\n on={() => {\n handleDeleteProduct();\n }}\n desc={t(\"productsPage.youAreAboutToDeleteProduct\")}\n />\n </div>\n </div>\n <div className=\"mt-8 flex w-full flex-col items-center justify-center border-b px-6 pb-8\">\n <div className=\"flex w-full justify-between\">\n <h3 className=\"text-base font-medium uppercase text-[#677389]\">\n {t(\"productsPage.warrantyPeriod\")}\n </h3>\n </div>\n <div className=\"mb-8 mt-4 flex w-full flex-col rounded-lg border border-[#E3E7EF]\">\n <div className=\"flex items-center justify-between rounded-lg rounded-t-none border border-[#F9FAFC] bg-white px-4 py-[26px]\">\n <h4 className=\"text-sm text-[#677389] md:text-[16px]\">\n {t(\"productsPage.warrantyEndDate\")}\n </h4>\n <span className=\"text-right text-sm font-semibold text-[#111729] md:text-[18px]\">\n {moment(product?.warrantyEndDate, \"DD-MM-YYYY\").format(\n \"DD MMMM YYYY\",\n )}\n </span>\n </div>\n </div>\n </div>\n <div className=\"mt-8 flex w-full flex-col items-center justify-center px-6\">\n <div className=\"flex w-full justify-between\">\n <h3 className=\"text-base font-medium uppercase text-[#677389]\">\n {t(\"productsPage.documents\")}\n </h3>\n </div>\n <div className=\"mt-4 flex w-full flex-col gap-3 pb-8\">\n <DocumentItem\n getUnverifiedProduct={getUnverifiedProduct}\n document={{\n url: product?.billingUrl,\n name: t(\"productsPage.billingDocument\"),\n type: \"billing\",\n }}\n product={product}\n />\n <DocumentItem\n getUnverifiedProduct={getUnverifiedProduct}\n document={{\n url: product?.warrantyUrl,\n name: t(\"productsPage.warrantyDocument\"),\n type: \"warranty\",\n }}\n product={product}\n />\n <DocumentItem\n getUnverifiedProduct={getUnverifiedProduct}\n document={{\n url: product?.serviceUrl,\n name: t(\"productsPage.serviceDocument\"),\n type: \"service\",\n }}\n product={product}\n />\n </div>\n </div>\n </div>\n </>\n )}\n {sheetState === \"edit\" &&\n (loading ? (\n <div className=\"flex h-full w-full flex-col items-center justify-center gap-4\">\n <svg\n aria-hidden=\"true\"\n className=\"animate-spin mr-2 h-16 w-16 fill-[#0049e6] text-gray-200 dark:text-gray-600\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\n ) : (\n <>\n <SheetHeader className=\"p-4\">\n <SheetTitle>{t(\"productsPage.productDetailEdit\")}</SheetTitle>\n </SheetHeader>\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(onSubmit)}\n className=\"flex flex-col gap-4 p-4\"\n >\n <FormField\n control={form.control}\n name=\"name\"\n render={({ field }) => (\n <FormItem>\n <Label>{t(\"productsPage.productName\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"productPrice\"\n render={({ field }) => (\n <FormItem>\n <Label>{t(\"productsPage.currency\")}</Label>\n <FormControl>\n <PriceInputPrice\n valueUnit={form.getValues().priceUnit}\n value={field.value}\n onChange={field.onChange}\n onChangeUnit={(value) =>\n form.setValue(\"priceUnit\", value)\n }\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"warrantyYear\"\n render={({ field }) => (\n <FormItem>\n <Label>{t(\"productsPage.warrantyPeriod\")}</Label>\n <FormControl>\n <Input type=\"number\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"warrantyStartDate\"\n render={({ field }) => (\n <FormItem>\n <Label>{t(\"productsPage.purchaseDate\")}</Label>\n <FormControl>\n <Input\n type=\"tel\"\n {...field}\n {...registerWithMask(\"warrantyStartDate\", {\n mask: \"99/99/9999\",\n })}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <div className=\"flex justify-end gap-4\">\n <Button\n type=\"button\"\n variant=\"secondaryGray\"\n onClick={() => setSheetState(\"overview\")}\n >\n {t(\"common.back\")}\n </Button>\n <Button type=\"submit\" disabled={loading}>\n {t(\"common.save\")}\n </Button>\n </div>\n </form>\n </Form>\n </>\n ))}\n </SheetContent>\n </Sheet>\n );\n};\n\nexport default UnVerifiedProductDetailSheet;\n","import { Button } from \"@egaranti/components\";\n\nimport React, { useEffect } from \"react\";\n\nimport useStore from \"../../store/useProductStore\";\nimport EmptyData from \"../common/EmptyData\";\nimport ProductCard from \"./ProductCard\";\nimport ProductSkeleton from \"./ProductSkeleton\";\nimport UnVerifiedProductDetailSheet from \"./UnVerifiedProductDetailSheet\";\n\nimport { motion } from \"framer-motion\";\nimport { t } from \"i18next\";\n\nfunction UnverifiedProductsList({ unverifiedProducts, fetchProducts }) {\n const {\n selectedUnverifiedProduct,\n setSelectedUnverifiedProduct,\n openUnverifiedDetailSheet,\n setOpenUnverifiedDetailSheet,\n setOpenAddProductSheet,\n loading,\n } = useStore();\n\n const handleDetailModal = (product) => {\n setSelectedUnverifiedProduct(product);\n setOpenUnverifiedDetailSheet(true);\n };\n\n if (loading) {\n return (\n <div className=\"flex w-full flex-col\">\n <h2 className=\"mb-4 text-sm font-medium text-gray-500 md:text-base md:text-gray-800\">\n {t(\"productsPage.unapprovedProducts\")}\n </h2>\n <div className=\"grid grid-cols-1 items-start gap-5 md:grid-cols-3\">\n {[...Array(6)].map((_, index) => (\n <ProductSkeleton key={index} />\n ))}\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex w-full flex-col\">\n <h2 className=\"mb-4 text-sm font-medium text-gray-500 md:text-base md:text-gray-800\">\n {t(\"productsPage.unapprovedProducts\")}\n </h2>\n {Array.isArray(unverifiedProducts) && unverifiedProducts.length > 0 ? (\n <motion.div className=\"grid grid-cols-1 items-start gap-5 md:grid-cols-3\">\n {unverifiedProducts.map((product, index) => (\n <ProductCard\n key={index}\n onClick={() => handleDetailModal(product)}\n product={product}\n color=\"3\"\n verified={false}\n />\n ))}\n </motion.div>\n ) : (\n <EmptyData\n className=\"mx-auto max-w-[400px]\"\n title={t(\"productsPage.noData\")}\n description={t(\"productsPage.noDataDesc2\")}\n >\n <Button\n onClick={() => {\n setOpenAddProductSheet(true);\n }}\n >\n {t(\"productsPage.addUnapprovedProduct\")}\n </Button>\n </EmptyData>\n )}\n <UnVerifiedProductDetailSheet\n open={openUnverifiedDetailSheet}\n onOpenChange={setOpenUnverifiedDetailSheet}\n selectedProduct={selectedUnverifiedProduct}\n fetchProducts={fetchProducts}\n />\n </div>\n );\n}\n\nexport default UnverifiedProductsList;\n","export default \"__VITE_ASSET__2d675d80__\"","import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport productStore from \"@/store/useProductStore\";\n\nimport { ReactComponent as ArchiveIcon } from \"@/assets/svgs/archiveicon.svg\";\n\nimport { SendIcon } from \"lucide-react\";\n\nimport axios from \"@/lib/api/axios\";\n\nconst ActionButtons = ({ toastInform, t, product, onOpenChange }) => {\n const { fetchProducts } = productStore();\n const handleArchive = async () => {\n try {\n await axios.post(`/individual-customer-products/archive`, {\n individualCustomerProductId: product.id,\n });\n fetchProducts();\n onOpenChange();\n } catch (error) {\n console.error(\"Error archiving product:\", error);\n }\n };\n\n return (\n <div className=\"flex flex-col items-center gap-4 border-b py-6\">\n <h2 className=\"text-sm font-medium text-[#111729]\">\n {t(\"productsPage.actions\")}\n </h2>\n <div className=\"flex items-center justify-center gap-6\">\n <AlertDialog>\n <AlertDialogTrigger asChild>\n <button className=\"group flex flex-col items-center gap-1\">\n <ArchiveIcon className=\"flex h-9 w-9 items-center justify-center gap-2 rounded-lg bg-[#F5F7FA] p-2 transition-all group-hover:bg-slate-200\" />\n <span\n className=\"cursor-pointer text-xs font-medium text-[#111729]\"\n onClick={(e) => e.stopPropagation()}\n >\n {t(\"common.archive\")}\n </span>\n </button>\n </AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>\n {t(\"productsPage.archiveConfirmation\")}\n </AlertDialogTitle>\n </AlertDialogHeader>\n <AlertDialogFooter className=\"flex flex-col gap-2\">\n <AlertDialogCancel>{t(\"common.cancel\")}</AlertDialogCancel>\n <AlertDialogAction onClick={handleArchive}>\n {t(\"common.archive\")}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n <Link\n to={`/claims/create?productId=${product.id}`}\n className=\"group flex flex-col items-center gap-1\"\n onClick={(e) => e.stopPropagation()}\n >\n <SendIcon className=\"flex h-9 w-9 items-center justify-center gap-2 rounded-lg bg-[#F5F7FA] p-2 transition-all group-hover:bg-slate-200\" />\n <span\n className=\"cursor-pointer text-xs font-medium text-[#111729]\"\n onClick={(e) => e.stopPropagation()}\n >\n {t(\"claims.createClaim\", \"Yeni Talep OluÅŸtur\")}\n </span>\n </Link>\n </div>\n </div>\n );\n};\n\nexport default ActionButtons;\n","import { useNavigate } from \"react-router-dom\";\n\nimport DummyFileImage from \"@/assets/images/dummyfile.png\";\n\nconst DocumentSection = ({ verifiedDocuments, unverifiedDocuments, t }) => {\n const navigate = useNavigate();\n\n const DocumentItem = ({ item }) => {\n return (\n <div className=\"flex w-full items-center justify-between rounded-lg border border-[#E3E7EF] bg-[#F2F5F9] p-4\">\n <div className=\"flex items-center gap-2\">\n <img src={DummyFileImage} className=\"h-10 w-10\" aria-hidden />\n <div className=\"flex flex-col gap-2\">\n <h3 className=\"text-sm font-medium text-[#111729]\">{item.name}</h3>\n </div>\n </div>\n <button\n onClick={() => navigate(`/file-preview?url=${item.documentUrl}`)}\n aria-label=\"Ä°ndir\"\n className=\"flex shrink-0 items-center justify-center p-2\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.6667 8.33333L17.5 2.5M17.5 2.5H12.5M17.5 2.5V7.5M8.33333 11.6667L2.5 17.5M2.5 17.5H7.5M2.5 17.5L2.5 12.5\"\n stroke=\"#111729\"\n strokeWidth=\"1.67\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n );\n };\n\n return (\n <>\n {verifiedDocuments.filter((doc) => doc.id !== null).length === 0 ? (\n <div className=\"mt-8 flex w-full flex-col items-center justify-center px-6\">\n <div className=\"flex w-full justify-between\">\n <h3 className=\"text-base font-bold uppercase text-[#677389]\">\n {t(\"Onaylı Belgeler\")}\n </h3>\n </div>\n <div className=\"mt-4 flex w-full flex-col items-center justify-center gap-3 pb-8\">\n <svg\n width=\"44\"\n height=\"44\"\n viewBox=\"0 0 44 44\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {/* SVG content */}\n </svg>\n <p className=\"text-xs text-gray-500\">\n {t(\n \"Herhangi bir garanti belgeniz bulunmamaktadır. Lütfen satıcı ile iletiÅŸime geçiniz\",\n )}\n </p>\n </div>\n </div>\n ) : (\n <div className=\"mt-8 flex w-full flex-col items-center justify-center px-6\">\n <div className=\"flex w-full justify-between\">\n <h3 className=\"text-base font-bold uppercase text-[#677389]\">\n {t(\"productsPage.approvedDocuments\")}\n </h3>\n </div>\n <div className=\"mt-4 flex w-full flex-col gap-3 pb-8\">\n {verifiedDocuments\n .filter((doc) => doc.id !== null)\n .map((item) => (\n <DocumentItem key={item.id} item={item} />\n ))}\n </div>\n </div>\n )}\n {!unverifiedDocuments.every((doc) => doc.documentUrl === null) && (\n <div className=\"mt-8 flex w-full flex-col items-center justify-center px-6\">\n <div className=\"flex w-full justify-between\">\n <h3 className=\"text-base font-bold uppercase text-[#677389]\">\n {t(\"productsPage.otherDocuments\")}\n </h3>\n </div>\n <div className=\"mt-4 flex w-full flex-col gap-3 pb-8\">\n {unverifiedDocuments.map(\n (item) =>\n item.documentUrl && <DocumentItem key={item.id} item={item} />,\n )}\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport default DocumentSection;\n","import { Button, Tag } from \"@egaranti/components\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport ProductIcon from \"../ProductIcon\";\n\nconst ProductDetails = ({ product, loading }) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n\n if (loading) {\n return (\n <div className=\"animate-pulse flex flex-col items-center justify-center border-b pb-8 pt-2\">\n <div className=\"h-16 w-16 rounded-full bg-gray-200\"></div>\n <div className=\"mt-3 flex w-full flex-col items-center gap-2\">\n <div className=\"h-4 w-32 rounded bg-gray-200\"></div>\n <div className=\"h-6 w-48 rounded bg-gray-200\"></div>\n <div className=\"mt-2 h-8 w-40 rounded bg-gray-200\"></div>\n <div className=\"mt-2 h-10 w-32 rounded bg-gray-200\"></div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col items-center justify-center border-b pb-8 pt-2\">\n <ProductIcon productType={product.category} />\n <div className=\"mt-3 flex flex-col gap-2\">\n <h2 className=\"text-center text-base font-medium text-[#677389]\">\n {t(\n product?.category?.split(\">\").pop().trim() || product?.categoryName,\n )}\n </h2>\n <h2 className=\"text-center text-xl font-semibold\">{product.name}</h2>\n {product.extendedWarranty?.extendedWarrantyYear && (\n <div className=\"flex flex-col gap-2\">\n <Tag className=\"mt-2\" size=\"sm\" variant=\"green\">\n <svg\n width=\"17\"\n height=\"17\"\n viewBox=\"0 0 17 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.49935 10.1667V6.16666M6.49935 8.16666H10.4993M13.8327 8.5C13.8327 11.7723 10.2634 14.1523 8.96468 14.9099C8.81708 14.996 8.74328 15.0391 8.63914 15.0614C8.55831 15.0787 8.44039 15.0787 8.35956 15.0614C8.25541 15.0391 8.18162 14.996 8.03402 14.9099C6.73532 14.1523 3.16602 11.7723 3.16602 8.5V5.31173C3.16602 4.77872 3.16602 4.51222 3.25319 4.28313C3.3302 4.08076 3.45534 3.90018 3.61779 3.75702C3.80168 3.59495 4.05121 3.50138 4.55029 3.31423L8.12482 1.97378C8.26341 1.9218 8.33271 1.89582 8.404 1.88552C8.46724 1.87638 8.53146 1.87638 8.59469 1.88552C8.66598 1.89582 8.73528 1.9218 8.87388 1.97378L12.4484 3.31423C12.9475 3.50138 13.197 3.59495 13.3809 3.75702C13.5434 3.90018 13.6685 4.08076 13.7455 4.28313C13.8327 4.51222 13.8327 4.77872 13.8327 5.31173V8.5Z\"\n stroke=\"#054F31\"\n stroke-width=\"1.6\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n\n {t(\"productsPage.extendedWarrantyTag\", {\n years: product?.extendedWarranty?.extendedWarrantyYear,\n })}\n </Tag>\n <Button\n size=\"sm\"\n onClick={() =>\n navigate(\n `/file-preview?url=${product?.extendedWarranty?.policyDocumentUrl}`,\n )\n }\n >\n {t(\"extendedWarrantyPage.download\")}\n </Button>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default ProductDetails;\n","const ServiceButtons = ({ toastInform, t, product }) => {\n const buttons = [\n {\n icon: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.0002 12.0836V7.08363M7.50016 9.58363H12.5002M16.6668 10.0003C16.6668 14.0907 12.2052 17.0656 10.5818 18.0127C10.3973 18.1203 10.3051 18.1741 10.1749 18.2021C10.0739 18.2237 9.92646 18.2237 9.82543 18.2021C9.69524 18.1741 9.603 18.1203 9.4185 18.0127C7.79513 17.0656 3.3335 14.0907 3.3335 10.0003V6.01497C3.3335 5.34871 3.3335 5.01558 3.44246 4.72922C3.53872 4.47625 3.69515 4.25053 3.89821 4.07157C4.12808 3.869 4.43999 3.75203 5.06383 3.51809L9.532 1.84253C9.70524 1.77756 9.79187 1.74508 9.88098 1.7322C9.96003 1.72078 10.0403 1.72078 10.1193 1.7322C10.2085 1.74508 10.2951 1.77756 10.4683 1.84253L14.9365 3.51809C15.5603 3.75203 15.8722 3.869 16.1021 4.07157C16.3052 4.25053 16.4616 4.47625 16.5579 4.72922C16.6668 5.01558 16.6668 5.34871 16.6668 6.01497V10.0003Z\"\n stroke=\"#364153\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n onClick: () => toastInform(t(\"productsPage.tooltips.text1\")),\n },\n {\n icon: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.0262 6.3598C12.6962 6.02979 12.5311 5.86478 12.4693 5.67451C12.4149 5.50714 12.4149 5.32685 12.4693 5.15948C12.5311 4.9692 12.6962 4.8042 13.0262 4.47418L15.3915 2.10887C14.7638 1.82501 14.067 1.66699 13.3334 1.66699C10.5719 1.66699 8.33336 3.90557 8.33336 6.66699C8.33336 7.07619 8.38252 7.47391 8.47524 7.85456C8.57454 8.26219 8.62419 8.46601 8.61538 8.59477C8.60615 8.72957 8.58605 8.80129 8.52389 8.92125C8.46451 9.03584 8.35074 9.14961 8.12321 9.37714L2.91669 14.5837C2.22634 15.274 2.22634 16.3933 2.91669 17.0837C3.60705 17.774 4.72634 17.774 5.41669 17.0837L10.6232 11.8771C10.8507 11.6496 10.9645 11.5358 11.0791 11.4765C11.1991 11.4143 11.2708 11.3942 11.4056 11.385C11.5343 11.3762 11.7382 11.4258 12.1458 11.5251C12.5264 11.6178 12.9242 11.667 13.3334 11.667C16.0948 11.667 18.3334 9.42842 18.3334 6.66699C18.3334 5.93332 18.1753 5.23655 17.8915 4.60887L15.5262 6.97418C15.1962 7.3042 15.0311 7.4692 14.8409 7.53103C14.6735 7.58541 14.4932 7.58541 14.3258 7.53103C14.1356 7.4692 13.9706 7.3042 13.6405 6.97418L13.0262 6.3598Z\"\n stroke=\"#364153\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n onClick: () => toastInform(t(\"productsPage.tooltips.text2\")),\n },\n {\n icon: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M17.0833 6.06527L9.99997 10.0005M9.99997 10.0005L2.91664 6.06527M9.99997 10.0005L10 17.9171M11.6667 17.4079L10.6475 17.9741C10.4112 18.1054 10.293 18.171 10.1679 18.1968C10.0571 18.2195 9.94288 18.2195 9.83213 18.1968C9.70698 18.171 9.58881 18.1054 9.35248 17.9741L3.18581 14.5481C2.93621 14.4095 2.8114 14.3401 2.72053 14.2415C2.64013 14.1543 2.57929 14.0509 2.54207 13.9382C2.5 13.8109 2.5 13.6681 2.5 13.3826V6.61835C2.5 6.33281 2.5 6.19005 2.54207 6.06271C2.57929 5.95007 2.64013 5.84667 2.72053 5.75942C2.8114 5.66081 2.93621 5.59148 3.18581 5.45281L9.35248 2.02688C9.58881 1.89558 9.70698 1.82993 9.83213 1.80419C9.94288 1.78141 10.0571 1.78141 10.1679 1.80419C10.293 1.82993 10.4112 1.89558 10.6475 2.02688L16.8142 5.4528C17.0638 5.59147 17.1886 5.66081 17.2795 5.75942C17.3599 5.84666 17.4207 5.95007 17.4579 6.06271C17.5 6.19004 17.5 6.33281 17.5 6.61835L17.5 10.4171M6.25 3.75048L13.75 7.91714M15.8333 17.5005V12.5005M13.3333 15.0005H18.3333\"\n stroke=\"#364153\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n onClick: () => toastInform(t(\"productsPage.tooltips.text3\")),\n },\n {\n icon: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.6668 8.75033V5.66699C16.6668 4.26686 16.6668 3.5668 16.3943 3.03202C16.1547 2.56161 15.7722 2.17916 15.3018 1.93948C14.767 1.66699 14.067 1.66699 12.6668 1.66699H7.3335C5.93336 1.66699 5.2333 1.66699 4.69852 1.93948C4.22811 2.17916 3.84566 2.56161 3.60598 3.03202C3.3335 3.5668 3.3335 4.26686 3.3335 5.66699V14.3337C3.3335 15.7338 3.3335 16.4339 3.60598 16.9686C3.84566 17.439 4.22811 17.8215 4.69852 18.0612C5.2333 18.3337 5.93336 18.3337 7.3335 18.3337H10.0002M15.0002 17.5003V12.5003M12.5002 15.0003H17.5002\"\n stroke=\"#364153\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n onClick: () => toastInform(t(\"productsPage.tooltips.text4\")),\n },\n ];\n\n return (\n <div className=\"flex flex-col items-center gap-4 border-b py-6\">\n <h2 className=\"text-sm font-medium text-[#111729]\">\n {t(\"productsPage.additionalServices\")}\n </h2>\n <div className=\"flex items-center justify-center gap-6\">\n {buttons.map((button, index) => (\n <button\n key={index}\n onClick={button.onClick}\n aria-label={t(`productsPage.tooltips.text${index + 1}`)}\n className=\"flex h-10 w-10 items-center justify-center gap-2 rounded-lg bg-[#F5F7FA] p-2 transition-all hover:bg-slate-200\"\n >\n {button.icon}\n </button>\n ))}\n </div>\n </div>\n );\n};\n\nexport default ServiceButtons;\n","import React from \"react\";\n\nconst VideoSection = ({ product, t }) => {\n return (\n <div className=\"mt-8 flex w-full flex-col items-center justify-center px-6 pb-8\">\n <div className=\"flex w-full justify-between\">\n <h3 className=\"text-base font-bold uppercase text-[#677389]\">\n {t(\"Videolar\")}\n </h3>\n </div>\n <div className=\"mt-4 flex w-full flex-col gap-4\">\n {product?.videoData?.map((item, index) => (\n <a\n href={item.videoURL}\n key={index}\n target=\"_blank\"\n className=\"flex w-full items-center gap-3 rounded-lg border p-4 hover:bg-gray-100\"\n >\n <div className=\"flex h-12 w-12 items-center justify-center rounded-lg bg-gray-200 text-gray-400\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"lucide lucide-circle-play\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <polygon points=\"10 8 16 12 10 16 10 8\" />\n </svg>\n </div>\n <p className=\"mt-2 text-sm font-medium text-[#111729]\">\n {item.videoTitle.length > 50\n ? item.videoTitle.substring(0, 50) + \"...\"\n : item.videoTitle}\n </p>\n </a>\n ))}\n </div>\n </div>\n );\n};\n\nexport default VideoSection;\n","import {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@egaranti/components\";\n\nconst WarrantyDetails = ({ product, t, loading }) => {\n if (loading) {\n return (\n <div className=\"animate-pulse flex w-full flex-col items-center justify-center border-b pb-8 pt-2\">\n <div className=\"mt-3 flex w-full flex-col items-center gap-2\">\n <div className=\"h-4 w-32 rounded bg-gray-200\"></div>\n <div className=\"h-6 w-48 rounded bg-gray-200\"></div>\n <div className=\"mt-2 h-8 w-40 rounded bg-gray-200\"></div>\n <div className=\"mt-2 h-10 w-32 rounded bg-gray-200\"></div>\n </div>\n </div>\n );\n }\n return (\n <div className=\"mt-8 flex w-full flex-col items-center justify-center border-b px-6 pb-8\">\n <div className=\"flex w-full justify-between\">\n <h3 className=\"text-base font-bold uppercase text-[#677389]\">\n {t(\"productsPage.warrantyPeriod\")}\n </h3>\n <div className=\"flex items-center gap-2\">\n <span className=\"flex shrink-0 items-center gap-1 rounded-xl bg-[#CCDBFA] px-3 py-2 text-center text-xs font-medium text-[#002573]\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.99996 7.66691L7.33329 9.00024L10.3333 6.00024M13.3333 8.00024C13.3333 11.2725 9.76399 13.6525 8.46529 14.4102C8.31769 14.4963 8.24389 14.5393 8.13975 14.5617C8.05892 14.579 7.941 14.579 7.86017 14.5617C7.75602 14.5393 7.68223 14.4963 7.53463 14.4102C6.23593 13.6525 2.66663 11.2725 2.66663 8.00024V4.81197C2.66663 4.27897 2.66663 4.01246 2.7538 3.78338C2.83081 3.581 2.95595 3.40042 3.1184 3.25726C3.30229 3.0952 3.55182 3.00162 4.0509 2.81447L7.62543 1.47402C7.76402 1.42205 7.83332 1.39606 7.90461 1.38576C7.96785 1.37662 8.03207 1.37662 8.0953 1.38576C8.16659 1.39606 8.23589 1.42205 8.37449 1.47402L11.949 2.81447C12.4481 3.00162 12.6976 3.0952 12.8815 3.25726C13.044 3.40042 13.1691 3.581 13.2461 3.78338C13.3333 4.01246 13.3333 4.27897 13.3333 4.81197V8.00024Z\"\n stroke=\"#002573\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n {`${product.remainingWarrantyDay} ${t(\"productsPage.day\")}`}\n </span>\n </div>\n </div>\n <div className=\"mb-8 mt-4 flex w-full flex-col rounded-lg border border-[#E3E7EF]\">\n <DetailRow\n title={t(\"productsPage.warrantyPeriod\")}\n value={\n <>\n {product?.extendedWarranty?.extendedWarrantyYear && (\n <TooltipProvider delayDuration={10}>\n <Tooltip>\n <TooltipTrigger aria-label=\"info\">\n <svg\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.99935 10.1667V6.16667M5.99935 8.16667H9.99935M13.3327 8.5C13.3327 11.7723 9.76338 14.1523 8.46468 14.9099C8.31708 14.996 8.24328 15.0391 8.13914 15.0614C8.05831 15.0787 7.94039 15.0787 7.85956 15.0614C7.75541 15.0391 7.68162 14.996 7.53402 14.9099C6.23532 14.1523 2.66602 11.7723 2.66602 8.5V5.31173C2.66602 4.77873 2.66602 4.51222 2.75319 4.28314C2.8302 4.08076 2.95534 3.90018 3.11779 3.75702C3.30168 3.59496 3.55121 3.50138 4.05029 3.31423L7.62482 1.97378C7.76341 1.92181 7.83271 1.89582 7.904 1.88552C7.96724 1.87638 8.03146 1.87638 8.09469 1.88552C8.16598 1.89582 8.23528 1.92181 8.37388 1.97378L11.9484 3.31423C12.4475 3.50138 12.697 3.59496 12.8809 3.75702C13.0434 3.90018 13.1685 4.08076 13.2455 4.28314C13.3327 4.51222 13.3327 4.77873 13.3327 5.31173V8.5Z\"\n stroke=\"#364153\"\n stroke-width=\"1.6\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </TooltipTrigger>\n <TooltipContent>\n {t(\"productsPage.extendedWarranty\", {\n years: product?.extendedWarranty?.extendedWarrantyYear,\n })}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n {product.remainingWarrantyDay} {t(\"productsPage.day\")}\n </>\n }\n />\n <DetailRow\n title={t(\"productsPage.brand\", \"Marka\")}\n value={product.merchantName}\n />\n {product?.serialNumber && (\n <DetailRow\n title={t(\"productsPage.serialNumber\", \"Seri No\")}\n value={product.serialNumber}\n />\n )}\n </div>\n </div>\n );\n};\n\nconst DetailRow = ({ title, value }) => {\n return (\n <div className=\"flex items-center justify-between rounded-lg rounded-t-none border border-[#F9FAFC] bg-white px-4 py-6\">\n <h4 className=\"text-sm text-[#677389] md:text-[16px]\">{title}</h4>\n <span className=\"text-right text-sm font-semibold text-[#111729] md:text-[18px]\">\n {value}\n </span>\n </div>\n );\n};\n\nexport default WarrantyDetails;\n","import axios from \"./axios\";\n\nexport const getProducts = (params) => {\n const response = axios.get(`/unverified-product-templates`, { params });\n\n return response;\n};\n\nexport const getExtendedWarraantyForProduct = async (productId) => {\n const response = await axios.get(`/extended-warranties/individual`, {\n params: { individualCustomerProductId: productId },\n });\n\n return response.data;\n};\n","import {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n useToast,\n} from \"@egaranti/components\";\n\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport axios from \"../../../lib/api/axios\";\nimport ActionButtons from \"./ActionButtons\";\nimport DocumentSection from \"./DocumentSection\";\nimport ProductDetails from \"./ProductDetails\";\nimport ServiceButtons from \"./ServiceButtons\";\nimport VideoSection from \"./VideoSection\";\nimport WarrantyDetails from \"./WarrantyDetails\";\n\nimport { getExtendedWarraantyForProduct } from \"@/lib/api/product\";\nimport useMediaQuery from \"@/lib/utils/hooks/useMediaQuery\";\n\nconst VerifiedProductDetailSheet = ({\n open,\n onOpenChange,\n selectedProduct,\n}) => {\n const { t, i18n } = useTranslation();\n const [product, setProduct] = useState({});\n const [loading, setLoading] = useState(false);\n const [unverifiedDocuments, setUnverifiedDocuments] = useState([]);\n const [verifiedDocuments, setVerifiedDocuments] = useState([]);\n const { toast } = useToast();\n const isMobile = useMediaQuery(\"(max-width: 768px)\");\n\n useEffect(() => {\n if (open && selectedProduct?.id) {\n fetchProductDetails();\n fetchVerifiedDocuments();\n }\n\n return () => {\n setProduct({});\n setUnverifiedDocuments([]);\n setVerifiedDocuments([]);\n };\n }, [open, selectedProduct?.id]); // Add ?.id to dependency array\n\n const fetchProductDetails = async () => {\n setLoading(true); // Set loading true before fetch\n try {\n const res = await axios.get(\n `/individual-customer-products/${selectedProduct?.id}`,\n );\n\n if (res?.data) {\n const extendedWarrantyRes = await getExtendedWarraantyForProduct(\n selectedProduct?.id,\n );\n\n setProduct({\n ...res.data,\n extendedWarranty: extendedWarrantyRes,\n });\n } else {\n setProduct({});\n }\n\n setUnverifiedDocuments([\n {\n id: 1,\n name: t(\"productsPage.warrantyDocument\"),\n documentUrl: res?.data?.warrantyFileUrl,\n },\n {\n id: 2,\n name: t(\"productsPage.serviceDocument\"),\n documentUrl: res?.data?.serviceFileUrl,\n },\n {\n id: 3,\n name: t(\"productsPage.billingDocument\"),\n documentUrl: res?.data?.billingFileUrl,\n },\n ]);\n } catch (err) {\n console.log(err);\n } finally {\n await new Promise((resolve) => setTimeout(resolve, 750));\n setLoading(false);\n }\n };\n\n const fetchVerifiedDocuments = async () => {\n try {\n const res = await axios.get(\n `/merchant-product-document-histories?individualCustomerProductId=${selectedProduct?.id}`,\n );\n let documents = res.data;\n\n if (!documents.some((doc) => doc.type === \"WARRANTY_DOCUMENT\")) {\n documents.push({\n id: 100,\n name: t(\"productsPage.warrantyDocument\"),\n type: \"WARRANTY_DOCUMENT\",\n documentUrl: `https://cdn.egaranti.com/default-warranty?individualCustomerProductId=${selectedProduct?.id}&lang=${i18n.language}`,\n createdAt: new Date(),\n updatedAt: new Date(),\n });\n }\n setVerifiedDocuments(documents);\n } catch (err) {\n console.log(err);\n }\n };\n\n const toastInform = (msg) => {\n toast({\n description: msg,\n variant: \"primary\",\n });\n };\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent\n side={isMobile ? \"bottom\" : \"right\"}\n className=\"rounded-lg bg-white p-4 md:m-4\"\n >\n <SheetHeader>\n <SheetTitle>{t(\"productsPage.productDetail\")}</SheetTitle>\n </SheetHeader>\n <div className=\"flex w-full flex-col\">\n <ProductDetails loading={loading} product={product} />\n <ActionButtons\n toastInform={toastInform}\n onOpenChange={onOpenChange}\n t={t}\n product={product}\n loading={loading}\n />\n <ServiceButtons toastInform={toastInform} t={t} />\n <WarrantyDetails loading={loading} product={product} t={t} />\n <DocumentSection\n verifiedDocuments={verifiedDocuments}\n unverifiedDocuments={unverifiedDocuments}\n t={t}\n />\n {product?.videoData?.length > 0 && (\n <VideoSection product={product} t={t} />\n )}\n </div>\n </SheetContent>\n </Sheet>\n );\n};\n\nexport default VerifiedProductDetailSheet;\n","import { useEffect } from \"react\";\n\nimport useProductStore from \"../../store/useProductStore\";\nimport EmptyData from \"../common/EmptyData\";\nimport ProductCard from \"./ProductCard\";\nimport ProductSkeleton from \"./ProductSkeleton\";\nimport VerifiedProductDetailSheet from \"./VerifiedProductDetailSheet\";\n\nimport { motion } from \"framer-motion\";\nimport { t } from \"i18next\";\n\nfunction VerifiedProductsList({ verifiedProducts, fetchProducts }) {\n const {\n selectedVerifiedProduct,\n setSelectedVerifiedProduct,\n openVerifiedDetailSheet,\n setOpenVerifiedDetailSheet,\n loading,\n } = useProductStore();\n\n const handleDetailModal = (product) => {\n setSelectedVerifiedProduct(product);\n setOpenVerifiedDetailSheet(true);\n };\n\n useEffect(() => {\n fetchProducts();\n }, []);\n\n if (loading) {\n return (\n <div className=\"flex w-full flex-col\">\n <h2 className=\"mb-4 text-sm font-medium text-gray-500 md:text-base md:text-gray-800\">\n {t(\"productsPage.approvedProducts\")}\n </h2>\n <div className=\"grid grid-cols-1 items-start gap-5 md:grid-cols-3\">\n {[...Array(6)].map((_, index) => (\n <ProductSkeleton key={index} />\n ))}\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex w-full flex-col\">\n <h2 className=\"mb-4 text-sm font-medium text-gray-500 md:text-base md:text-gray-800\">\n {t(\"productsPage.approvedProducts\")}\n </h2>\n {verifiedProducts.length > 0 ? (\n <motion.div className=\"grid grid-cols-1 items-start gap-5 md:grid-cols-3\">\n {verifiedProducts.map((product, index) => (\n <ProductCard\n product={product}\n onClick={() => handleDetailModal(product)}\n key={index}\n />\n ))}\n </motion.div>\n ) : (\n <EmptyData\n className=\"mx-auto max-w-[400px]\"\n title={t(\"productsPage.noData\")}\n description={t(\"productsPage.noDataDesc\")}\n ></EmptyData>\n )}\n <VerifiedProductDetailSheet\n selectedProduct={selectedVerifiedProduct}\n open={openVerifiedDetailSheet}\n onOpenChange={setOpenVerifiedDetailSheet}\n />\n </div>\n );\n}\nexport default VerifiedProductsList;\n","import {\n Button,\n Input,\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Sheet,\n SheetContent,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n} from \"@egaranti/components\";\n\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport axios from \"../../../lib/api/axios\";\nimport useProductStore from \"../../../store/useProductStore\";\n\nimport useMediaQuery from \"@/lib/utils/hooks/useMediaQuery\";\n\nconst FilterSheet = ({ fetchProducts }) => {\n const { t } = useTranslation();\n const {\n filters,\n setFilters,\n openFilterSheet,\n setOpenFilterSheet,\n stateSelectedFilters,\n setStateSelectedFilters,\n } = useProductStore();\n\n const [mainCategories, setMainCategories] = useState([]);\n const [categories, setCategories] = useState([]);\n const [subCategories, setSubCategories] = useState([]);\n const [subCategoryBrands, setSubCategoryBrands] = useState([]);\n\n const getMainCategories = () => {\n mainCategories.length === 0 &&\n axios\n .get(\"/main-categories\")\n .then((res) => {\n setMainCategories(res.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n useEffect(() => {\n getMainCategories();\n }, []);\n\n const handleChangeName = (e) => {\n setStateSelectedFilters({\n ...stateSelectedFilters,\n name: e.target.value,\n });\n };\n\n const handleSelectMainCategory = (e) => {\n const valueName = mainCategories.find((item) => item?.id === e).name;\n\n setStateSelectedFilters({\n ...stateSelectedFilters,\n mainCategory: {\n name: valueName,\n id: e,\n },\n category: {\n name: \"\",\n id: \"\",\n },\n subCategory: {\n name: \"\",\n id: \"\",\n },\n brand: {\n name: \"\",\n id: \"\",\n },\n });\n\n axios\n .get(`/categories`, {\n params: {\n mainCategoryId: e,\n },\n })\n .then((res) => {\n setCategories(res.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const handleSelectCategory = (e) => {\n const valueName = categories.find((item) => item?.id === e).name;\n\n setStateSelectedFilters({\n ...stateSelectedFilters,\n category: {\n name: valueName,\n id: e,\n },\n subCategory: {\n name: \"\",\n id: \"\",\n },\n brand: {\n name: \"\",\n id: \"\",\n },\n });\n\n axios\n .get(`/sub-categories`, {\n params: {\n categoryId: e,\n },\n })\n .then((res) => {\n setSubCategories(res.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const handleSelectSubCategory = (e) => {\n const valueName = subCategories.find((item) => item?.id === e).name;\n\n setStateSelectedFilters({\n ...stateSelectedFilters,\n subCategory: {\n name: valueName,\n id: e,\n },\n brand: {\n name: \"\",\n id: \"\",\n },\n });\n\n axios\n .get(`/sub-category-brands`, {\n params: {\n subCategoryId: e,\n },\n })\n .then((res) => {\n setSubCategoryBrands(res.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const handleSelectBrand = (e) => {\n const valueName = subCategoryBrands.find((item) => item?.id === e).name;\n\n setStateSelectedFilters({\n ...stateSelectedFilters,\n brand: {\n name: valueName,\n id: e,\n },\n });\n };\n\n const mainCategoryOptions = mainCategories.map((category) => ({\n value: category?.id,\n label: category.name,\n }));\n\n const categoryOptions = categories.map((category) => ({\n value: category?.id,\n label: category.name,\n }));\n\n const subCategoryOptions = subCategories.map((category) => ({\n value: category?.id,\n label: category.name,\n }));\n\n const subCategoryBrandOptions = subCategoryBrands.map((brand) => ({\n value: brand?.id,\n label: brand.name,\n }));\n\n useEffect(() => {\n if (stateSelectedFilters?.mainCategory?.id) {\n axios\n .get(`/categories`, {\n params: {\n mainCategoryId: stateSelectedFilters?.mainCategory?.id,\n },\n })\n .then((res) => {\n setCategories(res.data);\n })\n .catch((err) => {\n console.log(err);\n });\n }\n }, [stateSelectedFilters?.mainCategory?.id]);\n\n useEffect(() => {\n if (stateSelectedFilters?.category?.id) {\n axios\n .get(`/sub-categories`, {\n params: {\n categoryId: stateSelectedFilters?.category?.id,\n },\n })\n .then((res) => {\n setSubCategories(res.data);\n })\n .catch((err) => {\n console.log(err);\n });\n }\n\n if (stateSelectedFilters?.subCategory?.id) {\n axios\n .get(`/sub-category-brands`, {\n params: {\n subCategoryId: stateSelectedFilters?.subCategory?.id,\n },\n })\n .then((res) => {\n setSubCategoryBrands(res.data);\n })\n .catch((err) => {\n console.log(err);\n });\n }\n }, [\n stateSelectedFilters?.category?.id,\n stateSelectedFilters?.subCategory?.id,\n ]);\n\n const applyFilters = () => {\n const filtersToApply = {\n ...filters,\n name: stateSelectedFilters?.name || \"\",\n mainCategory: stateSelectedFilters?.mainCategory?.name || \"\",\n category: stateSelectedFilters?.category?.name || \"\",\n subCategory: stateSelectedFilters?.subCategory?.name || \"\",\n subCategoryBrand: stateSelectedFilters?.subCategoryBrand?.name || \"\", // Add this line\n brand: stateSelectedFilters?.brand?.name || \"\",\n };\n\n setFilters(filtersToApply);\n fetchProducts(filtersToApply);\n };\n\n const isMobile = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n <Sheet open={openFilterSheet} onOpenChange={setOpenFilterSheet}>\n <SheetContent\n side={isMobile ? \"bottom\" : \"right\"}\n className=\"rounded-lg bg-white p-4 md:m-4\"\n >\n <SheetHeader>\n <SheetTitle>{t(\"filter.filter\")}</SheetTitle>\n </SheetHeader>\n <div className=\"mt-4 flex flex-col gap-4\">\n <div className=\"flex flex-col gap-2\">\n <Label>{t(\"filter.productName\")}</Label>\n <Input\n value={stateSelectedFilters?.name}\n onChange={(e) => handleChangeName(e)}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n <Label>{t(\"filter.mainCategory\")}</Label>\n <Select\n onValueChange={(value) => {\n handleSelectMainCategory(value);\n }}\n disabled={mainCategories.length === 0}\n defaultValue={stateSelectedFilters?.mainCategory?.id || \"\"}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {mainCategoryOptions.map((category, index) => {\n return (\n <SelectItem key={index} value={category.value}>\n {t(category.label)}\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex flex-col gap-2\">\n <Label>{t(\"filter.category\")}</Label>\n <Select\n onValueChange={(value) => {\n handleSelectCategory(value);\n }}\n disabled={categories.length === 0}\n defaultValue={stateSelectedFilters?.category?.id || \"\"}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {categoryOptions.map((category, index) => {\n return (\n <SelectItem key={index} value={category.value}>\n {t(category.label)}\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex flex-col gap-2\">\n <Label>{t(\"filter.subCategory\")}</Label>\n <Select\n onValueChange={(value) => {\n handleSelectSubCategory(value);\n }}\n disabled={subCategories.length === 0}\n defaultValue={stateSelectedFilters?.subCategory?.id || \"\"}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {subCategoryOptions.map((category, index) => {\n return (\n <SelectItem key={index} value={category.value}>\n {t(category.label)}\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex flex-col gap-2\">\n <Label>{t(\"filter.brand\")}</Label>\n <Select\n onValueChange={(value) => {\n handleSelectBrand(value);\n }}\n disabled={subCategoryBrands.length === 0}\n defaultValue={stateSelectedFilters?.brand?.id || \"\"}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {subCategoryBrandOptions.map((category, index) => {\n return (\n <SelectItem key={index} value={category.value}>\n {category.label}\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n </div>\n </div>\n <SheetFooter className=\"mt-4\">\n <Button\n onClick={() => {\n applyFilters();\n setOpenFilterSheet(false);\n }}\n >\n {t(\"common.save\")}\n </Button>\n </SheetFooter>\n </SheetContent>\n </Sheet>\n );\n};\n\nexport default FilterSheet;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAABQCAYAAABh05mTAAADdklEQVR4Ae3cTXLTMBQA4KdMhy1dMUPbRY/AEWAZD3eoOUGbE5CeAHqCppdIuuQGcIQsIGFYwZZh/JCcehFbruX4Se8leZpJPJZk6+mLG/9EKoAmFVABFVABFVABFVABFVABFZAqYKQGVsb1fv0WiuIK0PwGc/IA81ffJMYrFzFb54B4X0ObwOLscy2PfXXEHkFbAIgfPUXXnjz2LLmIAJceHV+ep1raLMmIaSUGtKaIA/CqTRWxkhiwPBmwbXPTbG1PBnhTFiDM7Jl00qzEmBMpProjcbz6ZC9JpoBwWr4AbiD7Ub9E4RPM1vee+KYUAdEhGsgbAaHJRUBuAH3xkVwy0SE2BJ8yuCHbANvi3SGfEBHvWtvnguwELB5aY+5RQIc4P5/adtuDSg3ZBYg21sXF5iTYA8xXlQ7R7X1xltt3fsgQwMcyVhf14ESL6MLhhkwM6LpMj8gJyQAYD5EDkgkwLmJKSEbA+IgpIJkB0yDGhBQAmA4xBqQQwLSIlJCCAF23jHtLnsarmW3zqrVdgzP7C1/uLTfGlqG/zG3g7kQIL6S9MdQyeRBdEF2QtUCDVhkAXVx8iK51SkgmQH5EKkhGQBmIQyGZAXdDzH5eAxbuEdKl28EBpiWY4hbmF7PQvvX7Tsx+vQH89zV053tdD807eHz9JaQP/Z7i4N88ZKcHUWdkB1IFpn6IMDoN3O/+V0P8E9qJfohoL3SPJZkXwX3th+i+I9B8sI7LA7Z0fZv0GQvZ78QSS67rXvi5dt0t4vzcfbBsiR9xCGDFxgzJi0gBKACSD5ESkBmy34mlCnbosgvQ3cq1p/ay1AMEnmJMjxgC+NzzQO7ftT0fblrEoYBVB4RBpkOkAhQImQaRGlAYZHzEWICCIOMixgYUAhkPMRWgAMg4iKkBmSHpEbkAGSFpEbkBmSDpEDfzWPKqH41l6l/lwi7Ip404d8igQ/TNY6kCSg1YtdsNuS/zWNKPjakMy2UX5Fbl3VbojkTwzGPhOgLrFq2QIuexFHd2dI/9fw32hXibenRW3W5rvYSsxUc0j4XvoexWDz0r4xV6ct0UD3ExE/45e7t8FJmKSPAxK+KBIy49/fPleaqlzZJ8JDan/qId8iYwiTvTbRll3+1QPjuj35iXUIzsgPawoW5b+9AVFVABFVABFVABFVABFVABFThqgf8hINrKAe5vawAAAABJRU5ErkJggg==\"","import { useTranslation } from \"react-i18next\";\n\nimport PlaceHolderIcon from \"@/assets/images/placeholder-icon.png\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport const SelectableCard = ({ selected, onClick, item, type }) => {\n const { t } = useTranslation();\n\n return (\n <div className=\"flex flex-col items-center\">\n <div\n className={cn(\n \"flex h-full w-full cursor-pointer flex-col items-center justify-center rounded-lg border bg-white p-4\",\n selected\n ? \"border-2 border-[#0049E6]\"\n : \"border-gray-200 hover:border-blue-200\",\n )}\n onClick={onClick}\n >\n <img\n className=\"max-w-12\"\n src={item.logoUrl || PlaceHolderIcon}\n alt={item.name}\n />\n </div>\n <span\n className={cn(\n \"mt-2 text-center text-xs font-semibold\",\n selected ? \"text-[#0049E6]\" : \"text-gray-500\",\n )}\n >\n {type === \"category\"\n ? t(item.name)\n : item.name.length > 20\n ? item.name.substring(0, 20) + \"...\"\n : item.name}\n </span>\n </div>\n );\n};\n","export const FORM_STEPS = {\n CATEGORY: 1,\n BRAND: 2,\n DETAILS: 3,\n DONE: 4,\n};\n\nexport const DEFAULT_FORM_VALUES = {\n priceUnit: localStorage.getItem(\"country\") === \"UZ\" ? \"UZS\" : \"TRY\",\n productName: \"\",\n purchaseDate: \"\",\n productPrice: 0,\n unverifiedCategoryId: \"\",\n brand: \"\",\n customBrand: \"\",\n billFile: null,\n};\n","import React, { useState, useRef, useCallback, useEffect, useLayoutEffect } from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\n\n// ../web/dist/index.js\nvar a0 = Object.defineProperty;\nvar o0 = Object.defineProperties;\nvar s0 = Object.getOwnPropertyDescriptors;\nvar W1 = Object.getOwnPropertySymbols;\nvar a3 = Object.prototype.hasOwnProperty;\nvar o3 = Object.prototype.propertyIsEnumerable;\nvar p2 = (c, n, i) => n in c ? a0(c, n, { enumerable: true, configurable: true, writable: true, value: i }) : c[n] = i;\nvar F = (c, n) => {\n for (var i in n || (n = {}))\n a3.call(n, i) && p2(c, i, n[i]);\n if (W1)\n for (var i of W1(n))\n o3.call(n, i) && p2(c, i, n[i]);\n return c;\n};\nvar k = (c, n) => o0(c, s0(n));\nvar $1 = (c, n) => {\n var i = {};\n for (var d in c)\n a3.call(c, d) && n.indexOf(d) < 0 && (i[d] = c[d]);\n if (c != null && W1)\n for (var d of W1(c))\n n.indexOf(d) < 0 && o3.call(c, d) && (i[d] = c[d]);\n return i;\n};\nvar _ = (c, n, i) => p2(c, typeof n != \"symbol\" ? n + \"\" : n, i);\nvar g = (c, n, i) => new Promise((d, s) => {\n var m = (I) => {\n try {\n L(i.next(I));\n } catch (D) {\n s(D);\n }\n }, b = (I) => {\n try {\n L(i.throw(I));\n } catch (D) {\n s(D);\n }\n }, L = (I) => I.done ? d(I.value) : Promise.resolve(I.value).then(m, b);\n L((i = i.apply(c, n)).next());\n});\nvar v2 = class {\n requestAnimationFrame(n) {\n return requestAnimationFrame(n);\n }\n cancelAnimationFrame(n) {\n cancelAnimationFrame(n);\n }\n};\nvar f2 = class {\n constructor() {\n _(this, \"_lastHandleId\", 0);\n _(this, \"_lastImmediate\", null);\n }\n requestAnimationFrame(n) {\n return this._lastHandleId >= Number.MAX_SAFE_INTEGER && (this._lastHandleId = 0), this._lastHandleId += 1, this._lastImmediate = setImmediate(() => {\n n(Date.now());\n }), this._lastHandleId;\n }\n cancelAnimationFrame(n) {\n this._lastImmediate && clearImmediate(this._lastImmediate);\n }\n};\nvar z1 = class {\n constructor() {\n _(this, \"_strategy\");\n this._strategy = typeof requestAnimationFrame == \"function\" ? new v2() : new f2();\n }\n requestAnimationFrame(n) {\n return this._strategy.requestAnimationFrame(n);\n }\n cancelAnimationFrame(n) {\n this._strategy.cancelAnimationFrame(n);\n }\n};\nvar x = typeof window != \"undefined\" && typeof window.document != \"undefined\";\nvar U1 = new Uint8Array([80, 75, 3, 4]);\nvar s3 = [\"v\", \"ip\", \"op\", \"layers\", \"fr\", \"w\", \"h\"];\nvar m2 = \"0.36.1\";\nvar _2 = \"@lottiefiles/dotlottie-web\";\nvar d3 = 0.75;\nvar d0 = (() => {\n var n;\n var c = typeof document != \"undefined\" ? (n = document.currentScript) == null ? void 0 : n.src : void 0;\n return function(i = {}) {\n var d, s = i, m, b, L = new Promise((e, t) => {\n m = e, b = t;\n }), I = Object.assign({}, s), D = \"./this.program\", U = \"\", d1;\n typeof document != \"undefined\" && document.currentScript && (U = document.currentScript.src), c && (U = c), U.startsWith(\"blob:\") ? U = \"\" : U = U.substr(0, U.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1), d1 = (e) => fetch(e, { credentials: \"same-origin\" }).then((t) => t.ok ? t.arrayBuffer() : Promise.reject(Error(t.status + \" : \" + t.url)));\n var E1 = s.print || console.log.bind(console), i1 = s.printErr || console.error.bind(console);\n Object.assign(s, I), I = null, s.thisProgram && (D = s.thisProgram);\n var P1 = s.wasmBinary, I1, S1 = false, N1, r1, T, a1, u1, Z, E, E2, P2;\n function I2() {\n var e = I1.buffer;\n s.HEAP8 = r1 = new Int8Array(e), s.HEAP16 = a1 = new Int16Array(e), s.HEAPU8 = T = new Uint8Array(e), s.HEAPU16 = u1 = new Uint16Array(e), s.HEAP32 = Z = new Int32Array(e), s.HEAPU32 = E = new Uint32Array(e), s.HEAPF32 = E2 = new Float32Array(e), s.HEAPF64 = P2 = new Float64Array(e);\n }\n var S2 = [], A2 = [], T2 = [];\n function _3() {\n var e = s.preRun.shift();\n S2.unshift(e);\n }\n var Q = 0, l1 = null;\n function A1(e) {\n var t;\n throw (t = s.onAbort) == null || t.call(s, e), e = \"Aborted(\" + e + \")\", i1(e), S1 = true, e = new WebAssembly.RuntimeError(e + \". Build with -sASSERTIONS for more info.\"), b(e), e;\n }\n var F2 = (e) => e.startsWith(\"data:application/octet-stream;base64,\"), h1;\n function x2(e) {\n if (e == h1 && P1)\n return new Uint8Array(P1);\n throw \"both async and sync fetching of the wasm failed\";\n }\n function g3(e) {\n return P1 ? Promise.resolve().then(() => x2(e)) : d1(e).then((t) => new Uint8Array(t), () => x2(e));\n }\n function D2(e, t, r) {\n return g3(e).then((a) => WebAssembly.instantiate(a, t)).then(r, (a) => {\n i1(`failed to asynchronously prepare wasm: ${a}`), A1(a);\n });\n }\n function y3(e, t) {\n var r = h1;\n return P1 || typeof WebAssembly.instantiateStreaming != \"function\" || F2(r) || typeof fetch != \"function\" ? D2(r, e, t) : fetch(r, { credentials: \"same-origin\" }).then((a) => WebAssembly.instantiateStreaming(a, e).then(t, function(o) {\n return i1(`wasm streaming compile failed: ${o}`), i1(\"falling back to ArrayBuffer instantiation\"), D2(r, e, t);\n }));\n }\n function R2(e) {\n this.name = \"ExitStatus\", this.message = `Program terminated with exit(${e})`, this.status = e;\n }\n var G1 = (e) => {\n for (; 0 < e.length; )\n e.shift()(s);\n }, J1 = s.noExitRuntime || true, k2 = typeof TextDecoder != \"undefined\" ? new TextDecoder() : void 0, c1 = (e, t, r) => {\n var a = t + r;\n for (r = t; e[r] && !(r >= a); )\n ++r;\n if (16 < r - t && e.buffer && k2)\n return k2.decode(e.subarray(t, r));\n for (a = \"\"; t < r; ) {\n var o = e[t++];\n if (o & 128) {\n var u = e[t++] & 63;\n if ((o & 224) == 192)\n a += String.fromCharCode((o & 31) << 6 | u);\n else {\n var h = e[t++] & 63;\n o = (o & 240) == 224 ? (o & 15) << 12 | u << 6 | h : (o & 7) << 18 | u << 12 | h << 6 | e[t++] & 63, 65536 > o ? a += String.fromCharCode(o) : (o -= 65536, a += String.fromCharCode(55296 | o >> 10, 56320 | o & 1023));\n }\n } else\n a += String.fromCharCode(o);\n }\n return a;\n };\n class w3 {\n constructor(t) {\n this.Ca = t - 24;\n }\n }\n var O2 = 0, p1 = (e, t, r) => {\n var a = T;\n if (0 < r) {\n r = t + r - 1;\n for (var o = 0; o < e.length; ++o) {\n var u = e.charCodeAt(o);\n if (55296 <= u && 57343 >= u) {\n var h = e.charCodeAt(++o);\n u = 65536 + ((u & 1023) << 10) | h & 1023;\n }\n if (127 >= u) {\n if (t >= r)\n break;\n a[t++] = u;\n } else {\n if (2047 >= u) {\n if (t + 1 >= r)\n break;\n a[t++] = 192 | u >> 6;\n } else {\n if (65535 >= u) {\n if (t + 2 >= r)\n break;\n a[t++] = 224 | u >> 12;\n } else {\n if (t + 3 >= r)\n break;\n a[t++] = 240 | u >> 18, a[t++] = 128 | u >> 12 & 63;\n }\n a[t++] = 128 | u >> 6 & 63;\n }\n a[t++] = 128 | u & 63;\n }\n }\n a[t] = 0;\n }\n }, T1 = {}, q1 = (e) => {\n for (; e.length; ) {\n var t = e.pop();\n e.pop()(t);\n }\n };\n function v1(e) {\n return this.fromWireType(E[e >> 2]);\n }\n var o1 = {}, e1 = {}, F1 = {}, f1, X = (e, t, r) => {\n function a(l) {\n if (l = r(l), l.length !== e.length)\n throw new f1(\"Mismatched type converter count\");\n for (var p = 0; p < e.length; ++p)\n H(e[p], l[p]);\n }\n e.forEach((l) => F1[l] = t);\n var o = Array(t.length), u = [], h = 0;\n t.forEach((l, p) => {\n e1.hasOwnProperty(l) ? o[p] = e1[l] : (u.push(l), o1.hasOwnProperty(l) || (o1[l] = []), o1[l].push(() => {\n o[p] = e1[l], ++h, h === u.length && a(o);\n }));\n }), u.length === 0 && a(o);\n }, B2, R = (e) => {\n for (var t = \"\"; T[e]; )\n t += B2[T[e++]];\n return t;\n }, y;\n function C3(e, t, r = {}) {\n var a = t.name;\n if (!e)\n throw new y(`type \"${a}\" must have a positive integer typeid pointer`);\n if (e1.hasOwnProperty(e)) {\n if (r.hb)\n return;\n throw new y(`Cannot register type '${a}' twice`);\n }\n e1[e] = t, delete F1[e], o1.hasOwnProperty(e) && (t = o1[e], delete o1[e], t.forEach((o) => o()));\n }\n function H(e, t, r = {}) {\n return C3(e, t, r);\n }\n var K1 = (e) => {\n throw new y(e.Aa.Da.Ba.name + \" instance already deleted\");\n }, Y1 = false, W2 = () => {\n }, $2 = (e, t, r) => t === r ? e : r.Ga === void 0 ? null : (e = $2(e, t, r.Ga), e === null ? null : r.$a(e)), z2 = {}, m1 = [], X1 = () => {\n for (; m1.length; ) {\n var e = m1.pop();\n e.Aa.Ma = false, e.delete();\n }\n }, _1, g1 = {}, L3 = (e, t) => {\n if (t === void 0)\n throw new y(\"ptr should not be undefined\");\n for (; e.Ga; )\n t = e.Pa(t), e = e.Ga;\n return g1[t];\n }, x1 = (e, t) => {\n if (!t.Da || !t.Ca)\n throw new f1(\"makeClassHandle requires ptr and ptrType\");\n if (!!t.Ha != !!t.Ea)\n throw new f1(\"Both smartPtrType and smartPtr must be specified\");\n return t.count = { value: 1 }, y1(Object.create(e, { Aa: { value: t, writable: true } }));\n }, y1 = (e) => typeof FinalizationRegistry == \"undefined\" ? (y1 = (t) => t, e) : (Y1 = new FinalizationRegistry((t) => {\n t = t.Aa, --t.count.value, t.count.value === 0 && (t.Ea ? t.Ha.Ka(t.Ea) : t.Da.Ba.Ka(t.Ca));\n }), y1 = (t) => {\n var r = t.Aa;\n return r.Ea && Y1.register(t, { Aa: r }, t), t;\n }, W2 = (t) => {\n Y1.unregister(t);\n }, y1(e));\n function D1() {\n }\n var w1 = (e, t) => Object.defineProperty(t, \"name\", { value: e }), U2 = (e, t, r) => {\n if (e[t].Fa === void 0) {\n var a = e[t];\n e[t] = function(...o) {\n if (!e[t].Fa.hasOwnProperty(o.length))\n throw new y(`Function '${r}' called with an invalid number of arguments (${o.length}) - expects one of (${e[t].Fa})!`);\n return e[t].Fa[o.length].apply(this, o);\n }, e[t].Fa = [], e[t].Fa[a.Qa] = a;\n }\n }, Z1 = (e, t, r) => {\n if (s.hasOwnProperty(e)) {\n if (r === void 0 || s[e].Fa !== void 0 && s[e].Fa[r] !== void 0)\n throw new y(`Cannot register public name '${e}' twice`);\n if (U2(s, e, e), s.hasOwnProperty(r))\n throw new y(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`);\n s[e].Fa[r] = t;\n } else\n s[e] = t, r !== void 0 && (s[e].qb = r);\n }, M3 = (e) => {\n if (e === void 0)\n return \"_unknown\";\n e = e.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var t = e.charCodeAt(0);\n return 48 <= t && 57 >= t ? `_${e}` : e;\n };\n function E3(e, t, r, a, o, u, h, l) {\n this.name = e, this.constructor = t, this.Na = r, this.Ka = a, this.Ga = o, this.bb = u, this.Pa = h, this.$a = l, this.jb = [];\n }\n var Q1 = (e, t, r) => {\n for (; t !== r; ) {\n if (!t.Pa)\n throw new y(`Expected null or instance of ${r.name}, got an instance of ${t.name}`);\n e = t.Pa(e), t = t.Ga;\n }\n return e;\n };\n function P3(e, t) {\n if (t === null) {\n if (this.Ta)\n throw new y(`null is not a valid ${this.name}`);\n return 0;\n }\n if (!t.Aa)\n throw new y(`Cannot pass \"${o2(t)}\" as a ${this.name}`);\n if (!t.Aa.Ca)\n throw new y(`Cannot pass deleted object as a pointer of type ${this.name}`);\n return Q1(t.Aa.Ca, t.Aa.Da.Ba, this.Ba);\n }\n function I3(e, t) {\n if (t === null) {\n if (this.Ta)\n throw new y(`null is not a valid ${this.name}`);\n if (this.Sa) {\n var r = this.Ua();\n return e !== null && e.push(this.Ka, r), r;\n }\n return 0;\n }\n if (!t || !t.Aa)\n throw new y(`Cannot pass \"${o2(t)}\" as a ${this.name}`);\n if (!t.Aa.Ca)\n throw new y(`Cannot pass deleted object as a pointer of type ${this.name}`);\n if (!this.Ra && t.Aa.Da.Ra)\n throw new y(`Cannot convert argument of type ${t.Aa.Ha ? t.Aa.Ha.name : t.Aa.Da.name} to parameter type ${this.name}`);\n if (r = Q1(t.Aa.Ca, t.Aa.Da.Ba, this.Ba), this.Sa) {\n if (t.Aa.Ea === void 0)\n throw new y(\"Passing raw pointer to smart pointer is illegal\");\n switch (this.ob) {\n case 0:\n if (t.Aa.Ha === this)\n r = t.Aa.Ea;\n else\n throw new y(`Cannot convert argument of type ${t.Aa.Ha ? t.Aa.Ha.name : t.Aa.Da.name} to parameter type ${this.name}`);\n break;\n case 1:\n r = t.Aa.Ea;\n break;\n case 2:\n if (t.Aa.Ha === this)\n r = t.Aa.Ea;\n else {\n var a = t.clone();\n r = this.kb(r, k1(() => a.delete())), e !== null && e.push(this.Ka, r);\n }\n break;\n default:\n throw new y(\"Unsupporting sharing policy\");\n }\n }\n return r;\n }\n function S3(e, t) {\n if (t === null) {\n if (this.Ta)\n throw new y(`null is not a valid ${this.name}`);\n return 0;\n }\n if (!t.Aa)\n throw new y(`Cannot pass \"${o2(t)}\" as a ${this.name}`);\n if (!t.Aa.Ca)\n throw new y(`Cannot pass deleted object as a pointer of type ${this.name}`);\n if (t.Aa.Da.Ra)\n throw new y(`Cannot convert argument of type ${t.Aa.Da.name} to parameter type ${this.name}`);\n return Q1(t.Aa.Ca, t.Aa.Da.Ba, this.Ba);\n }\n function b1(e, t, r, a, o, u, h, l, p, v, f) {\n this.name = e, this.Ba = t, this.Ta = r, this.Ra = a, this.Sa = o, this.ib = u, this.ob = h, this.Ya = l, this.Ua = p, this.kb = v, this.Ka = f, o || t.Ga !== void 0 ? this.toWireType = I3 : (this.toWireType = a ? P3 : S3, this.Ja = null);\n }\n var j2 = (e, t, r) => {\n if (!s.hasOwnProperty(e))\n throw new f1(\"Replacing nonexistent public symbol\");\n s[e].Fa !== void 0 && r !== void 0 ? s[e].Fa[r] = t : (s[e] = t, s[e].Qa = r);\n }, j, A3 = (e, t, r = []) => (e.includes(\"j\") ? (e = e.replace(/p/g, \"i\"), t = (0, s[\"dynCall_\" + e])(t, ...r)) : t = j.get(t)(...r), t), T3 = (e, t) => (...r) => A3(e, t, r), O = (e, t) => {\n e = R(e);\n var r = e.includes(\"j\") ? T3(e, t) : j.get(t);\n if (typeof r != \"function\")\n throw new y(`unknown function pointer with signature ${e}: ${t}`);\n return r;\n }, H2, N2 = (e) => {\n e = Q2(e);\n var t = R(e);\n return Y(e), t;\n }, R1 = (e, t) => {\n function r(u) {\n o[u] || e1[u] || (F1[u] ? F1[u].forEach(r) : (a.push(u), o[u] = true));\n }\n var a = [], o = {};\n throw t.forEach(r), new H2(`${e}: ` + a.map(N2).join([\", \"]));\n }, e2 = (e, t) => {\n for (var r = [], a = 0; a < e; a++)\n r.push(E[t + 4 * a >> 2]);\n return r;\n };\n function F3(e) {\n for (var t = 1; t < e.length; ++t)\n if (e[t] !== null && e[t].Ja === void 0)\n return true;\n return false;\n }\n function t2(e, t, r, a, o) {\n var u = t.length;\n if (2 > u)\n throw new y(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n var h = t[1] !== null && r !== null, l = F3(t), p = t[0].name !== \"void\", v = u - 2, f = Array(v), w = [], C = [];\n return w1(e, function(...$) {\n if (C.length = 0, w.length = h ? 2 : 1, w[0] = o, h) {\n var S = t[1].toWireType(C, this);\n w[1] = S;\n }\n for (var A = 0; A < v; ++A)\n f[A] = t[A + 2].toWireType(C, $[A]), w.push(f[A]);\n if ($ = a(...w), l)\n q1(C);\n else\n for (A = h ? 1 : 2; A < t.length; A++) {\n var J = A === 1 ? S : f[A - 2];\n t[A].Ja !== null && t[A].Ja(J);\n }\n return S = p ? t[0].fromWireType($) : void 0, S;\n });\n }\n var V2 = (e) => {\n e = e.trim();\n let t = e.indexOf(\"(\");\n return t !== -1 ? e.substr(0, t) : e;\n }, n2 = [], K = [], i2 = (e) => {\n 9 < e && --K[e + 1] === 0 && (K[e] = void 0, n2.push(e));\n }, r2 = (e) => {\n if (!e)\n throw new y(\"Cannot use deleted val. handle = \" + e);\n return K[e];\n }, k1 = (e) => {\n switch (e) {\n case void 0:\n return 2;\n case null:\n return 4;\n case true:\n return 6;\n case false:\n return 8;\n default:\n let t = n2.pop() || K.length;\n return K[t] = e, K[t + 1] = 1, t;\n }\n }, G2 = { name: \"emscripten::val\", fromWireType: (e) => {\n var t = r2(e);\n return i2(e), t;\n }, toWireType: (e, t) => k1(t), Ia: 8, readValueFromPointer: v1, Ja: null }, x3 = (e, t, r) => {\n switch (t) {\n case 1:\n return r ? function(a) {\n return this.fromWireType(r1[a]);\n } : function(a) {\n return this.fromWireType(T[a]);\n };\n case 2:\n return r ? function(a) {\n return this.fromWireType(a1[a >> 1]);\n } : function(a) {\n return this.fromWireType(u1[a >> 1]);\n };\n case 4:\n return r ? function(a) {\n return this.fromWireType(Z[a >> 2]);\n } : function(a) {\n return this.fromWireType(E[a >> 2]);\n };\n default:\n throw new TypeError(`invalid integer width (${t}): ${e}`);\n }\n }, a2 = (e, t) => {\n var r = e1[e];\n if (r === void 0)\n throw e = `${t} has unknown type ${N2(e)}`, new y(e);\n return r;\n }, o2 = (e) => {\n if (e === null)\n return \"null\";\n var t = typeof e;\n return t === \"object\" || t === \"array\" || t === \"function\" ? e.toString() : \"\" + e;\n }, D3 = (e, t) => {\n switch (t) {\n case 4:\n return function(r) {\n return this.fromWireType(E2[r >> 2]);\n };\n case 8:\n return function(r) {\n return this.fromWireType(P2[r >> 3]);\n };\n default:\n throw new TypeError(`invalid float width (${t}): ${e}`);\n }\n }, R3 = (e, t, r) => {\n switch (t) {\n case 1:\n return r ? (a) => r1[a] : (a) => T[a];\n case 2:\n return r ? (a) => a1[a >> 1] : (a) => u1[a >> 1];\n case 4:\n return r ? (a) => Z[a >> 2] : (a) => E[a >> 2];\n default:\n throw new TypeError(`invalid integer width (${t}): ${e}`);\n }\n }, k3 = Object.assign({ optional: true }, G2), J2 = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf-16le\") : void 0, O3 = (e, t) => {\n for (var r = e >> 1, a = r + t / 2; !(r >= a) && u1[r]; )\n ++r;\n if (r <<= 1, 32 < r - e && J2)\n return J2.decode(T.subarray(e, r));\n for (r = \"\", a = 0; !(a >= t / 2); ++a) {\n var o = a1[e + 2 * a >> 1];\n if (o == 0)\n break;\n r += String.fromCharCode(o);\n }\n return r;\n }, B3 = (e, t, r) => {\n if (r != null || (r = 2147483647), 2 > r)\n return 0;\n r -= 2;\n var a = t;\n r = r < 2 * e.length ? r / 2 : e.length;\n for (var o = 0; o < r; ++o)\n a1[t >> 1] = e.charCodeAt(o), t += 2;\n return a1[t >> 1] = 0, t - a;\n }, W3 = (e) => 2 * e.length, $3 = (e, t) => {\n for (var r = 0, a = \"\"; !(r >= t / 4); ) {\n var o = Z[e + 4 * r >> 2];\n if (o == 0)\n break;\n ++r, 65536 <= o ? (o -= 65536, a += String.fromCharCode(55296 | o >> 10, 56320 | o & 1023)) : a += String.fromCharCode(o);\n }\n return a;\n }, z3 = (e, t, r) => {\n if (r != null || (r = 2147483647), 4 > r)\n return 0;\n var a = t;\n r = a + r - 4;\n for (var o = 0; o < e.length; ++o) {\n var u = e.charCodeAt(o);\n if (55296 <= u && 57343 >= u) {\n var h = e.charCodeAt(++o);\n u = 65536 + ((u & 1023) << 10) | h & 1023;\n }\n if (Z[t >> 2] = u, t += 4, t + 4 > r)\n break;\n }\n return Z[t >> 2] = 0, t - a;\n }, U3 = (e) => {\n for (var t = 0, r = 0; r < e.length; ++r) {\n var a = e.charCodeAt(r);\n 55296 <= a && 57343 >= a && ++r, t += 4;\n }\n return t;\n }, s2 = [], j3 = (e) => {\n var t = s2.length;\n return s2.push(e), t;\n }, H3 = (e, t) => {\n for (var r = Array(e), a = 0; a < e; ++a)\n r[a] = a2(E[t + 4 * a >> 2], \"parameter \" + a);\n return r;\n }, N3 = Reflect.construct, C1 = {}, q22 = (e) => {\n if (!(e instanceof R2 || e == \"unwind\"))\n throw e;\n }, d2 = 0, K2 = (e) => {\n var t;\n throw N1 = e, J1 || 0 < d2 || ((t = s.onExit) == null || t.call(s, e), S1 = true), new R2(e);\n }, V3 = (e) => {\n if (!S1)\n try {\n if (e(), !(J1 || 0 < d2))\n try {\n N1 = e = N1, K2(e);\n } catch (t) {\n q22(t);\n }\n } catch (t) {\n q22(t);\n }\n }, u2 = {}, Y2 = () => {\n if (!l2) {\n var e = { USER: \"web_user\", LOGNAME: \"web_user\", PATH: \"/\", PWD: \"/\", HOME: \"/home/web_user\", LANG: (typeof navigator == \"object\" && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\", _: D || \"./this.program\" }, t;\n for (t in u2)\n u2[t] === void 0 ? delete e[t] : e[t] = u2[t];\n var r = [];\n for (t in e)\n r.push(`${t}=${e[t]}`);\n l2 = r;\n }\n return l2;\n }, l2, G3 = [null, [], []], J3 = () => {\n if (typeof crypto == \"object\" && typeof crypto.getRandomValues == \"function\")\n return (e) => crypto.getRandomValues(e);\n A1(\"initRandomDevice\");\n }, X2 = (e) => (X2 = J3())(e);\n f1 = s.InternalError = class extends Error {\n constructor(e) {\n super(e), this.name = \"InternalError\";\n }\n };\n for (var Z2 = Array(256), O1 = 0; 256 > O1; ++O1)\n Z2[O1] = String.fromCharCode(O1);\n B2 = Z2, y = s.BindingError = class extends Error {\n constructor(e) {\n super(e), this.name = \"BindingError\";\n }\n }, Object.assign(D1.prototype, { isAliasOf: function(e) {\n if (!(this instanceof D1 && e instanceof D1))\n return false;\n var t = this.Aa.Da.Ba, r = this.Aa.Ca;\n e.Aa = e.Aa;\n var a = e.Aa.Da.Ba;\n for (e = e.Aa.Ca; t.Ga; )\n r = t.Pa(r), t = t.Ga;\n for (; a.Ga; )\n e = a.Pa(e), a = a.Ga;\n return t === a && r === e;\n }, clone: function() {\n if (this.Aa.Ca || K1(this), this.Aa.Oa)\n return this.Aa.count.value += 1, this;\n var e = y1, t = Object, r = t.create, a = Object.getPrototypeOf(this), o = this.Aa;\n return e = e(r.call(t, a, { Aa: { value: { count: o.count, Ma: o.Ma, Oa: o.Oa, Ca: o.Ca, Da: o.Da, Ea: o.Ea, Ha: o.Ha } } })), e.Aa.count.value += 1, e.Aa.Ma = false, e;\n }, delete() {\n if (this.Aa.Ca || K1(this), this.Aa.Ma && !this.Aa.Oa)\n throw new y(\"Object already scheduled for deletion\");\n W2(this);\n var e = this.Aa;\n --e.count.value, e.count.value === 0 && (e.Ea ? e.Ha.Ka(e.Ea) : e.Da.Ba.Ka(e.Ca)), this.Aa.Oa || (this.Aa.Ea = void 0, this.Aa.Ca = void 0);\n }, isDeleted: function() {\n return !this.Aa.Ca;\n }, deleteLater: function() {\n if (this.Aa.Ca || K1(this), this.Aa.Ma && !this.Aa.Oa)\n throw new y(\"Object already scheduled for deletion\");\n return m1.push(this), m1.length === 1 && _1 && _1(X1), this.Aa.Ma = true, this;\n } }), s.getInheritedInstanceCount = () => Object.keys(g1).length, s.getLiveInheritedInstances = () => {\n var e = [], t;\n for (t in g1)\n g1.hasOwnProperty(t) && e.push(g1[t]);\n return e;\n }, s.flushPendingDeletes = X1, s.setDelayFunction = (e) => {\n _1 = e, m1.length && _1 && _1(X1);\n }, Object.assign(b1.prototype, { cb(e) {\n return this.Ya && (e = this.Ya(e)), e;\n }, Wa(e) {\n var t;\n (t = this.Ka) == null || t.call(this, e);\n }, Ia: 8, readValueFromPointer: v1, fromWireType: function(e) {\n function t() {\n return this.Sa ? x1(this.Ba.Na, { Da: this.ib, Ca: r, Ha: this, Ea: e }) : x1(this.Ba.Na, { Da: this, Ca: e });\n }\n var r = this.cb(e);\n if (!r)\n return this.Wa(e), null;\n var a = L3(this.Ba, r);\n if (a !== void 0)\n return a.Aa.count.value === 0 ? (a.Aa.Ca = r, a.Aa.Ea = e, a.clone()) : (a = a.clone(), this.Wa(e), a);\n if (a = this.Ba.bb(r), a = z2[a], !a)\n return t.call(this);\n a = this.Ra ? a.Za : a.pointerType;\n var o = $2(r, this.Ba, a.Ba);\n return o === null ? t.call(this) : this.Sa ? x1(a.Ba.Na, { Da: a, Ca: o, Ha: this, Ea: e }) : x1(a.Ba.Na, { Da: a, Ca: o });\n } }), H2 = s.UnboundTypeError = ((e, t) => {\n var r = w1(t, function(a) {\n this.name = t, this.message = a, a = Error(a).stack, a !== void 0 && (this.stack = this.toString() + `\n` + a.replace(/^Error(:[^\\n]*)?\\n/, \"\"));\n });\n return r.prototype = Object.create(e.prototype), r.prototype.constructor = r, r.prototype.toString = function() {\n return this.message === void 0 ? this.name : `${this.name}: ${this.message}`;\n }, r;\n })(Error, \"UnboundTypeError\"), K.push(0, 1, void 0, 1, null, 1, true, 1, false, 1), s.count_emval_handles = () => K.length / 2 - 5 - n2.length;\n var q3 = { c: (e, t, r, a) => {\n A1(`Assertion failed: ${e ? c1(T, e) : \"\"}, at: ` + [t ? t ? c1(T, t) : \"\" : \"unknown filename\", r, a ? a ? c1(T, a) : \"\" : \"unknown function\"]);\n }, m: (e, t, r) => {\n var a = new w3(e);\n throw E[a.Ca + 16 >> 2] = 0, E[a.Ca + 4 >> 2] = t, E[a.Ca + 8 >> 2] = r, O2 = e, O2;\n }, C: function() {\n return 0;\n }, S: () => {\n }, P: () => {\n }, T: function() {\n return 0;\n }, Q: () => {\n }, B: function() {\n }, R: () => {\n }, U: () => {\n A1(\"\");\n }, v: (e) => {\n var t = T1[e];\n delete T1[e];\n var r = t.Ua, a = t.Ka, o = t.Xa, u = o.map((h) => h.gb).concat(o.map((h) => h.mb));\n X([e], u, (h) => {\n var l = {};\n return o.forEach((p, v) => {\n var f = h[v], w = p.eb, C = p.fb, $ = h[v + o.length], S = p.lb, A = p.nb;\n l[p.ab] = { read: (J) => f.fromWireType(w(C, J)), write: (J, L1) => {\n var z = [];\n S(A, J, $.toWireType(z, L1)), q1(z);\n } };\n }), [{ name: t.name, fromWireType: (p) => {\n var v = {}, f;\n for (f in l)\n v[f] = l[f].read(p);\n return a(p), v;\n }, toWireType: (p, v) => {\n for (var f in l)\n if (!(f in v))\n throw new TypeError(`Missing field: \"${f}\"`);\n var w = r();\n for (f in l)\n l[f].write(w, v[f]);\n return p !== null && p.push(a, w), w;\n }, Ia: 8, readValueFromPointer: v1, Ja: a }];\n });\n }, J: () => {\n }, _: (e, t, r, a) => {\n t = R(t), H(e, { name: t, fromWireType: function(o) {\n return !!o;\n }, toWireType: function(o, u) {\n return u ? r : a;\n }, Ia: 8, readValueFromPointer: function(o) {\n return this.fromWireType(T[o]);\n }, Ja: null });\n }, r: (e, t, r, a, o, u, h, l, p, v, f, w, C) => {\n f = R(f), u = O(o, u), l && (l = O(h, l)), v && (v = O(p, v)), C = O(w, C);\n var $ = M3(f);\n Z1($, function() {\n R1(`Cannot construct ${f} due to unbound types`, [a]);\n }), X([e, t, r], a ? [a] : [], (S) => {\n if (S = S[0], a)\n var A = S.Ba, J = A.Na;\n else\n J = D1.prototype;\n S = w1(f, function(...c2) {\n if (Object.getPrototypeOf(this) !== L1)\n throw new y(\"Use 'new' to construct \" + f);\n if (z.La === void 0)\n throw new y(f + \" has no accessible constructor\");\n var r3 = z.La[c2.length];\n if (r3 === void 0)\n throw new y(`Tried to invoke ctor of ${f} with invalid number of parameters (${c2.length}) - expected (${Object.keys(z.La).toString()}) parameters instead!`);\n return r3.apply(this, c2);\n });\n var L1 = Object.create(J, { constructor: { value: S } });\n S.prototype = L1;\n var z = new E3(f, S, L1, C, A, u, l, v);\n if (z.Ga) {\n var M1;\n (M1 = z.Ga).Va != null || (M1.Va = []), z.Ga.Va.push(z);\n }\n return A = new b1(f, z, true, false, false), M1 = new b1(f + \"*\", z, false, false, false), J = new b1(f + \" const*\", z, false, true, false), z2[e] = { pointerType: M1, Za: J }, j2($, S), [A, M1, J];\n });\n }, q: (e, t, r, a, o, u) => {\n var h = e2(t, r);\n o = O(a, o), X([], [e], (l) => {\n l = l[0];\n var p = `constructor ${l.name}`;\n if (l.Ba.La === void 0 && (l.Ba.La = []), l.Ba.La[t - 1] !== void 0)\n throw new y(`Cannot register multiple constructors with identical number of parameters (${t - 1}) for class '${l.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n return l.Ba.La[t - 1] = () => {\n R1(`Cannot construct ${l.name} due to unbound types`, h);\n }, X([], h, (v) => (v.splice(1, 0, null), l.Ba.La[t - 1] = t2(p, v, null, o, u), [])), [];\n });\n }, f: (e, t, r, a, o, u, h, l) => {\n var p = e2(r, a);\n t = R(t), t = V2(t), u = O(o, u), X([], [e], (v) => {\n function f() {\n R1(`Cannot call ${w} due to unbound types`, p);\n }\n v = v[0];\n var w = `${v.name}.${t}`;\n t.startsWith(\"@@\") && (t = Symbol[t.substring(2)]), l && v.Ba.jb.push(t);\n var C = v.Ba.Na, $ = C[t];\n return $ === void 0 || $.Fa === void 0 && $.className !== v.name && $.Qa === r - 2 ? (f.Qa = r - 2, f.className = v.name, C[t] = f) : (U2(C, t, w), C[t].Fa[r - 2] = f), X([], p, (S) => (S = t2(w, S, v, u, h), C[t].Fa === void 0 ? (S.Qa = r - 2, C[t] = S) : C[t].Fa[r - 2] = S, [])), [];\n });\n }, Z: (e) => H(e, G2), x: (e, t, r, a) => {\n function o() {\n }\n t = R(t), o.values = {}, H(e, { name: t, constructor: o, fromWireType: function(u) {\n return this.constructor.values[u];\n }, toWireType: (u, h) => h.value, Ia: 8, readValueFromPointer: x3(t, r, a), Ja: null }), Z1(t, o);\n }, k: (e, t, r) => {\n var a = a2(e, \"enum\");\n t = R(t), e = a.constructor, a = Object.create(a.constructor.prototype, { value: { value: r }, constructor: { value: w1(`${a.name}_${t}`, function() {\n }) } }), e.values[r] = a, e[t] = a;\n }, D: (e, t, r) => {\n t = R(t), H(e, { name: t, fromWireType: (a) => a, toWireType: (a, o) => o, Ia: 8, readValueFromPointer: D3(t, r), Ja: null });\n }, F: (e, t, r, a, o, u) => {\n var h = e2(t, r);\n e = R(e), e = V2(e), o = O(a, o), Z1(e, function() {\n R1(`Cannot call ${e} due to unbound types`, h);\n }, t - 1), X([], h, (l) => (j2(e, t2(e, [l[0], null].concat(l.slice(1)), null, o, u), t - 1), []));\n }, l: (e, t, r, a, o) => {\n if (t = R(t), o === -1 && (o = 4294967295), o = (l) => l, a === 0) {\n var u = 32 - 8 * r;\n o = (l) => l << u >>> u;\n }\n var h = t.includes(\"unsigned\") ? function(l, p) {\n return p >>> 0;\n } : function(l, p) {\n return p;\n };\n H(e, { name: t, fromWireType: o, toWireType: h, Ia: 8, readValueFromPointer: R3(t, r, a !== 0), Ja: null });\n }, h: (e, t, r) => {\n function a(u) {\n return new o(r1.buffer, E[u + 4 >> 2], E[u >> 2]);\n }\n var o = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][t];\n r = R(r), H(e, { name: r, fromWireType: a, Ia: 8, readValueFromPointer: a }, { hb: true });\n }, u: (e) => {\n H(e, k3);\n }, ea: (e, t, r, a, o, u, h, l, p, v, f, w) => {\n r = R(r), u = O(o, u), l = O(h, l), v = O(p, v), w = O(f, w), X([e], [t], (C) => (C = C[0], [new b1(r, C.Ba, false, false, true, C, a, u, l, v, w)]));\n }, E: (e, t) => {\n t = R(t);\n var r = t === \"std::string\";\n H(e, { name: t, fromWireType: function(a) {\n var o = E[a >> 2], u = a + 4;\n if (r)\n for (var h = u, l = 0; l <= o; ++l) {\n var p = u + l;\n if (l == o || T[p] == 0) {\n if (h = h ? c1(T, h, p - h) : \"\", v === void 0)\n var v = h;\n else\n v += \"\\0\", v += h;\n h = p + 1;\n }\n }\n else {\n for (v = Array(o), l = 0; l < o; ++l)\n v[l] = String.fromCharCode(T[u + l]);\n v = v.join(\"\");\n }\n return Y(a), v;\n }, toWireType: function(a, o) {\n o instanceof ArrayBuffer && (o = new Uint8Array(o));\n var u, h = typeof o == \"string\";\n if (!(h || o instanceof Uint8Array || o instanceof Uint8ClampedArray || o instanceof Int8Array))\n throw new y(\"Cannot pass non-string to std::string\");\n if (r && h)\n for (var l = u = 0; l < o.length; ++l) {\n var p = o.charCodeAt(l);\n 127 >= p ? u++ : 2047 >= p ? u += 2 : 55296 <= p && 57343 >= p ? (u += 4, ++l) : u += 3;\n }\n else\n u = o.length;\n if (l = h2(4 + u + 1), p = l + 4, E[l >> 2] = u, r && h)\n p1(o, p, u + 1);\n else if (h)\n for (h = 0; h < u; ++h) {\n var v = o.charCodeAt(h);\n if (255 < v)\n throw Y(p), new y(\"String has UTF-16 code units that do not fit in 8 bits\");\n T[p + h] = v;\n }\n else\n for (h = 0; h < u; ++h)\n T[p + h] = o[h];\n return a !== null && a.push(Y, l), l;\n }, Ia: 8, readValueFromPointer: v1, Ja(a) {\n Y(a);\n } });\n }, t: (e, t, r) => {\n if (r = R(r), t === 2)\n var a = O3, o = B3, u = W3, h = (l) => u1[l >> 1];\n else\n t === 4 && (a = $3, o = z3, u = U3, h = (l) => E[l >> 2]);\n H(e, { name: r, fromWireType: (l) => {\n for (var p = E[l >> 2], v, f = l + 4, w = 0; w <= p; ++w) {\n var C = l + 4 + w * t;\n (w == p || h(C) == 0) && (f = a(f, C - f), v === void 0 ? v = f : (v += \"\\0\", v += f), f = C + t);\n }\n return Y(l), v;\n }, toWireType: (l, p) => {\n if (typeof p != \"string\")\n throw new y(`Cannot pass non-string to C++ string type ${r}`);\n var v = u(p), f = h2(4 + v + t);\n return E[f >> 2] = v / t, o(p, f + 4, v + t), l !== null && l.push(Y, f), f;\n }, Ia: 8, readValueFromPointer: v1, Ja(l) {\n Y(l);\n } });\n }, w: (e, t, r, a, o, u) => {\n T1[e] = { name: R(t), Ua: O(r, a), Ka: O(o, u), Xa: [] };\n }, j: (e, t, r, a, o, u, h, l, p, v) => {\n T1[e].Xa.push({ ab: R(t), gb: r, eb: O(a, o), fb: u, mb: h, lb: O(l, p), nb: v });\n }, $: (e, t) => {\n t = R(t), H(e, { pb: true, name: t, Ia: 0, fromWireType: () => {\n }, toWireType: () => {\n } });\n }, O: () => {\n J1 = false, d2 = 0;\n }, K: () => {\n throw 1 / 0;\n }, ca: (e, t, r, a) => (e = s2[e], t = r2(t), e(null, t, r, a)), G: i2, ba: (e, t, r) => {\n var a = H3(e, t), o = a.shift();\n e--;\n var u = Array(e);\n return t = `methodCaller<(${a.map((h) => h.name).join(\", \")}) => ${o.name}>`, j3(w1(t, (h, l, p, v) => {\n for (var f = 0, w = 0; w < e; ++w)\n u[w] = a[w].readValueFromPointer(v + f), f += a[w].Ia;\n return l = r === 1 ? N3(l, u) : l.apply(h, u), h = [], l = o.toWireType(h, l), h.length && (E[p >> 2] = k1(h)), l;\n }));\n }, da: (e) => {\n 9 < e && (K[e + 1] += 1);\n }, aa: (e) => {\n var t = r2(e);\n q1(t), i2(e);\n }, o: (e, t) => (e = a2(e, \"_emval_take_value\"), e = e.readValueFromPointer(t), k1(e)), L: (e, t) => {\n if (C1[e] && (clearTimeout(C1[e].id), delete C1[e]), !t)\n return 0;\n var r = setTimeout(() => {\n delete C1[e], V3(() => e3(e, performance.now()));\n }, t);\n return C1[e] = { id: r, rb: t }, 0;\n }, M: (e, t, r, a) => {\n var o = (/* @__PURE__ */ new Date()).getFullYear(), u = new Date(o, 0, 1).getTimezoneOffset();\n o = new Date(o, 6, 1).getTimezoneOffset(), E[e >> 2] = 60 * Math.max(u, o), Z[t >> 2] = +(u != o), t = (h) => {\n var l = Math.abs(h);\n return `UTC${0 <= h ? \"-\" : \"+\"}${String(Math.floor(l / 60)).padStart(2, \"0\")}${String(l % 60).padStart(2, \"0\")}`;\n }, e = t(u), t = t(o), o < u ? (p1(e, r, 17), p1(t, a, 17)) : (p1(e, a, 17), p1(t, r, 17));\n }, fa: () => performance.now(), N: (e) => {\n var t = T.length;\n if (e >>>= 0, 2147483648 < e)\n return false;\n for (var r = 1; 4 >= r; r *= 2) {\n var a = t * (1 + 0.2 / r);\n a = Math.min(a, e + 100663296);\n e: {\n a = (Math.min(2147483648, 65536 * Math.ceil(Math.max(e, a) / 65536)) - I1.buffer.byteLength + 65535) / 65536;\n try {\n I1.grow(a), I2();\n var o = 1;\n break e;\n } catch (u) {\n }\n o = void 0;\n }\n if (o)\n return true;\n }\n return false;\n }, W: (e, t) => {\n var r = 0;\n return Y2().forEach((a, o) => {\n var u = t + r;\n for (o = E[e + 4 * o >> 2] = u, u = 0; u < a.length; ++u)\n r1[o++] = a.charCodeAt(u);\n r1[o] = 0, r += a.length + 1;\n }), 0;\n }, X: (e, t) => {\n var r = Y2();\n E[e >> 2] = r.length;\n var a = 0;\n return r.forEach((o) => a += o.length + 1), E[t >> 2] = a, 0;\n }, s: () => 52, A: () => 52, I: function() {\n return 70;\n }, z: (e, t, r, a) => {\n for (var o = 0, u = 0; u < r; u++) {\n var h = E[t >> 2], l = E[t + 4 >> 2];\n t += 8;\n for (var p = 0; p < l; p++) {\n var v = e, f = T[h + p], w = G3[v];\n f === 0 || f === 10 ? ((v === 1 ? E1 : i1)(c1(w, 0)), w.length = 0) : w.push(f);\n }\n o += l;\n }\n return E[a >> 2] = o, 0;\n }, Y: (e, t) => (X2(T.subarray(e, e + t)), 0), i: Q3, d: Z3, e: X3, p: e0, y: i0, b: K3, a: Y3, g: n0, n: t0, H: r0, V: K2 }, P = function() {\n var r;\n function e(a) {\n var o;\n return P = a.exports, I1 = P.ga, I2(), j = P.ka, A2.unshift(P.ha), Q--, (o = s.monitorRunDependencies) == null || o.call(s, Q), Q == 0 && (l1 && (a = l1, l1 = null, a())), P;\n }\n var t = { a: q3 };\n if (Q++, (r = s.monitorRunDependencies) == null || r.call(s, Q), s.instantiateWasm)\n try {\n return s.instantiateWasm(t, e);\n } catch (a) {\n i1(`Module.instantiateWasm callback failed with error: ${a}`), b(a);\n }\n return h1 != null || (h1 = F2(\"DotLottiePlayer.wasm\") ? \"DotLottiePlayer.wasm\" : s.locateFile ? s.locateFile(\"DotLottiePlayer.wasm\", U) : U + \"DotLottiePlayer.wasm\"), y3(t, function(a) {\n e(a.instance);\n }).catch(b), {};\n }(), h2 = (e) => (h2 = P.ia)(e), Q2 = (e) => (Q2 = P.ja)(e), Y = (e) => (Y = P.la)(e), e3 = (e, t) => (e3 = P.ma)(e, t), N = (e, t) => (N = P.na)(e, t), V = (e) => (V = P.oa)(e), G = () => (G = P.pa)();\n s.dynCall_iijj = (e, t, r, a, o, u) => (s.dynCall_iijj = P.qa)(e, t, r, a, o, u), s.dynCall_vijj = (e, t, r, a, o, u) => (s.dynCall_vijj = P.ra)(e, t, r, a, o, u), s.dynCall_jiii = (e, t, r, a) => (s.dynCall_jiii = P.sa)(e, t, r, a), s.dynCall_jii = (e, t, r) => (s.dynCall_jii = P.ta)(e, t, r);\n var t3 = s.dynCall_vijjj = (e, t, r, a, o, u, h, l) => (t3 = s.dynCall_vijjj = P.ua)(e, t, r, a, o, u, h, l);\n s.dynCall_jiji = (e, t, r, a, o) => (s.dynCall_jiji = P.va)(e, t, r, a, o), s.dynCall_viijii = (e, t, r, a, o, u, h) => (s.dynCall_viijii = P.wa)(e, t, r, a, o, u, h), s.dynCall_iiiiij = (e, t, r, a, o, u, h) => (s.dynCall_iiiiij = P.xa)(e, t, r, a, o, u, h), s.dynCall_iiiiijj = (e, t, r, a, o, u, h, l, p) => (s.dynCall_iiiiijj = P.ya)(e, t, r, a, o, u, h, l, p), s.dynCall_iiiiiijj = (e, t, r, a, o, u, h, l, p, v) => (s.dynCall_iiiiiijj = P.za)(e, t, r, a, o, u, h, l, p, v);\n function K3(e, t) {\n var r = G();\n try {\n j.get(e)(t);\n } catch (a) {\n if (V(r), a !== a + 0)\n throw a;\n N(1, 0);\n }\n }\n function Y3(e, t, r) {\n var a = G();\n try {\n j.get(e)(t, r);\n } catch (o) {\n if (V(a), o !== o + 0)\n throw o;\n N(1, 0);\n }\n }\n function X3(e, t, r, a) {\n var o = G();\n try {\n return j.get(e)(t, r, a);\n } catch (u) {\n if (V(o), u !== u + 0)\n throw u;\n N(1, 0);\n }\n }\n function Z3(e, t, r) {\n var a = G();\n try {\n return j.get(e)(t, r);\n } catch (o) {\n if (V(a), o !== o + 0)\n throw o;\n N(1, 0);\n }\n }\n function Q3(e, t) {\n var r = G();\n try {\n return j.get(e)(t);\n } catch (a) {\n if (V(r), a !== a + 0)\n throw a;\n N(1, 0);\n }\n }\n function e0(e, t, r, a, o, u) {\n var h = G();\n try {\n return j.get(e)(t, r, a, o, u);\n } catch (l) {\n if (V(h), l !== l + 0)\n throw l;\n N(1, 0);\n }\n }\n function t0(e, t, r, a, o) {\n var u = G();\n try {\n j.get(e)(t, r, a, o);\n } catch (h) {\n if (V(u), h !== h + 0)\n throw h;\n N(1, 0);\n }\n }\n function n0(e, t, r, a) {\n var o = G();\n try {\n j.get(e)(t, r, a);\n } catch (u) {\n if (V(o), u !== u + 0)\n throw u;\n N(1, 0);\n }\n }\n function i0(e) {\n var t = G();\n try {\n j.get(e)();\n } catch (r) {\n if (V(t), r !== r + 0)\n throw r;\n N(1, 0);\n }\n }\n function r0(e, t, r, a, o, u, h, l) {\n var p = G();\n try {\n t3(e, t, r, a, o, u, h, l);\n } catch (v) {\n if (V(p), v !== v + 0)\n throw v;\n N(1, 0);\n }\n }\n var B1;\n l1 = function e() {\n B1 || n3(), B1 || (l1 = e);\n };\n function n3() {\n function e() {\n var r;\n if (!B1 && (B1 = true, s.calledRun = true, !S1)) {\n if (G1(A2), m(s), (r = s.onRuntimeInitialized) == null || r.call(s), s.postRun)\n for (typeof s.postRun == \"function\" && (s.postRun = [s.postRun]); s.postRun.length; ) {\n var t = s.postRun.shift();\n T2.unshift(t);\n }\n G1(T2);\n }\n }\n if (!(0 < Q)) {\n if (s.preRun)\n for (typeof s.preRun == \"function\" && (s.preRun = [s.preRun]); s.preRun.length; )\n _3();\n G1(S2), 0 < Q || (s.setStatus ? (s.setStatus(\"Running...\"), setTimeout(() => {\n setTimeout(() => s.setStatus(\"\"), 1), e();\n }, 1)) : e());\n }\n }\n if (s.preInit)\n for (typeof s.preInit == \"function\" && (s.preInit = [s.preInit]); 0 < s.preInit.length; )\n s.preInit.pop()();\n return n3(), d = L, d;\n };\n})();\nvar u3 = d0;\nvar t1 = class {\n constructor() {\n throw new Error(\"RendererLoader is a static class and cannot be instantiated.\");\n }\n static _tryLoad(n) {\n return g(this, null, function* () {\n return yield u3({ locateFile: () => n });\n });\n }\n static _loadWithBackup() {\n return g(this, null, function* () {\n return this._ModulePromise || (this._ModulePromise = this._tryLoad(this._wasmURL).catch((n) => g(this, null, function* () {\n let i = `https://unpkg.com/${_2}@${m2}/dist/dotlottie-player.wasm`;\n console.warn(`Primary WASM load failed from ${this._wasmURL}. Error: ${n.message}`), console.warn(`Attempting to load WASM from backup URL: ${i}`);\n try {\n return yield this._tryLoad(i);\n } catch (d) {\n throw console.error(`Primary WASM URL failed: ${n.message}`), console.error(`Backup WASM URL failed: ${d.message}`), new Error(\"WASM loading failed from all sources.\");\n }\n }))), this._ModulePromise;\n });\n }\n static load() {\n return g(this, null, function* () {\n return this._loadWithBackup();\n });\n }\n static setWasmUrl(n) {\n this._wasmURL = n, this._ModulePromise = null;\n }\n};\n_(t1, \"_ModulePromise\", null), _(t1, \"_wasmURL\", `https://cdn.jsdelivr.net/npm/${_2}@${m2}/dist/dotlottie-player.wasm`);\nvar s1 = class {\n constructor() {\n _(this, \"_eventListeners\", /* @__PURE__ */ new Map());\n }\n addEventListener(n, i) {\n let d = this._eventListeners.get(n);\n d || (d = /* @__PURE__ */ new Set(), this._eventListeners.set(n, d)), d.add(i);\n }\n removeEventListener(n, i) {\n let d = this._eventListeners.get(n);\n d && (i ? (d.delete(i), d.size === 0 && this._eventListeners.delete(n)) : this._eventListeners.delete(n));\n }\n dispatch(n) {\n let i = this._eventListeners.get(n.type);\n i == null || i.forEach((d) => d(n));\n }\n removeAllEventListeners() {\n this._eventListeners.clear();\n }\n};\nvar B = class {\n static _initializeObserver() {\n if (this._observer)\n return;\n let n = (i) => {\n i.forEach((d) => {\n let s = this._observedCanvases.get(d.target);\n s && (d.isIntersecting ? s.unfreeze() : s.freeze());\n });\n };\n this._observer = new IntersectionObserver(n, { threshold: 0 });\n }\n static observe(n, i) {\n var d;\n this._initializeObserver(), !this._observedCanvases.has(n) && (this._observedCanvases.set(n, i), (d = this._observer) == null || d.observe(n));\n }\n static unobserve(n) {\n var i, d;\n (i = this._observer) == null || i.unobserve(n), this._observedCanvases.delete(n), this._observedCanvases.size === 0 && ((d = this._observer) == null || d.disconnect(), this._observer = null);\n }\n};\n_(B, \"_observer\", null), _(B, \"_observedCanvases\", /* @__PURE__ */ new Map());\nvar W = class {\n static _initializeObserver() {\n if (this._observer)\n return;\n let n = (i) => {\n i.forEach((d) => {\n let s = this._observedCanvases.get(d.target);\n if (!s)\n return;\n let [m, b] = s;\n clearTimeout(b);\n let L = setTimeout(() => {\n m.resize();\n }, 100);\n this._observedCanvases.set(d.target, [m, L]);\n });\n };\n this._observer = new ResizeObserver(n);\n }\n static observe(n, i) {\n var d;\n this._initializeObserver(), !this._observedCanvases.has(n) && (this._observedCanvases.set(n, [i, 0]), (d = this._observer) == null || d.observe(n));\n }\n static unobserve(n) {\n var i, d;\n (i = this._observer) == null || i.unobserve(n), this._observedCanvases.delete(n), this._observedCanvases.size === 0 && ((d = this._observer) == null || d.disconnect(), this._observer = null);\n }\n};\n_(W, \"_observer\", null), _(W, \"_observedCanvases\", /* @__PURE__ */ new Map());\nfunction u0(c) {\n return /^#([\\da-f]{6}|[\\da-f]{8})$/iu.test(c);\n}\nfunction h3(c) {\n if (!u0(c))\n return 0;\n let n = c.replace(\"#\", \"\");\n return n = n.length === 6 ? `${n}ff` : n, parseInt(n, 16);\n}\nfunction g2(c) {\n if (c.byteLength < 4)\n return false;\n let n = new Uint8Array(c.slice(0, U1.byteLength));\n for (let i = 0; i < U1.length; i += 1)\n if (U1[i] !== n[i])\n return false;\n return true;\n}\nfunction l3(c) {\n return s3.every((n) => Object.prototype.hasOwnProperty.call(c, n));\n}\nfunction y2(c) {\n if (typeof c == \"string\")\n try {\n return l3(JSON.parse(c));\n } catch (n) {\n return false;\n }\n else\n return l3(c);\n}\nfunction n1() {\n return 1 + ((x ? window.devicePixelRatio : 1) - 1) * d3;\n}\nfunction j1(c) {\n let n = c.getBoundingClientRect();\n return n.top >= 0 && n.left >= 0 && n.bottom <= (window.innerHeight || document.documentElement.clientHeight) && n.right <= (window.innerWidth || document.documentElement.clientWidth);\n}\nvar w2 = (c, n) => c === \"reverse\" ? n.Mode.Reverse : c === \"bounce\" ? n.Mode.Bounce : c === \"reverse-bounce\" ? n.Mode.ReverseBounce : n.Mode.Forward;\nvar b2 = (c, n) => c === \"contain\" ? n.Fit.Contain : c === \"cover\" ? n.Fit.Cover : c === \"fill\" ? n.Fit.Fill : c === \"fit-height\" ? n.Fit.FitHeight : c === \"fit-width\" ? n.Fit.FitWidth : n.Fit.None;\nvar C2 = (c, n) => {\n let i = new n.VectorFloat();\n return i.push_back(c[0]), i.push_back(c[1]), i;\n};\nvar L2 = (c, n) => {\n let i = new n.VectorFloat();\n return c.length !== 2 || (i.push_back(c[0]), i.push_back(c[1])), i;\n};\nvar M = class M2 {\n constructor(n) {\n _(this, \"_canvas\");\n _(this, \"_context\", null);\n _(this, \"_eventManager\");\n _(this, \"_animationFrameId\", null);\n _(this, \"_frameManager\");\n _(this, \"_dotLottieCore\", null);\n _(this, \"_renderConfig\", {});\n _(this, \"_isFrozen\", false);\n _(this, \"_backgroundColor\", null);\n _(this, \"_pointerUpMethod\");\n _(this, \"_pointerDownMethod\");\n _(this, \"_pointerMoveMethod\");\n _(this, \"_pointerEnterMethod\");\n _(this, \"_pointerExitMethod\");\n var i, d, s;\n this._canvas = n.canvas, this._context = this._canvas.getContext(\"2d\"), this._eventManager = new s1(), this._frameManager = new z1(), this._renderConfig = k(F({}, n.renderConfig), { devicePixelRatio: ((i = n.renderConfig) == null ? void 0 : i.devicePixelRatio) || n1(), freezeOnOffscreen: (s = (d = n.renderConfig) == null ? void 0 : d.freezeOnOffscreen) != null ? s : true }), t1.load().then((m) => {\n var b, L, I, D, U, d1, E1;\n M2._wasmModule = m, this._dotLottieCore = new m.DotLottiePlayer({ autoplay: (b = n.autoplay) != null ? b : false, backgroundColor: 0, loopAnimation: (L = n.loop) != null ? L : false, mode: w2((I = n.mode) != null ? I : \"forward\", m), segment: L2((D = n.segment) != null ? D : [], m), speed: (U = n.speed) != null ? U : 1, useFrameInterpolation: (d1 = n.useFrameInterpolation) != null ? d1 : true, marker: (E1 = n.marker) != null ? E1 : \"\", layout: n.layout ? { align: C2(n.layout.align, m), fit: b2(n.layout.fit, m) } : m.createDefaultLayout() }), this._eventManager.dispatch({ type: \"ready\" }), n.data ? this._loadFromData(n.data) : n.src && this._loadFromSrc(n.src), n.backgroundColor && this.setBackgroundColor(n.backgroundColor);\n }).catch((m) => {\n this._eventManager.dispatch({ type: \"loadError\", error: new Error(`Failed to load wasm module: ${m}`) });\n }), this._pointerUpMethod = this._onPointerUp.bind(this), this._pointerDownMethod = this._onPointerDown.bind(this), this._pointerMoveMethod = this._onPointerMove.bind(this), this._pointerEnterMethod = this._onPointerEnter.bind(this), this._pointerExitMethod = this._onPointerLeave.bind(this);\n }\n _dispatchError(n) {\n console.error(n), this._eventManager.dispatch({ type: \"loadError\", error: new Error(n) });\n }\n _fetchData(n) {\n return g(this, null, function* () {\n let i = yield fetch(n);\n if (!i.ok)\n throw new Error(`Failed to fetch animation data from URL: ${n}. ${i.status}: ${i.statusText}`);\n let d = yield i.arrayBuffer();\n return g2(d) ? d : new TextDecoder().decode(d);\n });\n }\n _loadFromData(n) {\n if (this._dotLottieCore === null)\n return;\n let i = this._canvas.width, d = this._canvas.height, s = false;\n if (typeof n == \"string\") {\n if (!y2(n)) {\n this._dispatchError(\"Invalid Lottie JSON string: The provided string does not conform to the Lottie JSON format.\");\n return;\n }\n s = this._dotLottieCore.loadAnimationData(n, i, d);\n } else if (n instanceof ArrayBuffer) {\n if (!g2(n)) {\n this._dispatchError(\"Invalid dotLottie ArrayBuffer: The provided ArrayBuffer does not conform to the dotLottie format.\");\n return;\n }\n s = this._dotLottieCore.loadDotLottieData(n, i, d);\n } else if (typeof n == \"object\") {\n if (!y2(n)) {\n this._dispatchError(\"Invalid Lottie JSON object: The provided object does not conform to the Lottie JSON format.\");\n return;\n }\n s = this._dotLottieCore.loadAnimationData(JSON.stringify(n), i, d);\n } else {\n this._dispatchError(`Unsupported data type for animation data. Expected: \n - string (Lottie JSON),\n - ArrayBuffer (dotLottie),\n - object (Lottie JSON). \n Received: ${typeof n}`);\n return;\n }\n s ? (this._eventManager.dispatch({ type: \"load\" }), x && this.resize(), this._eventManager.dispatch({ type: \"frame\", currentFrame: this._dotLottieCore.currentFrame() }), this._render(), this._dotLottieCore.config().autoplay && (this._dotLottieCore.play(), this._dotLottieCore.isPlaying() ? (this._eventManager.dispatch({ type: \"play\" }), this._animationFrameId = this._frameManager.requestAnimationFrame(this._draw.bind(this))) : console.error(\"something went wrong, the animation was suppose to autoplay\")), x && this._canvas instanceof HTMLCanvasElement && (this._renderConfig.freezeOnOffscreen && B.observe(this._canvas, this), this._renderConfig.autoResize && W.observe(this._canvas, this))) : this._dispatchError(\"Failed to load animation data\");\n }\n _loadFromSrc(n) {\n this._fetchData(n).then((i) => this._loadFromData(i)).catch((i) => this._dispatchError(`Failed to load animation data from URL: ${n}. ${i}`));\n }\n get activeAnimationId() {\n var n;\n return (n = this._dotLottieCore) == null ? void 0 : n.activeAnimationId();\n }\n get activeThemeId() {\n var n;\n return (n = this._dotLottieCore) == null ? void 0 : n.activeThemeId();\n }\n get layout() {\n var i;\n let n = (i = this._dotLottieCore) == null ? void 0 : i.config().layout;\n if (n)\n return { align: [n.align.get(0), n.align.get(1)], fit: (() => {\n var d, s, m, b, L, I;\n switch (n.fit) {\n case ((d = M2._wasmModule) == null ? void 0 : d.Fit.Contain):\n return \"contain\";\n case ((s = M2._wasmModule) == null ? void 0 : s.Fit.Cover):\n return \"cover\";\n case ((m = M2._wasmModule) == null ? void 0 : m.Fit.Fill):\n return \"fill\";\n case ((b = M2._wasmModule) == null ? void 0 : b.Fit.FitHeight):\n return \"fit-height\";\n case ((L = M2._wasmModule) == null ? void 0 : L.Fit.FitWidth):\n return \"fit-width\";\n case ((I = M2._wasmModule) == null ? void 0 : I.Fit.None):\n return \"none\";\n default:\n return \"contain\";\n }\n })() };\n }\n get marker() {\n var i;\n return (i = this._dotLottieCore) == null ? void 0 : i.config().marker;\n }\n get manifest() {\n var n;\n try {\n let i = (n = this._dotLottieCore) == null ? void 0 : n.manifestString();\n if (this._dotLottieCore === null || !i)\n return null;\n let d = JSON.parse(i);\n return Object.keys(d).length === 0 ? null : d;\n } catch (i) {\n return null;\n }\n }\n get renderConfig() {\n return this._renderConfig;\n }\n get segment() {\n var i;\n let n = (i = this._dotLottieCore) == null ? void 0 : i.config().segment;\n if (n && n.size() === 2)\n return [n.get(0), n.get(1)];\n }\n get loop() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.config().loopAnimation) != null ? i : false;\n }\n get mode() {\n var i, d, s, m;\n let n = (i = this._dotLottieCore) == null ? void 0 : i.config().mode;\n return n === ((d = M2._wasmModule) == null ? void 0 : d.Mode.Reverse) ? \"reverse\" : n === ((s = M2._wasmModule) == null ? void 0 : s.Mode.Bounce) ? \"bounce\" : n === ((m = M2._wasmModule) == null ? void 0 : m.Mode.ReverseBounce) ? \"reverse-bounce\" : \"forward\";\n }\n get isFrozen() {\n return this._isFrozen;\n }\n get backgroundColor() {\n var n;\n return (n = this._backgroundColor) != null ? n : \"\";\n }\n get autoplay() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.config().autoplay) != null ? i : false;\n }\n get useFrameInterpolation() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.config().useFrameInterpolation) != null ? i : false;\n }\n get speed() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.config().speed) != null ? i : 0;\n }\n get isReady() {\n return this._dotLottieCore !== null;\n }\n get isLoaded() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.isLoaded()) != null ? i : false;\n }\n get isPlaying() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.isPlaying()) != null ? i : false;\n }\n get isPaused() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.isPaused()) != null ? i : false;\n }\n get isStopped() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.isStopped()) != null ? i : false;\n }\n get currentFrame() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.currentFrame()) != null ? i : 0;\n }\n get loopCount() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.loopCount()) != null ? i : 0;\n }\n get totalFrames() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.totalFrames()) != null ? i : 0;\n }\n get duration() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.duration()) != null ? i : 0;\n }\n get segmentDuration() {\n var n, i;\n return (i = (n = this._dotLottieCore) == null ? void 0 : n.segmentDuration()) != null ? i : 0;\n }\n get canvas() {\n return this._canvas;\n }\n load(n) {\n var i, d, s, m, b, L, I, D;\n this._dotLottieCore === null || M2._wasmModule === null || (this._dotLottieCore.setConfig({ autoplay: (i = n.autoplay) != null ? i : false, backgroundColor: 0, loopAnimation: (d = n.loop) != null ? d : false, mode: w2((s = n.mode) != null ? s : \"forward\", M2._wasmModule), segment: L2((m = n.segment) != null ? m : [], M2._wasmModule), speed: (b = n.speed) != null ? b : 1, useFrameInterpolation: (L = n.useFrameInterpolation) != null ? L : true, marker: (I = n.marker) != null ? I : \"\", layout: n.layout ? { align: C2(n.layout.align, M2._wasmModule), fit: b2(n.layout.fit, M2._wasmModule) } : M2._wasmModule.createDefaultLayout() }), n.data ? this._loadFromData(n.data) : n.src && this._loadFromSrc(n.src), this.setBackgroundColor((D = n.backgroundColor) != null ? D : \"\"));\n }\n _render() {\n if (this._dotLottieCore === null || this._context === null)\n return false;\n if (this._dotLottieCore.render()) {\n let i = this._dotLottieCore.buffer(), d = new Uint8ClampedArray(i, 0, this._canvas.width * this._canvas.height * 4), s = null;\n return typeof ImageData == \"undefined\" ? (s = this._context.createImageData(this._canvas.width, this._canvas.height), s.data.set(d)) : s = new ImageData(d, this._canvas.width, this._canvas.height), this._context.putImageData(s, 0, 0), this._eventManager.dispatch({ type: \"render\", currentFrame: this._dotLottieCore.currentFrame() }), true;\n }\n return false;\n }\n _draw() {\n if (this._dotLottieCore === null || this._context === null || !this._dotLottieCore.isPlaying())\n return;\n let n = this._dotLottieCore.requestFrame();\n this._dotLottieCore.setFrame(n) && (this._eventManager.dispatch({ type: \"frame\", currentFrame: this._dotLottieCore.currentFrame() }), this._render() && this._dotLottieCore.isComplete() && (this._dotLottieCore.config().loopAnimation ? this._eventManager.dispatch({ type: \"loop\", loopCount: this._dotLottieCore.loopCount() }) : this._eventManager.dispatch({ type: \"complete\" }))), this._animationFrameId = this._frameManager.requestAnimationFrame(this._draw.bind(this));\n }\n play() {\n if (this._dotLottieCore === null)\n return;\n (this._dotLottieCore.play() || this._dotLottieCore.isPlaying()) && (this._isFrozen = false, this._eventManager.dispatch({ type: \"play\" }), this._animationFrameId = this._frameManager.requestAnimationFrame(this._draw.bind(this))), x && this._canvas instanceof HTMLCanvasElement && this._renderConfig.freezeOnOffscreen && !j1(this._canvas) && this.freeze();\n }\n pause() {\n if (this._dotLottieCore === null)\n return;\n (this._dotLottieCore.pause() || this._dotLottieCore.isPaused()) && this._eventManager.dispatch({ type: \"pause\" });\n }\n stop() {\n if (this._dotLottieCore === null)\n return;\n this._dotLottieCore.stop() && (this._eventManager.dispatch({ type: \"frame\", currentFrame: this._dotLottieCore.currentFrame() }), this._render(), this._eventManager.dispatch({ type: \"stop\" }));\n }\n setFrame(n) {\n if (this._dotLottieCore === null || n < 0 || n > this._dotLottieCore.totalFrames())\n return;\n this._dotLottieCore.seek(n) && (this._eventManager.dispatch({ type: \"frame\", currentFrame: this._dotLottieCore.currentFrame() }), this._render());\n }\n setSpeed(n) {\n this._dotLottieCore !== null && this._dotLottieCore.setConfig(k(F({}, this._dotLottieCore.config()), { speed: n }));\n }\n setBackgroundColor(n) {\n this._dotLottieCore !== null && (x && this._canvas instanceof HTMLCanvasElement ? this._canvas.style.backgroundColor = n : this._dotLottieCore.setConfig(k(F({}, this._dotLottieCore.config()), { backgroundColor: h3(n) })), this._backgroundColor = n);\n }\n setLoop(n) {\n this._dotLottieCore !== null && this._dotLottieCore.setConfig(k(F({}, this._dotLottieCore.config()), { loopAnimation: n }));\n }\n setUseFrameInterpolation(n) {\n this._dotLottieCore !== null && this._dotLottieCore.setConfig(k(F({}, this._dotLottieCore.config()), { useFrameInterpolation: n }));\n }\n addEventListener(n, i) {\n this._eventManager.addEventListener(n, i);\n }\n removeEventListener(n, i) {\n this._eventManager.removeEventListener(n, i);\n }\n destroy() {\n var n;\n x && this._canvas instanceof HTMLCanvasElement && (B.unobserve(this._canvas), W.unobserve(this._canvas)), (n = this._dotLottieCore) == null || n.delete(), this._dotLottieCore = null, this._context = null, this._eventManager.dispatch({ type: \"destroy\" }), this._eventManager.removeAllEventListeners(), this._cleanupStateMachineListeners();\n }\n freeze() {\n this._animationFrameId !== null && (this._frameManager.cancelAnimationFrame(this._animationFrameId), this._animationFrameId = null, this._isFrozen = true, this._eventManager.dispatch({ type: \"freeze\" }));\n }\n unfreeze() {\n this._animationFrameId === null && (this._animationFrameId = this._frameManager.requestAnimationFrame(this._draw.bind(this)), this._isFrozen = false, this._eventManager.dispatch({ type: \"unfreeze\" }));\n }\n resize() {\n if (!this._dotLottieCore || !this.isLoaded)\n return;\n if (x && this._canvas instanceof HTMLCanvasElement) {\n let i = this._renderConfig.devicePixelRatio || window.devicePixelRatio || 1, { height: d, width: s } = this._canvas.getBoundingClientRect();\n this._canvas.width = s * i, this._canvas.height = d * i;\n }\n this._dotLottieCore.resize(this._canvas.width, this._canvas.height) && this._render();\n }\n setSegment(n, i) {\n this._dotLottieCore === null || M2._wasmModule === null || this._dotLottieCore.setConfig(k(F({}, this._dotLottieCore.config()), { segment: L2([n, i], M2._wasmModule) }));\n }\n setMode(n) {\n this._dotLottieCore === null || M2._wasmModule === null || this._dotLottieCore.setConfig(k(F({}, this._dotLottieCore.config()), { mode: w2(n, M2._wasmModule) }));\n }\n setRenderConfig(n) {\n let m = n, { devicePixelRatio: i, freezeOnOffscreen: d } = m, s = $1(m, [\"devicePixelRatio\", \"freezeOnOffscreen\"]);\n this._renderConfig = k(F(F({}, this._renderConfig), s), { devicePixelRatio: i || n1(), freezeOnOffscreen: d != null ? d : true }), x && this._canvas instanceof HTMLCanvasElement && (this._renderConfig.autoResize ? W.observe(this._canvas, this) : W.unobserve(this._canvas), this._renderConfig.freezeOnOffscreen ? B.observe(this._canvas, this) : (B.unobserve(this._canvas), this._isFrozen && this.unfreeze()));\n }\n loadAnimation(n) {\n if (this._dotLottieCore === null || this._dotLottieCore.activeAnimationId() === n)\n return;\n this._dotLottieCore.loadAnimation(n, this._canvas.width, this._canvas.height) ? (this._eventManager.dispatch({ type: \"load\" }), this.resize()) : this._eventManager.dispatch({ type: \"loadError\", error: new Error(`Failed to animation :${n}`) });\n }\n setMarker(n) {\n this._dotLottieCore !== null && this._dotLottieCore.setConfig(k(F({}, this._dotLottieCore.config()), { marker: n }));\n }\n markers() {\n var i;\n let n = (i = this._dotLottieCore) == null ? void 0 : i.markers();\n if (n) {\n let d = [];\n for (let s = 0; s < n.size(); s += 1) {\n let m = n.get(s);\n d.push({ name: m.name, time: m.time, duration: m.duration });\n }\n return d;\n }\n return [];\n }\n loadTheme(n) {\n if (this._dotLottieCore === null)\n return false;\n let i = this._dotLottieCore.loadTheme(n);\n return this._render(), i;\n }\n loadThemeData(n) {\n if (this._dotLottieCore === null)\n return false;\n let i = this._dotLottieCore.loadThemeData(n);\n return this._render(), i;\n }\n setLayout(n) {\n this._dotLottieCore === null || M2._wasmModule === null || this._dotLottieCore.setConfig(k(F({}, this._dotLottieCore.config()), { layout: { align: C2(n.align, M2._wasmModule), fit: b2(n.fit, M2._wasmModule) } }));\n }\n setViewport(n, i, d, s) {\n return this._dotLottieCore === null ? false : this._dotLottieCore.setViewport(n, i, d, s);\n }\n static setWasmUrl(n) {\n t1.setWasmUrl(n);\n }\n loadStateMachine(n) {\n var i, d;\n return (d = (i = this._dotLottieCore) == null ? void 0 : i.loadStateMachine(n)) != null ? d : false;\n }\n startStateMachine() {\n var i, d;\n let n = (d = (i = this._dotLottieCore) == null ? void 0 : i.startStateMachine()) != null ? d : false;\n return n && this._setupStateMachineListeners(), n;\n }\n stopStateMachine() {\n var i, d;\n let n = (d = (i = this._dotLottieCore) == null ? void 0 : i.stopStateMachine()) != null ? d : false;\n return n && this._cleanupStateMachineListeners(), n;\n }\n _getPointerPosition(n) {\n let i = this._canvas.getBoundingClientRect(), d = this._canvas.width / i.width, s = this._canvas.height / i.height, m = this._renderConfig.devicePixelRatio || window.devicePixelRatio || 1, b = (n.clientX - i.left) * d / m, L = (n.clientY - i.top) * s / m;\n return { x: b, y: L };\n }\n _onPointerUp(n) {\n let { x: i, y: d } = this._getPointerPosition(n);\n this.postPointerUpEvent(i, d);\n }\n _onPointerDown(n) {\n let { x: i, y: d } = this._getPointerPosition(n);\n this.postPointerDownEvent(i, d);\n }\n _onPointerMove(n) {\n let { x: i, y: d } = this._getPointerPosition(n);\n this.postPointerMoveEvent(i, d);\n }\n _onPointerEnter(n) {\n let { x: i, y: d } = this._getPointerPosition(n);\n this.postPointerEnterEvent(i, d);\n }\n _onPointerLeave(n) {\n let { x: i, y: d } = this._getPointerPosition(n);\n this.postPointerExitEvent(i, d);\n }\n postPointerUpEvent(n, i) {\n var d;\n return (d = this._dotLottieCore) == null ? void 0 : d.postPointerUpEvent(n, i);\n }\n postPointerDownEvent(n, i) {\n var d;\n return (d = this._dotLottieCore) == null ? void 0 : d.postPointerDownEvent(n, i);\n }\n postPointerMoveEvent(n, i) {\n var d;\n return (d = this._dotLottieCore) == null ? void 0 : d.postPointerMoveEvent(n, i);\n }\n postPointerEnterEvent(n, i) {\n var d;\n return (d = this._dotLottieCore) == null ? void 0 : d.postPointerEnterEvent(n, i);\n }\n postPointerExitEvent(n, i) {\n var d;\n return (d = this._dotLottieCore) == null ? void 0 : d.postPointerExitEvent(n, i);\n }\n getStateMachineListeners() {\n if (!this._dotLottieCore)\n return [];\n let n = this._dotLottieCore.stateMachineFrameworkSetup(), i = [];\n for (let d = 0; d < n.size(); d += 1)\n i.push(n.get(d));\n return i;\n }\n _setupStateMachineListeners() {\n if (x && this._canvas instanceof HTMLCanvasElement && this._dotLottieCore !== null && this.isLoaded) {\n let n = this.getStateMachineListeners();\n n.includes(\"PointerUp\") && this._canvas.addEventListener(\"pointerup\", this._pointerUpMethod), n.includes(\"PointerDown\") && this._canvas.addEventListener(\"pointerdown\", this._pointerDownMethod), n.includes(\"PointerMove\") && this._canvas.addEventListener(\"pointermove\", this._pointerMoveMethod), n.includes(\"PointerEnter\") && this._canvas.addEventListener(\"pointerenter\", this._pointerEnterMethod), n.includes(\"PointerExit\") && this._canvas.addEventListener(\"pointerleave\", this._pointerExitMethod);\n }\n }\n _cleanupStateMachineListeners() {\n x && this._canvas instanceof HTMLCanvasElement && (this._canvas.removeEventListener(\"pointerup\", this._pointerUpMethod), this._canvas.removeEventListener(\"pointerdown\", this._pointerDownMethod), this._canvas.removeEventListener(\"pointermove\", this._pointerMoveMethod), this._canvas.removeEventListener(\"pointerenter\", this._pointerEnterMethod), this._canvas.removeEventListener(\"pointerleave\", this._pointerExitMethod));\n }\n loadStateMachineData(n) {\n var i, d;\n return (d = (i = this._dotLottieCore) == null ? void 0 : i.loadStateMachineData(n)) != null ? d : false;\n }\n animationSize() {\n var d, s, m, b;\n let n = (s = (d = this._dotLottieCore) == null ? void 0 : d.animationSize().get(0)) != null ? s : 0, i = (b = (m = this._dotLottieCore) == null ? void 0 : m.animationSize().get(1)) != null ? b : 0;\n return { width: n, height: i };\n }\n setStateMachineBooleanContext(n, i) {\n var d, s;\n return (s = (d = this._dotLottieCore) == null ? void 0 : d.setStateMachineBooleanContext(n, i)) != null ? s : false;\n }\n setStateMachineNumericContext(n, i) {\n var d, s;\n return (s = (d = this._dotLottieCore) == null ? void 0 : d.setStateMachineNumericContext(n, i)) != null ? s : false;\n }\n setStateMachineStringContext(n, i) {\n var d, s;\n return (s = (d = this._dotLottieCore) == null ? void 0 : d.setStateMachineStringContext(n, i)) != null ? s : false;\n }\n getLayerBoundingBox(n) {\n var L;\n let i = (L = this._dotLottieCore) == null ? void 0 : L.getLayerBounds(n);\n if (!i || i.size() !== 4)\n return;\n let d = i.get(0), s = i.get(1), m = i.get(2), b = i.get(3);\n return { x: d, y: s, width: m, height: b };\n }\n};\n_(M, \"_wasmModule\", null);\nvar c3 = M;\nvar M22 = class {\n constructor() {\n if (typeof Worker == \"undefined\")\n throw new Error(\"Worker is not supported in this environment.\");\n let n = new Blob([new Uint8Array([34, 117, 115, 101, 32, 115, 116, 114, 105, 99, 116, 34, 59, 10, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 118, 97, 114, 32, 95, 95, 100, 101, 102, 80, 114, 111, 112, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 100, 101, 102, 105, 110, 101, 80, 114, 111, 112, 101, 114, 116, 121, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 100, 101, 102, 80, 114, 111, 112, 115, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 100, 101, 102, 105, 110, 101, 80, 114, 111, 112, 101, 114, 116, 105, 101, 115, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 68, 101, 115, 99, 115, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 68, 101, 115, 99, 114, 105, 112, 116, 111, 114, 115, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 83, 121, 109, 98, 111, 108, 115, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 83, 121, 109, 98, 111, 108, 115, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 112, 114, 111, 112, 73, 115, 69, 110, 117, 109, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 46, 112, 114, 111, 112, 101, 114, 116, 121, 73, 115, 69, 110, 117, 109, 101, 114, 97, 98, 108, 101, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 100, 101, 102, 78, 111, 114, 109, 97, 108, 80, 114, 111, 112, 32, 61, 32, 40, 111, 98, 106, 44, 32, 107, 101, 121, 44, 32, 118, 97, 108, 117, 101, 41, 32, 61, 62, 32, 107, 101, 121, 32, 105, 110, 32, 111, 98, 106, 32, 63, 32, 95, 95, 100, 101, 102, 80, 114, 111, 112, 40, 111, 98, 106, 44, 32, 107, 101, 121, 44, 32, 123, 32, 101, 110, 117, 109, 101, 114, 97, 98, 108, 101, 58, 32, 116, 114, 117, 101, 44, 32, 99, 111, 110, 102, 105, 103, 117, 114, 97, 98, 108, 101, 58, 32, 116, 114, 117, 101, 44, 32, 119, 114, 105, 116, 97, 98, 108, 101, 58, 32, 116, 114, 117, 101, 44, 32, 118, 97, 108, 117, 101, 32, 125, 41, 32, 58, 32, 111, 98, 106, 91, 107, 101, 121, 93, 32, 61, 32, 118, 97, 108, 117, 101, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 112, 114, 111, 112, 32, 105, 110, 32, 98, 32, 124, 124, 32, 40, 98, 32, 61, 32, 123, 125, 41, 41, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 95, 95, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 46, 99, 97, 108, 108, 40, 98, 44, 32, 112, 114, 111, 112, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 95, 95, 100, 101, 102, 78, 111, 114, 109, 97, 108, 80, 114, 111, 112, 40, 97, 44, 32, 112, 114, 111, 112, 44, 32, 98, 91, 112, 114, 111, 112, 93, 41, 59, 10, 32, 32, 32, 32, 105, 102, 32, 40, 95, 95, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 83, 121, 109, 98, 111, 108, 115, 41, 10, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 112, 114, 111, 112, 32, 111, 102, 32, 95, 95, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 83, 121, 109, 98, 111, 108, 115, 40, 98, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 95, 95, 112, 114, 111, 112, 73, 115, 69, 110, 117, 109, 46, 99, 97, 108, 108, 40, 98, 44, 32, 112, 114, 111, 112, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 95, 95, 100, 101, 102, 78, 111, 114, 109, 97, 108, 80, 114, 111, 112, 40, 97, 44, 32, 112, 114, 111, 112, 44, 32, 98, 91, 112, 114, 111, 112, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 59, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 115, 112, 114, 101, 97, 100, 80, 114, 111, 112, 115, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 95, 95, 100, 101, 102, 80, 114, 111, 112, 115, 40, 97, 44, 32, 95, 95, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 68, 101, 115, 99, 115, 40, 98, 41, 41, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 111, 98, 106, 82, 101, 115, 116, 32, 61, 32, 40, 115, 111, 117, 114, 99, 101, 44, 32, 101, 120, 99, 108, 117, 100, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 118, 97, 114, 32, 116, 97, 114, 103, 101, 116, 32, 61, 32, 123, 125, 59, 10, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 112, 114, 111, 112, 32, 105, 110, 32, 115, 111, 117, 114, 99, 101, 41, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 95, 95, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 46, 99, 97, 108, 108, 40, 115, 111, 117, 114, 99, 101, 44, 32, 112, 114, 111, 112, 41, 32, 38, 38, 32, 101, 120, 99, 108, 117, 100, 101, 46, 105, 110, 100, 101, 120, 79, 102, 40, 112, 114, 111, 112, 41, 32, 60, 32, 48, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 97, 114, 103, 101, 116, 91, 112, 114, 111, 112, 93, 32, 61, 32, 115, 111, 117, 114, 99, 101, 91, 112, 114, 111, 112, 93, 59, 10, 32, 32, 32, 32, 105, 102, 32, 40, 115, 111, 117, 114, 99, 101, 32, 33, 61, 32, 110, 117, 108, 108, 32, 38, 38, 32, 95, 95, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 83, 121, 109, 98, 111, 108, 115, 41, 10, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 112, 114, 111, 112, 32, 111, 102, 32, 95, 95, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 83, 121, 109, 98, 111, 108, 115, 40, 115, 111, 117, 114, 99, 101, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 101, 120, 99, 108, 117, 100, 101, 46, 105, 110, 100, 101, 120, 79, 102, 40, 112, 114, 111, 112, 41, 32, 60, 32, 48, 32, 38, 38, 32, 95, 95, 112, 114, 111, 112, 73, 115, 69, 110, 117, 109, 46, 99, 97, 108, 108, 40, 115, 111, 117, 114, 99, 101, 44, 32, 112, 114, 111, 112, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 97, 114, 103, 101, 116, 91, 112, 114, 111, 112, 93, 32, 61, 32, 115, 111, 117, 114, 99, 101, 91, 112, 114, 111, 112, 93, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 97, 114, 103, 101, 116, 59, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 32, 61, 32, 40, 111, 98, 106, 44, 32, 107, 101, 121, 44, 32, 118, 97, 108, 117, 101, 41, 32, 61, 62, 32, 95, 95, 100, 101, 102, 78, 111, 114, 109, 97, 108, 80, 114, 111, 112, 40, 111, 98, 106, 44, 32, 116, 121, 112, 101, 111, 102, 32, 107, 101, 121, 32, 33, 61, 61, 32, 34, 115, 121, 109, 98, 111, 108, 34, 32, 63, 32, 107, 101, 121, 32, 43, 32, 34, 34, 32, 58, 32, 107, 101, 121, 44, 32, 118, 97, 108, 117, 101, 41, 59, 10, 32, 32, 118, 97, 114, 32, 95, 95, 97, 115, 121, 110, 99, 32, 61, 32, 40, 95, 95, 116, 104, 105, 115, 44, 32, 95, 95, 97, 114, 103, 117, 109, 101, 110, 116, 115, 44, 32, 103, 101, 110, 101, 114, 97, 116, 111, 114, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 80, 114, 111, 109, 105, 115, 101, 40, 40, 114, 101, 115, 111, 108, 118, 101, 44, 32, 114, 101, 106, 101, 99, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 117, 108, 102, 105, 108, 108, 101, 100, 32, 61, 32, 40, 118, 97, 108, 117, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 116, 101, 112, 40, 103, 101, 110, 101, 114, 97, 116, 111, 114, 46, 110, 101, 120, 116, 40, 118, 97, 108, 117, 101, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 106, 101, 99, 116, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 114, 101, 106, 101, 99, 116, 101, 100, 32, 61, 32, 40, 118, 97, 108, 117, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 116, 101, 112, 40, 103, 101, 110, 101, 114, 97, 116, 111, 114, 46, 116, 104, 114, 111, 119, 40, 118, 97, 108, 117, 101, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 106, 101, 99, 116, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 115, 116, 101, 112, 32, 61, 32, 40, 120, 41, 32, 61, 62, 32, 120, 46, 100, 111, 110, 101, 32, 63, 32, 114, 101, 115, 111, 108, 118, 101, 40, 120, 46, 118, 97, 108, 117, 101, 41, 32, 58, 32, 80, 114, 111, 109, 105, 115, 101, 46, 114, 101, 115, 111, 108, 118, 101, 40, 120, 46, 118, 97, 108, 117, 101, 41, 46, 116, 104, 101, 110, 40, 102, 117, 108, 102, 105, 108, 108, 101, 100, 44, 32, 114, 101, 106, 101, 99, 116, 101, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 115, 116, 101, 112, 40, 40, 103, 101, 110, 101, 114, 97, 116, 111, 114, 32, 61, 32, 103, 101, 110, 101, 114, 97, 116, 111, 114, 46, 97, 112, 112, 108, 121, 40, 95, 95, 116, 104, 105, 115, 44, 32, 95, 95, 97, 114, 103, 117, 109, 101, 110, 116, 115, 41, 41, 46, 110, 101, 120, 116, 40, 41, 41, 59, 10, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 125, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 97, 110, 105, 109, 97, 116, 105, 111, 110, 45, 102, 114, 97, 109, 101, 45, 109, 97, 110, 97, 103, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 87, 101, 98, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 83, 116, 114, 97, 116, 101, 103, 121, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 99, 97, 108, 108, 98, 97, 99, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 99, 97, 108, 108, 98, 97, 99, 107, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 105, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 105, 100, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 78, 111, 100, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 83, 116, 114, 97, 116, 101, 103, 121, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 108, 97, 115, 116, 72, 97, 110, 100, 108, 101, 73, 100, 34, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 108, 97, 115, 116, 73, 109, 109, 101, 100, 105, 97, 116, 101, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 99, 97, 108, 108, 98, 97, 99, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 72, 97, 110, 100, 108, 101, 73, 100, 32, 62, 61, 32, 78, 117, 109, 98, 101, 114, 46, 77, 65, 88, 95, 83, 65, 70, 69, 95, 73, 78, 84, 69, 71, 69, 82, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 72, 97, 110, 100, 108, 101, 73, 100, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 72, 97, 110, 100, 108, 101, 73, 100, 32, 43, 61, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 73, 109, 109, 101, 100, 105, 97, 116, 101, 32, 61, 32, 115, 101, 116, 73, 109, 109, 101, 100, 105, 97, 116, 101, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 108, 108, 98, 97, 99, 107, 40, 68, 97, 116, 101, 46, 110, 111, 119, 40, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 72, 97, 110, 100, 108, 101, 73, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 95, 105, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 73, 109, 109, 101, 100, 105, 97, 116, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 108, 101, 97, 114, 73, 109, 109, 101, 100, 105, 97, 116, 101, 40, 116, 104, 105, 115, 46, 95, 108, 97, 115, 116, 73, 109, 109, 101, 100, 105, 97, 116, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 115, 116, 114, 97, 116, 101, 103, 121, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 115, 116, 114, 97, 116, 101, 103, 121, 32, 61, 32, 116, 121, 112, 101, 111, 102, 32, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 32, 61, 61, 61, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 63, 32, 110, 101, 119, 32, 87, 101, 98, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 83, 116, 114, 97, 116, 101, 103, 121, 40, 41, 32, 58, 32, 110, 101, 119, 32, 78, 111, 100, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 83, 116, 114, 97, 116, 101, 103, 121, 40, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 99, 97, 108, 108, 98, 97, 99, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 115, 116, 114, 97, 116, 101, 103, 121, 46, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 99, 97, 108, 108, 98, 97, 99, 107, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 105, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 115, 116, 114, 97, 116, 101, 103, 121, 46, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 105, 100, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 99, 111, 110, 115, 116, 97, 110, 116, 115, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 61, 32, 116, 121, 112, 101, 111, 102, 32, 119, 105, 110, 100, 111, 119, 32, 33, 61, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 38, 38, 32, 116, 121, 112, 101, 111, 102, 32, 119, 105, 110, 100, 111, 119, 46, 100, 111, 99, 117, 109, 101, 110, 116, 32, 33, 61, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 59, 10, 32, 32, 118, 97, 114, 32, 90, 73, 80, 95, 83, 73, 71, 78, 65, 84, 85, 82, 69, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 40, 91, 56, 48, 44, 32, 55, 53, 44, 32, 51, 44, 32, 52, 93, 41, 59, 10, 32, 32, 118, 97, 114, 32, 76, 79, 84, 84, 73, 69, 95, 74, 83, 79, 78, 95, 77, 65, 78, 68, 65, 84, 79, 82, 89, 95, 70, 73, 69, 76, 68, 83, 32, 61, 32, 91, 34, 118, 34, 44, 32, 34, 105, 112, 34, 44, 32, 34, 111, 112, 34, 44, 32, 34, 108, 97, 121, 101, 114, 115, 34, 44, 32, 34, 102, 114, 34, 44, 32, 34, 119, 34, 44, 32, 34, 104, 34, 93, 59, 10, 32, 32, 118, 97, 114, 32, 80, 65, 67, 75, 65, 71, 69, 95, 86, 69, 82, 83, 73, 79, 78, 32, 61, 32, 34, 48, 46, 51, 54, 46, 49, 34, 59, 10, 32, 32, 118, 97, 114, 32, 80, 65, 67, 75, 65, 71, 69, 95, 78, 65, 77, 69, 32, 61, 32, 34, 64, 108, 111, 116, 116, 105, 101, 102, 105, 108, 101, 115, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 45, 119, 101, 98, 34, 59, 10, 32, 32, 118, 97, 114, 32, 68, 69, 70, 65, 85, 76, 84, 95, 68, 80, 82, 95, 70, 65, 67, 84, 79, 82, 32, 61, 32, 48, 46, 55, 53, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 99, 111, 114, 101, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 45, 112, 108, 97, 121, 101, 114, 46, 106, 115, 10, 32, 32, 118, 97, 114, 32, 99, 114, 101, 97, 116, 101, 68, 111, 116, 76, 111, 116, 116, 105, 101, 80, 108, 97, 121, 101, 114, 77, 111, 100, 117, 108, 101, 32, 61, 32, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 118, 97, 114, 32, 95, 115, 99, 114, 105, 112, 116, 78, 97, 109, 101, 32, 61, 32, 116, 121, 112, 101, 111, 102, 32, 100, 111, 99, 117, 109, 101, 110, 116, 32, 33, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 63, 32, 40, 95, 97, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 117, 114, 114, 101, 110, 116, 83, 99, 114, 105, 112, 116, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 115, 114, 99, 32, 58, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 109, 111, 100, 117, 108, 101, 65, 114, 103, 32, 61, 32, 123, 125, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 111, 100, 117, 108, 101, 82, 116, 110, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 107, 32, 61, 32, 109, 111, 100, 117, 108, 101, 65, 114, 103, 44, 32, 97, 97, 44, 32, 98, 97, 44, 32, 99, 97, 32, 61, 32, 110, 101, 119, 32, 80, 114, 111, 109, 105, 115, 101, 40, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 97, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 44, 32, 100, 97, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 97, 115, 115, 105, 103, 110, 40, 123, 125, 44, 32, 107, 41, 44, 32, 101, 97, 32, 61, 32, 34, 46, 47, 116, 104, 105, 115, 46, 112, 114, 111, 103, 114, 97, 109, 34, 44, 32, 112, 32, 61, 32, 34, 34, 44, 32, 102, 97, 59, 10, 32, 32, 32, 32, 32, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 100, 111, 99, 117, 109, 101, 110, 116, 32, 38, 38, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 117, 114, 114, 101, 110, 116, 83, 99, 114, 105, 112, 116, 32, 38, 38, 32, 40, 112, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 117, 114, 114, 101, 110, 116, 83, 99, 114, 105, 112, 116, 46, 115, 114, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 115, 99, 114, 105, 112, 116, 78, 97, 109, 101, 32, 38, 38, 32, 40, 112, 32, 61, 32, 95, 115, 99, 114, 105, 112, 116, 78, 97, 109, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 112, 46, 115, 116, 97, 114, 116, 115, 87, 105, 116, 104, 40, 34, 98, 108, 111, 98, 58, 34, 41, 32, 63, 32, 112, 32, 61, 32, 34, 34, 32, 58, 32, 112, 32, 61, 32, 112, 46, 115, 117, 98, 115, 116, 114, 40, 48, 44, 32, 112, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 91, 63, 35, 93, 46, 42, 47, 44, 32, 34, 34, 41, 46, 108, 97, 115, 116, 73, 110, 100, 101, 120, 79, 102, 40, 34, 47, 34, 41, 32, 43, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 102, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 102, 101, 116, 99, 104, 40, 97, 44, 32, 123, 32, 99, 114, 101, 100, 101, 110, 116, 105, 97, 108, 115, 58, 32, 34, 115, 97, 109, 101, 45, 111, 114, 105, 103, 105, 110, 34, 32, 125, 41, 46, 116, 104, 101, 110, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 40, 98, 41, 32, 61, 62, 32, 98, 46, 111, 107, 32, 63, 32, 98, 46, 97, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 40, 41, 32, 58, 32, 80, 114, 111, 109, 105, 115, 101, 46, 114, 101, 106, 101, 99, 116, 40, 69, 114, 114, 111, 114, 40, 98, 46, 115, 116, 97, 116, 117, 115, 32, 43, 32, 34, 32, 58, 32, 34, 32, 43, 32, 98, 46, 117, 114, 108, 41, 41, 10, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 106, 97, 32, 61, 32, 107, 46, 112, 114, 105, 110, 116, 32, 124, 124, 32, 99, 111, 110, 115, 111, 108, 101, 46, 108, 111, 103, 46, 98, 105, 110, 100, 40, 99, 111, 110, 115, 111, 108, 101, 41, 44, 32, 116, 32, 61, 32, 107, 46, 112, 114, 105, 110, 116, 69, 114, 114, 32, 124, 124, 32, 99, 111, 110, 115, 111, 108, 101, 46, 101, 114, 114, 111, 114, 46, 98, 105, 110, 100, 40, 99, 111, 110, 115, 111, 108, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 79, 98, 106, 101, 99, 116, 46, 97, 115, 115, 105, 103, 110, 40, 107, 44, 32, 100, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 100, 97, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 116, 104, 105, 115, 80, 114, 111, 103, 114, 97, 109, 32, 38, 38, 32, 40, 101, 97, 32, 61, 32, 107, 46, 116, 104, 105, 115, 80, 114, 111, 103, 114, 97, 109, 41, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 107, 97, 32, 61, 32, 107, 46, 119, 97, 115, 109, 66, 105, 110, 97, 114, 121, 44, 32, 108, 97, 44, 32, 109, 97, 32, 61, 32, 102, 97, 108, 115, 101, 44, 32, 110, 97, 44, 32, 117, 44, 32, 120, 44, 32, 121, 44, 32, 122, 44, 32, 67, 44, 32, 68, 44, 32, 111, 97, 44, 32, 112, 97, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 113, 97, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 108, 97, 46, 98, 117, 102, 102, 101, 114, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 56, 32, 61, 32, 117, 32, 61, 32, 110, 101, 119, 32, 73, 110, 116, 56, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 49, 54, 32, 61, 32, 121, 32, 61, 32, 110, 101, 119, 32, 73, 110, 116, 49, 54, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 85, 56, 32, 61, 32, 120, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 85, 49, 54, 32, 61, 32, 122, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 49, 54, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 51, 50, 32, 61, 32, 67, 32, 61, 32, 110, 101, 119, 32, 73, 110, 116, 51, 50, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 85, 51, 50, 32, 61, 32, 68, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 51, 50, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 70, 51, 50, 32, 61, 32, 111, 97, 32, 61, 32, 110, 101, 119, 32, 70, 108, 111, 97, 116, 51, 50, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 46, 72, 69, 65, 80, 70, 54, 52, 32, 61, 32, 112, 97, 32, 61, 32, 110, 101, 119, 32, 70, 108, 111, 97, 116, 54, 52, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 114, 97, 32, 61, 32, 91, 93, 44, 32, 115, 97, 32, 61, 32, 91, 93, 44, 32, 116, 97, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 117, 97, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 107, 46, 112, 114, 101, 82, 117, 110, 46, 115, 104, 105, 102, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 97, 46, 117, 110, 115, 104, 105, 102, 116, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 70, 32, 61, 32, 48, 44, 32, 118, 97, 32, 61, 32, 110, 117, 108, 108, 44, 32, 71, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 119, 97, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 40, 95, 97, 50, 32, 61, 32, 107, 46, 111, 110, 65, 98, 111, 114, 116, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 50, 46, 99, 97, 108, 108, 40, 107, 44, 32, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 34, 65, 98, 111, 114, 116, 101, 100, 40, 34, 32, 43, 32, 97, 32, 43, 32, 34, 41, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 32, 61, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 110, 101, 119, 32, 87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121, 46, 82, 117, 110, 116, 105, 109, 101, 69, 114, 114, 111, 114, 40, 97, 32, 43, 32, 34, 46, 32, 66, 117, 105, 108, 100, 32, 119, 105, 116, 104, 32, 45, 115, 65, 83, 83, 69, 82, 84, 73, 79, 78, 83, 32, 102, 111, 114, 32, 109, 111, 114, 101, 32, 105, 110, 102, 111, 46, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 120, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 97, 46, 115, 116, 97, 114, 116, 115, 87, 105, 116, 104, 40, 34, 100, 97, 116, 97, 58, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 47, 111, 99, 116, 101, 116, 45, 115, 116, 114, 101, 97, 109, 59, 98, 97, 115, 101, 54, 52, 44, 34, 41, 44, 32, 121, 97, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 122, 97, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 97, 32, 61, 61, 32, 121, 97, 32, 38, 38, 32, 107, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 40, 107, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 34, 98, 111, 116, 104, 32, 97, 115, 121, 110, 99, 32, 97, 110, 100, 32, 115, 121, 110, 99, 32, 102, 101, 116, 99, 104, 105, 110, 103, 32, 111, 102, 32, 116, 104, 101, 32, 119, 97, 115, 109, 32, 102, 97, 105, 108, 101, 100, 34, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 65, 97, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 107, 97, 32, 63, 32, 80, 114, 111, 109, 105, 115, 101, 46, 114, 101, 115, 111, 108, 118, 101, 40, 41, 46, 116, 104, 101, 110, 40, 40, 41, 32, 61, 62, 32, 122, 97, 40, 97, 41, 41, 32, 58, 32, 102, 97, 40, 97, 41, 46, 116, 104, 101, 110, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 98, 41, 32, 61, 62, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 40, 98, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 41, 32, 61, 62, 32, 122, 97, 40, 97, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 66, 97, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 65, 97, 40, 97, 41, 46, 116, 104, 101, 110, 40, 40, 100, 41, 32, 61, 62, 32, 87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 40, 100, 44, 32, 98, 41, 41, 46, 116, 104, 101, 110, 40, 99, 44, 32, 40, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 40, 96, 102, 97, 105, 108, 101, 100, 32, 116, 111, 32, 97, 115, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 108, 121, 32, 112, 114, 101, 112, 97, 114, 101, 32, 119, 97, 115, 109, 58, 32, 36, 123, 100, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 97, 40, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 67, 97, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 121, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 107, 97, 32, 124, 124, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 83, 116, 114, 101, 97, 109, 105, 110, 103, 32, 124, 124, 32, 120, 97, 40, 99, 41, 32, 124, 124, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 102, 101, 116, 99, 104, 32, 63, 32, 66, 97, 40, 99, 44, 32, 97, 44, 32, 98, 41, 32, 58, 32, 102, 101, 116, 99, 104, 40, 99, 44, 32, 123, 32, 99, 114, 101, 100, 101, 110, 116, 105, 97, 108, 115, 58, 32, 34, 115, 97, 109, 101, 45, 111, 114, 105, 103, 105, 110, 34, 32, 125, 41, 46, 116, 104, 101, 110, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 100, 41, 32, 61, 62, 32, 87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 83, 116, 114, 101, 97, 109, 105, 110, 103, 40, 100, 44, 32, 97, 41, 46, 116, 104, 101, 110, 40, 98, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 40, 96, 119, 97, 115, 109, 32, 115, 116, 114, 101, 97, 109, 105, 110, 103, 32, 99, 111, 109, 112, 105, 108, 101, 32, 102, 97, 105, 108, 101, 100, 58, 32, 36, 123, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 40, 34, 102, 97, 108, 108, 105, 110, 103, 32, 98, 97, 99, 107, 32, 116, 111, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 32, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 105, 111, 110, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 66, 97, 40, 99, 44, 32, 97, 44, 32, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 68, 97, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 61, 32, 34, 69, 120, 105, 116, 83, 116, 97, 116, 117, 115, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 109, 101, 115, 115, 97, 103, 101, 32, 61, 32, 96, 80, 114, 111, 103, 114, 97, 109, 32, 116, 101, 114, 109, 105, 110, 97, 116, 101, 100, 32, 119, 105, 116, 104, 32, 101, 120, 105, 116, 40, 36, 123, 97, 125, 41, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 115, 116, 97, 116, 117, 115, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 69, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 48, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 97, 46, 115, 104, 105, 102, 116, 40, 41, 40, 107, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 70, 97, 32, 61, 32, 107, 46, 110, 111, 69, 120, 105, 116, 82, 117, 110, 116, 105, 109, 101, 32, 124, 124, 32, 116, 114, 117, 101, 44, 32, 71, 97, 32, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 84, 101, 120, 116, 68, 101, 99, 111, 100, 101, 114, 32, 63, 32, 110, 101, 119, 32, 84, 101, 120, 116, 68, 101, 99, 111, 100, 101, 114, 40, 41, 32, 58, 32, 118, 111, 105, 100, 32, 48, 44, 32, 72, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 32, 43, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 99, 32, 61, 32, 98, 59, 32, 97, 91, 99, 93, 32, 38, 38, 32, 33, 40, 99, 32, 62, 61, 32, 100, 41, 59, 32, 41, 32, 43, 43, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 49, 54, 32, 60, 32, 99, 32, 45, 32, 98, 32, 38, 38, 32, 97, 46, 98, 117, 102, 102, 101, 114, 32, 38, 38, 32, 71, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 71, 97, 46, 100, 101, 99, 111, 100, 101, 40, 97, 46, 115, 117, 98, 97, 114, 114, 97, 121, 40, 98, 44, 32, 99, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 100, 32, 61, 32, 34, 34, 59, 32, 98, 32, 60, 32, 99, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 97, 91, 98, 43, 43, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 101, 32, 38, 32, 49, 50, 56, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 97, 91, 98, 43, 43, 93, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 49, 57, 50, 32, 61, 61, 32, 40, 101, 32, 38, 32, 50, 50, 52, 41, 41, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 40, 101, 32, 38, 32, 51, 49, 41, 32, 60, 60, 32, 54, 32, 124, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 97, 91, 98, 43, 43, 93, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 50, 50, 52, 32, 61, 61, 32, 40, 101, 32, 38, 32, 50, 52, 48, 41, 32, 63, 32, 40, 101, 32, 38, 32, 49, 53, 41, 32, 60, 60, 32, 49, 50, 32, 124, 32, 102, 32, 60, 60, 32, 54, 32, 124, 32, 104, 32, 58, 32, 40, 101, 32, 38, 32, 55, 41, 32, 60, 60, 32, 49, 56, 32, 124, 32, 102, 32, 60, 60, 32, 49, 50, 32, 124, 32, 104, 32, 60, 60, 32, 54, 32, 124, 32, 97, 91, 98, 43, 43, 93, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 54, 53, 53, 51, 54, 32, 62, 32, 101, 32, 63, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 101, 41, 32, 58, 32, 40, 101, 32, 45, 61, 32, 54, 53, 53, 51, 54, 44, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 53, 53, 50, 57, 54, 32, 124, 32, 101, 32, 62, 62, 32, 49, 48, 44, 32, 53, 54, 51, 50, 48, 32, 124, 32, 101, 32, 38, 32, 49, 48, 50, 51, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 99, 108, 97, 115, 115, 32, 72, 97, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 67, 97, 32, 61, 32, 97, 32, 45, 32, 50, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 73, 97, 32, 61, 32, 48, 44, 32, 74, 97, 32, 61, 32, 48, 44, 32, 73, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 120, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 48, 32, 60, 32, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 98, 32, 43, 32, 99, 32, 45, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 101, 32, 61, 32, 48, 59, 32, 101, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 53, 53, 50, 57, 54, 32, 60, 61, 32, 102, 32, 38, 38, 32, 53, 55, 51, 52, 51, 32, 62, 61, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 43, 43, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 32, 61, 32, 54, 53, 53, 51, 54, 32, 43, 32, 40, 40, 102, 32, 38, 32, 49, 48, 50, 51, 41, 32, 60, 60, 32, 49, 48, 41, 32, 124, 32, 104, 32, 38, 32, 49, 48, 50, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 49, 50, 55, 32, 62, 61, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 32, 62, 61, 32, 99, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 91, 98, 43, 43, 93, 32, 61, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 48, 52, 55, 32, 62, 61, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 32, 43, 32, 49, 32, 62, 61, 32, 99, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 91, 98, 43, 43, 93, 32, 61, 32, 49, 57, 50, 32, 124, 32, 102, 32, 62, 62, 32, 54, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 54, 53, 53, 51, 53, 32, 62, 61, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 32, 43, 32, 50, 32, 62, 61, 32, 99, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 91, 98, 43, 43, 93, 32, 61, 32, 50, 50, 52, 32, 124, 32, 102, 32, 62, 62, 32, 49, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 32, 43, 32, 51, 32, 62, 61, 32, 99, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 91, 98, 43, 43, 93, 32, 61, 32, 50, 52, 48, 32, 124, 32, 102, 32, 62, 62, 32, 49, 56, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 91, 98, 43, 43, 93, 32, 61, 32, 49, 50, 56, 32, 124, 32, 102, 32, 62, 62, 32, 49, 50, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 91, 98, 43, 43, 93, 32, 61, 32, 49, 50, 56, 32, 124, 32, 102, 32, 62, 62, 32, 54, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 91, 98, 43, 43, 93, 32, 61, 32, 49, 50, 56, 32, 124, 32, 102, 32, 38, 32, 54, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 91, 98, 93, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 75, 97, 32, 61, 32, 123, 125, 44, 32, 76, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 97, 46, 112, 111, 112, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 112, 111, 112, 40, 41, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 74, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 68, 91, 97, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 75, 32, 61, 32, 123, 125, 44, 32, 76, 32, 61, 32, 123, 125, 44, 32, 77, 97, 32, 61, 32, 123, 125, 44, 32, 77, 44, 32, 79, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 100, 40, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 61, 32, 99, 40, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 103, 46, 108, 101, 110, 103, 116, 104, 32, 33, 61, 61, 32, 97, 46, 108, 101, 110, 103, 116, 104, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 77, 40, 34, 77, 105, 115, 109, 97, 116, 99, 104, 101, 100, 32, 116, 121, 112, 101, 32, 99, 111, 110, 118, 101, 114, 116, 101, 114, 32, 99, 111, 117, 110, 116, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 108, 32, 61, 32, 48, 59, 32, 108, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 108, 41, 32, 78, 40, 97, 91, 108, 93, 44, 32, 103, 91, 108, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 103, 41, 32, 61, 62, 32, 77, 97, 91, 103, 93, 32, 61, 32, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 65, 114, 114, 97, 121, 40, 98, 46, 108, 101, 110, 103, 116, 104, 41, 44, 32, 102, 32, 61, 32, 91, 93, 44, 32, 104, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 103, 44, 32, 108, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 103, 41, 32, 63, 32, 101, 91, 108, 93, 32, 61, 32, 76, 91, 103, 93, 32, 58, 32, 40, 102, 46, 112, 117, 115, 104, 40, 103, 41, 44, 32, 75, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 103, 41, 32, 124, 124, 32, 40, 75, 91, 103, 93, 32, 61, 32, 91, 93, 41, 44, 32, 75, 91, 103, 93, 46, 112, 117, 115, 104, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 91, 108, 93, 32, 61, 32, 76, 91, 103, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 43, 43, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 32, 61, 61, 61, 32, 102, 46, 108, 101, 110, 103, 116, 104, 32, 38, 38, 32, 100, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 61, 32, 102, 46, 108, 101, 110, 103, 116, 104, 32, 38, 38, 32, 100, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 78, 97, 44, 32, 80, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 98, 32, 61, 32, 34, 34, 59, 32, 120, 91, 97, 93, 59, 32, 41, 32, 98, 32, 43, 61, 32, 78, 97, 91, 120, 91, 97, 43, 43, 93, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 81, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 79, 97, 40, 97, 44, 32, 98, 44, 32, 99, 32, 61, 32, 123, 125, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 46, 110, 97, 109, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 116, 121, 112, 101, 32, 34, 36, 123, 100, 125, 34, 32, 109, 117, 115, 116, 32, 104, 97, 118, 101, 32, 97, 32, 112, 111, 115, 105, 116, 105, 118, 101, 32, 105, 110, 116, 101, 103, 101, 114, 32, 116, 121, 112, 101, 105, 100, 32, 112, 111, 105, 110, 116, 101, 114, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 76, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 46, 104, 98, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 67, 97, 110, 110, 111, 116, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 116, 121, 112, 101, 32, 39, 36, 123, 100, 125, 39, 32, 116, 119, 105, 99, 101, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 76, 91, 97, 93, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 108, 101, 116, 101, 32, 77, 97, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 75, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 97, 41, 32, 38, 38, 32, 40, 98, 32, 61, 32, 75, 91, 97, 93, 44, 32, 100, 101, 108, 101, 116, 101, 32, 75, 91, 97, 93, 44, 32, 98, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 101, 41, 32, 61, 62, 32, 101, 40, 41, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 78, 40, 97, 44, 32, 98, 44, 32, 99, 32, 61, 32, 123, 125, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 79, 97, 40, 97, 44, 32, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 80, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 97, 46, 65, 97, 46, 68, 97, 46, 66, 97, 46, 110, 97, 109, 101, 32, 43, 32, 34, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 97, 108, 114, 101, 97, 100, 121, 32, 100, 101, 108, 101, 116, 101, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 81, 97, 32, 61, 32, 102, 97, 108, 115, 101, 44, 32, 82, 97, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 84, 97, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 32, 61, 61, 61, 32, 99, 41, 32, 114, 101, 116, 117, 114, 110, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 99, 46, 71, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 84, 97, 40, 97, 44, 32, 98, 44, 32, 99, 46, 71, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 32, 61, 61, 61, 32, 97, 32, 63, 32, 110, 117, 108, 108, 32, 58, 32, 99, 46, 36, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 85, 97, 32, 61, 32, 123, 125, 44, 32, 82, 32, 61, 32, 91, 93, 44, 32, 86, 97, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 82, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 82, 46, 112, 111, 112, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 65, 97, 46, 77, 97, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 91, 34, 100, 101, 108, 101, 116, 101, 34, 93, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 87, 97, 44, 32, 88, 97, 32, 61, 32, 123, 125, 44, 32, 89, 97, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 98, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 34, 112, 116, 114, 32, 115, 104, 111, 117, 108, 100, 32, 110, 111, 116, 32, 98, 101, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 97, 46, 71, 97, 59, 32, 41, 32, 98, 32, 61, 32, 97, 46, 80, 97, 40, 98, 41, 44, 32, 97, 32, 61, 32, 97, 46, 71, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 88, 97, 91, 98, 93, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 36, 97, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 68, 97, 32, 124, 124, 32, 33, 98, 46, 67, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 77, 40, 34, 109, 97, 107, 101, 67, 108, 97, 115, 115, 72, 97, 110, 100, 108, 101, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 112, 116, 114, 32, 97, 110, 100, 32, 112, 116, 114, 84, 121, 112, 101, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 33, 98, 46, 72, 97, 32, 33, 61, 61, 32, 33, 33, 98, 46, 69, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 77, 40, 34, 66, 111, 116, 104, 32, 115, 109, 97, 114, 116, 80, 116, 114, 84, 121, 112, 101, 32, 97, 110, 100, 32, 115, 109, 97, 114, 116, 80, 116, 114, 32, 109, 117, 115, 116, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 46, 99, 111, 117, 110, 116, 32, 61, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 49, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 90, 97, 40, 79, 98, 106, 101, 99, 116, 46, 99, 114, 101, 97, 116, 101, 40, 97, 44, 32, 123, 32, 65, 97, 58, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 98, 44, 32, 119, 114, 105, 116, 97, 98, 108, 101, 58, 32, 116, 114, 117, 101, 32, 125, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 90, 97, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 61, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 70, 105, 110, 97, 108, 105, 122, 97, 116, 105, 111, 110, 82, 101, 103, 105, 115, 116, 114, 121, 41, 32, 114, 101, 116, 117, 114, 110, 32, 90, 97, 32, 61, 32, 40, 98, 41, 32, 61, 62, 32, 98, 44, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 81, 97, 32, 61, 32, 110, 101, 119, 32, 70, 105, 110, 97, 108, 105, 122, 97, 116, 105, 111, 110, 82, 101, 103, 105, 115, 116, 114, 121, 40, 40, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 98, 46, 65, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 98, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 61, 32, 98, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 32, 38, 38, 32, 40, 98, 46, 69, 97, 32, 63, 32, 98, 46, 72, 97, 46, 75, 97, 40, 98, 46, 69, 97, 41, 32, 58, 32, 98, 46, 68, 97, 46, 66, 97, 46, 75, 97, 40, 98, 46, 67, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 90, 97, 32, 61, 32, 40, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 98, 46, 65, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 69, 97, 32, 38, 38, 32, 81, 97, 46, 114, 101, 103, 105, 115, 116, 101, 114, 40, 98, 44, 32, 123, 32, 65, 97, 58, 32, 99, 32, 125, 44, 32, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 82, 97, 32, 61, 32, 40, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 81, 97, 46, 117, 110, 114, 101, 103, 105, 115, 116, 101, 114, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 90, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 97, 98, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 79, 98, 106, 101, 99, 116, 46, 100, 101, 102, 105, 110, 101, 80, 114, 111, 112, 101, 114, 116, 121, 40, 98, 44, 32, 34, 110, 97, 109, 101, 34, 44, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 97, 32, 125, 41, 44, 32, 99, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 97, 91, 98, 93, 46, 70, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 97, 91, 98, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 91, 98, 93, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 46, 46, 46, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 97, 91, 98, 93, 46, 70, 97, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 101, 46, 108, 101, 110, 103, 116, 104, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 70, 117, 110, 99, 116, 105, 111, 110, 32, 39, 36, 123, 99, 125, 39, 32, 99, 97, 108, 108, 101, 100, 32, 119, 105, 116, 104, 32, 97, 110, 32, 105, 110, 118, 97, 108, 105, 100, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 40, 36, 123, 101, 46, 108, 101, 110, 103, 116, 104, 125, 41, 32, 45, 32, 101, 120, 112, 101, 99, 116, 115, 32, 111, 110, 101, 32, 111, 102, 32, 40, 36, 123, 97, 91, 98, 93, 46, 70, 97, 125, 41, 33, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 91, 98, 93, 46, 70, 97, 91, 101, 46, 108, 101, 110, 103, 116, 104, 93, 46, 97, 112, 112, 108, 121, 40, 116, 104, 105, 115, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 91, 98, 93, 46, 70, 97, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 91, 98, 93, 46, 70, 97, 91, 100, 46, 81, 97, 93, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 100, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 99, 32, 124, 124, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 107, 91, 97, 93, 46, 70, 97, 32, 38, 38, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 107, 91, 97, 93, 46, 70, 97, 91, 99, 93, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 67, 97, 110, 110, 111, 116, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 112, 117, 98, 108, 105, 99, 32, 110, 97, 109, 101, 32, 39, 36, 123, 97, 125, 39, 32, 116, 119, 105, 99, 101, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 98, 40, 107, 44, 32, 97, 44, 32, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 99, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 67, 97, 110, 110, 111, 116, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 111, 118, 101, 114, 108, 111, 97, 100, 115, 32, 111, 102, 32, 97, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 40, 36, 123, 99, 125, 41, 33, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 107, 91, 97, 93, 46, 70, 97, 91, 99, 93, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 107, 91, 97, 93, 32, 61, 32, 98, 44, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 99, 32, 38, 38, 32, 40, 107, 91, 97, 93, 46, 113, 98, 32, 61, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 101, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 34, 95, 117, 110, 107, 110, 111, 119, 110, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 97, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 91, 94, 97, 45, 122, 65, 45, 90, 48, 45, 57, 95, 93, 47, 103, 44, 32, 34, 36, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 52, 56, 32, 60, 61, 32, 98, 32, 38, 38, 32, 53, 55, 32, 62, 61, 32, 98, 32, 63, 32, 96, 95, 36, 123, 97, 125, 96, 32, 58, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 102, 98, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 78, 97, 32, 61, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 75, 97, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 71, 97, 32, 61, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 98, 98, 32, 61, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 80, 97, 32, 61, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 36, 97, 32, 61, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 106, 98, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 103, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 98, 32, 33, 61, 61, 32, 99, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 80, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 69, 120, 112, 101, 99, 116, 101, 100, 32, 110, 117, 108, 108, 32, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 111, 102, 32, 36, 123, 99, 46, 110, 97, 109, 101, 125, 44, 32, 103, 111, 116, 32, 97, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 111, 102, 32, 36, 123, 98, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 98, 46, 80, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 98, 46, 71, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 98, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 110, 117, 108, 108, 32, 61, 61, 61, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 84, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 110, 117, 108, 108, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 118, 97, 108, 105, 100, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 65, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 34, 36, 123, 105, 98, 40, 98, 41, 125, 34, 32, 97, 115, 32, 97, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 65, 97, 46, 67, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 100, 101, 108, 101, 116, 101, 100, 32, 111, 98, 106, 101, 99, 116, 32, 97, 115, 32, 97, 32, 112, 111, 105, 110, 116, 101, 114, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 103, 98, 40, 98, 46, 65, 97, 46, 67, 97, 44, 32, 98, 46, 65, 97, 46, 68, 97, 46, 66, 97, 44, 32, 116, 104, 105, 115, 46, 66, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 106, 98, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 110, 117, 108, 108, 32, 61, 61, 61, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 84, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 110, 117, 108, 108, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 118, 97, 108, 105, 100, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 83, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 116, 104, 105, 115, 46, 85, 97, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 97, 32, 38, 38, 32, 97, 46, 112, 117, 115, 104, 40, 116, 104, 105, 115, 46, 75, 97, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 32, 124, 124, 32, 33, 98, 46, 65, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 34, 36, 123, 105, 98, 40, 98, 41, 125, 34, 32, 97, 115, 32, 97, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 65, 97, 46, 67, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 100, 101, 108, 101, 116, 101, 100, 32, 111, 98, 106, 101, 99, 116, 32, 97, 115, 32, 97, 32, 112, 111, 105, 110, 116, 101, 114, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 116, 104, 105, 115, 46, 82, 97, 32, 38, 38, 32, 98, 46, 65, 97, 46, 68, 97, 46, 82, 97, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 67, 97, 110, 110, 111, 116, 32, 99, 111, 110, 118, 101, 114, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 98, 46, 65, 97, 46, 72, 97, 32, 63, 32, 98, 46, 65, 97, 46, 72, 97, 46, 110, 97, 109, 101, 32, 58, 32, 98, 46, 65, 97, 46, 68, 97, 46, 110, 97, 109, 101, 125, 32, 116, 111, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 103, 98, 40, 98, 46, 65, 97, 46, 67, 97, 44, 32, 98, 46, 65, 97, 46, 68, 97, 46, 66, 97, 44, 32, 116, 104, 105, 115, 46, 66, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 83, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 98, 46, 65, 97, 46, 69, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 34, 80, 97, 115, 115, 105, 110, 103, 32, 114, 97, 119, 32, 112, 111, 105, 110, 116, 101, 114, 32, 116, 111, 32, 115, 109, 97, 114, 116, 32, 112, 111, 105, 110, 116, 101, 114, 32, 105, 115, 32, 105, 108, 108, 101, 103, 97, 108, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 116, 104, 105, 115, 46, 111, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 48, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 46, 65, 97, 46, 72, 97, 32, 61, 61, 61, 32, 116, 104, 105, 115, 41, 32, 99, 32, 61, 32, 98, 46, 65, 97, 46, 69, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 67, 97, 110, 110, 111, 116, 32, 99, 111, 110, 118, 101, 114, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 98, 46, 65, 97, 46, 72, 97, 32, 63, 32, 98, 46, 65, 97, 46, 72, 97, 46, 110, 97, 109, 101, 32, 58, 32, 98, 46, 65, 97, 46, 68, 97, 46, 110, 97, 109, 101, 125, 32, 116, 111, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 49, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 98, 46, 65, 97, 46, 69, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 50, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 46, 65, 97, 46, 72, 97, 32, 61, 61, 61, 32, 116, 104, 105, 115, 41, 32, 99, 32, 61, 32, 98, 46, 65, 97, 46, 69, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 46, 99, 108, 111, 110, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 116, 104, 105, 115, 46, 107, 98, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 107, 98, 40, 40, 41, 32, 61, 62, 32, 100, 91, 34, 100, 101, 108, 101, 116, 101, 34, 93, 40, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 97, 32, 38, 38, 32, 97, 46, 112, 117, 115, 104, 40, 116, 104, 105, 115, 46, 75, 97, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 34, 85, 110, 115, 117, 112, 112, 111, 114, 116, 105, 110, 103, 32, 115, 104, 97, 114, 105, 110, 103, 32, 112, 111, 108, 105, 99, 121, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 108, 98, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 110, 117, 108, 108, 32, 61, 61, 61, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 84, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 110, 117, 108, 108, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 118, 97, 108, 105, 100, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 65, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 34, 36, 123, 105, 98, 40, 98, 41, 125, 34, 32, 97, 115, 32, 97, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 46, 65, 97, 46, 67, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 100, 101, 108, 101, 116, 101, 100, 32, 111, 98, 106, 101, 99, 116, 32, 97, 115, 32, 97, 32, 112, 111, 105, 110, 116, 101, 114, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 46, 65, 97, 46, 68, 97, 46, 82, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 67, 97, 110, 110, 111, 116, 32, 99, 111, 110, 118, 101, 114, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 111, 102, 32, 116, 121, 112, 101, 32, 36, 123, 98, 46, 65, 97, 46, 68, 97, 46, 110, 97, 109, 101, 125, 32, 116, 111, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 116, 121, 112, 101, 32, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 103, 98, 40, 98, 46, 65, 97, 46, 67, 97, 44, 32, 98, 46, 65, 97, 46, 68, 97, 46, 66, 97, 44, 32, 116, 104, 105, 115, 46, 66, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 109, 98, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 44, 32, 108, 44, 32, 109, 44, 32, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 66, 97, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 84, 97, 32, 61, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 82, 97, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 83, 97, 32, 61, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 105, 98, 32, 61, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 111, 98, 32, 61, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 89, 97, 32, 61, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 85, 97, 32, 61, 32, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 107, 98, 32, 61, 32, 109, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 75, 97, 32, 61, 32, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 124, 124, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 98, 46, 71, 97, 32, 63, 32, 116, 104, 105, 115, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 32, 61, 32, 106, 98, 32, 58, 32, 40, 116, 104, 105, 115, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 32, 61, 32, 100, 32, 63, 32, 104, 98, 32, 58, 32, 108, 98, 44, 32, 116, 104, 105, 115, 46, 74, 97, 32, 61, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 110, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 107, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 97, 41, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 77, 40, 34, 82, 101, 112, 108, 97, 99, 105, 110, 103, 32, 110, 111, 110, 101, 120, 105, 115, 116, 101, 110, 116, 32, 112, 117, 98, 108, 105, 99, 32, 115, 121, 109, 98, 111, 108, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 107, 91, 97, 93, 46, 70, 97, 32, 38, 38, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 99, 32, 63, 32, 107, 91, 97, 93, 46, 70, 97, 91, 99, 93, 32, 61, 32, 98, 32, 58, 32, 40, 107, 91, 97, 93, 32, 61, 32, 98, 44, 32, 107, 91, 97, 93, 46, 81, 97, 32, 61, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 83, 44, 32, 111, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 32, 61, 32, 91, 93, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 106, 34, 41, 32, 63, 32, 40, 97, 32, 61, 32, 97, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 112, 47, 103, 44, 32, 34, 105, 34, 41, 44, 32, 98, 32, 61, 32, 40, 48, 44, 32, 107, 91, 34, 100, 121, 110, 67, 97, 108, 108, 95, 34, 32, 43, 32, 97, 93, 41, 40, 98, 44, 32, 46, 46, 46, 99, 41, 41, 32, 58, 32, 98, 32, 61, 32, 83, 46, 103, 101, 116, 40, 98, 41, 40, 46, 46, 46, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 112, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 40, 46, 46, 46, 99, 41, 32, 61, 62, 32, 111, 98, 40, 97, 44, 32, 98, 44, 32, 99, 41, 44, 32, 84, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 80, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 97, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 106, 34, 41, 32, 63, 32, 112, 98, 40, 97, 44, 32, 98, 41, 32, 58, 32, 83, 46, 103, 101, 116, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 99, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 117, 110, 107, 110, 111, 119, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 112, 111, 105, 110, 116, 101, 114, 32, 119, 105, 116, 104, 32, 115, 105, 103, 110, 97, 116, 117, 114, 101, 32, 36, 123, 97, 125, 58, 32, 36, 123, 98, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 113, 98, 44, 32, 115, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 114, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 80, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 85, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 116, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, 40, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 91, 102, 93, 32, 124, 124, 32, 76, 91, 102, 93, 32, 124, 124, 32, 40, 77, 97, 91, 102, 93, 32, 63, 32, 77, 97, 91, 102, 93, 46, 102, 111, 114, 69, 97, 99, 104, 40, 99, 41, 32, 58, 32, 40, 100, 46, 112, 117, 115, 104, 40, 102, 41, 44, 32, 101, 91, 102, 93, 32, 61, 32, 116, 114, 117, 101, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 91, 93, 44, 32, 101, 32, 61, 32, 123, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 46, 102, 111, 114, 69, 97, 99, 104, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 113, 98, 40, 96, 36, 123, 97, 125, 58, 32, 96, 32, 43, 32, 100, 46, 109, 97, 112, 40, 115, 98, 41, 46, 106, 111, 105, 110, 40, 91, 34, 44, 32, 34, 93, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 117, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 99, 32, 61, 32, 91, 93, 44, 32, 100, 32, 61, 32, 48, 59, 32, 100, 32, 60, 32, 97, 59, 32, 100, 43, 43, 41, 32, 99, 46, 112, 117, 115, 104, 40, 68, 91, 98, 32, 43, 32, 52, 32, 42, 32, 100, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 118, 98, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 98, 32, 61, 32, 49, 59, 32, 98, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 98, 41, 32, 105, 102, 32, 40, 110, 117, 108, 108, 32, 33, 61, 61, 32, 97, 91, 98, 93, 32, 38, 38, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 97, 91, 98, 93, 46, 74, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 119, 98, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 98, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 32, 62, 32, 102, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 34, 97, 114, 103, 84, 121, 112, 101, 115, 32, 97, 114, 114, 97, 121, 32, 115, 105, 122, 101, 32, 109, 105, 115, 109, 97, 116, 99, 104, 33, 32, 77, 117, 115, 116, 32, 97, 116, 32, 108, 101, 97, 115, 116, 32, 103, 101, 116, 32, 114, 101, 116, 117, 114, 110, 32, 118, 97, 108, 117, 101, 32, 97, 110, 100, 32, 39, 116, 104, 105, 115, 39, 32, 116, 121, 112, 101, 115, 33, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 98, 91, 49, 93, 32, 38, 38, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 99, 44, 32, 103, 32, 61, 32, 118, 98, 40, 98, 41, 44, 32, 108, 32, 61, 32, 34, 118, 111, 105, 100, 34, 32, 33, 61, 61, 32, 98, 91, 48, 93, 46, 110, 97, 109, 101, 44, 32, 109, 32, 61, 32, 102, 32, 45, 32, 50, 44, 32, 110, 32, 61, 32, 65, 114, 114, 97, 121, 40, 109, 41, 44, 32, 113, 32, 61, 32, 91, 93, 44, 32, 114, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 98, 40, 97, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 46, 46, 46, 65, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 46, 108, 101, 110, 103, 116, 104, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 46, 108, 101, 110, 103, 116, 104, 32, 61, 32, 104, 32, 63, 32, 50, 32, 58, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 91, 48, 93, 32, 61, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 104, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 118, 32, 61, 32, 98, 91, 49, 93, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 40, 114, 44, 32, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 91, 49, 93, 32, 61, 32, 118, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 119, 32, 61, 32, 48, 59, 32, 119, 32, 60, 32, 109, 59, 32, 43, 43, 119, 41, 32, 110, 91, 119, 93, 32, 61, 32, 98, 91, 119, 32, 43, 32, 50, 93, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 40, 114, 44, 32, 65, 91, 119, 93, 41, 44, 32, 113, 46, 112, 117, 115, 104, 40, 110, 91, 119, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 32, 61, 32, 100, 40, 46, 46, 46, 113, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 103, 41, 32, 76, 97, 40, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 119, 32, 61, 32, 104, 32, 63, 32, 49, 32, 58, 32, 50, 59, 32, 119, 32, 60, 32, 98, 46, 108, 101, 110, 103, 116, 104, 59, 32, 119, 43, 43, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 69, 32, 61, 32, 49, 32, 61, 61, 61, 32, 119, 32, 63, 32, 118, 32, 58, 32, 110, 91, 119, 32, 45, 32, 50, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 98, 91, 119, 93, 46, 74, 97, 32, 38, 38, 32, 98, 91, 119, 93, 46, 74, 97, 40, 69, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 32, 61, 32, 108, 32, 63, 32, 98, 91, 48, 93, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 65, 41, 32, 58, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 118, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 120, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 97, 46, 116, 114, 105, 109, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 32, 61, 32, 97, 46, 105, 110, 100, 101, 120, 79, 102, 40, 34, 40, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 45, 49, 32, 33, 61, 61, 32, 98, 32, 63, 32, 97, 46, 115, 117, 98, 115, 116, 114, 40, 48, 44, 32, 98, 41, 32, 58, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 121, 98, 32, 61, 32, 91, 93, 44, 32, 86, 32, 61, 32, 91, 93, 44, 32, 122, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 57, 32, 60, 32, 97, 32, 38, 38, 32, 48, 32, 61, 61, 61, 32, 45, 45, 86, 91, 97, 32, 43, 32, 49, 93, 32, 38, 38, 32, 40, 86, 91, 97, 93, 32, 61, 32, 118, 111, 105, 100, 32, 48, 44, 32, 121, 98, 46, 112, 117, 115, 104, 40, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 66, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 34, 67, 97, 110, 110, 111, 116, 32, 117, 115, 101, 32, 100, 101, 108, 101, 116, 101, 100, 32, 118, 97, 108, 46, 32, 104, 97, 110, 100, 108, 101, 32, 61, 32, 34, 32, 43, 32, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 86, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 107, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 118, 111, 105, 100, 32, 48, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 110, 117, 108, 108, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 116, 114, 117, 101, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 54, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 102, 97, 108, 115, 101, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 56, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 32, 61, 32, 121, 98, 46, 112, 111, 112, 40, 41, 32, 124, 124, 32, 86, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 91, 98, 93, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 91, 98, 32, 43, 32, 49, 93, 32, 61, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 67, 98, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 34, 101, 109, 115, 99, 114, 105, 112, 116, 101, 110, 58, 58, 118, 97, 108, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 66, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 122, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 107, 98, 40, 98, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 73, 97, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 74, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 74, 97, 58, 32, 110, 117, 108, 108, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 68, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 49, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 117, 91, 100, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 120, 91, 100, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 50, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 121, 91, 100, 32, 62, 62, 32, 49, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 122, 91, 100, 32, 62, 62, 32, 49, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 52, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 67, 91, 100, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 68, 91, 100, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 96, 105, 110, 118, 97, 108, 105, 100, 32, 105, 110, 116, 101, 103, 101, 114, 32, 119, 105, 100, 116, 104, 32, 40, 36, 123, 98, 125, 41, 58, 32, 36, 123, 97, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 69, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 76, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 99, 41, 32, 116, 104, 114, 111, 119, 32, 97, 32, 61, 32, 96, 36, 123, 98, 125, 32, 104, 97, 115, 32, 117, 110, 107, 110, 111, 119, 110, 32, 116, 121, 112, 101, 32, 36, 123, 115, 98, 40, 97, 41, 125, 96, 44, 32, 110, 101, 119, 32, 81, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 105, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 110, 117, 108, 108, 32, 61, 61, 61, 32, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 34, 110, 117, 108, 108, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 116, 121, 112, 101, 111, 102, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 111, 98, 106, 101, 99, 116, 34, 32, 61, 61, 61, 32, 98, 32, 124, 124, 32, 34, 97, 114, 114, 97, 121, 34, 32, 61, 61, 61, 32, 98, 32, 124, 124, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 61, 61, 61, 32, 98, 32, 63, 32, 97, 46, 116, 111, 83, 116, 114, 105, 110, 103, 40, 41, 32, 58, 32, 34, 34, 32, 43, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 70, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 52, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 111, 97, 91, 99, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 56, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 112, 97, 91, 99, 32, 62, 62, 32, 51, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 96, 105, 110, 118, 97, 108, 105, 100, 32, 102, 108, 111, 97, 116, 32, 119, 105, 100, 116, 104, 32, 40, 36, 123, 98, 125, 41, 58, 32, 36, 123, 97, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 71, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 49, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 40, 100, 41, 32, 61, 62, 32, 117, 91, 100, 93, 32, 58, 32, 40, 100, 41, 32, 61, 62, 32, 120, 91, 100, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 50, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 40, 100, 41, 32, 61, 62, 32, 121, 91, 100, 32, 62, 62, 32, 49, 93, 32, 58, 32, 40, 100, 41, 32, 61, 62, 32, 122, 91, 100, 32, 62, 62, 32, 49, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 52, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 32, 63, 32, 40, 100, 41, 32, 61, 62, 32, 67, 91, 100, 32, 62, 62, 32, 50, 93, 32, 58, 32, 40, 100, 41, 32, 61, 62, 32, 68, 91, 100, 32, 62, 62, 32, 50, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 96, 105, 110, 118, 97, 108, 105, 100, 32, 105, 110, 116, 101, 103, 101, 114, 32, 119, 105, 100, 116, 104, 32, 40, 36, 123, 98, 125, 41, 58, 32, 36, 123, 97, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 72, 98, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 97, 115, 115, 105, 103, 110, 40, 123, 32, 111, 112, 116, 105, 111, 110, 97, 108, 58, 32, 116, 114, 117, 101, 32, 125, 44, 32, 67, 98, 41, 44, 32, 73, 98, 32, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 84, 101, 120, 116, 68, 101, 99, 111, 100, 101, 114, 32, 63, 32, 110, 101, 119, 32, 84, 101, 120, 116, 68, 101, 99, 111, 100, 101, 114, 40, 34, 117, 116, 102, 45, 49, 54, 108, 101, 34, 41, 32, 58, 32, 118, 111, 105, 100, 32, 48, 44, 32, 74, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 97, 32, 62, 62, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 100, 32, 61, 32, 99, 32, 43, 32, 98, 32, 47, 32, 50, 59, 32, 33, 40, 99, 32, 62, 61, 32, 100, 41, 32, 38, 38, 32, 122, 91, 99, 93, 59, 32, 41, 32, 43, 43, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 60, 60, 61, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 51, 50, 32, 60, 32, 99, 32, 45, 32, 97, 32, 38, 38, 32, 73, 98, 41, 32, 114, 101, 116, 117, 114, 110, 32, 73, 98, 46, 100, 101, 99, 111, 100, 101, 40, 120, 46, 115, 117, 98, 97, 114, 114, 97, 121, 40, 97, 44, 32, 99, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 34, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 100, 32, 61, 32, 48, 59, 32, 33, 40, 100, 32, 62, 61, 32, 98, 32, 47, 32, 50, 41, 59, 32, 43, 43, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 121, 91, 97, 32, 43, 32, 50, 32, 42, 32, 100, 32, 62, 62, 32, 49, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 48, 32, 61, 61, 32, 101, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 75, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 99, 32, 58, 32, 99, 32, 61, 32, 50, 49, 52, 55, 52, 56, 51, 54, 52, 55, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 32, 62, 32, 99, 41, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 45, 61, 32, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 99, 32, 60, 32, 50, 32, 42, 32, 97, 46, 108, 101, 110, 103, 116, 104, 32, 63, 32, 99, 32, 47, 32, 50, 32, 58, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 101, 32, 61, 32, 48, 59, 32, 101, 32, 60, 32, 99, 59, 32, 43, 43, 101, 41, 32, 121, 91, 98, 32, 62, 62, 32, 49, 93, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 101, 41, 44, 32, 98, 32, 43, 61, 32, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 121, 91, 98, 32, 62, 62, 32, 49, 93, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 32, 45, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 76, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 50, 32, 42, 32, 97, 46, 108, 101, 110, 103, 116, 104, 44, 32, 77, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 99, 32, 61, 32, 48, 44, 32, 100, 32, 61, 32, 34, 34, 59, 32, 33, 40, 99, 32, 62, 61, 32, 98, 32, 47, 32, 52, 41, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 67, 91, 97, 32, 43, 32, 52, 32, 42, 32, 99, 32, 62, 62, 32, 50, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 48, 32, 61, 61, 32, 101, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 43, 43, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 54, 53, 53, 51, 54, 32, 60, 61, 32, 101, 32, 63, 32, 40, 101, 32, 45, 61, 32, 54, 53, 53, 51, 54, 44, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 53, 53, 50, 57, 54, 32, 124, 32, 101, 32, 62, 62, 32, 49, 48, 44, 32, 53, 54, 51, 50, 48, 32, 124, 32, 101, 32, 38, 32, 49, 48, 50, 51, 41, 41, 32, 58, 32, 100, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 78, 98, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 99, 32, 58, 32, 99, 32, 61, 32, 50, 49, 52, 55, 52, 56, 51, 54, 52, 55, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 52, 32, 62, 32, 99, 41, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 100, 32, 43, 32, 99, 32, 45, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 101, 32, 61, 32, 48, 59, 32, 101, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 53, 53, 50, 57, 54, 32, 60, 61, 32, 102, 32, 38, 38, 32, 53, 55, 51, 52, 51, 32, 62, 61, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 43, 43, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 32, 61, 32, 54, 53, 53, 51, 54, 32, 43, 32, 40, 40, 102, 32, 38, 32, 49, 48, 50, 51, 41, 32, 60, 60, 32, 49, 48, 41, 32, 124, 32, 104, 32, 38, 32, 49, 48, 50, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 91, 98, 32, 62, 62, 32, 50, 93, 32, 61, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 43, 61, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 32, 43, 32, 52, 32, 62, 32, 99, 41, 32, 98, 114, 101, 97, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 67, 91, 98, 32, 62, 62, 32, 50, 93, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 32, 45, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 79, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 98, 32, 61, 32, 48, 44, 32, 99, 32, 61, 32, 48, 59, 32, 99, 32, 60, 32, 97, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 97, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 53, 53, 50, 57, 54, 32, 60, 61, 32, 100, 32, 38, 38, 32, 53, 55, 51, 52, 51, 32, 62, 61, 32, 100, 32, 38, 38, 32, 43, 43, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 43, 61, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 80, 98, 32, 61, 32, 91, 93, 44, 32, 81, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 80, 98, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 80, 98, 46, 112, 117, 115, 104, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 82, 98, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 99, 32, 61, 32, 65, 114, 114, 97, 121, 40, 97, 41, 44, 32, 100, 32, 61, 32, 48, 59, 32, 100, 32, 60, 32, 97, 59, 32, 43, 43, 100, 41, 32, 99, 91, 100, 93, 32, 61, 32, 69, 98, 40, 68, 91, 98, 32, 43, 32, 52, 32, 42, 32, 100, 32, 62, 62, 32, 50, 93, 44, 32, 34, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 34, 32, 43, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 83, 98, 32, 61, 32, 82, 101, 102, 108, 101, 99, 116, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 44, 32, 84, 98, 32, 61, 32, 123, 125, 44, 32, 85, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 40, 97, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 68, 97, 32, 124, 124, 32, 34, 117, 110, 119, 105, 110, 100, 34, 32, 61, 61, 32, 97, 41, 41, 32, 116, 104, 114, 111, 119, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 86, 98, 32, 61, 32, 48, 44, 32, 87, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 70, 97, 32, 124, 124, 32, 48, 32, 60, 32, 86, 98, 32, 124, 124, 32, 40, 40, 95, 97, 50, 32, 61, 32, 107, 46, 111, 110, 69, 120, 105, 116, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 50, 46, 99, 97, 108, 108, 40, 107, 44, 32, 97, 41, 44, 32, 109, 97, 32, 61, 32, 116, 114, 117, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 68, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 88, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 109, 97, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 97, 40, 41, 44, 32, 33, 40, 70, 97, 32, 124, 124, 32, 48, 32, 60, 32, 86, 98, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 32, 61, 32, 97, 32, 61, 32, 110, 97, 44, 32, 87, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 98, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 98, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 89, 98, 32, 61, 32, 123, 125, 44, 32, 36, 98, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 90, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 83, 69, 82, 58, 32, 34, 119, 101, 98, 95, 117, 115, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 79, 71, 78, 65, 77, 69, 58, 32, 34, 119, 101, 98, 95, 117, 115, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 65, 84, 72, 58, 32, 34, 47, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 87, 68, 58, 32, 34, 47, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 72, 79, 77, 69, 58, 32, 34, 47, 104, 111, 109, 101, 47, 119, 101, 98, 95, 117, 115, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 65, 78, 71, 58, 32, 40, 34, 111, 98, 106, 101, 99, 116, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 110, 97, 118, 105, 103, 97, 116, 111, 114, 32, 38, 38, 32, 110, 97, 118, 105, 103, 97, 116, 111, 114, 46, 108, 97, 110, 103, 117, 97, 103, 101, 115, 32, 38, 38, 32, 110, 97, 118, 105, 103, 97, 116, 111, 114, 46, 108, 97, 110, 103, 117, 97, 103, 101, 115, 91, 48, 93, 32, 124, 124, 32, 34, 67, 34, 41, 46, 114, 101, 112, 108, 97, 99, 101, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 45, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 95, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 32, 43, 32, 34, 46, 85, 84, 70, 45, 56, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 95, 58, 32, 101, 97, 32, 124, 124, 32, 34, 46, 47, 116, 104, 105, 115, 46, 112, 114, 111, 103, 114, 97, 109, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 98, 32, 105, 110, 32, 89, 98, 41, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 89, 98, 91, 98, 93, 32, 63, 32, 100, 101, 108, 101, 116, 101, 32, 97, 91, 98, 93, 32, 58, 32, 97, 91, 98, 93, 32, 61, 32, 89, 98, 91, 98, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 98, 32, 105, 110, 32, 97, 41, 32, 99, 46, 112, 117, 115, 104, 40, 96, 36, 123, 98, 125, 61, 36, 123, 97, 91, 98, 93, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 90, 98, 32, 61, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 90, 98, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 90, 98, 44, 32, 97, 99, 32, 61, 32, 91, 110, 117, 108, 108, 44, 32, 91, 93, 44, 32, 91, 93, 93, 44, 32, 98, 99, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 34, 111, 98, 106, 101, 99, 116, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 99, 114, 121, 112, 116, 111, 32, 38, 38, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 99, 114, 121, 112, 116, 111, 46, 103, 101, 116, 82, 97, 110, 100, 111, 109, 86, 97, 108, 117, 101, 115, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 97, 41, 32, 61, 62, 32, 99, 114, 121, 112, 116, 111, 46, 103, 101, 116, 82, 97, 110, 100, 111, 109, 86, 97, 108, 117, 101, 115, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 119, 97, 40, 34, 105, 110, 105, 116, 82, 97, 110, 100, 111, 109, 68, 101, 118, 105, 99, 101, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 99, 99, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 40, 99, 99, 32, 61, 32, 98, 99, 40, 41, 41, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 77, 32, 61, 32, 107, 46, 73, 110, 116, 101, 114, 110, 97, 108, 69, 114, 114, 111, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 101, 120, 116, 101, 110, 100, 115, 32, 69, 114, 114, 111, 114, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 112, 101, 114, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 61, 32, 34, 73, 110, 116, 101, 114, 110, 97, 108, 69, 114, 114, 111, 114, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 100, 99, 32, 61, 32, 65, 114, 114, 97, 121, 40, 50, 53, 54, 41, 44, 32, 101, 99, 32, 61, 32, 48, 59, 32, 50, 53, 54, 32, 62, 32, 101, 99, 59, 32, 43, 43, 101, 99, 41, 32, 100, 99, 91, 101, 99, 93, 32, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 101, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 78, 97, 32, 61, 32, 100, 99, 59, 10, 32, 32, 32, 32, 32, 32, 81, 32, 61, 32, 107, 46, 66, 105, 110, 100, 105, 110, 103, 69, 114, 114, 111, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 101, 120, 116, 101, 110, 100, 115, 32, 69, 114, 114, 111, 114, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 112, 101, 114, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 61, 32, 34, 66, 105, 110, 100, 105, 110, 103, 69, 114, 114, 111, 114, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 79, 98, 106, 101, 99, 116, 46, 97, 115, 115, 105, 103, 110, 40, 97, 98, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 65, 108, 105, 97, 115, 79, 102, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 40, 116, 104, 105, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 97, 98, 32, 38, 38, 32, 97, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 97, 98, 41, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 116, 104, 105, 115, 46, 65, 97, 46, 68, 97, 46, 66, 97, 44, 32, 99, 32, 61, 32, 116, 104, 105, 115, 46, 65, 97, 46, 67, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 65, 97, 32, 61, 32, 97, 46, 65, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 97, 46, 65, 97, 46, 68, 97, 46, 66, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 97, 32, 61, 32, 97, 46, 65, 97, 46, 67, 97, 59, 32, 98, 46, 71, 97, 59, 32, 41, 32, 99, 32, 61, 32, 98, 46, 80, 97, 40, 99, 41, 44, 32, 98, 32, 61, 32, 98, 46, 71, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 59, 32, 100, 46, 71, 97, 59, 32, 41, 32, 97, 32, 61, 32, 100, 46, 80, 97, 40, 97, 41, 44, 32, 100, 32, 61, 32, 100, 46, 71, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 98, 32, 61, 61, 61, 32, 100, 32, 38, 38, 32, 99, 32, 61, 61, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 108, 111, 110, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 65, 97, 46, 67, 97, 32, 124, 124, 32, 80, 97, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 65, 97, 46, 79, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 65, 97, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 32, 43, 61, 32, 49, 44, 32, 116, 104, 105, 115, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 90, 97, 44, 32, 98, 32, 61, 32, 79, 98, 106, 101, 99, 116, 44, 32, 99, 32, 61, 32, 98, 46, 99, 114, 101, 97, 116, 101, 44, 32, 100, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 103, 101, 116, 80, 114, 111, 116, 111, 116, 121, 112, 101, 79, 102, 40, 116, 104, 105, 115, 41, 44, 32, 101, 32, 61, 32, 116, 104, 105, 115, 46, 65, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 97, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 99, 97, 108, 108, 40, 98, 44, 32, 100, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 97, 58, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 123, 32, 99, 111, 117, 110, 116, 58, 32, 101, 46, 99, 111, 117, 110, 116, 44, 32, 77, 97, 58, 32, 101, 46, 77, 97, 44, 32, 79, 97, 58, 32, 101, 46, 79, 97, 44, 32, 67, 97, 58, 32, 101, 46, 67, 97, 44, 32, 68, 97, 58, 32, 101, 46, 68, 97, 44, 32, 69, 97, 58, 32, 101, 46, 69, 97, 44, 32, 72, 97, 58, 32, 101, 46, 72, 97, 32, 125, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 65, 97, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 32, 43, 61, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 65, 97, 46, 77, 97, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 91, 34, 100, 101, 108, 101, 116, 101, 34, 93, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 65, 97, 46, 67, 97, 32, 124, 124, 32, 80, 97, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 65, 97, 46, 77, 97, 32, 38, 38, 32, 33, 116, 104, 105, 115, 46, 65, 97, 46, 79, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 34, 79, 98, 106, 101, 99, 116, 32, 97, 108, 114, 101, 97, 100, 121, 32, 115, 99, 104, 101, 100, 117, 108, 101, 100, 32, 102, 111, 114, 32, 100, 101, 108, 101, 116, 105, 111, 110, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82, 97, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 116, 104, 105, 115, 46, 65, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 45, 97, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 61, 32, 97, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 32, 38, 38, 32, 40, 97, 46, 69, 97, 32, 63, 32, 97, 46, 72, 97, 46, 75, 97, 40, 97, 46, 69, 97, 41, 32, 58, 32, 97, 46, 68, 97, 46, 66, 97, 46, 75, 97, 40, 97, 46, 67, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 65, 97, 46, 79, 97, 32, 124, 124, 32, 40, 116, 104, 105, 115, 46, 65, 97, 46, 69, 97, 32, 61, 32, 118, 111, 105, 100, 32, 48, 44, 32, 116, 104, 105, 115, 46, 65, 97, 46, 67, 97, 32, 61, 32, 118, 111, 105, 100, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 68, 101, 108, 101, 116, 101, 100, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 33, 116, 104, 105, 115, 46, 65, 97, 46, 67, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 108, 101, 116, 101, 76, 97, 116, 101, 114, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 65, 97, 46, 67, 97, 32, 124, 124, 32, 80, 97, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 65, 97, 46, 77, 97, 32, 38, 38, 32, 33, 116, 104, 105, 115, 46, 65, 97, 46, 79, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 34, 79, 98, 106, 101, 99, 116, 32, 97, 108, 114, 101, 97, 100, 121, 32, 115, 99, 104, 101, 100, 117, 108, 101, 100, 32, 102, 111, 114, 32, 100, 101, 108, 101, 116, 105, 111, 110, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82, 46, 112, 117, 115, 104, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 49, 32, 61, 61, 61, 32, 82, 46, 108, 101, 110, 103, 116, 104, 32, 38, 38, 32, 87, 97, 32, 38, 38, 32, 87, 97, 40, 86, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 65, 97, 46, 77, 97, 32, 61, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 103, 101, 116, 73, 110, 104, 101, 114, 105, 116, 101, 100, 73, 110, 115, 116, 97, 110, 99, 101, 67, 111, 117, 110, 116, 32, 61, 32, 40, 41, 32, 61, 62, 32, 79, 98, 106, 101, 99, 116, 46, 107, 101, 121, 115, 40, 88, 97, 41, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 103, 101, 116, 76, 105, 118, 101, 73, 110, 104, 101, 114, 105, 116, 101, 100, 73, 110, 115, 116, 97, 110, 99, 101, 115, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 97, 32, 61, 32, 91, 93, 44, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 98, 32, 105, 110, 32, 88, 97, 41, 32, 88, 97, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 40, 98, 41, 32, 38, 38, 32, 97, 46, 112, 117, 115, 104, 40, 88, 97, 91, 98, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 102, 108, 117, 115, 104, 80, 101, 110, 100, 105, 110, 103, 68, 101, 108, 101, 116, 101, 115, 32, 61, 32, 86, 97, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 115, 101, 116, 68, 101, 108, 97, 121, 70, 117, 110, 99, 116, 105, 111, 110, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 87, 97, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 82, 46, 108, 101, 110, 103, 116, 104, 32, 38, 38, 32, 87, 97, 32, 38, 38, 32, 87, 97, 40, 86, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 79, 98, 106, 101, 99, 116, 46, 97, 115, 115, 105, 103, 110, 40, 109, 98, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 98, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 89, 97, 32, 38, 38, 32, 40, 97, 32, 61, 32, 116, 104, 105, 115, 46, 89, 97, 40, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 87, 97, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 95, 97, 50, 32, 61, 32, 116, 104, 105, 115, 46, 75, 97, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 50, 46, 99, 97, 108, 108, 40, 116, 104, 105, 115, 44, 32, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 73, 97, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 74, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 98, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 83, 97, 32, 63, 32, 36, 97, 40, 116, 104, 105, 115, 46, 66, 97, 46, 78, 97, 44, 32, 123, 32, 68, 97, 58, 32, 116, 104, 105, 115, 46, 105, 98, 44, 32, 67, 97, 58, 32, 99, 44, 32, 72, 97, 58, 32, 116, 104, 105, 115, 44, 32, 69, 97, 58, 32, 97, 32, 125, 41, 32, 58, 32, 36, 97, 40, 116, 104, 105, 115, 46, 66, 97, 46, 78, 97, 44, 32, 123, 32, 68, 97, 58, 32, 116, 104, 105, 115, 44, 32, 67, 97, 58, 32, 97, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 116, 104, 105, 115, 46, 99, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 99, 41, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 87, 97, 40, 97, 41, 44, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 89, 97, 40, 116, 104, 105, 115, 46, 66, 97, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 48, 32, 61, 61, 61, 32, 100, 46, 65, 97, 46, 99, 111, 117, 110, 116, 46, 118, 97, 108, 117, 101, 41, 32, 114, 101, 116, 117, 114, 110, 32, 100, 46, 65, 97, 46, 67, 97, 32, 61, 32, 99, 44, 32, 100, 46, 65, 97, 46, 69, 97, 32, 61, 32, 97, 44, 32, 100, 46, 99, 108, 111, 110, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 100, 46, 99, 108, 111, 110, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 87, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 116, 104, 105, 115, 46, 66, 97, 46, 98, 98, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 85, 97, 91, 100, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 100, 41, 32, 114, 101, 116, 117, 114, 110, 32, 98, 46, 99, 97, 108, 108, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 116, 104, 105, 115, 46, 82, 97, 32, 63, 32, 100, 46, 90, 97, 32, 58, 32, 100, 46, 112, 111, 105, 110, 116, 101, 114, 84, 121, 112, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 84, 97, 40, 99, 44, 32, 116, 104, 105, 115, 46, 66, 97, 44, 32, 100, 46, 66, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 32, 61, 61, 61, 32, 101, 32, 63, 32, 98, 46, 99, 97, 108, 108, 40, 116, 104, 105, 115, 41, 32, 58, 32, 116, 104, 105, 115, 46, 83, 97, 32, 63, 32, 36, 97, 40, 100, 46, 66, 97, 46, 78, 97, 44, 32, 123, 32, 68, 97, 58, 32, 100, 44, 32, 67, 97, 58, 32, 101, 44, 32, 72, 97, 58, 32, 116, 104, 105, 115, 44, 32, 69, 97, 58, 32, 97, 32, 125, 41, 32, 58, 32, 36, 97, 40, 100, 46, 66, 97, 46, 78, 97, 44, 32, 123, 32, 68, 97, 58, 32, 100, 44, 32, 67, 97, 58, 32, 101, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 113, 98, 32, 61, 32, 107, 46, 85, 110, 98, 111, 117, 110, 100, 84, 121, 112, 101, 69, 114, 114, 111, 114, 32, 61, 32, 40, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 98, 98, 40, 98, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 109, 101, 115, 115, 97, 103, 101, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 69, 114, 114, 111, 114, 40, 100, 41, 46, 115, 116, 97, 99, 107, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 100, 32, 38, 38, 32, 40, 116, 104, 105, 115, 46, 115, 116, 97, 99, 107, 32, 61, 32, 116, 104, 105, 115, 46, 116, 111, 83, 116, 114, 105, 110, 103, 40, 41, 32, 43, 32, 34, 92, 110, 34, 32, 43, 32, 100, 46, 114, 101, 112, 108, 97, 99, 101, 40, 47, 94, 69, 114, 114, 111, 114, 40, 58, 91, 94, 92, 110, 93, 42, 41, 63, 92, 110, 47, 44, 32, 34, 34, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 99, 114, 101, 97, 116, 101, 40, 97, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 32, 61, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 46, 116, 111, 83, 116, 114, 105, 110, 103, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 116, 104, 105, 115, 46, 109, 101, 115, 115, 97, 103, 101, 32, 63, 32, 116, 104, 105, 115, 46, 110, 97, 109, 101, 32, 58, 32, 96, 36, 123, 116, 104, 105, 115, 46, 110, 97, 109, 101, 125, 58, 32, 36, 123, 116, 104, 105, 115, 46, 109, 101, 115, 115, 97, 103, 101, 125, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 40, 69, 114, 114, 111, 114, 44, 32, 34, 85, 110, 98, 111, 117, 110, 100, 84, 121, 112, 101, 69, 114, 114, 111, 114, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 86, 46, 112, 117, 115, 104, 40, 48, 44, 32, 49, 44, 32, 118, 111, 105, 100, 32, 48, 44, 32, 49, 44, 32, 110, 117, 108, 108, 44, 32, 49, 44, 32, 116, 114, 117, 101, 44, 32, 49, 44, 32, 102, 97, 108, 115, 101, 44, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 99, 111, 117, 110, 116, 95, 101, 109, 118, 97, 108, 95, 104, 97, 110, 100, 108, 101, 115, 32, 61, 32, 40, 41, 32, 61, 62, 32, 86, 46, 108, 101, 110, 103, 116, 104, 32, 47, 32, 50, 32, 45, 32, 53, 32, 45, 32, 121, 98, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 114, 99, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 97, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 65, 115, 115, 101, 114, 116, 105, 111, 110, 32, 102, 97, 105, 108, 101, 100, 58, 32, 36, 123, 97, 32, 63, 32, 72, 40, 120, 44, 32, 97, 41, 32, 58, 32, 34, 34, 125, 44, 32, 97, 116, 58, 32, 96, 32, 43, 32, 91, 98, 32, 63, 32, 98, 32, 63, 32, 72, 40, 120, 44, 32, 98, 41, 32, 58, 32, 34, 34, 32, 58, 32, 34, 117, 110, 107, 110, 111, 119, 110, 32, 102, 105, 108, 101, 110, 97, 109, 101, 34, 44, 32, 99, 44, 32, 100, 32, 63, 32, 100, 32, 63, 32, 72, 40, 120, 44, 32, 100, 41, 32, 58, 32, 34, 34, 32, 58, 32, 34, 117, 110, 107, 110, 111, 119, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 34, 93, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 110, 101, 119, 32, 72, 97, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, 91, 100, 46, 67, 97, 32, 43, 32, 49, 54, 32, 62, 62, 32, 50, 93, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, 91, 100, 46, 67, 97, 32, 43, 32, 52, 32, 62, 62, 32, 50, 93, 32, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, 91, 100, 46, 67, 97, 32, 43, 32, 56, 32, 62, 62, 32, 50, 93, 32, 61, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 97, 32, 61, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 97, 43, 43, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 73, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 67, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 83, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 80, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 84, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 81, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 66, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 82, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 85, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 97, 40, 34, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 75, 97, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 108, 101, 116, 101, 32, 75, 97, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 98, 46, 85, 97, 44, 32, 100, 32, 61, 32, 98, 46, 75, 97, 44, 32, 101, 32, 61, 32, 98, 46, 88, 97, 44, 32, 102, 32, 61, 32, 101, 46, 109, 97, 112, 40, 40, 104, 41, 32, 61, 62, 32, 104, 46, 103, 98, 41, 46, 99, 111, 110, 99, 97, 116, 40, 101, 46, 109, 97, 112, 40, 40, 104, 41, 32, 61, 62, 32, 104, 46, 109, 98, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 91, 97, 93, 44, 32, 102, 44, 32, 40, 104, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 103, 32, 61, 32, 123, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 108, 44, 32, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 110, 32, 61, 32, 104, 91, 109, 93, 44, 32, 113, 32, 61, 32, 108, 46, 101, 98, 44, 32, 114, 32, 61, 32, 108, 46, 102, 98, 44, 32, 65, 32, 61, 32, 104, 91, 109, 32, 43, 32, 101, 46, 108, 101, 110, 103, 116, 104, 93, 44, 32, 118, 32, 61, 32, 108, 46, 108, 98, 44, 32, 119, 32, 61, 32, 108, 46, 110, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 91, 108, 46, 97, 98, 93, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 58, 32, 40, 69, 41, 32, 61, 62, 32, 110, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 113, 40, 114, 44, 32, 69, 41, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 114, 105, 116, 101, 58, 32, 40, 69, 44, 32, 104, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 66, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 40, 119, 44, 32, 69, 44, 32, 65, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 40, 66, 44, 32, 104, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 97, 40, 66, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 98, 46, 110, 97, 109, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 108, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 32, 61, 32, 123, 125, 44, 32, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 110, 32, 105, 110, 32, 103, 41, 32, 109, 91, 110, 93, 32, 61, 32, 103, 91, 110, 93, 46, 114, 101, 97, 100, 40, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 40, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 108, 44, 32, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 110, 32, 105, 110, 32, 103, 41, 32, 105, 102, 32, 40, 33, 40, 110, 32, 105, 110, 32, 109, 41, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 84, 121, 112, 101, 69, 114, 114, 111, 114, 40, 96, 77, 105, 115, 115, 105, 110, 103, 32, 102, 105, 101, 108, 100, 58, 32, 34, 36, 123, 110, 125, 34, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 113, 32, 61, 32, 99, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 110, 32, 105, 110, 32, 103, 41, 32, 103, 91, 110, 93, 46, 119, 114, 105, 116, 101, 40, 113, 44, 32, 109, 91, 110, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 108, 32, 38, 38, 32, 108, 46, 112, 117, 115, 104, 40, 100, 44, 32, 113, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 113, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 97, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 74, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 97, 58, 32, 100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 74, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 95, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 80, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 40, 97, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 33, 33, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 44, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 32, 63, 32, 99, 32, 58, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 97, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 40, 120, 91, 101, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 97, 58, 32, 110, 117, 108, 108, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 44, 32, 108, 44, 32, 109, 44, 32, 110, 44, 32, 113, 44, 32, 114, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 32, 61, 32, 80, 40, 110, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 32, 61, 32, 84, 40, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 38, 38, 32, 40, 103, 32, 61, 32, 84, 40, 104, 44, 32, 103, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 38, 38, 32, 40, 109, 32, 61, 32, 84, 40, 108, 44, 32, 109, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 32, 61, 32, 84, 40, 113, 44, 32, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 65, 32, 61, 32, 101, 98, 40, 110, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 98, 40, 65, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 98, 40, 96, 67, 97, 110, 110, 111, 116, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 32, 36, 123, 110, 125, 32, 100, 117, 101, 32, 116, 111, 32, 117, 110, 98, 111, 117, 110, 100, 32, 116, 121, 112, 101, 115, 96, 44, 32, 91, 100, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 91, 97, 44, 32, 98, 44, 32, 99, 93, 44, 32, 100, 32, 63, 32, 91, 100, 93, 32, 58, 32, 91, 93, 44, 32, 40, 118, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 32, 61, 32, 118, 91, 48, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 119, 32, 61, 32, 118, 46, 66, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 69, 32, 61, 32, 119, 46, 78, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 69, 32, 61, 32, 97, 98, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 32, 61, 32, 98, 98, 40, 110, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 46, 46, 46, 83, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 79, 98, 106, 101, 99, 116, 46, 103, 101, 116, 80, 114, 111, 116, 111, 116, 121, 112, 101, 79, 102, 40, 116, 104, 105, 115, 41, 32, 33, 61, 61, 32, 104, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 34, 85, 115, 101, 32, 39, 110, 101, 119, 39, 32, 116, 111, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 32, 34, 32, 43, 32, 110, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 66, 46, 76, 97, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 110, 32, 43, 32, 34, 32, 104, 97, 115, 32, 110, 111, 32, 97, 99, 99, 101, 115, 115, 105, 98, 108, 101, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 65, 98, 32, 61, 32, 66, 46, 76, 97, 91, 83, 97, 46, 108, 101, 110, 103, 116, 104, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 65, 98, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 84, 114, 105, 101, 100, 32, 116, 111, 32, 105, 110, 118, 111, 107, 101, 32, 99, 116, 111, 114, 32, 111, 102, 32, 36, 123, 110, 125, 32, 119, 105, 116, 104, 32, 105, 110, 118, 97, 108, 105, 100, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 40, 36, 123, 83, 97, 46, 108, 101, 110, 103, 116, 104, 125, 41, 32, 45, 32, 101, 120, 112, 101, 99, 116, 101, 100, 32, 40, 36, 123, 79, 98, 106, 101, 99, 116, 46, 107, 101, 121, 115, 40, 66, 46, 76, 97, 41, 46, 116, 111, 83, 116, 114, 105, 110, 103, 40, 41, 125, 41, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 105, 110, 115, 116, 101, 97, 100, 33, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 65, 98, 46, 97, 112, 112, 108, 121, 40, 116, 104, 105, 115, 44, 32, 83, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 97, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 99, 114, 101, 97, 116, 101, 40, 69, 44, 32, 123, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 58, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 118, 32, 125, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 32, 61, 32, 104, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 66, 32, 61, 32, 110, 101, 119, 32, 102, 98, 40, 110, 44, 32, 118, 44, 32, 104, 97, 44, 32, 114, 44, 32, 119, 44, 32, 102, 44, 32, 103, 44, 32, 109, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 66, 46, 71, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 105, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 95, 97, 50, 32, 61, 32, 40, 105, 97, 32, 61, 32, 66, 46, 71, 97, 41, 46, 86, 97, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 97, 50, 32, 58, 32, 105, 97, 46, 86, 97, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 66, 46, 71, 97, 46, 86, 97, 46, 112, 117, 115, 104, 40, 66, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 32, 61, 32, 110, 101, 119, 32, 109, 98, 40, 110, 44, 32, 66, 44, 32, 116, 114, 117, 101, 44, 32, 102, 97, 108, 115, 101, 44, 32, 102, 97, 108, 115, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 97, 32, 61, 32, 110, 101, 119, 32, 109, 98, 40, 110, 32, 43, 32, 34, 42, 34, 44, 32, 66, 44, 32, 102, 97, 108, 115, 101, 44, 32, 102, 97, 108, 115, 101, 44, 32, 102, 97, 108, 115, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 32, 61, 32, 110, 101, 119, 32, 109, 98, 40, 110, 32, 43, 32, 34, 32, 99, 111, 110, 115, 116, 42, 34, 44, 32, 66, 44, 32, 102, 97, 108, 115, 101, 44, 32, 116, 114, 117, 101, 44, 32, 102, 97, 108, 115, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 97, 91, 97, 93, 32, 61, 32, 123, 32, 112, 111, 105, 110, 116, 101, 114, 84, 121, 112, 101, 58, 32, 105, 97, 44, 32, 90, 97, 58, 32, 69, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 98, 40, 65, 44, 32, 118, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 119, 44, 32, 105, 97, 44, 32, 69, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 113, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 117, 98, 40, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 84, 40, 100, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 91, 93, 44, 32, 91, 97, 93, 44, 32, 40, 103, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 61, 32, 103, 91, 48, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 96, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 32, 36, 123, 103, 46, 110, 97, 109, 101, 125, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 103, 46, 66, 97, 46, 76, 97, 32, 38, 38, 32, 40, 103, 46, 66, 97, 46, 76, 97, 32, 61, 32, 91, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 33, 61, 61, 32, 103, 46, 66, 97, 46, 76, 97, 91, 98, 32, 45, 32, 49, 93, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 67, 97, 110, 110, 111, 116, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 115, 32, 119, 105, 116, 104, 32, 105, 100, 101, 110, 116, 105, 99, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 40, 36, 123, 98, 32, 45, 32, 49, 125, 41, 32, 102, 111, 114, 32, 99, 108, 97, 115, 115, 32, 39, 36, 123, 103, 46, 110, 97, 109, 101, 125, 39, 33, 32, 79, 118, 101, 114, 108, 111, 97, 100, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 105, 115, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 111, 110, 108, 121, 32, 112, 101, 114, 102, 111, 114, 109, 101, 100, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 99, 111, 117, 110, 116, 44, 32, 110, 111, 116, 32, 97, 99, 116, 117, 97, 108, 32, 116, 121, 112, 101, 32, 105, 110, 102, 111, 33, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 46, 66, 97, 46, 76, 97, 91, 98, 32, 45, 32, 49, 93, 32, 61, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 98, 40, 96, 67, 97, 110, 110, 111, 116, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 32, 36, 123, 103, 46, 110, 97, 109, 101, 125, 32, 100, 117, 101, 32, 116, 111, 32, 117, 110, 98, 111, 117, 110, 100, 32, 116, 121, 112, 101, 115, 96, 44, 32, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 91, 93, 44, 32, 104, 44, 32, 40, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 46, 115, 112, 108, 105, 99, 101, 40, 49, 44, 32, 48, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 46, 66, 97, 46, 76, 97, 91, 98, 32, 45, 32, 49, 93, 32, 61, 32, 119, 98, 40, 108, 44, 32, 109, 44, 32, 110, 117, 108, 108, 44, 32, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 117, 98, 40, 99, 44, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 80, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 120, 98, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 32, 61, 32, 84, 40, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 91, 93, 44, 32, 91, 97, 93, 44, 32, 40, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 98, 40, 96, 67, 97, 110, 110, 111, 116, 32, 99, 97, 108, 108, 32, 36, 123, 113, 125, 32, 100, 117, 101, 32, 116, 111, 32, 117, 110, 98, 111, 117, 110, 100, 32, 116, 121, 112, 101, 115, 96, 44, 32, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 61, 32, 109, 91, 48, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 113, 32, 61, 32, 96, 36, 123, 109, 46, 110, 97, 109, 101, 125, 46, 36, 123, 98, 125, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 46, 115, 116, 97, 114, 116, 115, 87, 105, 116, 104, 40, 34, 64, 64, 34, 41, 32, 38, 38, 32, 40, 98, 32, 61, 32, 83, 121, 109, 98, 111, 108, 91, 98, 46, 115, 117, 98, 115, 116, 114, 105, 110, 103, 40, 50, 41, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 38, 38, 32, 109, 46, 66, 97, 46, 106, 98, 46, 112, 117, 115, 104, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 114, 32, 61, 32, 109, 46, 66, 97, 46, 78, 97, 44, 32, 65, 32, 61, 32, 114, 91, 98, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 65, 32, 124, 124, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 65, 46, 70, 97, 32, 38, 38, 32, 65, 46, 99, 108, 97, 115, 115, 78, 97, 109, 101, 32, 33, 61, 61, 32, 109, 46, 110, 97, 109, 101, 32, 38, 38, 32, 65, 46, 81, 97, 32, 61, 61, 61, 32, 99, 32, 45, 32, 50, 32, 63, 32, 40, 110, 46, 81, 97, 32, 61, 32, 99, 32, 45, 32, 50, 44, 32, 110, 46, 99, 108, 97, 115, 115, 78, 97, 109, 101, 32, 61, 32, 109, 46, 110, 97, 109, 101, 44, 32, 114, 91, 98, 93, 32, 61, 32, 110, 41, 32, 58, 32, 40, 99, 98, 40, 114, 44, 32, 98, 44, 32, 113, 41, 44, 32, 114, 91, 98, 93, 46, 70, 97, 91, 99, 32, 45, 32, 50, 93, 32, 61, 32, 110, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 91, 93, 44, 32, 108, 44, 32, 40, 118, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 32, 61, 32, 119, 98, 40, 113, 44, 32, 118, 44, 32, 109, 44, 32, 102, 44, 32, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 114, 91, 98, 93, 46, 70, 97, 32, 63, 32, 40, 118, 46, 81, 97, 32, 61, 32, 99, 32, 45, 32, 50, 44, 32, 114, 91, 98, 93, 32, 61, 32, 118, 41, 32, 58, 32, 114, 91, 98, 93, 46, 70, 97, 91, 99, 32, 45, 32, 50, 93, 32, 61, 32, 118, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 90, 58, 32, 40, 97, 41, 32, 61, 62, 32, 78, 40, 97, 44, 32, 67, 98, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 120, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 80, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 46, 118, 97, 108, 117, 101, 115, 32, 61, 32, 123, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 40, 97, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 58, 32, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 46, 118, 97, 108, 117, 101, 115, 91, 102, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 102, 44, 32, 104, 41, 32, 61, 62, 32, 104, 46, 118, 97, 108, 117, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 97, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 68, 98, 40, 98, 44, 32, 99, 44, 32, 100, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 97, 58, 32, 110, 117, 108, 108, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 98, 40, 98, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 107, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 69, 98, 40, 97, 44, 32, 34, 101, 110, 117, 109, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 80, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 100, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 79, 98, 106, 101, 99, 116, 46, 99, 114, 101, 97, 116, 101, 40, 100, 46, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 108, 117, 101, 58, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 99, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 58, 32, 123, 32, 118, 97, 108, 117, 101, 58, 32, 98, 98, 40, 96, 36, 123, 100, 46, 110, 97, 109, 101, 125, 95, 36, 123, 98, 125, 96, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 46, 118, 97, 108, 117, 101, 115, 91, 99, 93, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 91, 98, 93, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 68, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 80, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 40, 97, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 100, 41, 32, 61, 62, 32, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 100, 44, 32, 101, 41, 32, 61, 62, 32, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 97, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 70, 98, 40, 98, 44, 32, 99, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 97, 58, 32, 110, 117, 108, 108, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 70, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 117, 98, 40, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 80, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 120, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 84, 40, 100, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 98, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 98, 40, 96, 67, 97, 110, 110, 111, 116, 32, 99, 97, 108, 108, 32, 36, 123, 97, 125, 32, 100, 117, 101, 32, 116, 111, 32, 117, 110, 98, 111, 117, 110, 100, 32, 116, 121, 112, 101, 115, 96, 44, 32, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 45, 32, 49, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 91, 93, 44, 32, 104, 44, 32, 40, 103, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 98, 40, 97, 44, 32, 119, 98, 40, 97, 44, 32, 91, 103, 91, 48, 93, 44, 32, 110, 117, 108, 108, 93, 46, 99, 111, 110, 99, 97, 116, 40, 103, 46, 115, 108, 105, 99, 101, 40, 49, 41, 41, 44, 32, 110, 117, 108, 108, 44, 32, 101, 44, 32, 102, 41, 44, 32, 98, 32, 45, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 80, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 49, 32, 61, 61, 61, 32, 101, 32, 38, 38, 32, 40, 101, 32, 61, 32, 52, 50, 57, 52, 57, 54, 55, 50, 57, 53, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 40, 103, 41, 32, 61, 62, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 48, 32, 61, 61, 61, 32, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 51, 50, 32, 45, 32, 56, 32, 42, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 40, 103, 41, 32, 61, 62, 32, 103, 32, 60, 60, 32, 102, 32, 62, 62, 62, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 98, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 117, 110, 115, 105, 103, 110, 101, 100, 34, 41, 32, 63, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 103, 44, 32, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 108, 32, 62, 62, 62, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 103, 44, 32, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 40, 97, 44, 32, 123, 32, 110, 97, 109, 101, 58, 32, 98, 44, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 101, 44, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 104, 44, 32, 73, 97, 58, 32, 56, 44, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 71, 98, 40, 98, 44, 32, 99, 44, 32, 48, 32, 33, 61, 61, 32, 100, 41, 44, 32, 74, 97, 58, 32, 110, 117, 108, 108, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 104, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 100, 40, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 101, 40, 117, 46, 98, 117, 102, 102, 101, 114, 44, 32, 68, 91, 102, 32, 43, 32, 52, 32, 62, 62, 32, 50, 93, 44, 32, 68, 91, 102, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 91, 73, 110, 116, 56, 65, 114, 114, 97, 121, 44, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 44, 32, 73, 110, 116, 49, 54, 65, 114, 114, 97, 121, 44, 32, 85, 105, 110, 116, 49, 54, 65, 114, 114, 97, 121, 44, 32, 73, 110, 116, 51, 50, 65, 114, 114, 97, 121, 44, 32, 85, 105, 110, 116, 51, 50, 65, 114, 114, 97, 121, 44, 32, 70, 108, 111, 97, 116, 51, 50, 65, 114, 114, 97, 121, 44, 32, 70, 108, 111, 97, 116, 54, 52, 65, 114, 114, 97, 121, 93, 91, 98, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 80, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 40, 97, 44, 32, 123, 32, 110, 97, 109, 101, 58, 32, 99, 44, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 100, 44, 32, 73, 97, 58, 32, 56, 44, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 100, 32, 125, 44, 32, 123, 32, 104, 98, 58, 32, 116, 114, 117, 101, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 117, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 40, 97, 44, 32, 72, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 97, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 44, 32, 108, 44, 32, 109, 44, 32, 110, 44, 32, 113, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 80, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 32, 61, 32, 84, 40, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 61, 32, 84, 40, 104, 44, 32, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 61, 32, 84, 40, 108, 44, 32, 109, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 32, 61, 32, 84, 40, 110, 44, 32, 113, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 40, 91, 97, 93, 44, 32, 91, 98, 93, 44, 32, 40, 114, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 32, 61, 32, 114, 91, 48, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 110, 101, 119, 32, 109, 98, 40, 99, 44, 32, 114, 46, 66, 97, 44, 32, 102, 97, 108, 115, 101, 44, 32, 102, 97, 108, 115, 101, 44, 32, 116, 114, 117, 101, 44, 32, 114, 44, 32, 100, 44, 32, 102, 44, 32, 103, 44, 32, 109, 44, 32, 113, 41, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 69, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 80, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 34, 115, 116, 100, 58, 58, 115, 116, 114, 105, 110, 103, 34, 32, 61, 61, 61, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 40, 97, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 68, 91, 100, 32, 62, 62, 32, 50, 93, 44, 32, 102, 32, 61, 32, 100, 32, 43, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 104, 32, 61, 32, 102, 44, 32, 103, 32, 61, 32, 48, 59, 32, 103, 32, 60, 61, 32, 101, 59, 32, 43, 43, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 102, 32, 43, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 103, 32, 61, 61, 32, 101, 32, 124, 124, 32, 48, 32, 61, 61, 32, 120, 91, 108, 93, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 32, 61, 32, 104, 32, 63, 32, 72, 40, 120, 44, 32, 104, 44, 32, 108, 32, 45, 32, 104, 41, 32, 58, 32, 34, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 109, 41, 32, 118, 97, 114, 32, 109, 32, 61, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 109, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 48, 41, 44, 32, 109, 32, 43, 61, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 32, 61, 32, 108, 32, 43, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 61, 32, 65, 114, 114, 97, 121, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 103, 32, 61, 32, 48, 59, 32, 103, 32, 60, 32, 101, 59, 32, 43, 43, 103, 41, 32, 109, 91, 103, 93, 32, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 120, 91, 102, 32, 43, 32, 103, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 32, 61, 32, 109, 46, 106, 111, 105, 110, 40, 34, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 40, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 100, 44, 32, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 32, 38, 38, 32, 40, 101, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 40, 101, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 44, 32, 104, 32, 61, 32, 34, 115, 116, 114, 105, 110, 103, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 40, 104, 32, 124, 124, 32, 101, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 32, 124, 124, 32, 101, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 85, 105, 110, 116, 56, 67, 108, 97, 109, 112, 101, 100, 65, 114, 114, 97, 121, 32, 124, 124, 32, 101, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 73, 110, 116, 56, 65, 114, 114, 97, 121, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 34, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 110, 111, 110, 45, 115, 116, 114, 105, 110, 103, 32, 116, 111, 32, 115, 116, 100, 58, 58, 115, 116, 114, 105, 110, 103, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 32, 38, 38, 32, 104, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 103, 32, 61, 32, 102, 32, 61, 32, 48, 59, 32, 103, 32, 60, 32, 101, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 101, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 49, 50, 55, 32, 62, 61, 32, 108, 32, 63, 32, 102, 43, 43, 32, 58, 32, 50, 48, 52, 55, 32, 62, 61, 32, 108, 32, 63, 32, 102, 32, 43, 61, 32, 50, 32, 58, 32, 53, 53, 50, 57, 54, 32, 60, 61, 32, 108, 32, 38, 38, 32, 53, 55, 51, 52, 51, 32, 62, 61, 32, 108, 32, 63, 32, 40, 102, 32, 43, 61, 32, 52, 44, 32, 43, 43, 103, 41, 32, 58, 32, 102, 32, 43, 61, 32, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 102, 32, 61, 32, 101, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 61, 32, 102, 99, 40, 52, 32, 43, 32, 102, 32, 43, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 32, 61, 32, 103, 32, 43, 32, 52, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, 91, 103, 32, 62, 62, 32, 50, 93, 32, 61, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 32, 38, 38, 32, 104, 41, 32, 73, 40, 101, 44, 32, 108, 44, 32, 102, 32, 43, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 104, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 104, 32, 61, 32, 48, 59, 32, 104, 32, 60, 32, 102, 59, 32, 43, 43, 104, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 32, 61, 32, 101, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 53, 53, 32, 60, 32, 109, 41, 32, 116, 104, 114, 111, 119, 32, 85, 40, 108, 41, 44, 32, 110, 101, 119, 32, 81, 40, 34, 83, 116, 114, 105, 110, 103, 32, 104, 97, 115, 32, 85, 84, 70, 45, 49, 54, 32, 99, 111, 100, 101, 32, 117, 110, 105, 116, 115, 32, 116, 104, 97, 116, 32, 100, 111, 32, 110, 111, 116, 32, 102, 105, 116, 32, 105, 110, 32, 56, 32, 98, 105, 116, 115, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 120, 91, 108, 32, 43, 32, 104, 93, 32, 61, 32, 109, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 108, 115, 101, 32, 102, 111, 114, 32, 40, 104, 32, 61, 32, 48, 59, 32, 104, 32, 60, 32, 102, 59, 32, 43, 43, 104, 41, 32, 120, 91, 108, 32, 43, 32, 104, 93, 32, 61, 32, 101, 91, 104, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 100, 32, 38, 38, 32, 100, 46, 112, 117, 115, 104, 40, 85, 44, 32, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 97, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 74, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 97, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 40, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 61, 32, 80, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 32, 61, 61, 61, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 74, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 75, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 76, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 40, 103, 41, 32, 61, 62, 32, 122, 91, 103, 32, 62, 62, 32, 49, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 52, 32, 61, 61, 61, 32, 98, 32, 38, 38, 32, 40, 100, 32, 61, 32, 77, 98, 44, 32, 101, 32, 61, 32, 78, 98, 44, 32, 102, 32, 61, 32, 79, 98, 44, 32, 104, 32, 61, 32, 40, 103, 41, 32, 61, 62, 32, 68, 91, 103, 32, 62, 62, 32, 50, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 40, 97, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 103, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 108, 32, 61, 32, 68, 91, 103, 32, 62, 62, 32, 50, 93, 44, 32, 109, 44, 32, 110, 32, 61, 32, 103, 32, 43, 32, 52, 44, 32, 113, 32, 61, 32, 48, 59, 32, 113, 32, 60, 61, 32, 108, 59, 32, 43, 43, 113, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 114, 32, 61, 32, 103, 32, 43, 32, 52, 32, 43, 32, 113, 32, 42, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 113, 32, 61, 61, 32, 108, 32, 124, 124, 32, 48, 32, 61, 61, 32, 104, 40, 114, 41, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 32, 61, 32, 100, 40, 110, 44, 32, 114, 32, 45, 32, 110, 41, 44, 32, 118, 111, 105, 100, 32, 48, 32, 61, 61, 61, 32, 109, 32, 63, 32, 109, 32, 61, 32, 110, 32, 58, 32, 40, 109, 32, 43, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 48, 41, 44, 32, 109, 32, 43, 61, 32, 110, 41, 44, 32, 110, 32, 61, 32, 114, 32, 43, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 40, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 103, 44, 32, 108, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 34, 115, 116, 114, 105, 110, 103, 34, 32, 33, 61, 32, 116, 121, 112, 101, 111, 102, 32, 108, 41, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 81, 40, 96, 67, 97, 110, 110, 111, 116, 32, 112, 97, 115, 115, 32, 110, 111, 110, 45, 115, 116, 114, 105, 110, 103, 32, 116, 111, 32, 67, 43, 43, 32, 115, 116, 114, 105, 110, 103, 32, 116, 121, 112, 101, 32, 36, 123, 99, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 32, 61, 32, 102, 40, 108, 41, 44, 32, 110, 32, 61, 32, 102, 99, 40, 52, 32, 43, 32, 109, 32, 43, 32, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, 91, 110, 32, 62, 62, 32, 50, 93, 32, 61, 32, 109, 32, 47, 32, 98, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 40, 108, 44, 32, 110, 32, 43, 32, 52, 44, 32, 109, 32, 43, 32, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 108, 108, 32, 33, 61, 61, 32, 103, 32, 38, 38, 32, 103, 46, 112, 117, 115, 104, 40, 85, 44, 32, 110, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 97, 58, 32, 56, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 58, 32, 74, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 97, 40, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 85, 40, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 119, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 75, 97, 91, 97, 93, 32, 61, 32, 123, 32, 110, 97, 109, 101, 58, 32, 80, 40, 98, 41, 44, 32, 85, 97, 58, 32, 84, 40, 99, 44, 32, 100, 41, 44, 32, 75, 97, 58, 32, 84, 40, 101, 44, 32, 102, 41, 44, 32, 88, 97, 58, 32, 91, 93, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 106, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 44, 32, 108, 44, 32, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 75, 97, 91, 97, 93, 46, 88, 97, 46, 112, 117, 115, 104, 40, 123, 32, 97, 98, 58, 32, 80, 40, 98, 41, 44, 32, 103, 98, 58, 32, 99, 44, 32, 101, 98, 58, 32, 84, 40, 100, 44, 32, 101, 41, 44, 32, 102, 98, 58, 32, 102, 44, 32, 109, 98, 58, 32, 104, 44, 32, 108, 98, 58, 32, 84, 40, 103, 44, 32, 108, 41, 44, 32, 110, 98, 58, 32, 109, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 36, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 80, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 40, 97, 44, 32, 123, 32, 112, 98, 58, 32, 116, 114, 117, 101, 44, 32, 110, 97, 109, 101, 58, 32, 98, 44, 32, 73, 97, 58, 32, 48, 44, 32, 102, 114, 111, 109, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 32, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 79, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 97, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 98, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 75, 58, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 73, 110, 102, 105, 110, 105, 116, 121, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 80, 98, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 66, 98, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 97, 40, 110, 117, 108, 108, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 71, 58, 32, 122, 98, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 82, 98, 40, 97, 44, 32, 98, 41, 44, 32, 101, 32, 61, 32, 100, 46, 115, 104, 105, 102, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 45, 45, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 65, 114, 114, 97, 121, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 96, 109, 101, 116, 104, 111, 100, 67, 97, 108, 108, 101, 114, 60, 40, 36, 123, 100, 46, 109, 97, 112, 40, 40, 104, 41, 32, 61, 62, 32, 104, 46, 110, 97, 109, 101, 41, 46, 106, 111, 105, 110, 40, 34, 44, 32, 34, 41, 125, 41, 32, 61, 62, 32, 36, 123, 101, 46, 110, 97, 109, 101, 125, 62, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 81, 98, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 98, 40, 98, 44, 32, 40, 104, 44, 32, 103, 44, 32, 108, 44, 32, 109, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 110, 32, 61, 32, 48, 44, 32, 113, 32, 61, 32, 48, 59, 32, 113, 32, 60, 32, 97, 59, 32, 43, 43, 113, 41, 32, 102, 91, 113, 93, 32, 61, 32, 100, 91, 113, 93, 46, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 40, 109, 32, 43, 32, 110, 41, 44, 32, 110, 32, 43, 61, 32, 100, 91, 113, 93, 46, 73, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 61, 32, 49, 32, 61, 61, 61, 32, 99, 32, 63, 32, 83, 98, 40, 103, 44, 32, 102, 41, 32, 58, 32, 103, 46, 97, 112, 112, 108, 121, 40, 104, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 103, 32, 61, 32, 101, 46, 116, 111, 87, 105, 114, 101, 84, 121, 112, 101, 40, 104, 44, 32, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 104, 46, 108, 101, 110, 103, 116, 104, 32, 38, 38, 32, 40, 68, 91, 108, 32, 62, 62, 32, 50, 93, 32, 61, 32, 107, 98, 40, 104, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 97, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 57, 32, 60, 32, 97, 32, 38, 38, 32, 40, 86, 91, 97, 32, 43, 32, 49, 93, 32, 43, 61, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 97, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 66, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 97, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 122, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 111, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 69, 98, 40, 97, 44, 32, 34, 95, 101, 109, 118, 97, 108, 95, 116, 97, 107, 101, 95, 118, 97, 108, 117, 101, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 97, 46, 114, 101, 97, 100, 86, 97, 108, 117, 101, 70, 114, 111, 109, 80, 111, 105, 110, 116, 101, 114, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 107, 98, 40, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 76, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 98, 91, 97, 93, 32, 38, 38, 32, 40, 99, 108, 101, 97, 114, 84, 105, 109, 101, 111, 117, 116, 40, 84, 98, 91, 97, 93, 46, 105, 100, 41, 44, 32, 100, 101, 108, 101, 116, 101, 32, 84, 98, 91, 97, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 41, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 115, 101, 116, 84, 105, 109, 101, 111, 117, 116, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 108, 101, 116, 101, 32, 84, 98, 91, 97, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 98, 40, 40, 41, 32, 61, 62, 32, 103, 99, 40, 97, 44, 32, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 46, 110, 111, 119, 40, 41, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 32, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 98, 91, 97, 93, 32, 61, 32, 123, 32, 105, 100, 58, 32, 99, 44, 32, 114, 98, 58, 32, 98, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 77, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 40, 47, 42, 32, 64, 95, 95, 80, 85, 82, 69, 95, 95, 32, 42, 47, 32, 110, 101, 119, 32, 68, 97, 116, 101, 40, 41, 41, 46, 103, 101, 116, 70, 117, 108, 108, 89, 101, 97, 114, 40, 41, 44, 32, 102, 32, 61, 32, 110, 101, 119, 32, 68, 97, 116, 101, 40, 101, 44, 32, 48, 44, 32, 49, 41, 46, 103, 101, 116, 84, 105, 109, 101, 122, 111, 110, 101, 79, 102, 102, 115, 101, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 110, 101, 119, 32, 68, 97, 116, 101, 40, 101, 44, 32, 54, 44, 32, 49, 41, 46, 103, 101, 116, 84, 105, 109, 101, 122, 111, 110, 101, 79, 102, 102, 115, 101, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, 91, 97, 32, 62, 62, 32, 50, 93, 32, 61, 32, 54, 48, 32, 42, 32, 77, 97, 116, 104, 46, 109, 97, 120, 40, 102, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 91, 98, 32, 62, 62, 32, 50, 93, 32, 61, 32, 78, 117, 109, 98, 101, 114, 40, 102, 32, 33, 61, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 40, 104, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 103, 32, 61, 32, 77, 97, 116, 104, 46, 97, 98, 115, 40, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 96, 85, 84, 67, 36, 123, 48, 32, 60, 61, 32, 104, 32, 63, 32, 34, 45, 34, 32, 58, 32, 34, 43, 34, 125, 36, 123, 83, 116, 114, 105, 110, 103, 40, 77, 97, 116, 104, 46, 102, 108, 111, 111, 114, 40, 103, 32, 47, 32, 54, 48, 41, 41, 46, 112, 97, 100, 83, 116, 97, 114, 116, 40, 50, 44, 32, 34, 48, 34, 41, 125, 36, 123, 83, 116, 114, 105, 110, 103, 40, 103, 32, 37, 32, 54, 48, 41, 46, 112, 97, 100, 83, 116, 97, 114, 116, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 50, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 48, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 125, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 61, 32, 98, 40, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 61, 32, 98, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 60, 32, 102, 32, 63, 32, 40, 73, 40, 97, 44, 32, 99, 44, 32, 49, 55, 41, 44, 32, 73, 40, 98, 44, 32, 100, 44, 32, 49, 55, 41, 41, 32, 58, 32, 40, 73, 40, 97, 44, 32, 100, 44, 32, 49, 55, 41, 44, 32, 73, 40, 98, 44, 32, 99, 44, 32, 49, 55, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 97, 58, 32, 40, 41, 32, 61, 62, 32, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 46, 110, 111, 119, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 78, 58, 32, 40, 97, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 120, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 32, 62, 62, 62, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 50, 49, 52, 55, 52, 56, 51, 54, 52, 56, 32, 60, 32, 97, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 99, 32, 61, 32, 49, 59, 32, 52, 32, 62, 61, 32, 99, 59, 32, 99, 32, 42, 61, 32, 50, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 98, 32, 42, 32, 40, 49, 32, 43, 32, 48, 46, 50, 32, 47, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 77, 97, 116, 104, 46, 109, 105, 110, 40, 100, 44, 32, 97, 32, 43, 32, 49, 48, 48, 54, 54, 51, 50, 57, 54, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 32, 61, 32, 40, 77, 97, 116, 104, 46, 109, 105, 110, 40, 50, 49, 52, 55, 52, 56, 51, 54, 52, 56, 44, 32, 54, 53, 53, 51, 54, 32, 42, 32, 77, 97, 116, 104, 46, 99, 101, 105, 108, 40, 77, 97, 116, 104, 46, 109, 97, 120, 40, 97, 44, 32, 100, 41, 32, 47, 32, 54, 53, 53, 51, 54, 41, 41, 32, 45, 32, 108, 97, 46, 98, 117, 102, 102, 101, 114, 46, 98, 121, 116, 101, 76, 101, 110, 103, 116, 104, 32, 43, 32, 54, 53, 53, 51, 53, 41, 32, 47, 32, 54, 53, 53, 51, 54, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 46, 103, 114, 111, 119, 40, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 97, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 114, 101, 97, 107, 32, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 101, 41, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 87, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 36, 98, 40, 41, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 100, 44, 32, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 98, 32, 43, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 61, 32, 68, 91, 97, 32, 43, 32, 52, 32, 42, 32, 101, 32, 62, 62, 32, 50, 93, 32, 61, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 102, 32, 61, 32, 48, 59, 32, 102, 32, 60, 32, 100, 46, 108, 101, 110, 103, 116, 104, 59, 32, 43, 43, 102, 41, 32, 117, 91, 101, 43, 43, 93, 32, 61, 32, 100, 46, 99, 104, 97, 114, 67, 111, 100, 101, 65, 116, 40, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 117, 91, 101, 93, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 32, 43, 61, 32, 100, 46, 108, 101, 110, 103, 116, 104, 32, 43, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 88, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 36, 98, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, 91, 97, 32, 62, 62, 32, 50, 93, 32, 61, 32, 99, 46, 108, 101, 110, 103, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 101, 41, 32, 61, 62, 32, 100, 32, 43, 61, 32, 101, 46, 108, 101, 110, 103, 116, 104, 32, 43, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, 91, 98, 32, 62, 62, 32, 50, 93, 32, 61, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 58, 32, 40, 41, 32, 61, 62, 32, 53, 50, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 65, 58, 32, 40, 41, 32, 61, 62, 32, 53, 50, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 73, 58, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 55, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 122, 58, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 101, 32, 61, 32, 48, 44, 32, 102, 32, 61, 32, 48, 59, 32, 102, 32, 60, 32, 99, 59, 32, 102, 43, 43, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 68, 91, 98, 32, 62, 62, 32, 50, 93, 44, 32, 103, 32, 61, 32, 68, 91, 98, 32, 43, 32, 52, 32, 62, 62, 32, 50, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 32, 43, 61, 32, 56, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 118, 97, 114, 32, 108, 32, 61, 32, 48, 59, 32, 108, 32, 60, 32, 103, 59, 32, 108, 43, 43, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 109, 32, 61, 32, 97, 44, 32, 110, 32, 61, 32, 120, 91, 104, 32, 43, 32, 108, 93, 44, 32, 113, 32, 61, 32, 97, 99, 91, 109, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 61, 32, 110, 32, 124, 124, 32, 49, 48, 32, 61, 61, 61, 32, 110, 32, 63, 32, 40, 40, 49, 32, 61, 61, 61, 32, 109, 32, 63, 32, 106, 97, 32, 58, 32, 116, 41, 40, 72, 40, 113, 44, 32, 48, 41, 41, 44, 32, 113, 46, 108, 101, 110, 103, 116, 104, 32, 61, 32, 48, 41, 32, 58, 32, 113, 46, 112, 117, 115, 104, 40, 110, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 32, 43, 61, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, 91, 100, 32, 62, 62, 32, 50, 93, 32, 61, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 89, 58, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 99, 40, 120, 46, 115, 117, 98, 97, 114, 114, 97, 121, 40, 97, 44, 32, 97, 32, 43, 32, 98, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 58, 32, 104, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 58, 32, 105, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 58, 32, 106, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 112, 58, 32, 107, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 121, 58, 32, 108, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 58, 32, 109, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 58, 32, 110, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 103, 58, 32, 111, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 110, 58, 32, 112, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 72, 58, 32, 113, 99, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 86, 58, 32, 87, 98, 10, 32, 32, 32, 32, 32, 32, 125, 44, 32, 87, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 97, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 51, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 87, 32, 61, 32, 99, 46, 101, 120, 112, 111, 114, 116, 115, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 32, 61, 32, 87, 46, 103, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 113, 97, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 32, 61, 32, 87, 46, 107, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 97, 46, 117, 110, 115, 104, 105, 102, 116, 40, 87, 46, 104, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 45, 45, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 95, 97, 51, 32, 61, 32, 107, 46, 109, 111, 110, 105, 116, 111, 114, 82, 117, 110, 68, 101, 112, 101, 110, 100, 101, 110, 99, 105, 101, 115, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 51, 46, 99, 97, 108, 108, 40, 107, 44, 32, 70, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 61, 61, 32, 70, 32, 38, 38, 32, 40, 110, 117, 108, 108, 32, 33, 61, 61, 32, 118, 97, 32, 38, 38, 32, 40, 99, 108, 101, 97, 114, 73, 110, 116, 101, 114, 118, 97, 108, 40, 118, 97, 41, 44, 32, 118, 97, 32, 61, 32, 110, 117, 108, 108, 41, 44, 32, 71, 32, 38, 38, 32, 40, 99, 32, 61, 32, 71, 44, 32, 71, 32, 61, 32, 110, 117, 108, 108, 44, 32, 99, 40, 41, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 87, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 123, 32, 97, 58, 32, 114, 99, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 70, 43, 43, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 40, 95, 97, 50, 32, 61, 32, 107, 46, 109, 111, 110, 105, 116, 111, 114, 82, 117, 110, 68, 101, 112, 101, 110, 100, 101, 110, 99, 105, 101, 115, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 50, 46, 99, 97, 108, 108, 40, 107, 44, 32, 70, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 87, 97, 115, 109, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 107, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 87, 97, 115, 109, 40, 98, 44, 32, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 40, 96, 77, 111, 100, 117, 108, 101, 46, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 87, 97, 115, 109, 32, 99, 97, 108, 108, 98, 97, 99, 107, 32, 102, 97, 105, 108, 101, 100, 32, 119, 105, 116, 104, 32, 101, 114, 114, 111, 114, 58, 32, 36, 123, 99, 125, 96, 41, 44, 32, 98, 97, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 121, 97, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 121, 97, 32, 58, 32, 121, 97, 32, 61, 32, 120, 97, 40, 34, 68, 111, 116, 76, 111, 116, 116, 105, 101, 80, 108, 97, 121, 101, 114, 46, 119, 97, 115, 109, 34, 41, 32, 63, 32, 34, 68, 111, 116, 76, 111, 116, 116, 105, 101, 80, 108, 97, 121, 101, 114, 46, 119, 97, 115, 109, 34, 32, 58, 32, 107, 46, 108, 111, 99, 97, 116, 101, 70, 105, 108, 101, 32, 63, 32, 107, 46, 108, 111, 99, 97, 116, 101, 70, 105, 108, 101, 40, 34, 68, 111, 116, 76, 111, 116, 116, 105, 101, 80, 108, 97, 121, 101, 114, 46, 119, 97, 115, 109, 34, 44, 32, 112, 41, 32, 58, 32, 112, 32, 43, 32, 34, 68, 111, 116, 76, 111, 116, 116, 105, 101, 80, 108, 97, 121, 101, 114, 46, 119, 97, 115, 109, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 67, 97, 40, 98, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 40, 99, 46, 105, 110, 115, 116, 97, 110, 99, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 46, 99, 97, 116, 99, 104, 40, 98, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 125, 59, 10, 32, 32, 32, 32, 32, 32, 125, 40, 41, 44, 32, 102, 99, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 40, 102, 99, 32, 61, 32, 87, 46, 105, 97, 41, 40, 97, 41, 44, 32, 114, 98, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 40, 114, 98, 32, 61, 32, 87, 46, 106, 97, 41, 40, 97, 41, 44, 32, 85, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 40, 85, 32, 61, 32, 87, 46, 108, 97, 41, 40, 97, 41, 44, 32, 103, 99, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 40, 103, 99, 32, 61, 32, 87, 46, 109, 97, 41, 40, 97, 44, 32, 98, 41, 44, 32, 88, 32, 61, 32, 40, 97, 44, 32, 98, 41, 32, 61, 62, 32, 40, 88, 32, 61, 32, 87, 46, 110, 97, 41, 40, 97, 44, 32, 98, 41, 44, 32, 89, 32, 61, 32, 40, 97, 41, 32, 61, 62, 32, 40, 89, 32, 61, 32, 87, 46, 111, 97, 41, 40, 97, 41, 44, 32, 90, 32, 61, 32, 40, 41, 32, 61, 62, 32, 40, 90, 32, 61, 32, 87, 46, 112, 97, 41, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 106, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 106, 106, 32, 61, 32, 87, 46, 113, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 106, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 106, 106, 32, 61, 32, 87, 46, 114, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 105, 105, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 105, 105, 32, 61, 32, 87, 46, 115, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 105, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 105, 32, 61, 32, 87, 46, 116, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 115, 99, 32, 61, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 106, 106, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 41, 32, 61, 62, 32, 40, 115, 99, 32, 61, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 106, 106, 106, 32, 61, 32, 87, 46, 117, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 106, 105, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 106, 105, 106, 105, 32, 61, 32, 87, 46, 118, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 105, 106, 105, 105, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 118, 105, 105, 106, 105, 105, 32, 61, 32, 87, 46, 119, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 106, 32, 61, 32, 87, 46, 120, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 106, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 44, 32, 108, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 106, 106, 32, 61, 32, 87, 46, 121, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 44, 32, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 105, 106, 106, 32, 61, 32, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 44, 32, 108, 44, 32, 109, 41, 32, 61, 62, 32, 40, 107, 46, 100, 121, 110, 67, 97, 108, 108, 95, 105, 105, 105, 105, 105, 105, 106, 106, 32, 61, 32, 87, 46, 122, 97, 41, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 44, 32, 108, 44, 32, 109, 41, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 109, 99, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 100, 32, 33, 61, 61, 32, 100, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 110, 99, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 101, 32, 33, 61, 61, 32, 101, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 106, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 44, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 102, 32, 33, 61, 61, 32, 102, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 99, 40, 97, 44, 32, 98, 44, 32, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 100, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 101, 32, 33, 61, 61, 32, 101, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 99, 40, 97, 44, 32, 98, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 99, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 100, 32, 33, 61, 61, 32, 100, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 100, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 107, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 104, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 104, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 103, 32, 33, 61, 61, 32, 103, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 112, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 102, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 104, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 102, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 104, 32, 33, 61, 61, 32, 104, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 104, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 101, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 98, 44, 32, 99, 44, 32, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 102, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 102, 32, 33, 61, 61, 32, 102, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 108, 99, 40, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 46, 103, 101, 116, 40, 97, 41, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 32, 33, 61, 61, 32, 99, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 99, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 113, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 108, 32, 61, 32, 90, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 99, 40, 97, 44, 32, 98, 44, 32, 99, 44, 32, 100, 44, 32, 101, 44, 32, 102, 44, 32, 104, 44, 32, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 109, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 40, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 109, 32, 33, 61, 61, 32, 109, 32, 43, 32, 48, 41, 32, 116, 104, 114, 111, 119, 32, 109, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 40, 49, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 116, 99, 59, 10, 32, 32, 32, 32, 32, 32, 71, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 117, 99, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 99, 32, 124, 124, 32, 118, 99, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 99, 32, 124, 124, 32, 40, 71, 32, 61, 32, 117, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 118, 99, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 97, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 50, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 116, 99, 32, 38, 38, 32, 40, 116, 99, 32, 61, 32, 116, 114, 117, 101, 44, 32, 107, 46, 99, 97, 108, 108, 101, 100, 82, 117, 110, 32, 61, 32, 116, 114, 117, 101, 44, 32, 33, 109, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 40, 115, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 97, 40, 107, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 95, 97, 50, 32, 61, 32, 107, 46, 111, 110, 82, 117, 110, 116, 105, 109, 101, 73, 110, 105, 116, 105, 97, 108, 105, 122, 101, 100, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 50, 46, 99, 97, 108, 108, 40, 107, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 112, 111, 115, 116, 82, 117, 110, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 107, 46, 112, 111, 115, 116, 82, 117, 110, 32, 38, 38, 32, 40, 107, 46, 112, 111, 115, 116, 82, 117, 110, 32, 61, 32, 91, 107, 46, 112, 111, 115, 116, 82, 117, 110, 93, 41, 59, 32, 107, 46, 112, 111, 115, 116, 82, 117, 110, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 98, 32, 61, 32, 107, 46, 112, 111, 115, 116, 82, 117, 110, 46, 115, 104, 105, 102, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 97, 46, 117, 110, 115, 104, 105, 102, 116, 40, 98, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 40, 116, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 40, 48, 32, 60, 32, 70, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 112, 114, 101, 82, 117, 110, 41, 32, 102, 111, 114, 32, 40, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 107, 46, 112, 114, 101, 82, 117, 110, 32, 38, 38, 32, 40, 107, 46, 112, 114, 101, 82, 117, 110, 32, 61, 32, 91, 107, 46, 112, 114, 101, 82, 117, 110, 93, 41, 59, 32, 107, 46, 112, 114, 101, 82, 117, 110, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 117, 97, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 97, 40, 114, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 32, 60, 32, 70, 32, 124, 124, 32, 40, 107, 46, 115, 101, 116, 83, 116, 97, 116, 117, 115, 32, 63, 32, 40, 107, 46, 115, 101, 116, 83, 116, 97, 116, 117, 115, 40, 34, 82, 117, 110, 110, 105, 110, 103, 46, 46, 46, 34, 41, 44, 32, 115, 101, 116, 84, 105, 109, 101, 111, 117, 116, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 116, 84, 105, 109, 101, 111, 117, 116, 40, 40, 41, 32, 61, 62, 32, 107, 46, 115, 101, 116, 83, 116, 97, 116, 117, 115, 40, 34, 34, 41, 44, 32, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 32, 49, 41, 41, 32, 58, 32, 97, 40, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 107, 46, 112, 114, 101, 73, 110, 105, 116, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 32, 61, 61, 32, 116, 121, 112, 101, 111, 102, 32, 107, 46, 112, 114, 101, 73, 110, 105, 116, 32, 38, 38, 32, 40, 107, 46, 112, 114, 101, 73, 110, 105, 116, 32, 61, 32, 91, 107, 46, 112, 114, 101, 73, 110, 105, 116, 93, 41, 59, 32, 48, 32, 60, 32, 107, 46, 112, 114, 101, 73, 110, 105, 116, 46, 108, 101, 110, 103, 116, 104, 59, 32, 41, 32, 107, 46, 112, 114, 101, 73, 110, 105, 116, 46, 112, 111, 112, 40, 41, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 118, 99, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 109, 111, 100, 117, 108, 101, 82, 116, 110, 32, 61, 32, 99, 97, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 82, 116, 110, 59, 10, 32, 32, 32, 32, 125, 59, 10, 32, 32, 125, 41, 40, 41, 59, 10, 32, 32, 118, 97, 114, 32, 100, 111, 116, 108, 111, 116, 116, 105, 101, 95, 112, 108, 97, 121, 101, 114, 95, 100, 101, 102, 97, 117, 108, 116, 32, 61, 32, 99, 114, 101, 97, 116, 101, 68, 111, 116, 76, 111, 116, 116, 105, 101, 80, 108, 97, 121, 101, 114, 77, 111, 100, 117, 108, 101, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 99, 111, 114, 101, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 45, 119, 97, 115, 109, 45, 108, 111, 97, 100, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 87, 97, 115, 109, 76, 111, 97, 100, 101, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 34, 82, 101, 110, 100, 101, 114, 101, 114, 76, 111, 97, 100, 101, 114, 32, 105, 115, 32, 97, 32, 115, 116, 97, 116, 105, 99, 32, 99, 108, 97, 115, 115, 32, 97, 110, 100, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 105, 110, 115, 116, 97, 110, 116, 105, 97, 116, 101, 100, 46, 34, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 95, 116, 114, 121, 76, 111, 97, 100, 40, 117, 114, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 95, 95, 97, 115, 121, 110, 99, 40, 116, 104, 105, 115, 44, 32, 110, 117, 108, 108, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 42, 32, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 111, 100, 117, 108, 101, 32, 61, 32, 121, 105, 101, 108, 100, 32, 100, 111, 116, 108, 111, 116, 116, 105, 101, 95, 112, 108, 97, 121, 101, 114, 95, 100, 101, 102, 97, 117, 108, 116, 40, 123, 32, 108, 111, 99, 97, 116, 101, 70, 105, 108, 101, 58, 32, 40, 41, 32, 61, 62, 32, 117, 114, 108, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 47, 42, 42, 10, 32, 32, 32, 32, 32, 42, 32, 84, 114, 105, 101, 115, 32, 116, 111, 32, 108, 111, 97, 100, 32, 116, 104, 101, 32, 87, 65, 83, 77, 32, 109, 111, 100, 117, 108, 101, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 112, 114, 105, 109, 97, 114, 121, 32, 85, 82, 76, 44, 32, 102, 97, 108, 108, 105, 110, 103, 32, 98, 97, 99, 107, 32, 116, 111, 32, 97, 32, 98, 97, 99, 107, 117, 112, 32, 85, 82, 76, 32, 105, 102, 32, 110, 101, 99, 101, 115, 115, 97, 114, 121, 46, 10, 32, 32, 32, 32, 32, 42, 32, 84, 104, 114, 111, 119, 115, 32, 97, 110, 32, 101, 114, 114, 111, 114, 32, 105, 102, 32, 98, 111, 116, 104, 32, 85, 82, 76, 115, 32, 102, 97, 105, 108, 32, 116, 111, 32, 108, 111, 97, 100, 32, 116, 104, 101, 32, 109, 111, 100, 117, 108, 101, 46, 10, 32, 32, 32, 32, 32, 42, 32, 64, 114, 101, 116, 117, 114, 110, 115, 32, 80, 114, 111, 109, 105, 115, 101, 60, 77, 111, 100, 117, 108, 101, 62, 32, 45, 32, 65, 32, 112, 114, 111, 109, 105, 115, 101, 32, 116, 104, 97, 116, 32, 114, 101, 115, 111, 108, 118, 101, 115, 32, 116, 111, 32, 116, 104, 101, 32, 108, 111, 97, 100, 101, 100, 32, 109, 111, 100, 117, 108, 101, 46, 10, 32, 32, 32, 32, 32, 42, 47, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 95, 108, 111, 97, 100, 87, 105, 116, 104, 66, 97, 99, 107, 117, 112, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 95, 95, 97, 115, 121, 110, 99, 40, 116, 104, 105, 115, 44, 32, 110, 117, 108, 108, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 42, 32, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 116, 104, 105, 115, 46, 95, 77, 111, 100, 117, 108, 101, 80, 114, 111, 109, 105, 115, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 77, 111, 100, 117, 108, 101, 80, 114, 111, 109, 105, 115, 101, 32, 61, 32, 116, 104, 105, 115, 46, 95, 116, 114, 121, 76, 111, 97, 100, 40, 116, 104, 105, 115, 46, 95, 119, 97, 115, 109, 85, 82, 76, 41, 46, 99, 97, 116, 99, 104, 40, 40, 105, 110, 105, 116, 105, 97, 108, 69, 114, 114, 111, 114, 41, 32, 61, 62, 32, 95, 95, 97, 115, 121, 110, 99, 40, 116, 104, 105, 115, 44, 32, 110, 117, 108, 108, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 42, 32, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 97, 99, 107, 117, 112, 85, 114, 108, 32, 61, 32, 96, 104, 116, 116, 112, 115, 58, 47, 47, 117, 110, 112, 107, 103, 46, 99, 111, 109, 47, 36, 123, 80, 65, 67, 75, 65, 71, 69, 95, 78, 65, 77, 69, 125, 64, 36, 123, 80, 65, 67, 75, 65, 71, 69, 95, 86, 69, 82, 83, 73, 79, 78, 125, 47, 100, 105, 115, 116, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 45, 112, 108, 97, 121, 101, 114, 46, 119, 97, 115, 109, 96, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 119, 97, 114, 110, 40, 96, 80, 114, 105, 109, 97, 114, 121, 32, 87, 65, 83, 77, 32, 108, 111, 97, 100, 32, 102, 97, 105, 108, 101, 100, 32, 102, 114, 111, 109, 32, 36, 123, 116, 104, 105, 115, 46, 95, 119, 97, 115, 109, 85, 82, 76, 125, 46, 32, 69, 114, 114, 111, 114, 58, 32, 36, 123, 105, 110, 105, 116, 105, 97, 108, 69, 114, 114, 111, 114, 46, 109, 101, 115, 115, 97, 103, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 119, 97, 114, 110, 40, 96, 65, 116, 116, 101, 109, 112, 116, 105, 110, 103, 32, 116, 111, 32, 108, 111, 97, 100, 32, 87, 65, 83, 77, 32, 102, 114, 111, 109, 32, 98, 97, 99, 107, 117, 112, 32, 85, 82, 76, 58, 32, 36, 123, 98, 97, 99, 107, 117, 112, 85, 114, 108, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 121, 105, 101, 108, 100, 32, 116, 104, 105, 115, 46, 95, 116, 114, 121, 76, 111, 97, 100, 40, 98, 97, 99, 107, 117, 112, 85, 114, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 98, 97, 99, 107, 117, 112, 69, 114, 114, 111, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 101, 114, 114, 111, 114, 40, 96, 80, 114, 105, 109, 97, 114, 121, 32, 87, 65, 83, 77, 32, 85, 82, 76, 32, 102, 97, 105, 108, 101, 100, 58, 32, 36, 123, 105, 110, 105, 116, 105, 97, 108, 69, 114, 114, 111, 114, 46, 109, 101, 115, 115, 97, 103, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 101, 114, 114, 111, 114, 40, 96, 66, 97, 99, 107, 117, 112, 32, 87, 65, 83, 77, 32, 85, 82, 76, 32, 102, 97, 105, 108, 101, 100, 58, 32, 36, 123, 98, 97, 99, 107, 117, 112, 69, 114, 114, 111, 114, 46, 109, 101, 115, 115, 97, 103, 101, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 34, 87, 65, 83, 77, 32, 108, 111, 97, 100, 105, 110, 103, 32, 102, 97, 105, 108, 101, 100, 32, 102, 114, 111, 109, 32, 97, 108, 108, 32, 115, 111, 117, 114, 99, 101, 115, 46, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 77, 111, 100, 117, 108, 101, 80, 114, 111, 109, 105, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 47, 42, 42, 10, 32, 32, 32, 32, 32, 42, 32, 80, 117, 98, 108, 105, 99, 32, 109, 101, 116, 104, 111, 100, 32, 116, 111, 32, 108, 111, 97, 100, 32, 116, 104, 101, 32, 87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121, 32, 109, 111, 100, 117, 108, 101, 46, 10, 32, 32, 32, 32, 32, 42, 32, 85, 116, 105, 108, 105, 122, 101, 115, 32, 97, 32, 112, 114, 105, 109, 97, 114, 121, 32, 97, 110, 100, 32, 98, 97, 99, 107, 117, 112, 32, 85, 82, 76, 32, 102, 111, 114, 32, 114, 111, 98, 117, 115, 116, 110, 101, 115, 115, 46, 10, 32, 32, 32, 32, 32, 42, 32, 64, 114, 101, 116, 117, 114, 110, 115, 32, 80, 114, 111, 109, 105, 115, 101, 60, 77, 111, 100, 117, 108, 101, 62, 32, 45, 32, 65, 32, 112, 114, 111, 109, 105, 115, 101, 32, 116, 104, 97, 116, 32, 114, 101, 115, 111, 108, 118, 101, 115, 32, 116, 111, 32, 116, 104, 101, 32, 108, 111, 97, 100, 101, 100, 32, 109, 111, 100, 117, 108, 101, 46, 10, 32, 32, 32, 32, 32, 42, 47, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 108, 111, 97, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 95, 95, 97, 115, 121, 110, 99, 40, 116, 104, 105, 115, 44, 32, 110, 117, 108, 108, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 42, 32, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 87, 105, 116, 104, 66, 97, 99, 107, 117, 112, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 47, 42, 42, 10, 32, 32, 32, 32, 32, 42, 32, 83, 101, 116, 115, 32, 97, 32, 110, 101, 119, 32, 85, 82, 76, 32, 102, 111, 114, 32, 116, 104, 101, 32, 87, 65, 83, 77, 32, 102, 105, 108, 101, 32, 97, 110, 100, 32, 105, 110, 118, 97, 108, 105, 100, 97, 116, 101, 115, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 109, 111, 100, 117, 108, 101, 32, 112, 114, 111, 109, 105, 115, 101, 46, 10, 32, 32, 32, 32, 32, 42, 10, 32, 32, 32, 32, 32, 42, 32, 64, 112, 97, 114, 97, 109, 32, 115, 116, 114, 105, 110, 103, 32, 45, 32, 32, 84, 104, 101, 32, 110, 101, 119, 32, 85, 82, 76, 32, 102, 111, 114, 32, 116, 104, 101, 32, 87, 65, 83, 77, 32, 102, 105, 108, 101, 46, 10, 32, 32, 32, 32, 32, 42, 47, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 115, 101, 116, 87, 97, 115, 109, 85, 114, 108, 40, 117, 114, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 119, 97, 115, 109, 85, 82, 76, 32, 61, 32, 117, 114, 108, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 77, 111, 100, 117, 108, 101, 80, 114, 111, 109, 105, 115, 101, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 47, 47, 32, 101, 115, 108, 105, 110, 116, 45, 100, 105, 115, 97, 98, 108, 101, 45, 110, 101, 120, 116, 45, 108, 105, 110, 101, 32, 64, 116, 121, 112, 101, 115, 99, 114, 105, 112, 116, 45, 101, 115, 108, 105, 110, 116, 47, 110, 97, 109, 105, 110, 103, 45, 99, 111, 110, 118, 101, 110, 116, 105, 111, 110, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 68, 111, 116, 76, 111, 116, 116, 105, 101, 87, 97, 115, 109, 76, 111, 97, 100, 101, 114, 44, 32, 34, 95, 77, 111, 100, 117, 108, 101, 80, 114, 111, 109, 105, 115, 101, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 47, 47, 32, 85, 82, 76, 32, 102, 111, 114, 32, 116, 104, 101, 32, 87, 65, 83, 77, 32, 102, 105, 108, 101, 44, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 101, 100, 32, 117, 115, 105, 110, 103, 32, 112, 97, 99, 107, 97, 103, 101, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 68, 111, 116, 76, 111, 116, 116, 105, 101, 87, 97, 115, 109, 76, 111, 97, 100, 101, 114, 44, 32, 34, 95, 119, 97, 115, 109, 85, 82, 76, 34, 44, 32, 96, 104, 116, 116, 112, 115, 58, 47, 47, 99, 100, 110, 46, 106, 115, 100, 101, 108, 105, 118, 114, 46, 110, 101, 116, 47, 110, 112, 109, 47, 36, 123, 80, 65, 67, 75, 65, 71, 69, 95, 78, 65, 77, 69, 125, 64, 36, 123, 80, 65, 67, 75, 65, 71, 69, 95, 86, 69, 82, 83, 73, 79, 78, 125, 47, 100, 105, 115, 116, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 45, 112, 108, 97, 121, 101, 114, 46, 119, 97, 115, 109, 96, 41, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 101, 118, 101, 110, 116, 45, 109, 97, 110, 97, 103, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 69, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 34, 44, 32, 47, 42, 32, 64, 95, 95, 80, 85, 82, 69, 95, 95, 32, 42, 47, 32, 110, 101, 119, 32, 77, 97, 112, 40, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 108, 101, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 103, 101, 116, 40, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 108, 105, 115, 116, 101, 110, 101, 114, 115, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 47, 42, 32, 64, 95, 95, 80, 85, 82, 69, 95, 95, 32, 42, 47, 32, 110, 101, 119, 32, 83, 101, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 115, 101, 116, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 97, 100, 100, 40, 108, 105, 115, 116, 101, 110, 101, 114, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 103, 101, 116, 40, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 108, 105, 115, 116, 101, 110, 101, 114, 115, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 100, 101, 108, 101, 116, 101, 40, 108, 105, 115, 116, 101, 110, 101, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 115, 105, 122, 101, 32, 61, 61, 61, 32, 48, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 100, 101, 108, 101, 116, 101, 40, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 100, 101, 108, 101, 116, 101, 40, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 100, 105, 115, 112, 97, 116, 99, 104, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 103, 101, 116, 40, 101, 118, 101, 110, 116, 46, 116, 121, 112, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 61, 62, 32, 108, 105, 115, 116, 101, 110, 101, 114, 40, 101, 118, 101, 110, 116, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 109, 111, 118, 101, 65, 108, 108, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 46, 99, 108, 101, 97, 114, 40, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 111, 102, 102, 115, 99, 114, 101, 101, 110, 45, 111, 98, 115, 101, 114, 118, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 95, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 79, 98, 115, 101, 114, 118, 101, 114, 67, 97, 108, 108, 98, 97, 99, 107, 32, 61, 32, 40, 101, 110, 116, 114, 105, 101, 115, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 110, 116, 114, 105, 101, 115, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 101, 110, 116, 114, 121, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 103, 101, 116, 40, 101, 110, 116, 114, 121, 46, 116, 97, 114, 103, 101, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 101, 110, 116, 114, 121, 46, 105, 115, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 110, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 117, 110, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 110, 101, 119, 32, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 79, 98, 115, 101, 114, 118, 101, 114, 40, 105, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 79, 98, 115, 101, 114, 118, 101, 114, 67, 97, 108, 108, 98, 97, 99, 107, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 58, 32, 48, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 44, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 104, 97, 115, 40, 99, 97, 110, 118, 97, 115, 41, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 115, 101, 116, 40, 99, 97, 110, 118, 97, 115, 44, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 100, 101, 108, 101, 116, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 115, 105, 122, 101, 32, 61, 61, 61, 32, 48, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 40, 95, 98, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 98, 46, 100, 105, 115, 99, 111, 110, 110, 101, 99, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 44, 32, 34, 95, 111, 98, 115, 101, 114, 118, 101, 114, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 44, 32, 34, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 34, 44, 32, 47, 42, 32, 64, 95, 95, 80, 85, 82, 69, 95, 95, 32, 42, 47, 32, 110, 101, 119, 32, 77, 97, 112, 40, 41, 41, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 114, 101, 115, 105, 122, 101, 45, 111, 98, 115, 101, 114, 118, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 82, 69, 83, 73, 90, 69, 95, 68, 69, 66, 79, 85, 78, 67, 69, 95, 84, 73, 77, 69, 32, 61, 32, 49, 48, 48, 59, 10, 32, 32, 118, 97, 114, 32, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 99, 108, 97, 115, 115, 32, 123, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 95, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 105, 122, 101, 72, 97, 110, 100, 108, 101, 114, 32, 61, 32, 40, 101, 110, 116, 114, 105, 101, 115, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 110, 116, 114, 105, 101, 115, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 101, 110, 116, 114, 121, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 101, 108, 101, 109, 101, 110, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 103, 101, 116, 40, 101, 110, 116, 114, 121, 46, 116, 97, 114, 103, 101, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 101, 108, 101, 109, 101, 110, 116, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 91, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 44, 32, 116, 105, 109, 101, 111, 117, 116, 93, 32, 61, 32, 101, 108, 101, 109, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 108, 101, 97, 114, 84, 105, 109, 101, 111, 117, 116, 40, 116, 105, 109, 101, 111, 117, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 110, 101, 119, 84, 105, 109, 101, 111, 117, 116, 32, 61, 32, 115, 101, 116, 84, 105, 109, 101, 111, 117, 116, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 46, 114, 101, 115, 105, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 44, 32, 82, 69, 83, 73, 90, 69, 95, 68, 69, 66, 79, 85, 78, 67, 69, 95, 84, 73, 77, 69, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 115, 101, 116, 40, 101, 110, 116, 114, 121, 46, 116, 97, 114, 103, 101, 116, 44, 32, 91, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 44, 32, 110, 101, 119, 84, 105, 109, 101, 111, 117, 116, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 110, 101, 119, 32, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 40, 114, 101, 115, 105, 122, 101, 72, 97, 110, 100, 108, 101, 114, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 44, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 104, 97, 115, 40, 99, 97, 110, 118, 97, 115, 41, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 115, 101, 116, 40, 99, 97, 110, 118, 97, 115, 44, 32, 91, 100, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 44, 32, 48, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 100, 101, 108, 101, 116, 101, 40, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 46, 115, 105, 122, 101, 32, 61, 61, 61, 32, 48, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 40, 95, 98, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 98, 46, 100, 105, 115, 99, 111, 110, 110, 101, 99, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 111, 98, 115, 101, 114, 118, 101, 114, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 44, 32, 34, 95, 111, 98, 115, 101, 114, 118, 101, 114, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 44, 32, 34, 95, 111, 98, 115, 101, 114, 118, 101, 100, 67, 97, 110, 118, 97, 115, 101, 115, 34, 44, 32, 47, 42, 32, 64, 95, 95, 80, 85, 82, 69, 95, 95, 32, 42, 47, 32, 110, 101, 119, 32, 77, 97, 112, 40, 41, 41, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 117, 116, 105, 108, 115, 46, 116, 115, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 115, 72, 101, 120, 67, 111, 108, 111, 114, 40, 99, 111, 108, 111, 114, 41, 32, 123, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 47, 94, 35, 40, 91, 92, 100, 97, 45, 102, 93, 123, 54, 125, 124, 91, 92, 100, 97, 45, 102, 93, 123, 56, 125, 41, 36, 47, 105, 117, 46, 116, 101, 115, 116, 40, 99, 111, 108, 111, 114, 41, 59, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 104, 101, 120, 83, 116, 114, 105, 110, 103, 84, 111, 82, 71, 66, 65, 73, 110, 116, 40, 99, 111, 108, 111, 114, 72, 101, 120, 41, 32, 123, 10, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 115, 72, 101, 120, 67, 111, 108, 111, 114, 40, 99, 111, 108, 111, 114, 72, 101, 120, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 101, 116, 32, 104, 101, 120, 32, 61, 32, 99, 111, 108, 111, 114, 72, 101, 120, 46, 114, 101, 112, 108, 97, 99, 101, 40, 34, 35, 34, 44, 32, 34, 34, 41, 59, 10, 32, 32, 32, 32, 104, 101, 120, 32, 61, 32, 104, 101, 120, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, 54, 32, 63, 32, 96, 36, 123, 104, 101, 120, 125, 102, 102, 96, 32, 58, 32, 104, 101, 120, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 112, 97, 114, 115, 101, 73, 110, 116, 40, 104, 101, 120, 44, 32, 49, 54, 41, 59, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 115, 68, 111, 116, 76, 111, 116, 116, 105, 101, 40, 102, 105, 108, 101, 68, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 105, 102, 32, 40, 102, 105, 108, 101, 68, 97, 116, 97, 46, 98, 121, 116, 101, 76, 101, 110, 103, 116, 104, 32, 60, 32, 52, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 102, 105, 108, 101, 83, 105, 103, 110, 97, 116, 117, 114, 101, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 65, 114, 114, 97, 121, 40, 102, 105, 108, 101, 68, 97, 116, 97, 46, 115, 108, 105, 99, 101, 40, 48, 44, 32, 90, 73, 80, 95, 83, 73, 71, 78, 65, 84, 85, 82, 69, 46, 98, 121, 116, 101, 76, 101, 110, 103, 116, 104, 41, 41, 59, 10, 32, 32, 32, 32, 102, 111, 114, 32, 40, 108, 101, 116, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 90, 73, 80, 95, 83, 73, 71, 78, 65, 84, 85, 82, 69, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 32, 43, 61, 32, 49, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 90, 73, 80, 95, 83, 73, 71, 78, 65, 84, 85, 82, 69, 91, 105, 93, 32, 33, 61, 61, 32, 102, 105, 108, 101, 83, 105, 103, 110, 97, 116, 117, 114, 101, 91, 105, 93, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 117, 101, 59, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 115, 76, 111, 116, 116, 105, 101, 74, 83, 79, 78, 40, 106, 115, 111, 110, 41, 32, 123, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 76, 79, 84, 84, 73, 69, 95, 74, 83, 79, 78, 95, 77, 65, 78, 68, 65, 84, 79, 82, 89, 95, 70, 73, 69, 76, 68, 83, 46, 101, 118, 101, 114, 121, 40, 40, 102, 105, 101, 108, 100, 41, 32, 61, 62, 32, 79, 98, 106, 101, 99, 116, 46, 112, 114, 111, 116, 111, 116, 121, 112, 101, 46, 104, 97, 115, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 46, 99, 97, 108, 108, 40, 106, 115, 111, 110, 44, 32, 102, 105, 101, 108, 100, 41, 41, 59, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 115, 76, 111, 116, 116, 105, 101, 40, 102, 105, 108, 101, 68, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 102, 105, 108, 101, 68, 97, 116, 97, 32, 61, 61, 61, 32, 34, 115, 116, 114, 105, 110, 103, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 115, 76, 111, 116, 116, 105, 101, 74, 83, 79, 78, 40, 74, 83, 79, 78, 46, 112, 97, 114, 115, 101, 40, 102, 105, 108, 101, 68, 97, 116, 97, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 95, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 115, 76, 111, 116, 116, 105, 101, 74, 83, 79, 78, 40, 102, 105, 108, 101, 68, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 103, 101, 116, 68, 101, 102, 97, 117, 108, 116, 68, 80, 82, 40, 41, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 100, 112, 114, 32, 61, 32, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 63, 32, 119, 105, 110, 100, 111, 119, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 58, 32, 49, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 49, 32, 43, 32, 40, 100, 112, 114, 32, 45, 32, 49, 41, 32, 42, 32, 68, 69, 70, 65, 85, 76, 84, 95, 68, 80, 82, 95, 70, 65, 67, 84, 79, 82, 59, 10, 32, 32, 125, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 115, 69, 108, 101, 109, 101, 110, 116, 73, 110, 86, 105, 101, 119, 112, 111, 114, 116, 40, 101, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 99, 116, 32, 61, 32, 101, 108, 101, 109, 101, 110, 116, 46, 103, 101, 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 82, 101, 99, 116, 40, 41, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 114, 101, 99, 116, 46, 116, 111, 112, 32, 62, 61, 32, 48, 32, 38, 38, 32, 114, 101, 99, 116, 46, 108, 101, 102, 116, 32, 62, 61, 32, 48, 32, 38, 38, 32, 114, 101, 99, 116, 46, 98, 111, 116, 116, 111, 109, 32, 60, 61, 32, 40, 119, 105, 110, 100, 111, 119, 46, 105, 110, 110, 101, 114, 72, 101, 105, 103, 104, 116, 32, 124, 124, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 100, 111, 99, 117, 109, 101, 110, 116, 69, 108, 101, 109, 101, 110, 116, 46, 99, 108, 105, 101, 110, 116, 72, 101, 105, 103, 104, 116, 41, 32, 38, 38, 32, 114, 101, 99, 116, 46, 114, 105, 103, 104, 116, 32, 60, 61, 32, 40, 119, 105, 110, 100, 111, 119, 46, 105, 110, 110, 101, 114, 87, 105, 100, 116, 104, 32, 124, 124, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 100, 111, 99, 117, 109, 101, 110, 116, 69, 108, 101, 109, 101, 110, 116, 46, 99, 108, 105, 101, 110, 116, 87, 105, 100, 116, 104, 41, 59, 10, 32, 32, 125, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 77, 111, 100, 101, 32, 61, 32, 40, 109, 111, 100, 101, 44, 32, 109, 111, 100, 117, 108, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 34, 114, 101, 118, 101, 114, 115, 101, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 77, 111, 100, 101, 46, 82, 101, 118, 101, 114, 115, 101, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 34, 98, 111, 117, 110, 99, 101, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 77, 111, 100, 101, 46, 66, 111, 117, 110, 99, 101, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 34, 114, 101, 118, 101, 114, 115, 101, 45, 98, 111, 117, 110, 99, 101, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 77, 111, 100, 101, 46, 82, 101, 118, 101, 114, 115, 101, 66, 111, 117, 110, 99, 101, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 77, 111, 100, 101, 46, 70, 111, 114, 119, 97, 114, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 70, 105, 116, 32, 61, 32, 40, 102, 105, 116, 44, 32, 109, 111, 100, 117, 108, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 105, 102, 32, 40, 102, 105, 116, 32, 61, 61, 61, 32, 34, 99, 111, 110, 116, 97, 105, 110, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 67, 111, 110, 116, 97, 105, 110, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 102, 105, 116, 32, 61, 61, 61, 32, 34, 99, 111, 118, 101, 114, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 67, 111, 118, 101, 114, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 102, 105, 116, 32, 61, 61, 61, 32, 34, 102, 105, 108, 108, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 70, 105, 108, 108, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 102, 105, 116, 32, 61, 61, 61, 32, 34, 102, 105, 116, 45, 104, 101, 105, 103, 104, 116, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 70, 105, 116, 72, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 102, 105, 116, 32, 61, 61, 61, 32, 34, 102, 105, 116, 45, 119, 105, 100, 116, 104, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 70, 105, 116, 87, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 111, 100, 117, 108, 101, 46, 70, 105, 116, 46, 78, 111, 110, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 65, 108, 105, 103, 110, 32, 61, 32, 40, 97, 108, 105, 103, 110, 44, 32, 109, 111, 100, 117, 108, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 99, 111, 114, 101, 65, 108, 105, 103, 110, 32, 61, 32, 110, 101, 119, 32, 109, 111, 100, 117, 108, 101, 46, 86, 101, 99, 116, 111, 114, 70, 108, 111, 97, 116, 40, 41, 59, 10, 32, 32, 32, 32, 99, 111, 114, 101, 65, 108, 105, 103, 110, 46, 112, 117, 115, 104, 95, 98, 97, 99, 107, 40, 97, 108, 105, 103, 110, 91, 48, 93, 41, 59, 10, 32, 32, 32, 32, 99, 111, 114, 101, 65, 108, 105, 103, 110, 46, 112, 117, 115, 104, 95, 98, 97, 99, 107, 40, 97, 108, 105, 103, 110, 91, 49, 93, 41, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 111, 114, 101, 65, 108, 105, 103, 110, 59, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 83, 101, 103, 109, 101, 110, 116, 32, 61, 32, 40, 115, 101, 103, 109, 101, 110, 116, 44, 32, 109, 111, 100, 117, 108, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 99, 111, 114, 101, 115, 101, 103, 109, 101, 110, 116, 32, 61, 32, 110, 101, 119, 32, 109, 111, 100, 117, 108, 101, 46, 86, 101, 99, 116, 111, 114, 70, 108, 111, 97, 116, 40, 41, 59, 10, 32, 32, 32, 32, 105, 102, 32, 40, 115, 101, 103, 109, 101, 110, 116, 46, 108, 101, 110, 103, 116, 104, 32, 33, 61, 61, 32, 50, 41, 32, 114, 101, 116, 117, 114, 110, 32, 99, 111, 114, 101, 115, 101, 103, 109, 101, 110, 116, 59, 10, 32, 32, 32, 32, 99, 111, 114, 101, 115, 101, 103, 109, 101, 110, 116, 46, 112, 117, 115, 104, 95, 98, 97, 99, 107, 40, 115, 101, 103, 109, 101, 110, 116, 91, 48, 93, 41, 59, 10, 32, 32, 32, 32, 99, 111, 114, 101, 115, 101, 103, 109, 101, 110, 116, 46, 112, 117, 115, 104, 95, 98, 97, 99, 107, 40, 115, 101, 103, 109, 101, 110, 116, 91, 49, 93, 41, 59, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 111, 114, 101, 115, 101, 103, 109, 101, 110, 116, 59, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 32, 61, 32, 99, 108, 97, 115, 115, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 40, 99, 111, 110, 102, 105, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 99, 97, 110, 118, 97, 115, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 99, 111, 110, 116, 101, 120, 116, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 34, 44, 32, 123, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 105, 115, 70, 114, 111, 122, 101, 110, 34, 44, 32, 102, 97, 108, 115, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 112, 111, 105, 110, 116, 101, 114, 85, 112, 77, 101, 116, 104, 111, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 112, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 77, 101, 116, 104, 111, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 112, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 77, 101, 116, 104, 111, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 112, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 77, 101, 116, 104, 111, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 116, 104, 105, 115, 44, 32, 34, 95, 112, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 77, 101, 116, 104, 111, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 44, 32, 95, 99, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 99, 97, 110, 118, 97, 115, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 103, 101, 116, 67, 111, 110, 116, 101, 120, 116, 40, 34, 50, 100, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 32, 61, 32, 110, 101, 119, 32, 69, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 32, 61, 32, 110, 101, 119, 32, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 32, 61, 32, 95, 95, 115, 112, 114, 101, 97, 100, 80, 114, 111, 112, 115, 40, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 40, 123, 125, 44, 32, 99, 111, 110, 102, 105, 103, 46, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 41, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 58, 32, 40, 40, 95, 97, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 41, 32, 124, 124, 32, 103, 101, 116, 68, 101, 102, 97, 117, 108, 116, 68, 80, 82, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, 32, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 32, 105, 115, 32, 116, 114, 117, 101, 32, 98, 121, 32, 100, 101, 102, 97, 117, 108, 116, 32, 116, 111, 32, 112, 114, 101, 118, 101, 110, 116, 32, 117, 110, 110, 101, 99, 101, 115, 115, 97, 114, 121, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 119, 104, 101, 110, 32, 116, 104, 101, 32, 99, 97, 110, 118, 97, 115, 32, 105, 115, 32, 111, 102, 102, 115, 99, 114, 101, 101, 110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 58, 32, 40, 95, 99, 32, 61, 32, 40, 95, 98, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 98, 46, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 99, 32, 58, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 87, 97, 115, 109, 76, 111, 97, 100, 101, 114, 46, 108, 111, 97, 100, 40, 41, 46, 116, 104, 101, 110, 40, 40, 109, 111, 100, 117, 108, 101, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 50, 44, 32, 95, 98, 50, 44, 32, 95, 99, 50, 44, 32, 95, 100, 44, 32, 95, 101, 44, 32, 95, 102, 44, 32, 95, 103, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 32, 61, 32, 109, 111, 100, 117, 108, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 32, 110, 101, 119, 32, 109, 111, 100, 117, 108, 101, 46, 68, 111, 116, 76, 111, 116, 116, 105, 101, 80, 108, 97, 121, 101, 114, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 117, 116, 111, 112, 108, 97, 121, 58, 32, 40, 95, 97, 50, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 97, 117, 116, 111, 112, 108, 97, 121, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 97, 50, 32, 58, 32, 102, 97, 108, 115, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 58, 32, 48, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 111, 112, 65, 110, 105, 109, 97, 116, 105, 111, 110, 58, 32, 40, 95, 98, 50, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 108, 111, 111, 112, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 50, 32, 58, 32, 102, 97, 108, 115, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 111, 100, 101, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 77, 111, 100, 101, 40, 40, 95, 99, 50, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 109, 111, 100, 101, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 99, 50, 32, 58, 32, 34, 102, 111, 114, 119, 97, 114, 100, 34, 44, 32, 109, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 103, 109, 101, 110, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 83, 101, 103, 109, 101, 110, 116, 40, 40, 95, 100, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 115, 101, 103, 109, 101, 110, 116, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 100, 32, 58, 32, 91, 93, 44, 32, 109, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 101, 100, 58, 32, 40, 95, 101, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 115, 112, 101, 101, 100, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 101, 32, 58, 32, 49, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 58, 32, 40, 95, 102, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 102, 32, 58, 32, 116, 114, 117, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 58, 32, 40, 95, 103, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 109, 97, 114, 107, 101, 114, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 103, 32, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 121, 111, 117, 116, 58, 32, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 32, 63, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 108, 105, 103, 110, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 65, 108, 105, 103, 110, 40, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 46, 97, 108, 105, 103, 110, 44, 32, 109, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 105, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 70, 105, 116, 40, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 46, 102, 105, 116, 44, 32, 109, 111, 100, 117, 108, 101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 109, 111, 100, 117, 108, 101, 46, 99, 114, 101, 97, 116, 101, 68, 101, 102, 97, 117, 108, 116, 76, 97, 121, 111, 117, 116, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 114, 101, 97, 100, 121, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 111, 110, 102, 105, 103, 46, 100, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 70, 114, 111, 109, 68, 97, 116, 97, 40, 99, 111, 110, 102, 105, 103, 46, 100, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 99, 111, 110, 102, 105, 103, 46, 115, 114, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 70, 114, 111, 109, 83, 114, 99, 40, 99, 111, 110, 102, 105, 103, 46, 115, 114, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 111, 110, 102, 105, 103, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 115, 101, 116, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 40, 99, 111, 110, 102, 105, 103, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 41, 46, 99, 97, 116, 99, 104, 40, 40, 101, 114, 114, 111, 114, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 97, 100, 69, 114, 114, 111, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 114, 114, 111, 114, 58, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 108, 111, 97, 100, 32, 119, 97, 115, 109, 32, 109, 111, 100, 117, 108, 101, 58, 32, 36, 123, 101, 114, 114, 111, 114, 125, 96, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 85, 112, 77, 101, 116, 104, 111, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 85, 112, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 77, 101, 116, 104, 111, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 77, 101, 116, 104, 111, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 77, 101, 116, 104, 111, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 77, 101, 116, 104, 111, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 76, 101, 97, 118, 101, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 109, 101, 115, 115, 97, 103, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 101, 114, 114, 111, 114, 40, 109, 101, 115, 115, 97, 103, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 97, 100, 69, 114, 114, 111, 114, 34, 44, 32, 101, 114, 114, 111, 114, 58, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 109, 101, 115, 115, 97, 103, 101, 41, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 102, 101, 116, 99, 104, 68, 97, 116, 97, 40, 115, 114, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 95, 95, 97, 115, 121, 110, 99, 40, 116, 104, 105, 115, 44, 32, 110, 117, 108, 108, 44, 32, 102, 117, 110, 99, 116, 105, 111, 110, 42, 32, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 121, 105, 101, 108, 100, 32, 102, 101, 116, 99, 104, 40, 115, 114, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 114, 101, 115, 112, 111, 110, 115, 101, 46, 111, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 102, 101, 116, 99, 104, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 100, 97, 116, 97, 32, 102, 114, 111, 109, 32, 85, 82, 76, 58, 32, 36, 123, 115, 114, 99, 125, 46, 32, 36, 123, 114, 101, 115, 112, 111, 110, 115, 101, 46, 115, 116, 97, 116, 117, 115, 125, 58, 32, 36, 123, 114, 101, 115, 112, 111, 110, 115, 101, 46, 115, 116, 97, 116, 117, 115, 84, 101, 120, 116, 125, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 100, 97, 116, 97, 32, 61, 32, 121, 105, 101, 108, 100, 32, 114, 101, 115, 112, 111, 110, 115, 101, 46, 97, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 105, 115, 68, 111, 116, 76, 111, 116, 116, 105, 101, 40, 100, 97, 116, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 100, 97, 116, 97, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 101, 119, 32, 84, 101, 120, 116, 68, 101, 99, 111, 100, 101, 114, 40, 41, 46, 100, 101, 99, 111, 100, 101, 40, 100, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 108, 111, 97, 100, 70, 114, 111, 109, 68, 97, 116, 97, 40, 100, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 119, 105, 100, 116, 104, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 104, 101, 105, 103, 104, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 108, 101, 116, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 100, 97, 116, 97, 32, 61, 61, 61, 32, 34, 115, 116, 114, 105, 110, 103, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 115, 76, 111, 116, 116, 105, 101, 40, 100, 97, 116, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 32, 115, 116, 114, 105, 110, 103, 58, 32, 84, 104, 101, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 115, 116, 114, 105, 110, 103, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 99, 111, 110, 102, 111, 114, 109, 32, 116, 111, 32, 116, 104, 101, 32, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 32, 102, 111, 114, 109, 97, 116, 46, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 68, 97, 116, 97, 40, 100, 97, 116, 97, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 100, 97, 116, 97, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 115, 68, 111, 116, 76, 111, 116, 116, 105, 101, 40, 100, 97, 116, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 58, 32, 84, 104, 101, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 99, 111, 110, 102, 111, 114, 109, 32, 116, 111, 32, 116, 104, 101, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 32, 102, 111, 114, 109, 97, 116, 46, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 68, 111, 116, 76, 111, 116, 116, 105, 101, 68, 97, 116, 97, 40, 100, 97, 116, 97, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 100, 97, 116, 97, 32, 61, 61, 61, 32, 34, 111, 98, 106, 101, 99, 116, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 115, 76, 111, 116, 116, 105, 101, 40, 100, 97, 116, 97, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 32, 111, 98, 106, 101, 99, 116, 58, 32, 84, 104, 101, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 111, 98, 106, 101, 99, 116, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 99, 111, 110, 102, 111, 114, 109, 32, 116, 111, 32, 116, 104, 101, 32, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 32, 102, 111, 114, 109, 97, 116, 46, 34, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 68, 97, 116, 97, 40, 74, 83, 79, 78, 46, 115, 116, 114, 105, 110, 103, 105, 102, 121, 40, 100, 97, 116, 97, 41, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, 85, 110, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 100, 97, 116, 97, 32, 116, 121, 112, 101, 32, 102, 111, 114, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 100, 97, 116, 97, 46, 32, 69, 120, 112, 101, 99, 116, 101, 100, 58, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 32, 115, 116, 114, 105, 110, 103, 32, 40, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 32, 65, 114, 114, 97, 121, 66, 117, 102, 102, 101, 114, 32, 40, 100, 111, 116, 76, 111, 116, 116, 105, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 32, 111, 98, 106, 101, 99, 116, 32, 40, 76, 111, 116, 116, 105, 101, 32, 74, 83, 79, 78, 41, 46, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82, 101, 99, 101, 105, 118, 101, 100, 58, 32, 36, 123, 116, 121, 112, 101, 111, 102, 32, 100, 97, 116, 97, 125, 96, 10, 32, 32, 32, 32, 32, 32, 32, 32, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 111, 97, 100, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 97, 100, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 114, 101, 115, 105, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 102, 114, 97, 109, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 97, 117, 116, 111, 112, 108, 97, 121, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 112, 108, 97, 121, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 105, 115, 80, 108, 97, 121, 105, 110, 103, 40, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 112, 108, 97, 121, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 116, 104, 105, 115, 46, 95, 100, 114, 97, 119, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 111, 108, 101, 46, 101, 114, 114, 111, 114, 40, 34, 115, 111, 109, 101, 116, 104, 105, 110, 103, 32, 119, 101, 110, 116, 32, 119, 114, 111, 110, 103, 44, 32, 116, 104, 101, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 119, 97, 115, 32, 115, 117, 112, 112, 111, 115, 101, 32, 116, 111, 32, 97, 117, 116, 111, 112, 108, 97, 121, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 46, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 44, 32, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 97, 117, 116, 111, 82, 101, 115, 105, 122, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 46, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 44, 32, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 34, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 108, 111, 97, 100, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 100, 97, 116, 97, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 108, 111, 97, 100, 70, 114, 111, 109, 83, 114, 99, 40, 115, 114, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 102, 101, 116, 99, 104, 68, 97, 116, 97, 40, 115, 114, 99, 41, 46, 116, 104, 101, 110, 40, 40, 100, 97, 116, 97, 41, 32, 61, 62, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 70, 114, 111, 109, 68, 97, 116, 97, 40, 100, 97, 116, 97, 41, 41, 46, 99, 97, 116, 99, 104, 40, 40, 101, 114, 114, 111, 114, 41, 32, 61, 62, 32, 116, 104, 105, 115, 46, 95, 100, 105, 115, 112, 97, 116, 99, 104, 69, 114, 114, 111, 114, 40, 96, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 108, 111, 97, 100, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 100, 97, 116, 97, 32, 102, 114, 111, 109, 32, 85, 82, 76, 58, 32, 36, 123, 115, 114, 99, 125, 46, 32, 36, 123, 101, 114, 114, 111, 114, 125, 96, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 97, 99, 116, 105, 118, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 97, 99, 116, 105, 118, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 40, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 97, 99, 116, 105, 118, 101, 84, 104, 101, 109, 101, 73, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 97, 99, 116, 105, 118, 101, 84, 104, 101, 109, 101, 73, 100, 40, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 108, 97, 121, 111, 117, 116, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 97, 121, 111, 117, 116, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 108, 97, 121, 111, 117, 116, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 97, 121, 111, 117, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 108, 105, 103, 110, 58, 32, 91, 108, 97, 121, 111, 117, 116, 46, 97, 108, 105, 103, 110, 46, 103, 101, 116, 40, 48, 41, 44, 32, 108, 97, 121, 111, 117, 116, 46, 97, 108, 105, 103, 110, 46, 103, 101, 116, 40, 49, 41, 93, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 105, 116, 58, 32, 40, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 50, 44, 32, 95, 98, 44, 32, 95, 99, 44, 32, 95, 100, 44, 32, 95, 101, 44, 32, 95, 102, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 119, 105, 116, 99, 104, 32, 40, 108, 97, 121, 111, 117, 116, 46, 102, 105, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 40, 40, 95, 97, 50, 32, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 50, 46, 70, 105, 116, 46, 67, 111, 110, 116, 97, 105, 110, 41, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 99, 111, 110, 116, 97, 105, 110, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 40, 40, 95, 98, 32, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 98, 46, 70, 105, 116, 46, 67, 111, 118, 101, 114, 41, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 99, 111, 118, 101, 114, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 40, 40, 95, 99, 32, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 99, 46, 70, 105, 116, 46, 70, 105, 108, 108, 41, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 102, 105, 108, 108, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 40, 40, 95, 100, 32, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 100, 46, 70, 105, 116, 46, 70, 105, 116, 72, 101, 105, 103, 104, 116, 41, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 102, 105, 116, 45, 104, 101, 105, 103, 104, 116, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 40, 40, 95, 101, 32, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 101, 46, 70, 105, 116, 46, 70, 105, 116, 87, 105, 100, 116, 104, 41, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 102, 105, 116, 45, 119, 105, 100, 116, 104, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97, 115, 101, 32, 40, 40, 95, 102, 32, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 102, 46, 70, 105, 116, 46, 78, 111, 110, 101, 41, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 110, 111, 110, 101, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 102, 97, 117, 108, 116, 58, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 99, 111, 110, 116, 97, 105, 110, 34, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 109, 97, 114, 107, 101, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 114, 107, 101, 114, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 109, 97, 114, 107, 101, 114, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 97, 114, 107, 101, 114, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 109, 97, 110, 105, 102, 101, 115, 116, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 110, 105, 102, 101, 115, 116, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 109, 97, 110, 105, 102, 101, 115, 116, 83, 116, 114, 105, 110, 103, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 33, 109, 97, 110, 105, 102, 101, 115, 116, 41, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 110, 105, 102, 101, 115, 116, 74, 115, 111, 110, 32, 61, 32, 74, 83, 79, 78, 46, 112, 97, 114, 115, 101, 40, 109, 97, 110, 105, 102, 101, 115, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 79, 98, 106, 101, 99, 116, 46, 107, 101, 121, 115, 40, 109, 97, 110, 105, 102, 101, 115, 116, 74, 115, 111, 110, 41, 46, 108, 101, 110, 103, 116, 104, 32, 61, 61, 61, 32, 48, 41, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 109, 97, 110, 105, 102, 101, 115, 116, 74, 115, 111, 110, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 95, 101, 114, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 115, 101, 103, 109, 101, 110, 116, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 101, 103, 109, 101, 110, 116, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 115, 101, 103, 109, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 115, 101, 103, 109, 101, 110, 116, 32, 38, 38, 32, 115, 101, 103, 109, 101, 110, 116, 46, 115, 105, 122, 101, 40, 41, 32, 61, 61, 61, 32, 50, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 115, 101, 103, 109, 101, 110, 116, 46, 103, 101, 116, 40, 48, 41, 44, 32, 115, 101, 103, 109, 101, 110, 116, 46, 103, 101, 116, 40, 49, 41, 93, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 108, 111, 111, 112, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 108, 111, 111, 112, 65, 110, 105, 109, 97, 116, 105, 111, 110, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 109, 111, 100, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 44, 32, 95, 99, 44, 32, 95, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 111, 100, 101, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 109, 111, 100, 101, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 40, 40, 95, 98, 32, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 98, 46, 77, 111, 100, 101, 46, 82, 101, 118, 101, 114, 115, 101, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 114, 101, 118, 101, 114, 115, 101, 34, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 40, 40, 95, 99, 32, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 99, 46, 77, 111, 100, 101, 46, 66, 111, 117, 110, 99, 101, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 98, 111, 117, 110, 99, 101, 34, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 109, 111, 100, 101, 32, 61, 61, 61, 32, 40, 40, 95, 100, 32, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 100, 46, 77, 111, 100, 101, 46, 82, 101, 118, 101, 114, 115, 101, 66, 111, 117, 110, 99, 101, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 114, 101, 118, 101, 114, 115, 101, 45, 98, 111, 117, 110, 99, 101, 34, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 34, 102, 111, 114, 119, 97, 114, 100, 34, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 70, 114, 111, 122, 101, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 105, 115, 70, 114, 111, 122, 101, 110, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 97, 32, 58, 32, 34, 34, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 97, 117, 116, 111, 112, 108, 97, 121, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 97, 117, 116, 111, 112, 108, 97, 121, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 115, 112, 101, 101, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 115, 112, 101, 101, 100, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 82, 101, 97, 100, 121, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 33, 61, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 76, 111, 97, 100, 101, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 105, 115, 76, 111, 97, 100, 101, 100, 40, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 80, 108, 97, 121, 105, 110, 103, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 105, 115, 80, 108, 97, 121, 105, 110, 103, 40, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 80, 97, 117, 115, 101, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 105, 115, 80, 97, 117, 115, 101, 100, 40, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 105, 115, 83, 116, 111, 112, 112, 101, 100, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 105, 115, 83, 116, 111, 112, 112, 101, 100, 40, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 108, 111, 111, 112, 67, 111, 117, 110, 116, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 108, 111, 111, 112, 67, 111, 117, 110, 116, 40, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 116, 111, 116, 97, 108, 70, 114, 97, 109, 101, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 116, 111, 116, 97, 108, 70, 114, 97, 109, 101, 115, 40, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 100, 117, 114, 97, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 100, 117, 114, 97, 116, 105, 111, 110, 40, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 115, 101, 103, 109, 101, 110, 116, 68, 117, 114, 97, 116, 105, 111, 110, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 115, 101, 103, 109, 101, 110, 116, 68, 117, 114, 97, 116, 105, 111, 110, 40, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 48, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 32, 99, 97, 110, 118, 97, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 40, 99, 111, 110, 102, 105, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 44, 32, 95, 99, 44, 32, 95, 100, 44, 32, 95, 101, 44, 32, 95, 102, 44, 32, 95, 103, 44, 32, 95, 104, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 117, 116, 111, 112, 108, 97, 121, 58, 32, 40, 95, 97, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 97, 117, 116, 111, 112, 108, 97, 121, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 97, 32, 58, 32, 102, 97, 108, 115, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 58, 32, 48, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 111, 112, 65, 110, 105, 109, 97, 116, 105, 111, 110, 58, 32, 40, 95, 98, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 108, 111, 111, 112, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 111, 100, 101, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 77, 111, 100, 101, 40, 40, 95, 99, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 109, 111, 100, 101, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 99, 32, 58, 32, 34, 102, 111, 114, 119, 97, 114, 100, 34, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 103, 109, 101, 110, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 83, 101, 103, 109, 101, 110, 116, 40, 40, 95, 100, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 115, 101, 103, 109, 101, 110, 116, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 100, 32, 58, 32, 91, 93, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 101, 100, 58, 32, 40, 95, 101, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 115, 112, 101, 101, 100, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 101, 32, 58, 32, 49, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 58, 32, 40, 95, 102, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 102, 32, 58, 32, 116, 114, 117, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 58, 32, 40, 95, 103, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 109, 97, 114, 107, 101, 114, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 103, 32, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 121, 111, 117, 116, 58, 32, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 32, 63, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 108, 105, 103, 110, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 65, 108, 105, 103, 110, 40, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 46, 97, 108, 105, 103, 110, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 105, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 70, 105, 116, 40, 99, 111, 110, 102, 105, 103, 46, 108, 97, 121, 111, 117, 116, 46, 102, 105, 116, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 58, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 46, 99, 114, 101, 97, 116, 101, 68, 101, 102, 97, 117, 108, 116, 76, 97, 121, 111, 117, 116, 40, 41, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 99, 111, 110, 102, 105, 103, 46, 100, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 70, 114, 111, 109, 68, 97, 116, 97, 40, 99, 111, 110, 102, 105, 103, 46, 100, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 105, 102, 32, 40, 99, 111, 110, 102, 105, 103, 46, 115, 114, 99, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 108, 111, 97, 100, 70, 114, 111, 109, 83, 114, 99, 40, 99, 111, 110, 102, 105, 103, 46, 115, 114, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 115, 101, 116, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 40, 40, 95, 104, 32, 61, 32, 99, 111, 110, 102, 105, 103, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 104, 32, 58, 32, 34, 34, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 114, 101, 110, 100, 101, 114, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 110, 100, 101, 114, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 114, 101, 110, 100, 101, 114, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 117, 102, 102, 101, 114, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 98, 117, 102, 102, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 99, 108, 97, 109, 112, 101, 100, 66, 117, 102, 102, 101, 114, 32, 61, 32, 110, 101, 119, 32, 85, 105, 110, 116, 56, 67, 108, 97, 109, 112, 101, 100, 65, 114, 114, 97, 121, 40, 98, 117, 102, 102, 101, 114, 44, 32, 48, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 32, 42, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 32, 42, 32, 52, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 101, 116, 32, 105, 109, 97, 103, 101, 68, 97, 116, 97, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 73, 109, 97, 103, 101, 68, 97, 116, 97, 32, 61, 61, 61, 32, 34, 117, 110, 100, 101, 102, 105, 110, 101, 100, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 68, 97, 116, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 46, 99, 114, 101, 97, 116, 101, 73, 109, 97, 103, 101, 68, 97, 116, 97, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 68, 97, 116, 97, 46, 100, 97, 116, 97, 46, 115, 101, 116, 40, 99, 108, 97, 109, 112, 101, 100, 66, 117, 102, 102, 101, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 68, 97, 116, 97, 32, 61, 32, 110, 101, 119, 32, 73, 109, 97, 103, 101, 68, 97, 116, 97, 40, 99, 108, 97, 109, 112, 101, 100, 66, 117, 102, 102, 101, 114, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 46, 112, 117, 116, 73, 109, 97, 103, 101, 68, 97, 116, 97, 40, 105, 109, 97, 103, 101, 68, 97, 116, 97, 44, 32, 48, 44, 32, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 114, 101, 110, 100, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 100, 114, 97, 119, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 33, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 105, 115, 80, 108, 97, 121, 105, 110, 103, 40, 41, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 110, 101, 120, 116, 70, 114, 97, 109, 101, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 114, 101, 113, 117, 101, 115, 116, 70, 114, 97, 109, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 117, 112, 100, 97, 116, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 70, 114, 97, 109, 101, 40, 110, 101, 120, 116, 70, 114, 97, 109, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 117, 112, 100, 97, 116, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 102, 114, 97, 109, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 110, 100, 101, 114, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 114, 101, 110, 100, 101, 114, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 105, 115, 67, 111, 109, 112, 108, 101, 116, 101, 40, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 46, 108, 111, 111, 112, 65, 110, 105, 109, 97, 116, 105, 111, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 111, 112, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 111, 112, 67, 111, 117, 110, 116, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 111, 112, 67, 111, 117, 110, 116, 40, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 99, 111, 109, 112, 108, 101, 116, 101, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 116, 104, 105, 115, 46, 95, 100, 114, 97, 119, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 112, 108, 97, 121, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 111, 107, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 112, 108, 97, 121, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 111, 107, 32, 124, 124, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 105, 115, 80, 108, 97, 121, 105, 110, 103, 40, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 105, 115, 70, 114, 111, 122, 101, 110, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 112, 108, 97, 121, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 116, 104, 105, 115, 46, 95, 100, 114, 97, 119, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 32, 38, 38, 32, 33, 105, 115, 69, 108, 101, 109, 101, 110, 116, 73, 110, 86, 105, 101, 119, 112, 111, 114, 116, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 112, 97, 117, 115, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 111, 107, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 112, 97, 117, 115, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 111, 107, 32, 124, 124, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 105, 115, 80, 97, 117, 115, 101, 100, 40, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 112, 97, 117, 115, 101, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 111, 112, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 111, 107, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 116, 111, 112, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 111, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 102, 114, 97, 109, 101, 34, 44, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 115, 116, 111, 112, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 70, 114, 97, 109, 101, 40, 102, 114, 97, 109, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 102, 114, 97, 109, 101, 32, 60, 32, 48, 32, 124, 124, 32, 102, 114, 97, 109, 101, 32, 62, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 116, 111, 116, 97, 108, 70, 114, 97, 109, 101, 115, 40, 41, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 111, 107, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 101, 107, 40, 102, 114, 97, 109, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 111, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 102, 114, 97, 109, 101, 34, 44, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 40, 41, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 83, 112, 101, 101, 100, 40, 115, 112, 101, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 95, 95, 115, 112, 114, 101, 97, 100, 80, 114, 111, 112, 115, 40, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 40, 123, 125, 44, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 41, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 101, 100, 10, 32, 32, 32, 32, 32, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 40, 99, 111, 108, 111, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 115, 116, 121, 108, 101, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 95, 95, 115, 112, 114, 101, 97, 100, 80, 114, 111, 112, 115, 40, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 40, 123, 125, 44, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 41, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 58, 32, 104, 101, 120, 83, 116, 114, 105, 110, 103, 84, 111, 82, 71, 66, 65, 73, 110, 116, 40, 99, 111, 108, 111, 114, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 76, 111, 111, 112, 40, 108, 111, 111, 112, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 95, 95, 115, 112, 114, 101, 97, 100, 80, 114, 111, 112, 115, 40, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 40, 123, 125, 44, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 41, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 111, 112, 65, 110, 105, 109, 97, 116, 105, 111, 110, 58, 32, 108, 111, 111, 112, 10, 32, 32, 32, 32, 32, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 85, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 40, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 95, 95, 115, 112, 114, 101, 97, 100, 80, 114, 111, 112, 115, 40, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 40, 123, 125, 44, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 41, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 10, 32, 32, 32, 32, 32, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 116, 121, 112, 101, 44, 32, 108, 105, 115, 116, 101, 110, 101, 114, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 100, 101, 115, 116, 114, 111, 121, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 100, 101, 108, 101, 116, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 111, 110, 116, 101, 120, 116, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 100, 101, 115, 116, 114, 111, 121, 34, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 109, 111, 118, 101, 65, 108, 108, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 108, 101, 97, 110, 117, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 102, 114, 101, 101, 122, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 46, 99, 97, 110, 99, 101, 108, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 32, 110, 117, 108, 108, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 105, 115, 70, 114, 111, 122, 101, 110, 32, 61, 32, 116, 114, 117, 101, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 102, 114, 101, 101, 122, 101, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 117, 110, 102, 114, 101, 101, 122, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 33, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 97, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 73, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 102, 114, 97, 109, 101, 77, 97, 110, 97, 103, 101, 114, 46, 114, 101, 113, 117, 101, 115, 116, 65, 110, 105, 109, 97, 116, 105, 111, 110, 70, 114, 97, 109, 101, 40, 116, 104, 105, 115, 46, 95, 100, 114, 97, 119, 46, 98, 105, 110, 100, 40, 116, 104, 105, 115, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 105, 115, 70, 114, 111, 122, 101, 110, 32, 61, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 117, 110, 102, 114, 101, 101, 122, 101, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 114, 101, 115, 105, 122, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 124, 124, 32, 33, 116, 104, 105, 115, 46, 105, 115, 76, 111, 97, 100, 101, 100, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 100, 112, 114, 32, 61, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 124, 124, 32, 119, 105, 110, 100, 111, 119, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 124, 124, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 104, 101, 105, 103, 104, 116, 58, 32, 99, 108, 105, 101, 110, 116, 72, 101, 105, 103, 104, 116, 44, 32, 119, 105, 100, 116, 104, 58, 32, 99, 108, 105, 101, 110, 116, 87, 105, 100, 116, 104, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 103, 101, 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 82, 101, 99, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 32, 61, 32, 99, 108, 105, 101, 110, 116, 87, 105, 100, 116, 104, 32, 42, 32, 100, 112, 114, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 32, 61, 32, 99, 108, 105, 101, 110, 116, 72, 101, 105, 103, 104, 116, 32, 42, 32, 100, 112, 114, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 111, 107, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 114, 101, 115, 105, 122, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 111, 107, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 83, 101, 103, 109, 101, 110, 116, 40, 115, 116, 97, 114, 116, 70, 114, 97, 109, 101, 44, 32, 101, 110, 100, 70, 114, 97, 109, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 95, 95, 115, 112, 114, 101, 97, 100, 80, 114, 111, 112, 115, 40, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 40, 123, 125, 44, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 41, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 103, 109, 101, 110, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 83, 101, 103, 109, 101, 110, 116, 40, 91, 115, 116, 97, 114, 116, 70, 114, 97, 109, 101, 44, 32, 101, 110, 100, 70, 114, 97, 109, 101, 93, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 10, 32, 32, 32, 32, 32, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 77, 111, 100, 101, 40, 109, 111, 100, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 95, 95, 115, 112, 114, 101, 97, 100, 80, 114, 111, 112, 115, 40, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 40, 123, 125, 44, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 41, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 111, 100, 101, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 77, 111, 100, 101, 40, 109, 111, 100, 101, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 10, 32, 32, 32, 32, 32, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 82, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 40, 99, 111, 110, 102, 105, 103, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 95, 97, 32, 61, 32, 99, 111, 110, 102, 105, 103, 44, 32, 123, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 44, 32, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 32, 125, 32, 61, 32, 95, 97, 44, 32, 114, 101, 115, 116, 67, 111, 110, 102, 105, 103, 32, 61, 32, 95, 95, 111, 98, 106, 82, 101, 115, 116, 40, 95, 97, 44, 32, 91, 34, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 34, 44, 32, 34, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 34, 93, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 32, 61, 32, 95, 95, 115, 112, 114, 101, 97, 100, 80, 114, 111, 112, 115, 40, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 40, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 40, 123, 125, 44, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 41, 44, 32, 114, 101, 115, 116, 67, 111, 110, 102, 105, 103, 41, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 47, 47, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 105, 115, 32, 97, 32, 115, 112, 101, 99, 105, 97, 108, 32, 99, 97, 115, 101, 44, 32, 105, 116, 32, 115, 104, 111, 117, 108, 100, 32, 98, 101, 32, 115, 101, 116, 32, 116, 111, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 32, 105, 102, 32, 105, 116, 39, 115, 32, 110, 111, 116, 32, 112, 114, 111, 118, 105, 100, 101, 100, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 58, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 124, 124, 32, 103, 101, 116, 68, 101, 102, 97, 117, 108, 116, 68, 80, 82, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 58, 32, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 32, 58, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 97, 117, 116, 111, 82, 101, 115, 105, 122, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 46, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 44, 32, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 97, 110, 118, 97, 115, 82, 101, 115, 105, 122, 101, 79, 98, 115, 101, 114, 118, 101, 114, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 102, 114, 101, 101, 122, 101, 79, 110, 79, 102, 102, 115, 99, 114, 101, 101, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 46, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 44, 32, 116, 104, 105, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 102, 102, 115, 99, 114, 101, 101, 110, 79, 98, 115, 101, 114, 118, 101, 114, 46, 117, 110, 111, 98, 115, 101, 114, 118, 101, 40, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 105, 115, 70, 114, 111, 122, 101, 110, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 117, 110, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 40, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 97, 99, 116, 105, 118, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 40, 41, 32, 61, 61, 61, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 40, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 44, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 111, 97, 100, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 97, 100, 34, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 114, 101, 115, 105, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 101, 118, 101, 110, 116, 77, 97, 110, 97, 103, 101, 114, 46, 100, 105, 115, 112, 97, 116, 99, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 121, 112, 101, 58, 32, 34, 108, 111, 97, 100, 69, 114, 114, 111, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 114, 114, 111, 114, 58, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 58, 36, 123, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 125, 96, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 77, 97, 114, 107, 101, 114, 40, 109, 97, 114, 107, 101, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 95, 95, 115, 112, 114, 101, 97, 100, 80, 114, 111, 112, 115, 40, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 40, 123, 125, 44, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 41, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 10, 32, 32, 32, 32, 32, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 114, 107, 101, 114, 115, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 109, 97, 114, 107, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 109, 97, 114, 107, 101, 114, 115, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 117, 108, 116, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 108, 101, 116, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 109, 97, 114, 107, 101, 114, 115, 46, 115, 105, 122, 101, 40, 41, 59, 32, 105, 32, 43, 61, 32, 49, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 114, 107, 101, 114, 32, 61, 32, 109, 97, 114, 107, 101, 114, 115, 46, 103, 101, 116, 40, 105, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 46, 112, 117, 115, 104, 40, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 58, 32, 109, 97, 114, 107, 101, 114, 46, 110, 97, 109, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 105, 109, 101, 58, 32, 109, 97, 114, 107, 101, 114, 46, 116, 105, 109, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 117, 114, 97, 116, 105, 111, 110, 58, 32, 109, 97, 114, 107, 101, 114, 46, 100, 117, 114, 97, 116, 105, 111, 110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 114, 101, 115, 117, 108, 116, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 84, 104, 101, 109, 101, 40, 116, 104, 101, 109, 101, 73, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 84, 104, 101, 109, 101, 40, 116, 104, 101, 109, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 108, 111, 97, 100, 101, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 84, 104, 101, 109, 101, 68, 97, 116, 97, 40, 116, 104, 101, 109, 101, 68, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 97, 100, 101, 100, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 108, 111, 97, 100, 84, 104, 101, 109, 101, 68, 97, 116, 97, 40, 116, 104, 101, 109, 101, 68, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 108, 111, 97, 100, 101, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 76, 97, 121, 111, 117, 116, 40, 108, 97, 121, 111, 117, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 32, 124, 124, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 67, 111, 110, 102, 105, 103, 40, 95, 95, 115, 112, 114, 101, 97, 100, 80, 114, 111, 112, 115, 40, 95, 95, 115, 112, 114, 101, 97, 100, 86, 97, 108, 117, 101, 115, 40, 123, 125, 44, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 99, 111, 110, 102, 105, 103, 40, 41, 41, 44, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 121, 111, 117, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 108, 105, 103, 110, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 65, 108, 105, 103, 110, 40, 108, 97, 121, 111, 117, 116, 46, 97, 108, 105, 103, 110, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 105, 116, 58, 32, 99, 114, 101, 97, 116, 101, 67, 111, 114, 101, 70, 105, 116, 40, 108, 97, 121, 111, 117, 116, 46, 102, 105, 116, 44, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 41, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 86, 105, 101, 119, 112, 111, 114, 116, 40, 120, 44, 32, 121, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 61, 61, 61, 32, 110, 117, 108, 108, 41, 32, 114, 101, 116, 117, 114, 110, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 101, 116, 86, 105, 101, 119, 112, 111, 114, 116, 40, 120, 44, 32, 121, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 116, 105, 99, 32, 115, 101, 116, 87, 97, 115, 109, 85, 114, 108, 40, 117, 114, 108, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 87, 97, 115, 109, 76, 111, 97, 100, 101, 114, 46, 115, 101, 116, 87, 97, 115, 109, 85, 114, 108, 40, 117, 114, 108, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 73, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 73, 100, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 97, 114, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 97, 114, 116, 101, 100, 32, 61, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 115, 116, 97, 114, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 115, 116, 97, 114, 116, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 115, 101, 116, 117, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 115, 116, 97, 114, 116, 101, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 116, 111, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 111, 112, 112, 101, 100, 32, 61, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 115, 116, 111, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 115, 116, 111, 112, 112, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 108, 101, 97, 110, 117, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 115, 116, 111, 112, 112, 101, 100, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 99, 116, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 103, 101, 116, 66, 111, 117, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 82, 101, 99, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 99, 97, 108, 101, 88, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 32, 47, 32, 114, 101, 99, 116, 46, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 99, 97, 108, 101, 89, 32, 61, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 32, 47, 32, 114, 101, 99, 116, 46, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 61, 32, 116, 104, 105, 115, 46, 95, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 124, 124, 32, 119, 105, 110, 100, 111, 119, 46, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 32, 124, 124, 32, 49, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 120, 32, 61, 32, 40, 101, 118, 101, 110, 116, 46, 99, 108, 105, 101, 110, 116, 88, 32, 45, 32, 114, 101, 99, 116, 46, 108, 101, 102, 116, 41, 32, 42, 32, 115, 99, 97, 108, 101, 88, 32, 47, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 121, 32, 61, 32, 40, 101, 118, 101, 110, 116, 46, 99, 108, 105, 101, 110, 116, 89, 32, 45, 32, 114, 101, 99, 116, 46, 116, 111, 112, 41, 32, 42, 32, 115, 99, 97, 108, 101, 89, 32, 47, 32, 100, 101, 118, 105, 99, 101, 80, 105, 120, 101, 108, 82, 97, 116, 105, 111, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 120, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 121, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 85, 112, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 120, 44, 32, 121, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 85, 112, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 120, 44, 32, 121, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 120, 44, 32, 121, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 120, 44, 32, 121, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 111, 110, 80, 111, 105, 110, 116, 101, 114, 76, 101, 97, 118, 101, 40, 101, 118, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 120, 44, 32, 121, 32, 125, 32, 61, 32, 116, 104, 105, 115, 46, 95, 103, 101, 116, 80, 111, 105, 110, 116, 101, 114, 80, 111, 115, 105, 116, 105, 111, 110, 40, 101, 118, 101, 110, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 85, 112, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 85, 112, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 103, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 114, 101, 116, 117, 114, 110, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 86, 101, 99, 116, 111, 114, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 46, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 70, 114, 97, 109, 101, 119, 111, 114, 107, 83, 101, 116, 117, 112, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 91, 93, 59, 10, 32, 32, 32, 32, 32, 32, 102, 111, 114, 32, 40, 108, 101, 116, 32, 105, 32, 61, 32, 48, 59, 32, 105, 32, 60, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 86, 101, 99, 116, 111, 114, 46, 115, 105, 122, 101, 40, 41, 59, 32, 105, 32, 43, 61, 32, 49, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 112, 117, 115, 104, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 86, 101, 99, 116, 111, 114, 46, 103, 101, 116, 40, 105, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 115, 101, 116, 117, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 32, 33, 61, 61, 32, 110, 117, 108, 108, 32, 38, 38, 32, 116, 104, 105, 115, 46, 105, 115, 76, 111, 97, 100, 101, 100, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 105, 115, 116, 101, 110, 101, 114, 115, 32, 61, 32, 116, 104, 105, 115, 46, 103, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 80, 111, 105, 110, 116, 101, 114, 85, 112, 34, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 117, 112, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 85, 112, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 34, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 100, 111, 119, 110, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 34, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 109, 111, 118, 101, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 34, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 101, 110, 116, 101, 114, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 108, 105, 115, 116, 101, 110, 101, 114, 115, 46, 105, 110, 99, 108, 117, 100, 101, 115, 40, 34, 80, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 34, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 95, 99, 108, 101, 97, 110, 117, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 73, 83, 95, 66, 82, 79, 87, 83, 69, 82, 32, 38, 38, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 32, 105, 110, 115, 116, 97, 110, 99, 101, 111, 102, 32, 72, 84, 77, 76, 67, 97, 110, 118, 97, 115, 69, 108, 101, 109, 101, 110, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 117, 112, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 85, 112, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 100, 111, 119, 110, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 109, 111, 118, 101, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 101, 110, 116, 101, 114, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 105, 115, 46, 95, 99, 97, 110, 118, 97, 115, 46, 114, 101, 109, 111, 118, 101, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 112, 111, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 34, 44, 32, 116, 104, 105, 115, 46, 95, 112, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 77, 101, 116, 104, 111, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 83, 105, 122, 101, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 44, 32, 95, 99, 44, 32, 95, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 119, 105, 100, 116, 104, 32, 61, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 97, 110, 105, 109, 97, 116, 105, 111, 110, 83, 105, 122, 101, 40, 41, 46, 103, 101, 116, 40, 48, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 104, 101, 105, 103, 104, 116, 32, 61, 32, 40, 95, 100, 32, 61, 32, 40, 95, 99, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 99, 46, 97, 110, 105, 109, 97, 116, 105, 111, 110, 83, 105, 122, 101, 40, 41, 46, 103, 101, 116, 40, 49, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 100, 32, 58, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 119, 105, 100, 116, 104, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 104, 101, 105, 103, 104, 116, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 66, 111, 111, 108, 101, 97, 110, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 66, 111, 111, 108, 101, 97, 110, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 78, 117, 109, 101, 114, 105, 99, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 78, 117, 109, 101, 114, 105, 99, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 83, 116, 114, 105, 110, 103, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 44, 32, 95, 98, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 40, 95, 98, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 115, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 83, 116, 114, 105, 110, 103, 67, 111, 110, 116, 101, 120, 116, 40, 110, 97, 109, 101, 44, 32, 118, 97, 108, 117, 101, 41, 41, 32, 33, 61, 32, 110, 117, 108, 108, 32, 63, 32, 95, 98, 32, 58, 32, 102, 97, 108, 115, 101, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 47, 42, 42, 10, 32, 32, 32, 32, 32, 42, 32, 71, 101, 116, 32, 116, 104, 101, 32, 98, 111, 117, 110, 100, 115, 32, 111, 102, 32, 97, 32, 108, 97, 121, 101, 114, 32, 98, 121, 32, 105, 116, 115, 32, 110, 97, 109, 101, 10, 32, 32, 32, 32, 32, 42, 32, 64, 112, 97, 114, 97, 109, 32, 108, 97, 121, 101, 114, 78, 97, 109, 101, 32, 45, 32, 84, 104, 101, 32, 110, 97, 109, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 121, 101, 114, 10, 32, 32, 32, 32, 32, 42, 32, 64, 114, 101, 116, 117, 114, 110, 115, 32, 84, 104, 101, 32, 98, 111, 117, 110, 100, 115, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 121, 101, 114, 10, 32, 32, 32, 32, 32, 42, 10, 32, 32, 32, 32, 32, 42, 32, 64, 101, 120, 97, 109, 112, 108, 101, 10, 32, 32, 32, 32, 32, 42, 32, 96, 96, 96, 116, 121, 112, 101, 115, 99, 114, 105, 112, 116, 10, 32, 32, 32, 32, 32, 42, 32, 47, 47, 32, 68, 114, 97, 119, 32, 97, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 97, 114, 111, 117, 110, 100, 32, 116, 104, 101, 32, 108, 97, 121, 101, 114, 32, 39, 76, 97, 121, 101, 114, 32, 49, 39, 10, 32, 32, 32, 32, 32, 42, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 39, 114, 101, 110, 100, 101, 114, 39, 44, 32, 40, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 42, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 111, 117, 110, 100, 105, 110, 103, 66, 111, 120, 32, 61, 32, 100, 111, 116, 76, 111, 116, 116, 105, 101, 46, 103, 101, 116, 76, 97, 121, 101, 114, 66, 111, 117, 110, 100, 105, 110, 103, 66, 111, 120, 40, 39, 76, 97, 121, 101, 114, 32, 49, 39, 41, 59, 10, 32, 32, 32, 32, 32, 42, 10, 32, 32, 32, 32, 32, 42, 32, 32, 32, 105, 102, 32, 40, 98, 111, 117, 110, 100, 105, 110, 103, 66, 111, 120, 41, 32, 123, 10, 32, 32, 32, 32, 32, 42, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 123, 32, 120, 44, 32, 121, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 32, 125, 32, 61, 32, 98, 111, 117, 110, 100, 105, 110, 103, 66, 111, 120, 59, 10, 32, 32, 32, 32, 32, 42, 32, 32, 32, 32, 32, 99, 111, 110, 116, 101, 120, 116, 46, 115, 116, 114, 111, 107, 101, 82, 101, 99, 116, 40, 120, 44, 32, 121, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 32, 42, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 42, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 42, 32, 96, 96, 96, 10, 32, 32, 32, 32, 32, 42, 47, 10, 32, 32, 32, 32, 103, 101, 116, 76, 97, 121, 101, 114, 66, 111, 117, 110, 100, 105, 110, 103, 66, 111, 120, 40, 108, 97, 121, 101, 114, 78, 97, 109, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 95, 97, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 111, 117, 110, 100, 115, 32, 61, 32, 40, 95, 97, 32, 61, 32, 116, 104, 105, 115, 46, 95, 100, 111, 116, 76, 111, 116, 116, 105, 101, 67, 111, 114, 101, 41, 32, 61, 61, 32, 110, 117, 108, 108, 32, 63, 32, 118, 111, 105, 100, 32, 48, 32, 58, 32, 95, 97, 46, 103, 101, 116, 76, 97, 121, 101, 114, 66, 111, 117, 110, 100, 115, 40, 108, 97, 121, 101, 114, 78, 97, 109, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 98, 111, 117, 110, 100, 115, 41, 32, 114, 101, 116, 117, 114, 110, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 98, 111, 117, 110, 100, 115, 46, 115, 105, 122, 101, 40, 41, 32, 33, 61, 61, 32, 52, 41, 32, 114, 101, 116, 117, 114, 110, 32, 118, 111, 105, 100, 32, 48, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 120, 32, 61, 32, 98, 111, 117, 110, 100, 115, 46, 103, 101, 116, 40, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 121, 32, 61, 32, 98, 111, 117, 110, 100, 115, 46, 103, 101, 116, 40, 49, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 119, 105, 100, 116, 104, 32, 61, 32, 98, 111, 117, 110, 100, 115, 46, 103, 101, 116, 40, 50, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 104, 101, 105, 103, 104, 116, 32, 61, 32, 98, 111, 117, 110, 100, 115, 46, 103, 101, 116, 40, 51, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 120, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 121, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 119, 105, 100, 116, 104, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 104, 101, 105, 103, 104, 116, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 95, 95, 112, 117, 98, 108, 105, 99, 70, 105, 101, 108, 100, 40, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 44, 32, 34, 95, 119, 97, 115, 109, 77, 111, 100, 117, 108, 101, 34, 44, 32, 110, 117, 108, 108, 41, 59, 10, 32, 32, 118, 97, 114, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 32, 61, 32, 95, 68, 111, 116, 76, 111, 116, 116, 105, 101, 59, 10, 10, 32, 32, 47, 47, 32, 115, 114, 99, 47, 119, 111, 114, 107, 101, 114, 47, 100, 111, 116, 108, 111, 116, 116, 105, 101, 46, 119, 111, 114, 107, 101, 114, 46, 116, 115, 10, 32, 32, 118, 97, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 32, 61, 32, 47, 42, 32, 64, 95, 95, 80, 85, 82, 69, 95, 95, 32, 42, 47, 32, 110, 101, 119, 32, 77, 97, 112, 40, 41, 59, 10, 32, 32, 118, 97, 114, 32, 101, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 77, 97, 112, 32, 61, 32, 123, 10, 32, 32, 32, 32, 114, 101, 97, 100, 121, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 82, 101, 97, 100, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 99, 111, 109, 112, 108, 101, 116, 101, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 67, 111, 109, 112, 108, 101, 116, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 97, 100, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 76, 111, 97, 100, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 108, 111, 97, 100, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 69, 114, 114, 111, 114, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 97, 100, 69, 114, 114, 111, 114, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 76, 111, 97, 100, 69, 114, 114, 111, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 108, 111, 97, 100, 69, 114, 114, 111, 114, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 111, 112, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 111, 112, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 76, 111, 111, 112, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 108, 111, 111, 112, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 108, 97, 121, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 112, 108, 97, 121, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 80, 108, 97, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 112, 108, 97, 121, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 97, 117, 115, 101, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 112, 97, 117, 115, 101, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 80, 97, 117, 115, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 112, 97, 117, 115, 101, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 116, 111, 112, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 111, 112, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 83, 116, 111, 112, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 115, 116, 111, 112, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 102, 114, 97, 109, 101, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 102, 114, 97, 109, 101, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 70, 114, 97, 109, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 102, 114, 97, 109, 101, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 114, 101, 110, 100, 101, 114, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 110, 100, 101, 114, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 82, 101, 110, 100, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 114, 101, 110, 100, 101, 114, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 102, 114, 101, 101, 122, 101, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 102, 114, 101, 101, 122, 101, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 70, 114, 101, 101, 122, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 102, 114, 101, 101, 122, 101, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 117, 110, 102, 114, 101, 101, 122, 101, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 117, 110, 102, 114, 101, 101, 122, 101, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 85, 110, 102, 114, 101, 101, 122, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 117, 110, 102, 114, 101, 101, 122, 101, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 100, 101, 115, 116, 114, 111, 121, 58, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 32, 61, 62, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 100, 101, 115, 116, 114, 111, 121, 69, 118, 101, 110, 116, 32, 61, 32, 101, 118, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 34, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 34, 111, 110, 68, 101, 115, 116, 114, 111, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 58, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 58, 32, 100, 101, 115, 116, 114, 111, 121, 69, 118, 101, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 61, 32, 123, 10, 32, 32, 32, 32, 103, 101, 116, 68, 111, 116, 76, 111, 116, 116, 105, 101, 73, 110, 115, 116, 97, 110, 99, 101, 83, 116, 97, 116, 101, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 97, 116, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 76, 111, 97, 100, 101, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 76, 111, 97, 100, 101, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 80, 97, 117, 115, 101, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 80, 97, 117, 115, 101, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 80, 108, 97, 121, 105, 110, 103, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 80, 108, 97, 121, 105, 110, 103, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 83, 116, 111, 112, 112, 101, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 83, 116, 111, 112, 112, 101, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 70, 114, 111, 122, 101, 110, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 70, 114, 111, 122, 101, 110, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 111, 111, 112, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 111, 112, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 111, 100, 101, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 109, 111, 100, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 101, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 112, 101, 101, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 99, 117, 114, 114, 101, 110, 116, 70, 114, 97, 109, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 116, 97, 108, 70, 114, 97, 109, 101, 115, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 116, 111, 116, 97, 108, 70, 114, 97, 109, 101, 115, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 100, 117, 114, 97, 116, 105, 111, 110, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 100, 117, 114, 97, 116, 105, 111, 110, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 109, 97, 114, 107, 101, 114, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 114, 107, 101, 114, 115, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 109, 97, 114, 107, 101, 114, 115, 40, 41, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 99, 116, 105, 118, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 97, 99, 116, 105, 118, 101, 65, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 99, 116, 105, 118, 101, 84, 104, 101, 109, 101, 73, 100, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 97, 99, 116, 105, 118, 101, 84, 104, 101, 109, 101, 73, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 97, 117, 116, 111, 112, 108, 97, 121, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 97, 117, 116, 111, 112, 108, 97, 121, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 103, 109, 101, 110, 116, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 103, 109, 101, 110, 116, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 108, 97, 121, 111, 117, 116, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 97, 121, 111, 117, 116, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 101, 103, 109, 101, 110, 116, 68, 117, 114, 97, 116, 105, 111, 110, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 103, 109, 101, 110, 116, 68, 117, 114, 97, 116, 105, 111, 110, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 115, 82, 101, 97, 100, 121, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 105, 115, 82, 101, 97, 100, 121, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 97, 110, 105, 102, 101, 115, 116, 58, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 109, 97, 110, 105, 102, 101, 115, 116, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 116, 97, 116, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 76, 97, 121, 111, 117, 116, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 97, 121, 111, 117, 116, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 108, 97, 121, 111, 117, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 76, 97, 121, 111, 117, 116, 40, 108, 97, 121, 111, 117, 116, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 99, 101, 115, 115, 58, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 103, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 103, 101, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 76, 105, 115, 116, 101, 110, 101, 114, 115, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 69, 118, 101, 110, 116, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 120, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 120, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 121, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 121, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 68, 111, 119, 110, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 69, 118, 101, 110, 116, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 120, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 120, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 121, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 121, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 69, 110, 116, 101, 114, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 69, 118, 101, 110, 116, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 120, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 120, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 121, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 121, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 69, 120, 105, 116, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 69, 118, 101, 110, 116, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 120, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 120, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 121, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 121, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 77, 111, 118, 101, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 85, 112, 69, 118, 101, 110, 116, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 120, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 120, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 121, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 121, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 112, 111, 115, 116, 80, 111, 105, 110, 116, 101, 114, 85, 112, 69, 118, 101, 110, 116, 40, 120, 44, 32, 121, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 116, 97, 114, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 116, 97, 114, 116, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 116, 111, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 116, 111, 112, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 83, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 40, 115, 116, 97, 116, 101, 77, 97, 99, 104, 105, 110, 101, 68, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 99, 114, 101, 97, 116, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 99, 111, 110, 102, 105, 103, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 99, 111, 110, 102, 105, 103, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 119, 105, 100, 116, 104, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 104, 101, 105, 103, 104, 116, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 104, 97, 115, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 97, 108, 114, 101, 97, 100, 121, 32, 101, 120, 105, 115, 116, 115, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 110, 101, 119, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 40, 99, 111, 110, 102, 105, 103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 32, 61, 32, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 32, 61, 32, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 115, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 44, 32, 105, 110, 115, 116, 97, 110, 99, 101, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 101, 118, 101, 110, 116, 115, 32, 61, 32, 91, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 99, 111, 109, 112, 108, 101, 116, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 102, 114, 97, 109, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 108, 111, 97, 100, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 108, 111, 97, 100, 69, 114, 114, 111, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 108, 111, 111, 112, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 112, 97, 117, 115, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 112, 108, 97, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 115, 116, 111, 112, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 100, 101, 115, 116, 114, 111, 121, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 102, 114, 101, 101, 122, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 117, 110, 102, 114, 101, 101, 122, 101, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 114, 101, 110, 100, 101, 114, 34, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 114, 101, 97, 100, 121, 34, 10, 32, 32, 32, 32, 32, 32, 93, 59, 10, 32, 32, 32, 32, 32, 32, 101, 118, 101, 110, 116, 115, 46, 102, 111, 114, 69, 97, 99, 104, 40, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 101, 118, 101, 110, 116, 44, 32, 101, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 77, 97, 112, 91, 101, 118, 101, 110, 116, 93, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 100, 101, 115, 116, 114, 111, 121, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 114, 101, 116, 117, 114, 110, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 100, 101, 115, 116, 114, 111, 121, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 100, 101, 108, 101, 116, 101, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 102, 114, 101, 101, 122, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 99, 111, 110, 102, 105, 103, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 99, 111, 110, 102, 105, 103, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 40, 99, 111, 110, 102, 105, 103, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 65, 110, 105, 109, 97, 116, 105, 111, 110, 40, 97, 110, 105, 109, 97, 116, 105, 111, 110, 73, 100, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 84, 104, 101, 109, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 116, 104, 101, 109, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 116, 104, 101, 109, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 84, 104, 101, 109, 101, 40, 116, 104, 101, 109, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 108, 111, 97, 100, 84, 104, 101, 109, 101, 68, 97, 116, 97, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 116, 104, 101, 109, 101, 68, 97, 116, 97, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 116, 104, 101, 109, 101, 68, 97, 116, 97, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 108, 111, 97, 100, 84, 104, 101, 109, 101, 68, 97, 116, 97, 40, 116, 104, 101, 109, 101, 68, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 97, 117, 115, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 112, 97, 117, 115, 101, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 112, 108, 97, 121, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 112, 108, 97, 121, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 114, 101, 115, 105, 122, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 119, 105, 100, 116, 104, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 104, 101, 105, 103, 104, 116, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 99, 97, 110, 118, 97, 115, 46, 104, 101, 105, 103, 104, 116, 32, 61, 32, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 99, 97, 110, 118, 97, 115, 46, 119, 105, 100, 116, 104, 32, 61, 32, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 114, 101, 115, 105, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 99, 101, 115, 115, 58, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 40, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 67, 111, 108, 111, 114, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 70, 114, 97, 109, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 102, 114, 97, 109, 101, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 102, 114, 97, 109, 101, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 70, 114, 97, 109, 101, 40, 102, 114, 97, 109, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 77, 111, 100, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 111, 100, 101, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 109, 111, 100, 101, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 77, 111, 100, 101, 40, 109, 111, 100, 101, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 82, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 82, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 40, 114, 101, 110, 100, 101, 114, 67, 111, 110, 102, 105, 103, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 83, 101, 103, 109, 101, 110, 116, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 101, 103, 109, 101, 110, 116, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 115, 101, 103, 109, 101, 110, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 83, 101, 103, 109, 101, 110, 116, 40, 115, 101, 103, 109, 101, 110, 116, 91, 48, 93, 44, 32, 115, 101, 103, 109, 101, 110, 116, 91, 49, 93, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 83, 112, 101, 101, 100, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 115, 112, 101, 101, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 115, 112, 101, 101, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 83, 112, 101, 101, 100, 40, 115, 112, 101, 101, 100, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 85, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 85, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 40, 117, 115, 101, 70, 114, 97, 109, 101, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 87, 97, 115, 109, 85, 114, 108, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 68, 111, 116, 76, 111, 116, 116, 105, 101, 46, 115, 101, 116, 87, 97, 115, 109, 85, 114, 108, 40, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 117, 114, 108, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 116, 111, 112, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 116, 111, 112, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 117, 110, 102, 114, 101, 101, 122, 101, 58, 32, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 117, 110, 102, 114, 101, 101, 122, 101, 40, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 86, 105, 101, 119, 112, 111, 114, 116, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 120, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 120, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 121, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 121, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 119, 105, 100, 116, 104, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 119, 105, 100, 116, 104, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 104, 101, 105, 103, 104, 116, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 104, 101, 105, 103, 104, 116, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 86, 105, 101, 119, 112, 111, 114, 116, 40, 120, 44, 32, 121, 44, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 41, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 77, 97, 114, 107, 101, 114, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 97, 114, 107, 101, 114, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 109, 97, 114, 107, 101, 114, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 77, 97, 114, 107, 101, 114, 40, 109, 97, 114, 107, 101, 114, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 99, 101, 115, 115, 58, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 44, 10, 32, 32, 32, 32, 115, 101, 116, 76, 111, 111, 112, 40, 114, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 108, 111, 111, 112, 32, 61, 32, 114, 101, 113, 117, 101, 115, 116, 46, 112, 97, 114, 97, 109, 115, 46, 108, 111, 111, 112, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 61, 32, 105, 110, 115, 116, 97, 110, 99, 101, 115, 77, 97, 112, 46, 103, 101, 116, 40, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 41, 59, 10, 32, 32, 32, 32, 32, 32, 105, 102, 32, 40, 33, 105, 110, 115, 116, 97, 110, 99, 101, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 73, 110, 115, 116, 97, 110, 99, 101, 32, 119, 105, 116, 104, 32, 105, 100, 32, 36, 123, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 125, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 46, 96, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 99, 101, 46, 115, 101, 116, 76, 111, 111, 112, 40, 108, 111, 111, 112, 41, 59, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 99, 101, 115, 115, 58, 32, 116, 114, 117, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 101, 120, 101, 99, 117, 116, 101, 67, 111, 109, 109, 97, 110, 100, 40, 114, 112, 99, 82, 101, 113, 117, 101, 115, 116, 41, 32, 123, 10, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 109, 101, 116, 104, 111, 100, 32, 61, 32, 114, 112, 99, 82, 101, 113, 117, 101, 115, 116, 46, 109, 101, 116, 104, 111, 100, 59, 10, 32, 32, 32, 32, 105, 102, 32, 40, 116, 121, 112, 101, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 91, 109, 101, 116, 104, 111, 100, 93, 32, 61, 61, 61, 32, 34, 102, 117, 110, 99, 116, 105, 111, 110, 34, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 91, 109, 101, 116, 104, 111, 100, 93, 40, 114, 112, 99, 82, 101, 113, 117, 101, 115, 116, 41, 59, 10, 32, 32, 32, 32, 125, 32, 101, 108, 115, 101, 32, 123, 10, 32, 32, 32, 32, 32, 32, 116, 104, 114, 111, 119, 32, 110, 101, 119, 32, 69, 114, 114, 111, 114, 40, 96, 77, 101, 116, 104, 111, 100, 32, 36, 123, 109, 101, 116, 104, 111, 100, 125, 32, 105, 115, 32, 110, 111, 116, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 101, 100, 32, 105, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 46, 96, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 10, 32, 32, 115, 101, 108, 102, 46, 111, 110, 109, 101, 115, 115, 97, 103, 101, 32, 61, 32, 40, 101, 118, 101, 110, 116, 41, 32, 61, 62, 32, 123, 10, 32, 32, 32, 32, 116, 114, 121, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 117, 108, 116, 32, 61, 32, 101, 120, 101, 99, 117, 116, 101, 67, 111, 109, 109, 97, 110, 100, 40, 101, 118, 101, 110, 116, 46, 100, 97, 116, 97, 41, 59, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 114, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 101, 118, 101, 110, 116, 46, 100, 97, 116, 97, 46, 105, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 101, 118, 101, 110, 116, 46, 100, 97, 116, 97, 46, 109, 101, 116, 104, 111, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 114, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 32, 99, 97, 116, 99, 104, 32, 40, 101, 114, 114, 111, 114, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 99, 111, 110, 115, 116, 32, 101, 114, 114, 111, 114, 82, 101, 115, 112, 111, 110, 115, 101, 32, 61, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 105, 100, 58, 32, 101, 118, 101, 110, 116, 46, 100, 97, 116, 97, 46, 105, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 109, 101, 116, 104, 111, 100, 58, 32, 101, 118, 101, 110, 116, 46, 100, 97, 116, 97, 46, 109, 101, 116, 104, 111, 100, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 101, 114, 114, 111, 114, 58, 32, 101, 114, 114, 111, 114, 46, 109, 101, 115, 115, 97, 103, 101, 10, 32, 32, 32, 32, 32, 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 115, 101, 108, 102, 46, 112, 111, 115, 116, 77, 101, 115, 115, 97, 103, 101, 40, 101, 114, 114, 111, 114, 82, 101, 115, 112, 111, 110, 115, 101, 41, 59, 10, 32, 32, 32, 32, 125, 10, 32, 32, 125, 59, 10, 32, 32, 118, 97, 114, 32, 100, 117, 109, 109, 121, 32, 61, 32, 34, 34, 59, 10, 32, 32, 118, 97, 114, 32, 100, 111, 116, 108, 111, 116, 116, 105, 101, 95, 119, 111, 114, 107, 101, 114, 95, 100, 101, 102, 97, 117, 108, 116, 32, 61, 32, 100, 117, 109, 109, 121, 59, 10, 125, 41, 40, 41, 59, 10])], { type: \"application/javascript\" }), i = URL.createObjectURL(n), d = new Worker(i);\n return URL.revokeObjectURL(i), d;\n }\n};\nvar p3 = M22;\nvar H1 = class {\n constructor() {\n _(this, \"_workers\", /* @__PURE__ */ new Map());\n _(this, \"_animationWorkerMap\", /* @__PURE__ */ new Map());\n }\n getWorker(n) {\n return this._workers.has(n) || this._workers.set(n, new p3()), this._workers.get(n);\n }\n assignAnimationToWorker(n, i) {\n this._animationWorkerMap.set(n, i);\n }\n unassignAnimationFromWorker(n) {\n this._animationWorkerMap.delete(n);\n }\n sendMessage(n, i, d) {\n this.getWorker(n).postMessage(i, d || []);\n }\n terminateWorker(n) {\n let i = this._workers.get(n);\n i && (i.terminate(), this._workers.delete(n));\n }\n};\nfunction v3(c) {\n if (c instanceof OffscreenCanvas)\n return { width: c.width, height: c.height };\n let { height: n, width: i } = c.getBoundingClientRect();\n return { width: i * window.devicePixelRatio, height: n * window.devicePixelRatio };\n}\nfunction f3() {\n return Date.now().toString(36) + Math.random().toString(36).substr(2, 9);\n}\nvar q = class q2 {\n constructor(n) {\n _(this, \"_eventManager\", new s1());\n _(this, \"_id\");\n _(this, \"_worker\");\n _(this, \"_canvas\");\n _(this, \"_dotLottieInstanceState\", { markers: [], autoplay: false, backgroundColor: \"\", currentFrame: 0, duration: 0, loop: false, mode: \"forward\", segment: [0, 0], segmentDuration: 0, speed: 1, totalFrames: 0, isLoaded: false, isPlaying: false, isPaused: false, isStopped: true, isFrozen: false, useFrameInterpolation: false, renderConfig: { devicePixelRatio: n1() }, activeAnimationId: \"\", activeThemeId: \"\", layout: void 0, marker: void 0, isReady: false, manifest: null });\n _(this, \"_created\", false);\n _(this, \"_pointerUpMethod\");\n _(this, \"_pointerDownMethod\");\n _(this, \"_pointerMoveMethod\");\n _(this, \"_pointerEnterMethod\");\n _(this, \"_pointerExitMethod\");\n var d, s, m;\n this._canvas = n.canvas, this._id = `dotlottie-${f3()}`;\n let i = n.workerId || \"defaultWorker\";\n this._worker = q2._workerManager.getWorker(i), q2._workerManager.assignAnimationToWorker(this._id, i), q2._wasmUrl && this._sendMessage(\"setWasmUrl\", { url: q2._wasmUrl }), this._create(k(F({}, n), { renderConfig: k(F({}, n.renderConfig), { devicePixelRatio: ((d = n.renderConfig) == null ? void 0 : d.devicePixelRatio) || n1(), freezeOnOffscreen: (m = (s = n.renderConfig) == null ? void 0 : s.freezeOnOffscreen) != null ? m : true }) })), this._worker.addEventListener(\"message\", this._handleWorkerEvent.bind(this)), this._pointerUpMethod = this._onPointerUp.bind(this), this._pointerDownMethod = this._onPointerDown.bind(this), this._pointerMoveMethod = this._onPointerMove.bind(this), this._pointerEnterMethod = this._onPointerEnter.bind(this), this._pointerExitMethod = this._onPointerLeave.bind(this);\n }\n _handleWorkerEvent(n) {\n return g(this, null, function* () {\n let i = n.data;\n i.id || (i.method === \"onLoad\" && i.result.instanceId === this._id && (yield this._updateDotLottieInstanceState(), this._eventManager.dispatch(i.result.event), x && this._canvas instanceof HTMLCanvasElement && (this._dotLottieInstanceState.renderConfig.freezeOnOffscreen && B.observe(this._canvas, this), this._dotLottieInstanceState.renderConfig.autoResize && W.observe(this._canvas, this))), i.method === \"onComplete\" && i.result.instanceId === this._id && (yield this._updateDotLottieInstanceState(), this._eventManager.dispatch(i.result.event)), i.method === \"onDestroy\" && i.result.instanceId === this._id && this._eventManager.dispatch(i.result.event), i.method === \"onUnfreeze\" && i.result.instanceId === this._id && (yield this._updateDotLottieInstanceState(), this._dotLottieInstanceState.isFrozen = false, this._eventManager.dispatch(i.result.event)), i.method === \"onFrame\" && i.result.instanceId === this._id && (this._dotLottieInstanceState.currentFrame = i.result.event.currentFrame, this._eventManager.dispatch(i.result.event)), i.method === \"onRender\" && i.result.instanceId === this._id && this._eventManager.dispatch(i.result.event), i.method === \"onFreeze\" && i.result.instanceId === this._id && (yield this._updateDotLottieInstanceState(), this._eventManager.dispatch(i.result.event)), i.method === \"onPause\" && i.result.instanceId === this._id && (yield this._updateDotLottieInstanceState(), this._eventManager.dispatch(i.result.event)), i.method === \"onPlay\" && i.result.instanceId === this._id && (yield this._updateDotLottieInstanceState(), this._eventManager.dispatch(i.result.event)), i.method === \"onStop\" && i.result.instanceId === this._id && (yield this._updateDotLottieInstanceState(), this._eventManager.dispatch(i.result.event)), i.method === \"onLoadError\" && i.result.instanceId === this._id && (yield this._updateDotLottieInstanceState(), this._eventManager.dispatch(i.result.event)), i.method === \"onReady\" && i.result.instanceId === this._id && (yield this._updateDotLottieInstanceState(), this._eventManager.dispatch(i.result.event)));\n });\n }\n _create(n) {\n return g(this, null, function* () {\n let i;\n this._canvas instanceof HTMLCanvasElement ? i = this._canvas.transferControlToOffscreen() : i = this._canvas;\n let { instanceId: d } = yield this._sendMessage(\"create\", F({ instanceId: this._id, config: k(F({}, n), { canvas: i }) }, v3(this._canvas)), [i]);\n if (d !== this._id)\n throw new Error(\"Instance ID mismatch\");\n this._created = true, yield this._updateDotLottieInstanceState();\n });\n }\n get isLoaded() {\n return this._dotLottieInstanceState.isLoaded;\n }\n get isPlaying() {\n return this._dotLottieInstanceState.isPlaying;\n }\n get isPaused() {\n return this._dotLottieInstanceState.isPaused;\n }\n get isStopped() {\n return this._dotLottieInstanceState.isStopped;\n }\n get currentFrame() {\n return this._dotLottieInstanceState.currentFrame;\n }\n get isFrozen() {\n return this._dotLottieInstanceState.isFrozen;\n }\n get segmentDuration() {\n return this._dotLottieInstanceState.segmentDuration;\n }\n get totalFrames() {\n return this._dotLottieInstanceState.totalFrames;\n }\n get segment() {\n return this._dotLottieInstanceState.segment;\n }\n get speed() {\n return this._dotLottieInstanceState.speed;\n }\n get duration() {\n return this._dotLottieInstanceState.duration;\n }\n get isReady() {\n return this._dotLottieInstanceState.isReady;\n }\n get mode() {\n return this._dotLottieInstanceState.mode;\n }\n get canvas() {\n return this._canvas;\n }\n get autoplay() {\n return this._dotLottieInstanceState.autoplay;\n }\n get backgroundColor() {\n return this._dotLottieInstanceState.backgroundColor;\n }\n get loop() {\n return this._dotLottieInstanceState.loop;\n }\n get useFrameInterpolation() {\n return this._dotLottieInstanceState.useFrameInterpolation;\n }\n get renderConfig() {\n return this._dotLottieInstanceState.renderConfig;\n }\n get manifest() {\n return this._dotLottieInstanceState.manifest;\n }\n get activeAnimationId() {\n return this._dotLottieInstanceState.activeAnimationId;\n }\n get marker() {\n return this._dotLottieInstanceState.marker;\n }\n get activeThemeId() {\n return this._dotLottieInstanceState.activeThemeId;\n }\n get layout() {\n return this._dotLottieInstanceState.layout;\n }\n play() {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"play\", { instanceId: this._id }), yield this._updateDotLottieInstanceState(), x && this._canvas instanceof HTMLCanvasElement && this._dotLottieInstanceState.renderConfig.freezeOnOffscreen && !j1(this._canvas) && (yield this.freeze()));\n });\n }\n pause() {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"pause\", { instanceId: this._id }), yield this._updateDotLottieInstanceState());\n });\n }\n stop() {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"stop\", { instanceId: this._id }), yield this._updateDotLottieInstanceState());\n });\n }\n setSpeed(n) {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"setSpeed\", { instanceId: this._id, speed: n }), yield this._updateDotLottieInstanceState());\n });\n }\n setMode(n) {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"setMode\", { instanceId: this._id, mode: n }), yield this._updateDotLottieInstanceState());\n });\n }\n setFrame(n) {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"setFrame\", { frame: n, instanceId: this._id }), yield this._updateDotLottieInstanceState());\n });\n }\n setSegment(n, i) {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"setSegment\", { instanceId: this._id, segment: [n, i] }), yield this._updateDotLottieInstanceState());\n });\n }\n setRenderConfig(n) {\n return g(this, null, function* () {\n if (!this._created)\n return;\n let m = n, { devicePixelRatio: i, freezeOnOffscreen: d } = m, s = $1(m, [\"devicePixelRatio\", \"freezeOnOffscreen\"]);\n yield this._sendMessage(\"setRenderConfig\", { instanceId: this._id, renderConfig: k(F(F({}, this._dotLottieInstanceState.renderConfig), s), { devicePixelRatio: i || n1(), freezeOnOffscreen: d != null ? d : true }) }), yield this._updateDotLottieInstanceState(), x && this._canvas instanceof HTMLCanvasElement && (this._dotLottieInstanceState.renderConfig.autoResize ? W.observe(this._canvas, this) : W.unobserve(this._canvas), this._dotLottieInstanceState.renderConfig.freezeOnOffscreen ? B.observe(this._canvas, this) : (B.unobserve(this._canvas), this._dotLottieInstanceState.isFrozen && (yield this.unfreeze())));\n });\n }\n setUseFrameInterpolation(n) {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"setUseFrameInterpolation\", { instanceId: this._id, useFrameInterpolation: n }), yield this._updateDotLottieInstanceState());\n });\n }\n loadTheme(n) {\n return g(this, null, function* () {\n if (!this._created)\n return false;\n let i = this._sendMessage(\"loadTheme\", { instanceId: this._id, themeId: n });\n return yield this._updateDotLottieInstanceState(), i;\n });\n }\n load(n) {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"load\", { config: n, instanceId: this._id }), yield this._updateDotLottieInstanceState());\n });\n }\n setLoop(n) {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"setLoop\", { instanceId: this._id, loop: n }), yield this._updateDotLottieInstanceState());\n });\n }\n resize() {\n return g(this, null, function* () {\n if (!this._created)\n return;\n let { height: n, width: i } = v3(this._canvas);\n yield this._sendMessage(\"resize\", { height: n, instanceId: this._id, width: i }), yield this._updateDotLottieInstanceState();\n });\n }\n destroy() {\n return g(this, null, function* () {\n this._created && (this._created = false, yield this._sendMessage(\"destroy\", { instanceId: this._id }), this._cleanupStateMachineListeners(), q2._workerManager.unassignAnimationFromWorker(this._id), this._eventManager.removeAllEventListeners(), x && this._canvas instanceof HTMLCanvasElement && (B.unobserve(this._canvas), W.unobserve(this._canvas)));\n });\n }\n freeze() {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"freeze\", { instanceId: this._id }), yield this._updateDotLottieInstanceState());\n });\n }\n unfreeze() {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"unfreeze\", { instanceId: this._id }), yield this._updateDotLottieInstanceState());\n });\n }\n setBackgroundColor(n) {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"setBackgroundColor\", { instanceId: this._id, backgroundColor: n }), yield this._updateDotLottieInstanceState());\n });\n }\n loadAnimation(n) {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"loadAnimation\", { animationId: n, instanceId: this._id }), yield this._updateDotLottieInstanceState());\n });\n }\n setLayout(n) {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"setLayout\", { instanceId: this._id, layout: n }), yield this._updateDotLottieInstanceState());\n });\n }\n _updateDotLottieInstanceState() {\n return g(this, null, function* () {\n if (!this._created)\n return;\n let n = yield this._sendMessage(\"getDotLottieInstanceState\", { instanceId: this._id });\n this._dotLottieInstanceState = n.state;\n });\n }\n markers() {\n return this._dotLottieInstanceState.markers;\n }\n setMarker(n) {\n return g(this, null, function* () {\n this._created && (yield this._sendMessage(\"setMarker\", { instanceId: this._id, marker: n }), yield this._updateDotLottieInstanceState());\n });\n }\n loadThemeData(n) {\n return g(this, null, function* () {\n if (!this._created)\n return false;\n let i = yield this._sendMessage(\"loadThemeData\", { instanceId: this._id, themeData: n });\n return yield this._updateDotLottieInstanceState(), i;\n });\n }\n setViewport(n, i, d, s) {\n return g(this, null, function* () {\n return this._created ? this._sendMessage(\"setViewport\", { x: n, y: i, width: d, height: s, instanceId: this._id }) : false;\n });\n }\n _sendMessage(n, i, d) {\n return g(this, null, function* () {\n let s = { id: `dotlottie-request-${f3()}`, method: n, params: i };\n return this._worker.postMessage(s, d || []), new Promise((m, b) => {\n let L = (I) => {\n let D = I.data;\n D.id === s.id && (this._worker.removeEventListener(\"message\", L), D.error ? b(new Error(`Failed to execute method ${n}: ${D.error}`)) : m(D.result));\n };\n this._worker.addEventListener(\"message\", L);\n });\n });\n }\n addEventListener(n, i) {\n this._eventManager.addEventListener(n, i);\n }\n removeEventListener(n, i) {\n this._eventManager.removeEventListener(n, i);\n }\n static setWasmUrl(n) {\n q2._wasmUrl = n;\n }\n loadStateMachine(n) {\n return g(this, null, function* () {\n if (!this._created)\n return false;\n let i = yield this._sendMessage(\"loadStateMachine\", { instanceId: this._id, stateMachineId: n });\n return yield this._updateDotLottieInstanceState(), i;\n });\n }\n loadStateMachineData(n) {\n return g(this, null, function* () {\n if (!this._created)\n return false;\n let i = yield this._sendMessage(\"loadStateMachineData\", { instanceId: this._id, stateMachineData: n });\n return yield this._updateDotLottieInstanceState(), i;\n });\n }\n startStateMachine() {\n return g(this, null, function* () {\n if (!this._created)\n return false;\n this._setupStateMachineListeners();\n let n = yield this._sendMessage(\"startStateMachine\", { instanceId: this._id });\n return yield this._updateDotLottieInstanceState(), n;\n });\n }\n stopStateMachine() {\n return g(this, null, function* () {\n return this._created ? (this._cleanupStateMachineListeners(), this._sendMessage(\"stopStateMachine\", { instanceId: this._id })) : false;\n });\n }\n getStateMachineListeners() {\n return g(this, null, function* () {\n return this._created ? this._sendMessage(\"getStateMachineListeners\", { instanceId: this._id }) : [];\n });\n }\n _getPointerPosition(n) {\n let i = this._canvas.getBoundingClientRect(), d = this._canvas.width / i.width, s = this._canvas.height / i.height, m = this._dotLottieInstanceState.renderConfig.devicePixelRatio || window.devicePixelRatio || 1, b = (n.clientX - i.left) * d / m, L = (n.clientY - i.top) * s / m;\n return { x: b, y: L };\n }\n _onPointerUp(n) {\n let { x: i, y: d } = this._getPointerPosition(n);\n this._sendMessage(\"postPointerUpEvent\", { instanceId: this._id, x: i, y: d });\n }\n _onPointerDown(n) {\n let { x: i, y: d } = this._getPointerPosition(n);\n this._sendMessage(\"postPointerDownEvent\", { instanceId: this._id, x: i, y: d });\n }\n _onPointerMove(n) {\n let { x: i, y: d } = this._getPointerPosition(n);\n this._sendMessage(\"postPointerMoveEvent\", { instanceId: this._id, x: i, y: d });\n }\n _onPointerEnter(n) {\n let { x: i, y: d } = this._getPointerPosition(n);\n this._sendMessage(\"postPointerEnterEvent\", { instanceId: this._id, x: i, y: d });\n }\n _onPointerLeave(n) {\n let { x: i, y: d } = this._getPointerPosition(n);\n this._sendMessage(\"postPointerExitEvent\", { instanceId: this._id, x: i, y: d });\n }\n _setupStateMachineListeners() {\n return g(this, null, function* () {\n if (x && this._canvas instanceof HTMLCanvasElement && this.isLoaded) {\n let n = yield this._sendMessage(\"getStateMachineListeners\", { instanceId: this._id });\n n.includes(\"PointerUp\") && this._canvas.addEventListener(\"pointerup\", this._pointerUpMethod), n.includes(\"PointerDown\") && this._canvas.addEventListener(\"pointerdown\", this._pointerDownMethod), n.includes(\"PointerMove\") && this._canvas.addEventListener(\"pointermove\", this._pointerMoveMethod), n.includes(\"PointerEnter\") && this._canvas.addEventListener(\"pointerenter\", this._pointerEnterMethod), n.includes(\"PointerExit\") && this._canvas.addEventListener(\"pointerleave\", this._pointerExitMethod);\n }\n });\n }\n _cleanupStateMachineListeners() {\n x && this._canvas instanceof HTMLCanvasElement && (this._canvas.removeEventListener(\"pointerup\", this._pointerUpMethod), this._canvas.removeEventListener(\"pointerdown\", this._pointerDownMethod), this._canvas.removeEventListener(\"pointermove\", this._pointerMoveMethod), this._canvas.removeEventListener(\"pointerenter\", this._pointerEnterMethod), this._canvas.removeEventListener(\"pointerleave\", this._pointerExitMethod));\n }\n};\n_(q, \"_workerManager\", new H1()), _(q, \"_wasmUrl\", \"\");\nvar m3 = q;\nfunction DotLottieComponent(_a) {\n var _b = _a, {\n children,\n className = \"\",\n setCanvasRef,\n setContainerRef,\n style\n } = _b, rest = __objRest(_b, [\n \"children\",\n \"className\",\n \"setCanvasRef\",\n \"setContainerRef\",\n \"style\"\n ]);\n const containerStyle = __spreadValues({\n width: \"100%\",\n height: \"100%\",\n lineHeight: 0\n }, style);\n return /* @__PURE__ */ React.createElement(\"div\", __spreadValues({ ref: setContainerRef, className }, !className && { style: containerStyle }), /* @__PURE__ */ React.createElement(\n \"canvas\",\n __spreadValues({\n ref: setCanvasRef,\n style: {\n width: \"100%\",\n height: \"100%\"\n }\n }, rest),\n children\n ));\n}\nvar useDotLottie = (config) => {\n const [dotLottie, setDotLottie] = useState(null);\n const dotLottieRef = useRef(null);\n const configRef = useRef(config);\n const canvasRef = useRef(null);\n const containerRef = useRef(null);\n dotLottieRef.current = dotLottie;\n configRef.current = config;\n const hoverHandler = useCallback((event) => {\n var _a, _b;\n if (!((_a = configRef.current) == null ? void 0 : _a.playOnHover) || !((_b = dotLottieRef.current) == null ? void 0 : _b.isLoaded))\n return;\n if (event.type === \"mouseenter\") {\n dotLottieRef.current.play();\n } else if (event.type === \"mouseleave\") {\n dotLottieRef.current.pause();\n }\n }, []);\n const setCanvasRef = useCallback((canvas) => {\n canvasRef.current = canvas;\n }, []);\n const setContainerRef = useCallback((container) => {\n containerRef.current = container;\n }, []);\n const Component = useCallback(\n (props) => {\n return /* @__PURE__ */ React.createElement(DotLottieComponent, __spreadValues({ setContainerRef, setCanvasRef }, props));\n },\n [setCanvasRef, setContainerRef]\n );\n useEffect(() => {\n const canvas = canvasRef.current;\n let dotLottieInstance = null;\n if (canvas) {\n dotLottieInstance = new c3(__spreadProps(__spreadValues({}, configRef.current), {\n canvas\n }));\n canvas.addEventListener(\"mouseenter\", hoverHandler);\n canvas.addEventListener(\"mouseleave\", hoverHandler);\n setDotLottie(dotLottieInstance);\n }\n return () => {\n dotLottieInstance == null ? void 0 : dotLottieInstance.destroy();\n setDotLottie(null);\n canvas == null ? void 0 : canvas.removeEventListener(\"mouseenter\", hoverHandler);\n canvas == null ? void 0 : canvas.removeEventListener(\"mouseleave\", hoverHandler);\n };\n }, [hoverHandler]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.speed) === \"number\" && config.speed !== dotLottieRef.current.speed) {\n dotLottieRef.current.setSpeed(config.speed);\n }\n }, [config == null ? void 0 : config.speed]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.mode) === \"string\" && config.mode !== dotLottieRef.current.mode) {\n dotLottieRef.current.setMode(config.mode);\n }\n }, [config == null ? void 0 : config.mode]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.loop) === \"boolean\" && config.loop !== dotLottieRef.current.loop) {\n dotLottieRef.current.setLoop(config.loop);\n }\n }, [config == null ? void 0 : config.loop]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.useFrameInterpolation) === \"boolean\" && config.useFrameInterpolation !== dotLottieRef.current.useFrameInterpolation) {\n dotLottieRef.current.setUseFrameInterpolation(config.useFrameInterpolation);\n }\n }, [config == null ? void 0 : config.useFrameInterpolation]);\n useEffect(() => {\n var _a, _b;\n if (!dotLottieRef.current)\n return;\n const startFrame = (_a = config == null ? void 0 : config.segment) == null ? void 0 : _a[0];\n const endFrame = (_b = config == null ? void 0 : config.segment) == null ? void 0 : _b[1];\n if (typeof startFrame === \"number\" && typeof endFrame === \"number\") {\n dotLottieRef.current.setSegment(startFrame, endFrame);\n }\n }, [config == null ? void 0 : config.segment]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.backgroundColor) === \"string\" && config.backgroundColor !== dotLottieRef.current.backgroundColor) {\n dotLottieRef.current.setBackgroundColor(config.backgroundColor);\n }\n }, [config == null ? void 0 : config.backgroundColor]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.renderConfig) === \"object\") {\n dotLottieRef.current.setRenderConfig(config.renderConfig);\n }\n }, [JSON.stringify(config == null ? void 0 : config.renderConfig)]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.data) === \"string\" || (config == null ? void 0 : config.data) instanceof ArrayBuffer) {\n dotLottieRef.current.load(__spreadValues({\n data: config.data\n }, configRef.current || {}));\n }\n }, [config == null ? void 0 : config.data]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.src) === \"string\") {\n dotLottieRef.current.load(__spreadValues({\n src: config.src\n }, configRef.current || {}));\n }\n }, [config == null ? void 0 : config.src]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.marker) === \"string\") {\n dotLottieRef.current.setMarker(config.marker);\n }\n }, [config == null ? void 0 : config.marker]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded && (config == null ? void 0 : config.animationId) && dotLottieRef.current.activeAnimationId !== config.animationId) {\n dotLottieRef.current.loadAnimation(config.animationId);\n }\n }, [config == null ? void 0 : config.animationId]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded && dotLottieRef.current.activeThemeId !== (config == null ? void 0 : config.themeId)) {\n dotLottieRef.current.loadTheme((config == null ? void 0 : config.themeId) || \"\");\n }\n }, [config == null ? void 0 : config.themeId]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded) {\n dotLottieRef.current.loadThemeData((config == null ? void 0 : config.themeData) || \"\");\n }\n }, [config == null ? void 0 : config.themeData]);\n return {\n dotLottie,\n setCanvasRef,\n setContainerRef,\n canvas: canvasRef.current,\n container: containerRef.current,\n DotLottieComponent: Component\n };\n};\nvar useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\nfunction useStableCallback(callback) {\n const callbackContainer = useRef(callback);\n useIsomorphicLayoutEffect(() => {\n callbackContainer.current = callback;\n });\n return useCallback((...args) => callbackContainer.current(...args), [callbackContainer]);\n}\n\n// src/dotlottie.tsx\nvar DotLottieReact = (_a) => {\n var _b = _a, {\n animationId,\n autoplay,\n backgroundColor,\n data,\n dotLottieRefCallback,\n loop,\n marker,\n mode,\n playOnHover,\n renderConfig,\n segment,\n speed,\n src,\n themeData,\n themeId,\n useFrameInterpolation\n } = _b, props = __objRest(_b, [\n \"animationId\",\n \"autoplay\",\n \"backgroundColor\",\n \"data\",\n \"dotLottieRefCallback\",\n \"loop\",\n \"marker\",\n \"mode\",\n \"playOnHover\",\n \"renderConfig\",\n \"segment\",\n \"speed\",\n \"src\",\n \"themeData\",\n \"themeId\",\n \"useFrameInterpolation\"\n ]);\n const { DotLottieComponent: DotLottieComponent2, dotLottie } = useDotLottie({\n data,\n mode,\n speed,\n src,\n autoplay,\n loop,\n segment,\n renderConfig,\n backgroundColor,\n useFrameInterpolation,\n playOnHover,\n marker,\n themeId,\n animationId,\n themeData\n });\n const stableDotLottieRefCallback = typeof dotLottieRefCallback === \"function\" ? useStableCallback(dotLottieRefCallback) : void 0;\n React.useEffect(() => {\n if (typeof stableDotLottieRefCallback === \"function\") {\n stableDotLottieRefCallback(dotLottie);\n }\n }, [stableDotLottieRefCallback, dotLottie]);\n return /* @__PURE__ */ React.createElement(DotLottieComponent2, __spreadValues({}, props));\n};\nfunction DotLottieWorkerComponent(_a) {\n var _b = _a, {\n children,\n className = \"\",\n setCanvasRef,\n setContainerRef,\n style\n } = _b, rest = __objRest(_b, [\n \"children\",\n \"className\",\n \"setCanvasRef\",\n \"setContainerRef\",\n \"style\"\n ]);\n const containerStyle = __spreadValues({\n width: \"100%\",\n height: \"100%\",\n lineHeight: 0\n }, style);\n return /* @__PURE__ */ React.createElement(\"div\", __spreadValues({ ref: setContainerRef, className }, !className && { style: containerStyle }), /* @__PURE__ */ React.createElement(\n \"canvas\",\n __spreadValues({\n ref: setCanvasRef,\n style: {\n width: \"100%\",\n height: \"100%\"\n }\n }, rest),\n children\n ));\n}\nvar useDotLottieWorker = (config) => {\n const [dotLottie, setDotLottie] = useState(null);\n const dotLottieRef = useRef(null);\n const configRef = useRef(config);\n const canvasRef = useRef(null);\n const containerRef = useRef(null);\n dotLottieRef.current = dotLottie;\n configRef.current = config;\n const hoverHandler = useCallback((event) => {\n var _a, _b;\n if (!((_a = configRef.current) == null ? void 0 : _a.playOnHover) || !((_b = dotLottieRef.current) == null ? void 0 : _b.isLoaded))\n return;\n if (event.type === \"mouseenter\") {\n dotLottieRef.current.play();\n } else if (event.type === \"mouseleave\") {\n dotLottieRef.current.pause();\n }\n }, []);\n const setCanvasRef = useCallback((canvas) => {\n canvasRef.current = canvas;\n }, []);\n const setContainerRef = useCallback((container) => {\n containerRef.current = container;\n }, []);\n const Component = useCallback(\n (props) => {\n return /* @__PURE__ */ React.createElement(DotLottieWorkerComponent, __spreadValues({ setContainerRef, setCanvasRef }, props));\n },\n [setCanvasRef, setContainerRef]\n );\n useEffect(() => {\n const canvas = canvasRef.current;\n let dotLottieInstance = null;\n if (canvas) {\n dotLottieInstance = new m3(__spreadProps(__spreadValues({}, configRef.current), {\n canvas\n }));\n canvas.addEventListener(\"mouseenter\", hoverHandler);\n canvas.addEventListener(\"mouseleave\", hoverHandler);\n setDotLottie(dotLottieInstance);\n }\n return () => {\n dotLottieInstance == null ? void 0 : dotLottieInstance.destroy();\n setDotLottie(null);\n canvas == null ? void 0 : canvas.removeEventListener(\"mouseenter\", hoverHandler);\n canvas == null ? void 0 : canvas.removeEventListener(\"mouseleave\", hoverHandler);\n };\n }, [hoverHandler]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.speed) === \"number\" && config.speed !== dotLottieRef.current.speed) {\n dotLottieRef.current.setSpeed(config.speed);\n }\n }, [config == null ? void 0 : config.speed]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.mode) === \"string\" && config.mode !== dotLottieRef.current.mode) {\n dotLottieRef.current.setMode(config.mode);\n }\n }, [config == null ? void 0 : config.mode]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.loop) === \"boolean\" && config.loop !== dotLottieRef.current.loop) {\n dotLottieRef.current.setLoop(config.loop);\n }\n }, [config == null ? void 0 : config.loop]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.useFrameInterpolation) === \"boolean\" && config.useFrameInterpolation !== dotLottieRef.current.useFrameInterpolation) {\n dotLottieRef.current.setUseFrameInterpolation(config.useFrameInterpolation);\n }\n }, [config == null ? void 0 : config.useFrameInterpolation]);\n useEffect(() => {\n var _a, _b;\n if (!dotLottieRef.current)\n return;\n const startFrame = (_a = config == null ? void 0 : config.segment) == null ? void 0 : _a[0];\n const endFrame = (_b = config == null ? void 0 : config.segment) == null ? void 0 : _b[1];\n if (typeof startFrame === \"number\" && typeof endFrame === \"number\") {\n dotLottieRef.current.setSegment(startFrame, endFrame);\n }\n }, [config == null ? void 0 : config.segment]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.backgroundColor) === \"string\" && config.backgroundColor !== dotLottieRef.current.backgroundColor) {\n dotLottieRef.current.setBackgroundColor(config.backgroundColor);\n }\n }, [config == null ? void 0 : config.backgroundColor]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.renderConfig) === \"object\") {\n dotLottieRef.current.setRenderConfig(config.renderConfig);\n }\n }, [JSON.stringify(config == null ? void 0 : config.renderConfig)]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.data) === \"string\" || (config == null ? void 0 : config.data) instanceof ArrayBuffer) {\n dotLottieRef.current.load(__spreadValues({\n data: config.data\n }, configRef.current || {}));\n }\n }, [config == null ? void 0 : config.data]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.src) === \"string\") {\n dotLottieRef.current.load(__spreadValues({\n src: config.src\n }, configRef.current || {}));\n }\n }, [config == null ? void 0 : config.src]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (typeof (config == null ? void 0 : config.marker) === \"string\") {\n dotLottieRef.current.setMarker(config.marker);\n }\n }, [config == null ? void 0 : config.marker]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded && (config == null ? void 0 : config.animationId) && dotLottieRef.current.activeAnimationId !== config.animationId) {\n dotLottieRef.current.loadAnimation(config.animationId);\n }\n }, [config == null ? void 0 : config.animationId]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded && dotLottieRef.current.activeThemeId !== (config == null ? void 0 : config.themeId)) {\n dotLottieRef.current.loadTheme((config == null ? void 0 : config.themeId) || \"\");\n }\n }, [config == null ? void 0 : config.themeId]);\n useEffect(() => {\n if (!dotLottieRef.current)\n return;\n if (dotLottieRef.current.isLoaded) {\n dotLottieRef.current.loadThemeData((config == null ? void 0 : config.themeData) || \"\");\n }\n }, [config == null ? void 0 : config.themeData]);\n return {\n dotLottie,\n setCanvasRef,\n setContainerRef,\n canvas: canvasRef.current,\n container: containerRef.current,\n DotLottieComponent: Component\n };\n};\nvar DotLottieWorkerReact = (_a) => {\n var _b = _a, {\n animationId,\n autoplay,\n backgroundColor,\n data,\n dotLottieRefCallback,\n loop,\n marker,\n mode,\n playOnHover,\n renderConfig,\n segment,\n speed,\n src,\n themeData,\n themeId,\n useFrameInterpolation,\n workerId\n } = _b, props = __objRest(_b, [\n \"animationId\",\n \"autoplay\",\n \"backgroundColor\",\n \"data\",\n \"dotLottieRefCallback\",\n \"loop\",\n \"marker\",\n \"mode\",\n \"playOnHover\",\n \"renderConfig\",\n \"segment\",\n \"speed\",\n \"src\",\n \"themeData\",\n \"themeId\",\n \"useFrameInterpolation\",\n \"workerId\"\n ]);\n const { DotLottieComponent: DotLottieComponent2, dotLottie } = useDotLottieWorker({\n workerId,\n data,\n mode,\n speed,\n src,\n autoplay,\n loop,\n segment,\n renderConfig,\n backgroundColor,\n useFrameInterpolation,\n playOnHover,\n marker,\n themeId,\n animationId,\n themeData\n });\n const stableDotLottieRefCallback = typeof dotLottieRefCallback === \"function\" ? useStableCallback(dotLottieRefCallback) : void 0;\n React.useEffect(() => {\n if (typeof stableDotLottieRefCallback === \"function\") {\n stableDotLottieRefCallback(dotLottie);\n }\n }, [stableDotLottieRefCallback, dotLottie]);\n return /* @__PURE__ */ React.createElement(DotLottieComponent2, __spreadValues({}, props));\n};\n\n// src/index.ts\nvar setWasmUrl = (url) => {\n m3.setWasmUrl(url);\n c3.setWasmUrl(url);\n};\n\nexport { DotLottieReact, DotLottieWorkerReact, setWasmUrl, useDotLottie, useDotLottieWorker };\n","export default \"data:application/octet-stream;base64,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\"","import { DotLottieReact } from \"@lottiefiles/dotlottie-react\";\n\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\n\nimport Animation from \"@/assets/lottie/animation-loading.lottie\";\n\nconst Loading = ({ title }) => {\n return ReactDOM.createPortal(\n <div\n className=\"fixed inset-0 z-[51] flex min-h-screen w-full flex-col items-center justify-center bg-gradient-to-b from-[#0037AD] to-[#6692F0]\"\n role=\"alert\"\n aria-live=\"assertive\"\n >\n <h1 className=\"text-2xl font-bold text-white\">\n {title ? title : \"Loading...\"}\n </h1>\n <DotLottieReact\n className=\"md:w-1/2\"\n src={Animation}\n loop\n autoplay\n aria-label=\"Loading animation\"\n />\n </div>,\n document.body, // BileÅŸeni DOM'un body kısmına yerleÅŸtiriyoruz\n );\n};\n\nexport default Loading;\n","import {\n Button,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n Input,\n} from \"@egaranti/components\";\n\nimport { useState } from \"react\";\n\nimport { SelectableCard } from \"../SelectableCard\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst BrandStep = ({\n brands,\n showMore,\n setShowMore,\n selectedBrand,\n selectedCustomBrand,\n onSelectBrand,\n onToggleShowMore,\n control,\n setValue,\n trigger,\n t,\n}) => {\n return (\n <div className=\"flex flex-col gap-4\">\n <h2 className=\"font-semibold\">{t(\"productForm.brands\", \"Markalar\")}</h2>\n {brands.length > 0 && (\n <div className=\"mb-5 grid grid-cols-2 gap-4 sm:grid-cols-3\">\n {brands.slice(0, showMore ? brands.length : 6).map((brand) => (\n <SelectableCard\n key={brand.id}\n item={brand}\n type=\"brand\"\n selected={selectedBrand === brand.id}\n onClick={() => onSelectBrand(brand.id)}\n />\n ))}\n </div>\n )}\n {brands.length > 6 && (\n <button className=\"text-blue-500\" onClick={onToggleShowMore}>\n {showMore\n ? t(\"productForm.showLess\", \"Daha az göster\")\n : t(\"productForm.showMore\", \"Daha fazla göster\")}\n </button>\n )}\n <FormField\n control={control}\n name=\"customBrand\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>\n {t(\"productsPage.newBrandName\", \"Yeni Marka Adı\")}\n </FormLabel>\n <FormControl>\n <Input\n maxLength={50}\n onFocus={() => setValue(\"brand\", \"\")}\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n );\n};\n\nexport default BrandStep;\n","import { useTranslation } from \"react-i18next\";\n\nimport { SelectableCard } from \"../SelectableCard\";\n\nconst CategoryStep = ({ categories, selectedCategory, onSelect }) => {\n const { t } = useTranslation();\n\n return (\n <div>\n <h2 className=\"my-4 font-semibold text-[#111729]\">\n {t(\"productForm.categories\", \"Kategoriler\")}\n </h2>\n <div className=\"mb-6 grid grid-cols-3 gap-4\">\n {categories?.map((category) => (\n <SelectableCard\n item={category}\n key={category.id}\n type=\"category\"\n selected={selectedCategory === category.id}\n onClick={() => onSelect(category.id)}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default CategoryStep;\n","import { useEffect, useState } from \"react\";\n\nfunction useDebounce(callback, delay) {\n const [debouncedValue, setDebouncedValue] = useState(null);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n if (debouncedValue !== null) {\n callback(debouncedValue);\n }\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [debouncedValue, delay, callback]);\n\n return setDebouncedValue;\n}\n\nexport default useDebounce;\n","import {\n Button,\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@egaranti/components\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Check } from \"lucide-react\";\n\nimport { getProducts } from \"@/lib/api/product\";\nimport { cn } from \"@/lib/utils\";\nimport useDebounce from \"@/lib/utils/hooks/useDebounce\";\n\nexport function SelectProductName({ value, setValue }) {\n const { t } = useTranslation();\n const [open, setOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const [data, setData] = useState([]);\n const [search, setSearch] = useState(\"\");\n const [lastFetchedQuery, setLastFetchedQuery] = useState(\"\");\n\n const fetchProducts = async (query) => {\n setLoading(true);\n try {\n const res = await getProducts({\n page: 1,\n size: 10,\n query,\n });\n const products = res.data.content || [];\n const formattedProducts = products.map((product) => ({\n label: product.name,\n value: product.name,\n }));\n setData(formattedProducts);\n setLastFetchedQuery(query);\n } catch (err) {\n console.error(err);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (!open) return;\n\n // Reset search when opened and fetch initial products\n setSearch(\"\");\n fetchProducts(\"\");\n }, [open]);\n\n const handleSearch = useDebounce((query) => {\n // If the query is empty or just whitespace, or if we've already fetched this query, do not fetch\n if (!query.trim() || query.trim() === lastFetchedQuery) {\n return;\n }\n\n fetchProducts(query);\n }, 750);\n\n const onChangeSearch = (newValue) => {\n setSearch(newValue);\n handleSearch(newValue);\n };\n\n let buttonLabel = \"\";\n if (value) {\n buttonLabel =\n data.find((product) => product.value === value)?.label || value;\n\n if (buttonLabel?.length > 24) {\n buttonLabel = buttonLabel.slice(0, 24) + \"...\";\n }\n }\n\n const handleSelect = (selectedValue) => {\n setValue(selectedValue);\n setOpen(false);\n };\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"secondaryGray\"\n role=\"combobox\"\n aria-expanded={open}\n className=\"ring-offset-background focus:ring-ring flex w-full items-center justify-between rounded-lg border border-[#CDD5E0] px-4 py-6 text-[#111729] placeholder:text-[#677389] focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 [&>span]:line-clamp-1\"\n >\n {buttonLabel || t(\"productForm.selectProduct\")}\n <svg\n className=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n viewBox=\"0 0 20 20\"\n >\n <path\n stroke=\"#677389\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"1.667\"\n d=\"M5 7.5l5 5 5-5\"\n ></path>\n </svg>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full min-w-[350px] p-0\">\n <Command shouldFilter={false} className=\"overflow-visible\">\n <CommandInput\n value={search}\n onValueChange={onChangeSearch}\n className=\"w-full\"\n placeholder={t(\"productForm.searchProduct\", \"Ãœrün ara\")}\n />\n <CommandEmpty>\n {t(\"productForm.noProduct\", \"Ãœrün bulunamadı\")}\n </CommandEmpty>\n <CommandGroup className=\"h-full overflow-auto\">\n {data?.map((product) => (\n <CommandItem\n onSelect={() => handleSelect(product.value)}\n key={product.value}\n value={product.value}\n >\n <Check\n className={cn(\n \"mr-2 h-4 w-4\",\n value === product.value ? \"opacity-100\" : \"opacity-0\",\n )}\n />\n {product.label.length > 24\n ? product.label.slice(0, 24) + \"...\"\n : product.label}\n </CommandItem>\n ))}\n {search && !data.some((product) => product.label === search) && (\n <CommandItem onSelect={() => handleSelect(search)} value={search}>\n <Check\n className={cn(\n \"mr-2 h-4 w-4\",\n value === search ? \"opacity-100\" : \"opacity-0\",\n )}\n />\n {'\"' + search + '\"'}\n </CommandItem>\n )}\n </CommandGroup>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n\nexport default SelectProductName;\n","import {\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n Input,\n} from \"@egaranti/components\";\n\nimport AutoCompleteInput from \"../SelectProductName\";\n\nimport PriceInputPrice from \"@/components/common/PriceInputBox\";\n\nimport { withMask } from \"use-mask-input\";\n\nconst DetailsStep = ({ control, watch, setValue, t }) => {\n return (\n <div className=\"space-y-4\">\n <h2 className=\"text-xl font-semibold\">\n {t(\"productForm.productDetails\", \"Ãœrün Bilgileri\")}\n </h2>\n <FormField\n control={control}\n name=\"productName\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>\n {t(\n \"productForm.productNameLabel\",\n \"Ãœrünün adı veya modeli nedir?\",\n )}\n </FormLabel>\n <FormControl>\n {/* <Input {...field} /> */}\n <AutoCompleteInput\n value={field.value}\n setValue={field.onChange}\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={control}\n name=\"purchaseDate\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>\n {t(\n \"productForm.purchaseDateLabel\",\n \"Ãœrünü ne zaman satın aldınız?\",\n )}\n </FormLabel>\n <FormControl\n ref={withMask({\n mask: \"99/99/9999\",\n })}\n >\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={control}\n name=\"productPrice\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>\n {t(\"productForm.productPriceLabel\", \"Ãœrünün fiyatı nedir?\")}\n </FormLabel>\n <FormControl>\n <PriceInputPrice\n onChangeUnit={(value) => setValue(\"priceUnit\", value)}\n onChange={(value) => field.onChange(value)}\n valueUnit={watch(\"priceUnit\")}\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={control}\n name=\"billFile\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>\n {t(\"productForm.uploadBill\", \"Faturanızı yüklemek için tıklayın\")}\n </FormLabel>\n <FormControl>\n <Input\n type=\"file\"\n accept=\".pdf,.jpg,.jpeg,.png\"\n onChange={(e) =>\n field.onChange(e.target.files ? e.target.files[0] : null)\n }\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n );\n};\n\nexport default DetailsStep;\n","import {\n Button,\n Form,\n Sheet,\n SheetContent,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n} from \"@egaranti/components\";\nimport { useToast } from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SelectableCard } from \"./SelectableCard\";\nimport { DEFAULT_FORM_VALUES, FORM_STEPS } from \"./constants\";\nimport Loading from \"./loading\";\nimport BrandStep from \"./steps/BrandStep\";\nimport CategoryStep from \"./steps/CategoryStep\";\nimport DetailsStep from \"./steps/DetailsStep\";\n\nimport moment from \"moment\";\nimport * as yup from \"yup\";\n\nimport axios from \"@/lib/api/axios\";\nimport { parseError } from \"@/lib/utils\";\nimport { cn } from \"@/lib/utils\";\nimport useMediaQuery from \"@/lib/utils/hooks/useMediaQuery\";\n\nconst ProductForm = ({ open, onOpenChange }) => {\n const { toast } = useToast();\n const { t } = useTranslation();\n const [step, setStep] = useState(FORM_STEPS.CATEGORY);\n const isMobile = useMediaQuery(\"(max-width: 640px)\");\n\n const [unverifiedBrands, setUnverifiedBrands] = useState([]);\n const [unverifiedCategories, setUnverifiedCategories] = useState([]);\n\n const defaultValues = {\n priceUnit: localStorage.getItem(\"country\") === \"UZ\" ? \"UZS\" : \"TRY\",\n productName: \"\",\n purchaseDate: \"\",\n productPrice: 0,\n unverifiedCategoryId: \"\",\n brand: \"\",\n customBrand: \"\",\n billFile: null,\n };\n\n const productSchema = useMemo(\n () =>\n yup.object({\n unverifiedCategoryId: yup\n .string()\n .required(\n t(\n \"addNewProductSchema.categoryRequired\",\n \"Kategori seçimi zorunludur\",\n ),\n ),\n\n productName: yup\n .string()\n .required(\n t(\"addNewProductSchema.productNameRequired\", \"Ãœrün adı zorunludur\"),\n ),\n purchaseDate: yup\n .string()\n .required(\n t(\n \"addNewProductSchema.purchaseDateRequired\",\n \"Satın alma tarihi zorunludur\",\n ),\n )\n .matches(\n /^(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[0-2])[/]\\d{4}$/,\n t(\n \"addNewProductSchema.invalidDate\",\n \"Geçerli bir tarih giriniz (GG/AA/YYYY)\",\n ),\n ),\n productPrice: yup\n .number()\n .required(t(\"addNewProductSchema.priceRequired\", \"Fiyat zorunludur\")),\n }),\n [t],\n );\n\n const form = useForm({\n resolver: yupResolver(productSchema),\n defaultValues: DEFAULT_FORM_VALUES,\n mode: \"onChange\",\n });\n\n const { watch, trigger, setValue, handleSubmit, control, formState } = form;\n const watchCategory = watch(\"unverifiedCategoryId\");\n const watchBrand = watch(\"brand\");\n const watchCustomBrand = watch(\"customBrand\");\n\n const handleStepValidation = async () => {\n if (step === FORM_STEPS.CATEGORY) {\n const isValid = await trigger(\"unverifiedCategoryId\");\n if (isValid) {\n setStep(FORM_STEPS.BRAND);\n }\n } else if (step === FORM_STEPS.BRAND) {\n const isValid = await trigger([\"brand\", \"customBrand\"]);\n if (isValid) setStep(FORM_STEPS.DETAILS);\n }\n };\n\n const onSubmit = async (data) => {\n await new Promise((resolve) => setTimeout(resolve, 2000));\n const formData = new FormData();\n formData.append(\"file\", data.billFile);\n const queryParams = {\n name: data.productName,\n unverifiedProductBrandId: data.brand,\n brandName: data.customBrand,\n unverifiedCategoryId: data.unverifiedCategoryId,\n warrantyStartDate: moment(data.purchaseDate, \"DD/MM/YYYY\").format(\n \"YYYY-MM-DD\",\n ),\n warrantYear: 2,\n priceUnit: data.priceUnit,\n productPrice: data.productPrice,\n };\n\n try {\n const response = await axios.post(\"/unverified-products\", formData, {\n params: queryParams,\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n });\n\n onOpenChange();\n toast({\n description: t(\"productsPage.productSuccessfullyAdded\"),\n variant: \"success\",\n });\n form.reset(defaultValues);\n setStep(FORM_STEPS.CATEGORY);\n } catch (error) {\n const errorText = parseError(error.response.data.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n }\n };\n\n const renderSelectedInfo = () =>\n step === FORM_STEPS.CATEGORY ? null : (\n <div className=\"py-4\">\n <div className=\"flex gap-4\">\n {watchCategory && (\n <SelectableCard\n item={{\n name: unverifiedCategories.find(\n (cat) => cat.id === watchCategory,\n )?.name,\n logoUrl: unverifiedCategories.find(\n (cat) => cat.id === watchCategory,\n )?.logoUrl,\n }}\n type=\"category\"\n />\n )}\n {(watchBrand || watchCustomBrand) && (\n <SelectableCard\n item={{\n name:\n unverifiedBrands.find((br) => br.id === watchBrand)?.name ||\n watchCustomBrand,\n logoUrl: unverifiedBrands.find((br) => br.id === watchBrand)\n ?.logoUrl,\n }}\n type=\"brand\"\n />\n )}\n </div>\n </div>\n );\n\n // Update usage in renderCategoryStep\n const renderCategoryStep = () => (\n <CategoryStep\n categories={unverifiedCategories}\n selectedCategory={watchCategory}\n onSelect={(categoryId) => setValue(\"unverifiedCategoryId\", categoryId)}\n />\n );\n const [showMore, setShowMore] = useState(false);\n const renderBrandStep = () => (\n <BrandStep\n brands={unverifiedBrands}\n showMore={showMore}\n setShowMore={setShowMore}\n selectedBrand={watchBrand}\n selectedCustomBrand={watchCustomBrand}\n onSelectBrand={(brandId) => {\n setValue(\"brand\", brandId);\n setValue(\"customBrand\", \"\");\n trigger(\"brand\");\n }}\n onToggleShowMore={() => setShowMore(!showMore)}\n control={control}\n setValue={setValue}\n trigger={trigger}\n t={t}\n />\n );\n\n const renderDetailsStep = () => (\n <DetailsStep control={control} watch={watch} setValue={setValue} t={t} />\n );\n\n const renderDoneStep = () => (\n <div className=\"flex flex-col items-center justify-center gap-6 rounded-lg bg-white pt-10\">\n <h2 className=\"font-medium text-[#101828]\">\n {t(\"productForm.productAdded\", \"Ãœrününüz Eklendi 🎉\")}\n </h2>\n <p className=\"text-center text-sm text-[#677389]\">\n {t(\n \"productForm.productInfo\",\n \"Ãœrününüzle ilgili tüm bilgileri ve ek hizmetleri ürün sayfasından inceleyebilirsiniz.\",\n )}\n </p>\n <Button\n type=\"button\"\n size=\"full\"\n onClick={() => {\n setStep(FORM_STEPS.CATEGORY);\n form.reset(defaultValues);\n onOpenChange();\n }}\n >\n {t(\"productForm.returnHome\", \"Ana Sayfaya Dön\")}\n </Button>\n </div>\n );\n\n const stepContent = {\n [FORM_STEPS.CATEGORY]: renderCategoryStep,\n [FORM_STEPS.BRAND]: renderBrandStep,\n [FORM_STEPS.DETAILS]: renderDetailsStep,\n [FORM_STEPS.DONE]: () => renderDoneStep(),\n };\n\n const isStepDisabled = () => {\n if (step === FORM_STEPS.CATEGORY && !watch(\"unverifiedCategoryId\"))\n return true;\n if (step === FORM_STEPS.BRAND && !watch(\"brand\") && !watch(\"customBrand\"))\n return true;\n if (step === FORM_STEPS.DETAILS && !formState.isValid) return true;\n return false;\n };\n\n // Rename the handler to avoid recursion\n const handleSheetOpenChange = (isOpen) => {\n if (!isOpen) {\n form.reset(defaultValues);\n setStep(FORM_STEPS.CATEGORY);\n }\n onOpenChange(isOpen);\n };\n\n useEffect(() => {\n const fetchUnverifiedBrands = async () => {\n try {\n const response = await axios.get(\"/unverified-product-brands\", {\n params: {\n categoryId: watchCategory,\n },\n });\n setUnverifiedBrands(response.data);\n } catch (error) {\n console.error(\"Error fetching unverified brands:\", error);\n }\n };\n\n const fetchUnverifiedCategories = async () => {\n try {\n const response = await axios.get(\"/unverified-product-categories\");\n setUnverifiedCategories(response.data);\n } catch (error) {\n console.error(\"Error fetching unverified categories:\", error);\n }\n };\n\n fetchUnverifiedBrands();\n fetchUnverifiedCategories();\n }, [open, watchCategory]);\n\n return (\n <Sheet open={open} onOpenChange={handleSheetOpenChange}>\n {formState.isSubmitting && (\n <Loading title={t(\"productForm.loading\", \"Ãœrün ekleniyor...\")} />\n )}\n <SheetContent\n side={isMobile ? \"bottom\" : \"right\"}\n className=\"overflow-auto rounded-lg bg-white p-4\"\n >\n <SheetHeader>\n <SheetTitle>{t(\"productForm.addProduct\", \"Ãœrün Ekle\")}</SheetTitle>\n </SheetHeader>\n {renderSelectedInfo()}\n <Form {...form}>\n <form\n onSubmit={handleSubmit(onSubmit)}\n className=\"mx-auto w-full max-w-md space-y-6\"\n >\n {stepContent[step]()}\n </form>\n </Form>\n <SheetFooter className=\"mt-6\">\n <div className=\"flex w-full justify-between gap-4\">\n {step > FORM_STEPS.CATEGORY && step !== FORM_STEPS.DONE && (\n <Button\n size=\"full\"\n onClick={() => setStep(step - 1)}\n variant=\"secondaryGray\"\n disabled={formState.isSubmitting}\n >\n {t(\"productForm.back\", \"Geri\")}\n </Button>\n )}\n {step !== FORM_STEPS.DONE && (\n <Button\n disabled={isStepDisabled() || formState.isSubmitting}\n className={cn({\n \"cursor-not-allowed opacity-50\":\n (step === FORM_STEPS.CATEGORY && !watchCategory) ||\n (step === FORM_STEPS.BRAND &&\n !watchBrand &&\n !watchCustomBrand) ||\n (step === FORM_STEPS.DETAILS && !formState.isValid) ||\n formState.isSubmitting,\n })}\n size=\"full\"\n type={step === FORM_STEPS.DETAILS ? \"submit\" : \"button\"}\n onClick={\n step === FORM_STEPS.DETAILS\n ? handleSubmit(onSubmit)\n : handleStepValidation\n }\n >\n {step === FORM_STEPS.DETAILS\n ? t(\"common.save\", \"Kaydet\")\n : t(\"common.next\", \"Ä°leri\")}\n </Button>\n )}\n </div>\n </SheetFooter>\n </SheetContent>\n </Sheet>\n );\n};\n\nexport default ProductForm;\n","import { useEffect } from \"react\";\n\nimport ProductListHeader from \"../../components/Products/ProductListHeader\";\nimport UnVerifiedProductsList from \"../../components/Products/UnVerifiedProductsList\";\nimport VerifiedProductsList from \"../../components/Products/VerifiedProductsList\";\nimport useProductStore from \"../../store/useProductStore\";\n\nimport FilterSheet from \"@/components/Products/FilterSheet\";\nimport AddNewProductSheet from \"@/components/newaddproduct/ProductForm\";\n\nexport default function Products() {\n const {\n filters,\n setFilters,\n openFilterSheet,\n setOpenFilterSheet,\n openAddProductSheet,\n setOpenAddProductSheet,\n fetchProducts,\n verifiedProducts,\n unVerifiedProducts,\n } = useProductStore();\n\n useEffect(() => {\n fetchProducts(filters);\n }, []);\n\n return (\n <div className=\"p-5 pb-[100px] md:pb-8\">\n <div className=\"flex w-full flex-col items-center justify-center gap-y-4 md:gap-y-0\">\n <div className=\"flex w-full flex-col items-center justify-center\">\n <ProductListHeader\n filters={filters}\n setFilters={setFilters}\n fetchProducts={fetchProducts}\n />\n <div className=\"mt-8 flex w-full flex-col gap-8 rounded-lg md:bg-white md:p-5 md:shadow-sm\">\n <VerifiedProductsList\n verifiedProducts={verifiedProducts || []}\n fetchProducts={fetchProducts}\n />\n <hr className=\"h-px w-full bg-[#CDD5E0]\" />\n <UnVerifiedProductsList\n unverifiedProducts={unVerifiedProducts}\n fetchProducts={fetchProducts}\n />\n </div>\n </div>\n </div>\n <AddNewProductSheet\n open={openAddProductSheet}\n onOpenChange={(open) => {\n setOpenAddProductSheet(open);\n if (!open) {\n fetchProducts(filters);\n }\n }}\n />\n <FilterSheet\n fetchProducts={fetchProducts}\n setFilters={setFilters}\n filters={filters}\n open={openFilterSheet}\n onOpenChange={setOpenFilterSheet}\n />\n </div>\n );\n}\n","import { useEffect, useState } from \"react\";\n\nimport axios from \"../../api/axios\";\n\nimport mixpanel from \"mixpanel-browser\";\n\nconst useUser = () => {\n const [user, setUser] = useState(null);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n axios\n .get(\"/individual-customers/info\")\n .then((res) => {\n setUser(\n res.data || {\n name: \"Guest\",\n email: \"guest@example.com\",\n phone: \"081234567890\",\n address: \"Jl. Imam Bonjol\",\n },\n );\n\n if (res.data?.id) {\n try {\n // First identify with the user ID\n mixpanel.identify(res.data.id);\n\n // Only try to create alias if we have an anonymous ID\n const distinctId = mixpanel.get_distinct_id();\n if (distinctId && distinctId !== res.data.id) {\n try {\n mixpanel.alias(res.data.id, distinctId);\n } catch (aliasError) {\n // Ignore alias exists error\n console.log(\n \"Mixpanel alias error (can be ignored if already exists):\",\n aliasError,\n );\n }\n }\n } catch (error) {\n console.log(\"Mixpanel identify error:\", error);\n }\n\n // Set basic Mixpanel properties with $ prefix\n const basicProps = {\n $email: res.data?.email,\n $name:\n `${res.data?.firstName || \"\"} ${res.data?.lastName || \"\"}`.trim(),\n $phone: res.data?.phone,\n };\n\n // Set custom properties without $ prefix\n const customProps = {\n gender: res.data?.gender,\n birth_date: res.data?.birthDate,\n email_verified: res.data?.emailVerified,\n phone_verified: res.data?.phoneVerified,\n created_at: res.data?.createdAt,\n updated_at: res.data?.updatedAt,\n membership_agreement: res.data?.membershipAgreement,\n egaranti_user_id: res.data.id,\n };\n\n // Filter out undefined/null values and set all properties\n const cleanBasicProps = Object.fromEntries(\n Object.entries(basicProps).filter(([_, v]) => v != null),\n );\n const cleanCustomProps = Object.fromEntries(\n Object.entries(customProps).filter(([_, v]) => v != null),\n );\n\n mixpanel.people.set({\n ...cleanBasicProps,\n ...cleanCustomProps,\n });\n }\n })\n .catch((err) => {\n console.log(err);\n })\n .finally(() => {\n setLoading(false);\n });\n }, []);\n\n return { user, loading };\n};\n\nexport default useUser;\n","import { Navigate, useLocation } from \"react-router-dom\";\n\nimport useUser from \"@/lib/utils/hooks/use-user\";\n\nconst PrivateRoute = ({ children }) => {\n const { user, loading } = useUser();\n const location = useLocation();\n\n if (loading) {\n return <Skeleton rows={2} columns={3} height={48} />;\n }\n\n if (!user) {\n return <Navigate to=\"/login\" state={{ from: location.pathname }} replace />;\n }\n\n return children;\n};\n\nexport default PrivateRoute;\n\nconst Skeleton = ({ rows = 2, columns = 3, height = 48 }) => {\n return (\n <div role=\"status\" aria-label=\"Loading...\" className=\"flex w-full flex-col\">\n <div className=\"flex-1 flex-col gap-5 p-4\">\n {Array.from({ length: rows }).map((_, rowIndex) => (\n <div\n key={rowIndex}\n className={`grid grid-cols-${columns} mb-4 gap-4`}\n >\n {Array.from({ length: columns }).map((_, colIndex) => (\n <div\n key={colIndex}\n className={`h-${height} animate-pulse rounded bg-gray-100`}\n ></div>\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n};\n","export default \"__VITE_ASSET__c25d9b98__\"","export default \"__VITE_ASSET__1dee154a__\"","import axios from \"./axios\";\n\nexport const getAddress = (id) => {\n return axios.get(`/individual-customer-addresses/${id}`);\n};\n\nexport const getAllAddress = () => {\n return axios.get(`/individual-customer-addresses`);\n};\n\nexport const deleteAddress = (id) => {\n return axios.delete(`/individual-customer-addresses/${id}`);\n};\n\nexport const postAddress = (data) => {\n return axios.post(`/individual-customer-addresses`, emptyStringToNull(data));\n};\n\nexport const putAddress = (addressId, data) => {\n return axios.put(\n `/individual-customer-addresses/${addressId}`,\n emptyStringToNull(data),\n );\n};\n\nexport const emptyStringToNull = (data) => {\n for (let key in data) {\n if (data[key] === \"\") {\n data[key] = null;\n }\n }\n return data;\n};\n","export default \"__VITE_ASSET__54791c41__\"","import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogFooter,\n Button,\n useToast,\n} from \"@egaranti/components\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { deleteAddress } from \"../../lib/api/address\";\nimport { ReactComponent as TrashModalIcon } from \"../../assets/svgs/trashmodalicon.svg\";\n\nimport { parseError } from \"@/lib/utils\";\n\n/* eslint-disable react/prop-types */\nconst DeleteAddressDialog = ({ onOpenChange, open, id }) => {\n const { t } = useTranslation();\n const { toast } = useToast();\n\n const handleDeleteAddress = () => {\n deleteAddress(id)\n .then((res) => {\n onOpenChange();\n })\n .catch((err) => {\n const errorText = parseError(err.response.data.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n });\n };\n\n return (\n <AlertDialog onOpenChange={onOpenChange} open={open}>\n <AlertDialogContent className=\"max-w-[388px] gap-0 px-4\">\n <div className=\"flex h-full w-full flex-col items-center justify-center gap-2 p-6\">\n <TrashModalIcon />\n <h2 className=\"text-center text-xl font-semibold\">\n {t(\"accountPage.deleteAddressTitle\")}\n </h2>\n <h3 className=\"text-center text-base font-medium text-[#677389]\">\n {t(\"accountPage.deleteAddressDesc\")}\n </h3>\n </div>\n <AlertDialogFooter className=\"m-0 mt-6\">\n <AlertDialogCancel className=\"w-full\">\n {t(\"common.cancel\")}\n </AlertDialogCancel>\n <AlertDialogAction asChild>\n <Button className=\"w-full\" onClick={() => handleDeleteAddress(id)}>\n {t(\"common.delete\")}\n </Button>\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n\nexport default DeleteAddressDialog;\n","/* eslint-disable react/prop-types */\nimport { Children, cloneElement, createContext, useContext } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst BreadcrumbContext = createContext();\n\nconst Breadcrumb = ({ children }) => {\n const navigate = useNavigate();\n const handleClick = (link) => {\n navigate(link);\n };\n\n return (\n <BreadcrumbContext.Provider value={{ handleClick }}>\n <div className=\"flex h-[56px] w-full gap-2 bg-[#F2F5F9] px-6\">\n {Children.map(children, (child, index) =>\n cloneElement(child, { index }),\n )}\n </div>\n </BreadcrumbContext.Provider>\n );\n};\n\nconst BreadcrumbItem = ({ index, children, link, active }) => {\n const { handleClick } = useContext(BreadcrumbContext);\n return (\n <div\n className=\"flex items-center\"\n onClick={() => !active && handleClick(link)}\n >\n {index !== 0 && (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 12L10 8L6 4\"\n stroke=\"#97A2B6\"\n strokeWidth=\"1.33333\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n <span\n className={cn(\n \"cursor-pointer font-medium text-[#677389] underline\",\n active && \"text-[#0049E6] no-underline\",\n )}\n >\n {\" \"}\n {children}\n </span>\n </div>\n );\n};\n\nexport default Breadcrumb;\nexport { BreadcrumbItem };\n","export default \"__VITE_ASSET__98ffb9cc__\"","import {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@egaranti/components\";\n\nimport React from \"react\";\n\nimport { ReactComponent as InfoIcon } from \"@/assets/svgs/info.svg\";\n\nconst InfoTooltip = ({ children }) => {\n return (\n <TooltipProvider delayDuration={10}>\n <Tooltip>\n <TooltipTrigger aria-label=\"info\">\n <InfoIcon />\n </TooltipTrigger>\n <TooltipContent>{children}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n\nexport default InfoTooltip;\n","import { Button } from \"@egaranti/components\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@egaranti/components\";\n\nimport React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { ReactComponent as EditIcon } from \"../../../assets/svgs/editicon.svg\";\nimport { ReactComponent as TrashIcon } from \"../../../assets/svgs/trashicon.svg\";\nimport { getAllAddress } from \"../../../lib/api/address\";\n\nimport DeleteAddressDialog from \"@/components/Account/DeleteAddressDialog\";\nimport Breadcrumb, {\n BreadcrumbItem,\n} from \"@/components/common/shared/breadcrumbs\";\nimport InfoTooltip from \"@/components/common/shared/infoTooltip\";\n\nexport default function Address() {\n const { t } = useTranslation();\n const navigateTo = useNavigate();\n const [loading, setLoading] = React.useState(true);\n const [addressList, setAddressList] = React.useState([]);\n const [selectedAddress, setSelectedAddress] = React.useState([]);\n\n const [openDeleteAddressDialog, setOpenDeleteAddressDialog] =\n React.useState(false);\n\n const handleEditAddress = (id) => {\n navigateTo(`/account/address/edit/${id}`, { replace: true });\n };\n\n const handleDeleteAddress = (id) => {\n setSelectedAddress(id);\n setOpenDeleteAddressDialog(true);\n };\n\n useEffect(() => {\n setTimeout(() => {\n getAllAddress().then((res) => {\n setAddressList(res.data);\n setLoading(false);\n });\n }, 1000);\n }, [openDeleteAddressDialog]);\n\n return (\n <div className=\"flex w-full items-center justify-between\">\n <main className=\"w-full flex-col bg-[#F9FAFC]\">\n <Breadcrumb>\n <BreadcrumbItem link=\"/account\">\n {t(\"accountPage.myAccount\")}\n </BreadcrumbItem>\n <BreadcrumbItem active>{t(\"accountPage.myAddresses\")}</BreadcrumbItem>\n </Breadcrumb>\n <div className=\"h-full p-7\">\n <div className=\"flex max-w-[800px] flex-col gap-6\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"flex items-center gap-2 font-medium text-[#97a2b6]\">\n {t(\"accountPage.myAddresses\")}\n <InfoTooltip>{t(\"accountPage.myAddressesDesc\")}</InfoTooltip>\n </h2>\n <Button onClick={() => navigateTo(\"/account/address/add\")}>\n {t(\"accountPage.addAddress\")}\n </Button>\n </div>\n <div className=\"rounded-lg\">\n <Table className=\"border border-[#EAECF0] bg-white shadow-sm\">\n <TableHeader className=\"rounded-lg border border-[#E3E7EF] bg-[#F9FAFC] font-semibold text-[#364153]\">\n <TableRow>\n <TableHead>{t(\"accountPage.title\")}</TableHead>\n <TableHead>{t(\"accountPage.address\")}</TableHead>\n <TableHead>{t(\"accountPage.actions\")}</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {addressList.map((address, index) => (\n <TableRow key={index}>\n <TableCell>\n <span\n onClick={() => {\n navigateTo(`/account/address/${address.id}`);\n }}\n className=\"cursor-pointer text-[#111729]\"\n >\n {address.title}\n </span>\n </TableCell>\n <TableCell>\n <span\n onClick={() => {\n navigateTo(`/account/address/${address.id}`);\n }}\n className=\"cursor-pointer text-[#677389]\"\n >\n {address.addressLine}\n </span>\n </TableCell>\n <TableCell>\n <button\n onClick={() => handleEditAddress(address.id)}\n className=\"rounded-lg p-2 hover:bg-[#F2F5F9]\"\n >\n <EditIcon />\n </button>\n <button\n onClick={() => handleDeleteAddress(address.id)}\n className=\"rounded-lg p-2 hover:bg-[#FEF3F2]\"\n >\n <TrashIcon />\n </button>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n <div className=\"flex justify-end gap-3\">\n <Button\n className=\"w-full md:w-auto\"\n onClick={() => navigateTo(\"/account\")}\n variant=\"secondaryGray\"\n >\n {t(\"accountPage.goBack\")}\n </Button>\n </div>\n </div>\n </div>\n </main>\n <DeleteAddressDialog\n onOpenChange={() => setOpenDeleteAddressDialog(false)}\n open={openDeleteAddressDialog}\n id={selectedAddress}\n />\n </div>\n );\n}\n","import * as yup from \"yup\";\n\nexport const addressSchema = yup.object({\n title: yup.string().required(\"Adres baÅŸlığı boÅŸ bırakılamaz\"),\n addressLine: yup.string().required(\"Adres boÅŸ bırakılamaz\"),\n});\nexport const addressEditSchema = yup.object({\n title: yup.string().required(\"Adres baÅŸlığı boÅŸ bırakılamaz\"),\n addressLine: yup.string().required(\"Adres boÅŸ bırakılamaz\"),\n});\n","import {\n Button,\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n Input,\n Label,\n} from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport { useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { getAddress } from \"../../../lib/api/address\";\n\nimport Breadcrumb, {\n BreadcrumbItem,\n} from \"@/components/common/shared/breadcrumbs\";\n\nimport { addressSchema } from \"@/lib/utils/validation/schemas\";\n\nexport default function AddressDetail() {\n const { t } = useTranslation();\n const navigateTo = useNavigate();\n let addressId = window.location.pathname.split(\"/\")[3];\n const [title, setTitle] = useState(\"\");\n\n const form = useForm({\n resolver: yupResolver(addressSchema),\n defaultValues: {\n title: \"\",\n addressLine: \"\",\n },\n mode: \"onBlur\",\n reValidateMode: \"onChange\",\n });\n\n useEffect(() => {\n getAddress(addressId).then((res) => {\n form.reset(res.data);\n setTitle(res.data.title);\n });\n }, []);\n\n return (\n <div className=\"flex w-full flex-col\">\n <Breadcrumb>\n <BreadcrumbItem link=\"/account/address\">\n {\" \"}\n {t(\"accountPage.myAddresses\")}\n </BreadcrumbItem>\n <BreadcrumbItem active>\n {t(\"accountPage.addressInfo\")} - {title}\n </BreadcrumbItem>\n </Breadcrumb>\n <Form {...form}>\n <form className=\"w-full bg-[#F9FAFC] p-4\">\n <div className=\"mx-auto mt-6 flex max-w-[1000px] flex-col gap-5 rounded-lg border border-[#EAECF0] bg-white p-[30px]\">\n <h2 className=\"mb-2 font-medium\">{t(\"Adres Bilgileri\")}</h2>\n <FormField\n control={form.control}\n name=\"title\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"accountPage.title\")}</Label>\n <FormControl>\n <Input disabled {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"addressLine\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"accountPage.address\")}</Label>\n <FormControl>\n <Input disabled {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <div className=\"flex justify-end gap-4\">\n <Button\n onClick={() => {\n navigateTo(\"/account/address\");\n }}\n variant=\"secondaryGray\"\n >\n {t(\"accountPage.goBack\")}\n </Button>\n </div>\n </div>\n </form>\n </Form>\n </div>\n );\n}\n","import {\n Button,\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n Input,\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n useToast,\n} from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport Breadcrumb, {\n BreadcrumbItem,\n} from \"@/components/common/shared/breadcrumbs\";\n\nimport { getAddress, putAddress } from \"@/lib/api/address\";\nimport axios from \"@/lib/api/axios\";\nimport { parseError } from \"@/lib/utils\";\nimport { addressEditSchema } from \"@/lib/utils/validation/schemas\";\n\nexport default function EditAddress() {\n const { t } = useTranslation();\n const navigateTo = useNavigate();\n const { toast } = useToast();\n const addressId = window.location.pathname.split(\"/\")[4];\n\n const [title, setTitle] = useState(\"\");\n\n const form = useForm({\n resolver: yupResolver(addressEditSchema),\n defaultValues: {\n title: \"\",\n addressLine: \"\",\n },\n shouldUnregister: false,\n });\n\n useEffect(() => {\n getAddress(addressId).then((res) => {\n form.reset(res.data);\n setTitle(res.data.title);\n });\n }, []);\n\n const handleSave = (data) => {\n const request = {\n ...data,\n };\n\n putAddress(addressId, request)\n .then((res) => {\n navigateTo(\"/account/address\", { replace: true });\n })\n .catch((err) => {\n const errorText = parseError(err.response.data.errors);\n\n toast({\n description: errorText,\n variant: \"error\",\n });\n });\n };\n\n return (\n <div className=\"flex w-full flex-col\">\n <Breadcrumb>\n <BreadcrumbItem link=\"/account/address\">\n {\" \"}\n {t(\"accountPage.myAddresses\")}\n </BreadcrumbItem>\n <BreadcrumbItem active>\n {t(\"accountPage.editAddress\")} - {title}\n </BreadcrumbItem>\n </Breadcrumb>\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(handleSave)}\n className=\"w-full bg-[#F9FAFC] p-4\"\n >\n <div className=\"mx-auto mt-6 flex max-w-[1000px] flex-col gap-5 rounded-lg border border-[#EAECF0] bg-white p-[30px]\">\n <h2 className=\"mb-2 font-medium\">{t(\"accountPage.addressInfo\")}</h2>\n <FormField\n control={form.control}\n name=\"title\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"accountPage.title\")}</Label>\n <FormControl>\n <Input maxLength={40} {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"addressLine\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"accountPage.address\")}</Label>\n <FormControl>\n <Input maxLength={220} {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <div className=\"flex justify-end gap-4\">\n <Button\n onClick={() => {\n navigateTo(\"/account/address\");\n }}\n variant=\"secondaryGray\"\n >\n {t(\"accountPage.goBack\")}\n </Button>\n <Button onSubmit={form.handleSubmit(handleSave)}>\n {t(\"common.save\")}\n </Button>\n </div>\n </div>\n </form>\n </Form>\n </div>\n );\n}\n","import {\n Button,\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n Input,\n Label,\n useToast,\n} from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nimport Breadcrumb, {\n BreadcrumbItem,\n} from \"@/components/common/shared/breadcrumbs\";\n\nimport { postAddress } from \"@/lib/api/address\";\nimport { parseError } from \"@/lib/utils\";\nimport { addressSchema } from \"@/lib/utils/validation/schemas\";\n\nexport default function NewAddress() {\n const { t } = useTranslation();\n const navigateTo = useNavigate();\n const location = useLocation();\n const { toast } = useToast();\n\n const [loading, setLoading] = useState(false);\n\n const form = useForm({\n resolver: yupResolver(addressSchema),\n defaultValues: {\n title: \"\",\n addressLine: \"\",\n },\n });\n\n const handleSave = (data) => {\n if (loading) return;\n\n setLoading(true);\n postAddress(data)\n .then((res) => {\n toast({\n description: t(\"Adres eklendi\"),\n variant: \"success\",\n });\n navigateTo(\n location.state?.from ? location.state.from : \"/account/address\",\n {\n state: { product: location.state?.product },\n },\n );\n })\n .catch((err) => {\n const errorText = parseError(err.response.data.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n return (\n <div className=\"flex w-full flex-col\">\n <Breadcrumb>\n <BreadcrumbItem link=\"/account/address\">\n {\" \"}\n {t(\"accountPage.myAddresses\")}\n </BreadcrumbItem>\n <BreadcrumbItem active>{t(\"accountPage.newAddress\")}</BreadcrumbItem>\n </Breadcrumb>\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(handleSave)}\n className=\"w-full bg-[#F9FAFC] p-4\"\n >\n <div className=\"mx-auto mt-6 flex max-w-[1000px] flex-col gap-5 rounded-lg border border-[#EAECF0] bg-white p-[30px]\">\n <h2 className=\"mb-2 font-medium\">{t(\"accountPage.addressInfo\")}</h2>\n <FormField\n control={form.control}\n name=\"title\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"accountPage.title\")}</Label>\n <FormControl>\n <Input maxLength={40} {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <FormField\n control={form.control}\n name=\"addressLine\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"accountPage.address\")}</Label>\n <FormControl>\n <Input maxLength={220} {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <div className=\"flex justify-end gap-4\">\n <Button\n onClick={() => {\n navigateTo(\"/account/address\");\n }}\n variant=\"secondaryGray\"\n >\n {t(\"accountPage.goBack\")}\n </Button>\n <Button onSubmit={form.handleSubmit(handleSave)}>\n {t(\"common.save\")}\n </Button>\n </div>\n </div>\n </form>\n </Form>\n </div>\n );\n}\n","import { Button } from \"@egaranti/components\";\nimport { useToast } from \"@egaranti/components\";\n\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport axios from \"../../lib/api/axios\";\n\nimport EmptyData from \"@/components/common/EmptyData\";\nimport Breadcrumb, {\n BreadcrumbItem,\n} from \"@/components/common/shared/breadcrumbs\";\n\nexport default function ArchivedProducts() {\n const { t } = useTranslation();\n const { toast } = useToast();\n const [archivedProducts, setArchivedProducts] = useState([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n fetchArchivedProducts();\n }, []);\n\n const fetchArchivedProducts = async () => {\n try {\n const response = await axios.get(\"/individual-customer-products/archive\");\n setArchivedProducts(response.data.content);\n } catch (error) {\n console.error(\"Error fetching archived products:\", error);\n } finally {\n setLoading(false);\n }\n };\n\n const handleUnarchive = async (productId) => {\n try {\n await axios.post(`/individual-customer-products/unarchive`, {\n individualCustomerProductId: productId,\n });\n toast({\n title: t(\"product.unarchiveSuccess\", \"Ãœrün arÅŸivden kaldırıldı\"),\n description: t(\n \"product.unarchiveSuccessDescription\",\n \"Ãœrünlerim sayfasından eriÅŸebilirsin\",\n ),\n variant: \"success\",\n });\n fetchArchivedProducts();\n } catch (error) {\n console.error(\"Error unarchiving product:\", error);\n }\n };\n\n if (loading) {\n return <div className=\"p-5\">Loading...</div>;\n }\n\n return (\n <div className=\"flex w-full items-center justify-between\">\n <main className=\"w-full flex-col bg-[#F9FAFC]\">\n <Breadcrumb>\n <BreadcrumbItem link=\"/account\">\n {t(\"accountPage.myAccount\")}\n </BreadcrumbItem>\n <BreadcrumbItem active>\n {t(\"accountPage.archivedProducts\")}\n </BreadcrumbItem>\n </Breadcrumb>\n <div className=\"h-full p-7\">\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {archivedProducts.map((product) => (\n <div\n key={product.id}\n className=\"flex min-h-[200px] flex-col justify-between rounded-lg border border-gray-200 bg-white p-4 shadow-sm\"\n >\n <div className=\"mb-4 flex flex-col gap-2\">\n <p className=\"truncate text-sm text-gray-600\">\n {t(product?.category?.split(\">\").pop().trim())}\n </p>\n <h3 className=\"break-words text-lg font-medium leading-tight\">\n {product.name}\n </h3>\n <p className=\"truncate text-sm text-gray-600\">\n {product.brand}\n </p>\n </div>\n <Button\n variant=\"secondaryColor\"\n onClick={() => handleUnarchive(product.id)}\n className=\"w-full\"\n size=\"sm\"\n >\n {t(\"product.unarchive\", \"ArÅŸivden Kaldır\")}\n </Button>\n </div>\n ))}\n {archivedProducts.length === 0 && (\n <EmptyData\n className=\"col-span-full\"\n title={t(\n \"product.noArchivedProducts\",\n \"ArÅŸivlenmiÅŸ ürün bulunmuyor\",\n )}\n />\n )}\n </div>\n </div>\n </main>\n </div>\n );\n}\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Use constructFrom here instead?\n if (context) return context(argument);\n\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (typeof argument === \"object\" && constructFromSymbol in argument) {\n return argument[constructFromSymbol](argument);\n } else if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize =\n context ||\n constructFrom.bind(\n null,\n dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\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\n wide: [\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\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import {\n Button,\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n Input,\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Sheet,\n SheetContent,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n useToast,\n} from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport { useEffect } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport axios from \"../../lib/api/axios\";\n\nimport { format, parse } from \"date-fns\";\nimport { useHookFormMask } from \"use-mask-input\";\nimport * as yup from \"yup\";\n\nimport { parseError } from \"@/lib/utils\";\nimport useMediaQuery from \"@/lib/utils/hooks/useMediaQuery\";\n\nconst EditSheet = ({ open, onOpenChange, getProfile, data }) => {\n const { t } = useTranslation();\n const { toast } = useToast();\n\n const schema = yup.object().shape({\n firstName: yup\n .string()\n .required(t(\"common.formErrors.nameRequired\"))\n .min(2, t(\"common.formErrors.nameMin\"))\n .max(50, t(\"common.formErrors.nameMax\")),\n lastName: yup\n .string()\n .required(t(\"common.formErrors.surnameRequired\"))\n .min(2, t(\"common.formErrors.surnameMin\"))\n .max(50, t(\"common.formErrors.surnameMax\")),\n email: yup\n .string()\n .email(t(\"common.formErrors.email\"))\n .required(t(\"common.formErrors.emailRequired\")),\n });\n\n const form = useForm({\n resolver: yupResolver(schema),\n defaultValues: {\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n birthDate: \"\",\n gender: null,\n },\n mode: \"onBlur\",\n reValidateMode: \"onChange\",\n });\n\n useEffect(() => {\n form.reset({\n firstName: data.firstName,\n lastName: data.lastName,\n email: data.email,\n birthDate: data.birthDate,\n gender: data.gender,\n });\n }, [data]);\n\n const registerWithMask = useHookFormMask(form.register);\n\n const parseDateString = (dateString) => {\n try {\n // Parse DD/MM/YYYY format\n const parsedDate = parse(dateString, \"dd/MM/yyyy\", new Date());\n if (isNaN(parsedDate.getTime())) {\n return null;\n }\n return parsedDate;\n } catch (error) {\n return null;\n }\n };\n\n const onSubmit = (data) => {\n const { dirtyFields } = form.formState;\n const payload = {};\n\n if (!Object.keys(dirtyFields).length) {\n onOpenChange();\n return;\n }\n\n for (const key in dirtyFields) {\n if (dirtyFields[key]) {\n if (key === \"birthDate\" && data[key]) {\n const parsedDate = parseDateString(data[key]);\n if (parsedDate) {\n payload[key] = format(parsedDate, \"yyyy-MM-dd\");\n }\n } else {\n payload[key] = data[key];\n }\n }\n }\n\n axios\n .put(\"/individual-customers/info\", payload)\n .then((res) => {\n toast({\n description: t(\"accountPage.profileUpdateSuccess\"),\n variant: \"success\",\n });\n onOpenChange();\n getProfile();\n })\n .catch((err) => {\n const errorText = parseError(err.response.data.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n });\n };\n\n const isMobile = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent\n side={isMobile ? \"bottom\" : \"right\"}\n className=\"rounded-lg bg-white p-4 md:m-4\"\n >\n <SheetHeader>\n <SheetTitle>{t(\"accountPage.updateProfileInfo\")}</SheetTitle>\n </SheetHeader>\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(onSubmit)}\n className=\"mt-5 space-y-5\"\n >\n <FormField\n control={form.control}\n name=\"firstName\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"accountPage.name\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"lastName\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"accountPage.surname\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"accountPage.email\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"birthDate\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"accountPage.birthDate\")}</Label>\n <FormControl>\n <Input\n {...field}\n {...registerWithMask(\"birthDate\", {\n mask: \"99/99/9999\",\n placeholder: \"GG/AA/YYYY\",\n })}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"gender\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"accountPage.gender\")}</Label>\n <FormControl>\n <Select\n onValueChange={field.onChange}\n defaultValue={field.value}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"MALE\">\n {t(\"common.gender.male\", \"Erkek\")}\n </SelectItem>\n <SelectItem value=\"FEMLAE\">\n {t(\"common.gender.female\", \"Kadın\")}\n </SelectItem>\n <SelectItem value=\"OTHER\">\n {t(\"common.gender.other\", \"DiÄŸer\")}\n </SelectItem>\n </SelectContent>\n </Select>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </form>\n </Form>\n <SheetFooter className=\"mt-4\">\n <Button onClick={form.handleSubmit(onSubmit)}>\n {t(\"common.save\")}\n </Button>\n </SheetFooter>\n </SheetContent>\n </Sheet>\n );\n};\n\nexport default EditSheet;\n","import { Button } from \"@egaranti/components\";\n\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport axios from \"../../lib/api/axios\";\n\nimport EditSheet from \"@/components/Account/EditSheet\";\nimport Breadcrumb, {\n BreadcrumbItem,\n} from \"@/components/common/shared/breadcrumbs\";\n\nexport default function Profile() {\n const { t } = useTranslation();\n\n const [openChangePasswordSheet, setOpenChangePasswordSheet] = useState(false);\n const [openEditSheet, setOpenEditSheet] = useState(false);\n const [openConfirmEmailDialog, setOpenConfirmEmailDialog] = useState(false);\n const [openConfirmPhoneDialog, setOpenConfirmPhoneDialog] = useState(false);\n\n const [data, setData] = useState({\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n phone: \"\",\n });\n\n const [formData, setFormData] = useState({\n firstName: \"\",\n lastName: \"\",\n password: \"\",\n passwordConfirmation: \"\",\n });\n\n const getProfile = () => {\n axios\n .get(\"/individual-customers/info\")\n .then((res) => {\n setData({\n ...res.data,\n });\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n useEffect(() => {\n getProfile();\n setFormData({\n firstName: data.firstName,\n lastName: data.lastName,\n email: data.email,\n });\n }, [openEditSheet, openConfirmPhoneDialog, openConfirmEmailDialog]);\n\n return (\n <main>\n <Breadcrumb>\n <BreadcrumbItem link=\"/account\">\n {t(\"accountPage.myAccount\")}\n </BreadcrumbItem>\n <BreadcrumbItem active>\n {t(\"accountPage.profileInformation\")}\n </BreadcrumbItem>\n </Breadcrumb>\n <div className=\"max-w-3xl p-5 pb-[100px] md:pb-8\">\n <div className=\"mb-2 flex items-center justify-between pb-3 pt-5\">\n <h2 className=\"font-medium text-[#97a2b6]\">\n {t(\"accountPage.profileInformation\")}\n </h2>\n <Button\n onClick={() => {\n setOpenEditSheet(true);\n }}\n variant=\"secondaryGray\"\n >\n {t(\"accountPage.edit\")}\n </Button>\n </div>\n <div className=\"flex flex-col gap-4 rounded-lg border border-[#F2F5F9] bg-white p-6 shadow-sm\">\n <div className=\"flex flex-col gap-2 border-b pb-4\">\n <label className=\"text-sm font-medium text-[#97a2b6]\">\n {t(\"accountPage.name\")}\n </label>\n <p className=\"text-sm font-semibold text-[#2b2b2b]\">\n {data.firstName}\n </p>\n </div>\n <div className=\"flex flex-col gap-2 border-b pb-4\">\n <label className=\"text-sm font-medium text-[#97a2b6]\">\n {t(\"accountPage.surname\")}\n </label>\n <p className=\"text-sm font-semibold text-[#2b2b2b]\">\n {data.lastName}\n </p>\n </div>\n <div className=\"flex items-center justify-between border-b pb-4\">\n <div className=\"flex flex-col gap-2 \">\n <label className=\"text-sm font-medium text-[#97a2b6]\">\n {t(\"accountPage.email\")}\n </label>\n <p className=\"text-sm font-semibold text-[#0049E6] underline\">\n {data.email ? data.email : t(\"accountPage.emailNotFound\")}\n </p>\n </div>\n </div>\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col gap-2 \">\n <label className=\"text-sm font-medium text-[#97a2b6]\">\n {t(\"accountPage.phoneNumber\")}\n </label>\n <p className=\"text-sm font-semibold text-[#0049E6] underline\">\n {data.phone ? data.phone : t(\"accountPage.phoneNumberNotFound\")}\n </p>\n </div>\n </div>\n </div>\n <EditSheet\n open={openEditSheet}\n onOpenChange={setOpenEditSheet}\n getProfile={getProfile}\n data={data}\n />\n </div>\n </main>\n );\n}\n","export default \"__VITE_ASSET__063d5712__\"","export default \"__VITE_ASSET__16556094__\"","export default \"__VITE_ASSET__06cf39a0__\"","import {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ReactComponent as EnglishFlag } from \"../../../assets/svgs/english.svg\";\nimport { ReactComponent as RussianFlag } from \"../../../assets/svgs/russia.svg\";\nimport { ReactComponent as TurkishFlag } from \"../../../assets/svgs/turkey.svg\";\n\nconst LanguageSwitcher = () => {\n const { i18n } = useTranslation();\n const [hoverMenusState, setHoverMenusState] = React.useState(false);\n\n const changeLanguage = (e) => {\n i18n.changeLanguage(e);\n localStorage.setItem(\"i18nextLng\", e);\n setHoverMenusState({ ...hoverMenusState, language: false });\n window.location.reload();\n };\n\n return (\n <div className=\"mt-2 max-w-sm bg-white\">\n <Select onValueChange={(e) => changeLanguage(e)} value={i18n.language}>\n <SelectTrigger>\n <SelectValue>\n <span className=\"flex items-center\">\n {i18n.language === \"tr\" && (\n <>\n <TurkishFlag className=\"mr-2 rounded-full\" />\n <span>Türkçe</span>\n </>\n )}\n {i18n.language === \"en\" && (\n <>\n <EnglishFlag className=\"mr-2\" />\n <span>English</span>\n </>\n )}\n {i18n.language === \"ru\" && (\n <>\n <RussianFlag className=\"mr-2 h-5 w-5 rounded-full\" />\n <span>РуÑÑкий</span>\n </>\n )}\n </span>\n </SelectValue>\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"tr\">Türkçe</SelectItem>\n <SelectItem value=\"en\">English</SelectItem>\n <SelectItem value=\"ru\">РуÑÑкий</SelectItem>\n </SelectContent>\n </Select>\n </div>\n );\n};\n\nexport default LanguageSwitcher;\n","import { Label } from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport LanguageSwitcherForPage from \"@/components/common/LanguageSwitcher/LanguageSwitcherForPage\";\n\nconst LanguagePage = () => {\n const { t } = useTranslation();\n return (\n <div className=\"min-h-screen bg-[#f9fafc] p-7\">\n <Label>{t(\"accountPage.card3Title\")}</Label>\n <LanguageSwitcherForPage />\n </div>\n );\n};\n\nexport default LanguagePage;\n","import React from \"react\";\nimport { Route } from \"react-router-dom\";\n\nimport { Account } from \"../pages\";\nimport AddressPage from \"../pages/Account/Address\";\nimport AddresDetail from \"../pages/Account/Address/AddressDetail\";\nimport EditAddress from \"../pages/Account/Address/EditAddress\";\nimport AddAddress from \"../pages/Account/Address/NewAddress\";\nimport ArchivedProducts from \"../pages/Account/ArchivedProducts\";\nimport Profile from \"../pages/Account/Profile\";\nimport PrivateRoute from \"./PrivateRoute\";\n\nimport LanguagePage from \"@/pages/Account/Language\";\n\nexport const accountRoutes = (\n <>\n <Route\n path=\"/account\"\n element={\n <PrivateRoute>\n <Account />\n </PrivateRoute>\n }\n />\n <Route path=\"/account/profile\" element={<Profile />} />\n <Route\n path=\"/account/language\"\n element={\n <PrivateRoute>\n <LanguagePage />\n </PrivateRoute>\n }\n />\n <Route path=\"/account/address\" element={<AddressPage />} />\n\n <Route path=\"/account/address/:id\" element={<AddresDetail />} />\n <Route path=\"/account/address/edit/:id\" element={<EditAddress />} />\n <Route path=\"/account/address/add\" element={<AddAddress />} />\n <Route path=\"/account/archived-products\" element={<ArchivedProducts />} />\n </>\n);\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","export default \"__VITE_ASSET__68b0a902__\"","export default \"__VITE_ASSET__27e48c09__\"","export default \"__VITE_ASSET__9257af0c__\"","export default \"__VITE_ASSET__f0fb6035__\"","export default \"__VITE_ASSET__273523e1__\"","export default \"__VITE_ASSET__ff7a4369__\"","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ReactComponent as ArcelikLogo } from \"@/assets/svgs/login/arcelik.svg\";\nimport { ReactComponent as AygazLogo } from \"@/assets/svgs/login/aygaz.svg\";\nimport { ReactComponent as BraunLogo } from \"@/assets/svgs/login/braun.svg\";\nimport { ReactComponent as CasioLogo } from \"@/assets/svgs/login/casio.svg\";\nimport { ReactComponent as FakirLogo } from \"@/assets/svgs/login/fakir.svg\";\nimport { ReactComponent as LamyLogo } from \"@/assets/svgs/login/lamy.svg\";\n\nconst BrandsSection = () => {\n const { t } = useTranslation();\n return (\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"text-lg font-medium text-[#111729]\">\n {t(\"login.brands\")}\n </h2>\n <></>\n </div>\n <div className=\"grid w-full grid-cols-6 place-items-center gap-4 rounded-lg bg-gradient-to-r from-[#0049E6] to-[#4E984E] p-6 md:p-10\">\n <AygazLogo className=\"w-9 md:w-full\" />\n <FakirLogo className=\"w-8 md:w-full\" />\n <BraunLogo className=\"w-7 md:w-full\" />\n <CasioLogo className=\"w-10 md:w-full\" />\n <LamyLogo className=\"w-10 md:w-full\" />\n <ArcelikLogo className=\"w-12 md:w-full\" />\n </div>\n </div>\n );\n};\n\nexport default BrandsSection;\n","import { Button } from \"@egaranti/components\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst FeaturesSection = ({ triggerLoginModal }) => {\n const { t } = useTranslation();\n\n const features = [\n {\n id: 1,\n title: t(\"login.features.insuranceAndWarranty.title\"),\n description: t(\"login.features.insuranceAndWarranty.description\"),\n icon: (\n <svg\n width=\"56\"\n height=\"56\"\n viewBox=\"0 0 56 56\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-12 w-12 md:h-14 md:w-14\"\n >\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#AAC2F7\" />\n <rect\n x=\"4\"\n y=\"4\"\n width=\"48\"\n height=\"48\"\n rx=\"24\"\n stroke=\"#CCDBFA\"\n strokeWidth=\"8\"\n />\n <path\n d=\"M25 27L27 29L32 25M36 28C36 32.9088 31.146 36.4788 29.198 37.6152C28.9766 37.7444 28.8659 37.809 28.7097 37.8425C28.5884 37.8685 28.4116 37.8685 28.2903 37.8425C28.1341 37.809 28.0234 37.7444 27.802 37.6152C25.854 36.4788 21 32.9088 21 28V23.218C21 22.4184 21 22.0187 21.1308 21.6751C21.2463 21.3715 21.434 21.1006 21.6777 20.8859C21.9535 20.6428 22.3278 20.5024 23.0764 20.2217L28.4382 18.211C28.6461 18.1331 28.75 18.0941 28.857 18.0786C28.9518 18.0649 29.0482 18.0649 29.143 18.0786C29.25 18.0941 29.3539 18.1331 29.5618 18.211L34.9236 20.2217C35.6722 20.5024 36.0465 20.6428 36.3223 20.8859C36.566 21.1006 36.7537 21.3715 36.8692 21.6751C37 22.0187 37 22.4184 37 23.218V28Z\"\n stroke=\"#0040C9\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n },\n {\n id: 2,\n title: t(\"login.features.spareParts.title\"),\n description: t(\"login.features.spareParts.description\"),\n icon: (\n <svg\n width=\"56\"\n height=\"56\"\n viewBox=\"0 0 56 56\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-12 w-12 md:h-14 md:w-14\"\n >\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#AAC2F7\" />\n <rect\n x=\"4\"\n y=\"4\"\n width=\"48\"\n height=\"48\"\n rx=\"24\"\n stroke=\"#CCDBFA\"\n strokeWidth=\"8\"\n />\n <path\n d=\"M22 22L26 26M22 22H19L18 19L19 18L22 19V22ZM35 18L32 21C32 21 32 22 33 23C34 24 34 24 34 24L37 21C38 22 38 22 38 23C38 26 35 29 32 29C32 29 31 28 30 28C29 28 28 29 28 29L22 36C21 37 20 37 19 36C18 35 18 34 19 33L26 26C26 26 27 25 27 24C27 23 27 23 27 23C27 20 29 18 32 18C33 18 34 18 35 18Z\"\n stroke=\"#0040C9\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n },\n {\n id: 3,\n title: t(\"login.features.buyback.title\"),\n description: t(\"login.features.buyback.description\"),\n icon: (\n <svg\n width=\"56\"\n height=\"56\"\n viewBox=\"0 0 56 56\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-12 w-12 md:h-14 md:w-14\"\n >\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#AAC2F7\" />\n <rect\n x=\"4\"\n y=\"4\"\n width=\"48\"\n height=\"48\"\n rx=\"24\"\n stroke=\"#CCDBFA\"\n strokeWidth=\"8\"\n />\n <path\n d=\"M36 33H20M20 33L24 29M20 33L24 37M20 23H36M36 23L32 19M36 23L32 27\"\n stroke=\"#0040C9\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n },\n ];\n\n return (\n <div className=\"mt-16 flex flex-col items-center gap-6 pb-12 sm:mt-20 md:mt-24\">\n <h2 className=\"text-center text-lg font-semibold text-[#111729] md:text-2xl\">\n {t(\"login.features.title\")}\n </h2>\n <h4 className=\"text-center text-sm font-medium text-[#64626A] md:text-base\">\n {t(\"login.features.description\")}\n </h4>\n <div className=\"mt-9 grid grid-cols-1 gap-6 sm:grid-cols-2 sm:gap-8 md:grid-cols-3 md:gap-12\">\n {features.map((feature) => (\n <div key={feature.id} className=\"flex flex-col items-center gap-4\">\n {feature.icon}\n <h3 className=\"text-center text-lg font-semibold text-[#101828] md:text-xl\">\n {feature.title}\n </h3>\n <p className=\"text-center text-sm text-[#677389] md:text-base\">\n {feature.description}\n </p>\n </div>\n ))}\n </div>\n <Button className=\"mt-10 sm:mt-12\" onClick={triggerLoginModal}>\n {t(\"login.features.button\")}\n </Button>\n </div>\n );\n};\n\nexport default FeaturesSection;\n","export default \"__VITE_ASSET__105efca9__\"","import {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n Input,\n Label,\n PasswordInput,\n PhoneInput,\n} from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function LoginForm({ loginMethod = 0, form, onSubmit }) {\n const { t } = useTranslation();\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)}>\n {loginMethod === 0 ? (\n <>\n <div className=\"flex gap-2\">\n <FormField\n control={form.control}\n name=\"phone\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"authPages.phoneNumber\")}</Label>\n <FormControl>\n <PhoneInput\n defaultCountry=\"TR\"\n onChange={(country, value) => {\n form.setValue(\"phone\", value);\n form.setValue(\"countryCode\", country);\n }}\n value={form.getValues(\"phone\")}\n onBlur={field.onBlur}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n </>\n ) : (\n loginMethod === 1 && (\n <FormField\n control={form.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem>\n <Label>{t(\"authPages.email\")}</Label>\n <FormControl>\n <Input type=\"email\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n )\n )}\n </form>\n </Form>\n );\n}\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst LoginMethodSwitcher = ({ loginMethod, setLoginMethod, disabled }) => {\n const { t } = useTranslation();\n\n if (disabled) return null;\n\n return (\n <div className=\"mt-2 flex items-center justify-center rounded-xl bg-[#F2F5F9] p-1\">\n <button\n onClick={() => setLoginMethod(0)}\n className={`flex w-full cursor-pointer items-center justify-center rounded-lg py-2 transition-all ${\n loginMethod === 0 && \"bg-white\"\n }`}\n >\n <span\n className={cn(\n \"whitespace-nowrap text-xs font-medium text-[#677389] transition-all md:text-base\",\n loginMethod === 0 && \"text-[#111729]\",\n )}\n >\n {t(\"authPages.loginWithPhone\")}\n </span>\n </button>\n <button\n onClick={() => setLoginMethod(1)}\n className={`flex w-full cursor-pointer items-center justify-center rounded-lg py-2 transition-all ${\n loginMethod === 1 && \"bg-white\"\n }`}\n >\n <span\n className={cn(\n \"whitespace-nowrap text-xs font-medium text-[#677389] transition-all md:text-base\",\n loginMethod === 1 && \"text-[#111729]\",\n )}\n >\n {t(\"authPages.loginWithEmail\")}\n </span>\n </button>\n </div>\n );\n};\n\nexport default LoginMethodSwitcher;\n","import { Button } from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport LoginForm from \"./LoginForm\";\nimport LoginMethodSwitcher from \"./LoginMethodSwitcher\";\n\nconst LoginCard = ({\n form,\n loginMethod,\n setLoginMethod,\n onSubmit,\n loading,\n}) => {\n const { t } = useTranslation();\n\n return (\n <div className=\"m-5 flex w-full max-w-sm flex-col gap-4 rounded-lg bg-white p-4 shadow-sm\">\n <h2 className=\"text-xl font-semibold\">{t(\"authPages.login\")}</h2>\n <h3 className=\"text-[#677389]\">{t(\"authPages.manageAll\")}</h3>\n <LoginMethodSwitcher\n setLoginMethod={setLoginMethod}\n loginMethod={\n localStorage.getItem(\"userCountry\") === \"UZ\" ? 1 : loginMethod\n }\n disabled={localStorage.getItem(\"userCountry\") === \"UZ\"}\n />\n <LoginForm onSubmit={onSubmit} loginMethod={loginMethod} form={form} />\n <Button onClick={form.handleSubmit(onSubmit)} disabled={loading}>\n {t(\"authPages.login\")}\n </Button>\n <span className=\"text-center text-[14px] text-[#667085]\" href=\"/register\">\n {t(\"authPages.dontYouHaveAnAccount\")}\n <a className=\"ml-1 text-[#0049E6]\" href=\"/register\">\n {t(\"authPages.register\")}\n </a>\n </span>\n </div>\n );\n};\n\nexport default LoginCard;\n","import {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ReactComponent as EnglishFlag } from \"../../../assets/svgs/english.svg\";\nimport { ReactComponent as RussianFlag } from \"../../../assets/svgs/russia.svg\";\nimport { ReactComponent as TurkishFlag } from \"../../../assets/svgs/turkey.svg\";\n\nconst LanguageSwitcher = () => {\n const { i18n } = useTranslation();\n const [hoverMenusState, setHoverMenusState] = React.useState(false);\n\n const changeLanguage = (e) => {\n i18n.changeLanguage(e);\n localStorage.setItem(\"i18nextLng\", e);\n setHoverMenusState({ ...hoverMenusState, language: false });\n window.location.reload();\n };\n\n return (\n <Select onValueChange={(e) => changeLanguage(e)} value={i18n.language}>\n <SelectTrigger className=\"max-w-[80px]\">\n <SelectValue>\n <span>\n {i18n.language === \"tr\" && (\n <TurkishFlag className=\"mr-5 rounded-full\" />\n )}\n {i18n.language === \"en\" && <EnglishFlag className=\"mr-5\" />}\n {i18n.language === \"ru\" && (\n <RussianFlag className=\"mr-5 h-5 w-5 rounded-full\" />\n )}\n </span>\n </SelectValue>\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"tr\">Türkçe</SelectItem>\n <SelectItem value=\"en\">English</SelectItem>\n <SelectItem value=\"ru\">РуÑÑкий</SelectItem>\n </SelectContent>\n </Select>\n );\n};\n\nexport default LanguageSwitcher;\n","export default \"__VITE_ASSET__3c166d9b__\"","export default \"__VITE_ASSET__7f89fd52__\"","import React from \"react\";\n\nimport { ReactComponent as EgarantiLogoWhite } from \"../../../assets/svgs/egarantilogowhite.svg\";\nimport LoginCard from \"./LoginCard\";\n\nimport LanguageSwitcher from \"@/components/common/LanguageSwitcher\";\n\nimport bannerTexture from \"@/assets/images/bannertexture.png\";\nimport bannerImg1 from \"@/assets/images/loginbanner.png\";\n\nconst LoginHeroDesktop = ({\n form,\n loginMethod,\n setLoginMethod,\n onSubmit,\n loading,\n}) => {\n return (\n <div\n style={{\n background: `linear-gradient(to right, rgba(12, 31, 73, 1), rgba(16, 84, 224, 0.8), rgba(125, 156, 224, 0.8)), url(${bannerTexture})`,\n }}\n className=\"group hidden flex-col items-start rounded-b-2xl p-20 pt-6 md:flex\"\n >\n <header className=\"mx-auto flex w-full max-w-7xl items-center justify-between pb-12\">\n <EgarantiLogoWhite className=\"w-32\" />\n <div className=\"mr-4 rounded-lg bg-white\">\n <LanguageSwitcher className=\"text-white\" />\n </div>\n </header>\n <div className=\"mx-auto flex w-full max-w-7xl items-center justify-between\">\n <img\n className=\"w-80 transition-transform duration-500 group-hover:scale-110 lg:w-96\"\n src={bannerImg1}\n alt=\"egarantiye hoÅŸ geldin\"\n />\n <LoginCard\n form={form}\n loginMethod={loginMethod}\n setLoginMethod={setLoginMethod}\n onSubmit={onSubmit}\n loading={loading}\n />\n </div>\n </div>\n );\n};\n\nexport default LoginHeroDesktop;\n","import React from \"react\";\n\nimport LoginCard from \"./LoginCard\";\n\nimport LanguageSwitcher from \"@/components/common/LanguageSwitcher\";\n\nimport bannerTexture from \"@/assets/images/bannertexture.png\";\n\nconst LoginHeroMobile = ({\n form,\n loginMethod,\n setLoginMethod,\n onSubmit,\n loading,\n}) => {\n return (\n <div\n style={{\n background: `linear-gradient(to right, rgba(12, 31, 73, 1), rgba(16, 84, 224, 0.8), rgba(125, 156, 224, 0.8)), url(${bannerTexture})`,\n }}\n className=\"relative block md:hidden\"\n >\n <div\n style={{\n background:\n \"linear-gradient(to bottom, transparent 50%, #F9FAFC 50%)\",\n }}\n className=\"flex h-full w-full justify-center pt-20\"\n >\n <div className=\"absolute right-6 top-4 z-10 rounded-lg bg-white\">\n <LanguageSwitcher />\n </div>\n <LoginCard\n form={form}\n loginMethod={loginMethod}\n setLoginMethod={setLoginMethod}\n onSubmit={onSubmit}\n loading={loading}\n />\n </div>\n </div>\n );\n};\n\nexport default LoginHeroMobile;\n","import {\n Button,\n Dialog,\n DialogContent,\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n useToast,\n} from \"@egaranti/components\";\nimport { DialogTitle } from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport LoginForm from \"./LoginForm\";\nimport LoginMethodSwitcher from \"./LoginMethodSwitcher\";\n\nimport useMediaQuery from \"@/lib/utils/hooks/useMediaQuery\";\n\nconst LoginModal = ({\n open,\n onOpenChange,\n form,\n onSubmit,\n loading,\n loginMethod,\n setLoginMethod,\n}) => {\n const { t } = useTranslation();\n const isMobile = useMediaQuery(\"(max-width: 640px)\");\n\n if (isMobile)\n return (\n <Drawer open={open} onOpenChange={onOpenChange}>\n <DrawerContent className=\"flex flex-col gap-4 bg-white\">\n <div className=\"flex flex-col gap-4 p-5 pt-0\">\n <h2 className=\"text-2xl font-semibold\">{t(\"authPages.login\")}</h2>\n <h3 className=\"text-[#677389]\">{t(\"authPages.manageAll\")}</h3>\n <LoginMethodSwitcher\n setLoginMethod={setLoginMethod}\n loginMethod={\n localStorage.getItem(\"userCountry\") === \"UZ\" ? 1 : loginMethod\n }\n disabled={localStorage.getItem(\"userCountry\") === \"UZ\"}\n />\n <LoginForm form={form} loginMethod={loginMethod} />\n <Button onClick={form.handleSubmit(onSubmit)} disabled={loading}>\n {t(\"authPages.login\")}\n </Button>\n </div>\n </DrawerContent>\n </Drawer>\n );\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"bg-white\">\n <DialogTitle>\n <h2 className=\"text-2xl font-semibold\">{t(\"authPages.login\")}</h2>\n </DialogTitle>\n <h3 className=\"text-[#677389]\">{t(\"authPages.manageAll\")}</h3>\n <LoginMethodSwitcher\n setLoginMethod={setLoginMethod}\n loginMethod={\n localStorage.getItem(\"userCountry\") === \"UZ\" ? 1 : loginMethod\n }\n disabled={localStorage.getItem(\"userCountry\") === \"UZ\"}\n />\n <LoginForm form={form} loginMethod={loginMethod} />\n <Button onClick={form.handleSubmit(onSubmit)} disabled={loading}>\n {t(\"authPages.login\")}\n </Button>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default LoginModal;\n","import { cn } from \"@/lib/utils\";\n\nconst Slot = (props) => {\n return (\n <div\n className={cn(\n \"flex h-8 w-8 items-center justify-center rounded-md border border-[#D3DBE9] font-medium text-[#364153] md:h-10 md:w-10\",\n props.isActive && \"border-[#0049E6] text-[#111729]\",\n )}\n {...props}\n >\n {props.char !== null && <div>{props.char}</div>}\n </div>\n );\n};\n\nexport default Slot;\n","var Bt=Object.defineProperty,At=Object.defineProperties;var kt=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var gt=Object.prototype.hasOwnProperty,Et=Object.prototype.propertyIsEnumerable;var vt=(r,s,e)=>s in r?Bt(r,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[s]=e,St=(r,s)=>{for(var e in s||(s={}))gt.call(s,e)&&vt(r,e,s[e]);if(Y)for(var e of Y(s))Et.call(s,e)&&vt(r,e,s[e]);return r},bt=(r,s)=>At(r,kt(s));var Pt=(r,s)=>{var e={};for(var u in r)gt.call(r,u)&&s.indexOf(u)<0&&(e[u]=r[u]);if(r!=null&&Y)for(var u of Y(r))s.indexOf(u)<0&&Et.call(r,u)&&(e[u]=r[u]);return e};import*as n from\"react\";function ht(r){let s=setTimeout(r,0),e=setTimeout(r,10),u=setTimeout(r,50);return[s,e,u]}import*as U from\"react\";function _t(r){let s=U.useRef();return U.useEffect(()=>{s.current=r}),s.current}import*as S from\"react\";var Ot=18,wt=40,Gt=`${wt}px`,xt=[\"[data-lastpass-icon-root]\",\"com-1password-button\",\"[data-dashlanecreated]\",'[style$=\"2147483647 !important;\"]'].join(\",\");function Tt({containerRef:r,inputRef:s,pushPasswordManagerStrategy:e,isFocused:u}){let[P,D]=S.useState(!1),[G,H]=S.useState(!1),[F,W]=S.useState(!1),Z=S.useMemo(()=>e===\"none\"?!1:(e===\"increase-width\"||e===\"experimental-no-flickering\")&&P&&G,[P,G,e]),T=S.useCallback(()=>{let f=r.current,h=s.current;if(!f||!h||F||e===\"none\")return;let a=f,B=a.getBoundingClientRect().left+a.offsetWidth,A=a.getBoundingClientRect().top+a.offsetHeight/2,z=B-Ot,q=A;document.querySelectorAll(xt).length===0&&document.elementFromPoint(z,q)===f||(D(!0),W(!0))},[r,s,F,e]);return S.useEffect(()=>{let f=r.current;if(!f||e===\"none\")return;function h(){let A=window.innerWidth-f.getBoundingClientRect().right;H(A>=wt)}h();let a=setInterval(h,1e3);return()=>{clearInterval(a)}},[r,e]),S.useEffect(()=>{let f=u||document.activeElement===s.current;if(e===\"none\"||!f)return;let h=setTimeout(T,0),a=setTimeout(T,2e3),B=setTimeout(T,5e3),A=setTimeout(()=>{W(!0)},6e3);return()=>{clearTimeout(h),clearTimeout(a),clearTimeout(B),clearTimeout(A)}},[s,u,e,T]),{hasPWMBadge:P,willPushPWMBadge:Z,PWM_BADGE_SPACE_WIDTH:Gt}}var jt=n.createContext({}),Lt=n.forwardRef((A,B)=>{var z=A,{value:r,onChange:s,maxLength:e,textAlign:u=\"left\",pattern:P,placeholder:D,inputMode:G=\"numeric\",onComplete:H,pushPasswordManagerStrategy:F=\"increase-width\",pasteTransformer:W,containerClassName:Z,noScriptCSSFallback:T=Nt,render:f,children:h}=z,a=Pt(z,[\"value\",\"onChange\",\"maxLength\",\"textAlign\",\"pattern\",\"placeholder\",\"inputMode\",\"onComplete\",\"pushPasswordManagerStrategy\",\"pasteTransformer\",\"containerClassName\",\"noScriptCSSFallback\",\"render\",\"children\"]);var X,lt,ut,dt,ft;let[q,nt]=n.useState(typeof a.defaultValue==\"string\"?a.defaultValue:\"\"),i=r!=null?r:q,I=_t(i),x=n.useCallback(t=>{s==null||s(t),nt(t)},[s]),m=n.useMemo(()=>P?typeof P==\"string\"?new RegExp(P):P:null,[P]),l=n.useRef(null),K=n.useRef(null),J=n.useRef({value:i,onChange:x,isIOS:typeof window!=\"undefined\"&&((lt=(X=window==null?void 0:window.CSS)==null?void 0:X.supports)==null?void 0:lt.call(X,\"-webkit-touch-callout\",\"none\"))}),V=n.useRef({prev:[(ut=l.current)==null?void 0:ut.selectionStart,(dt=l.current)==null?void 0:dt.selectionEnd,(ft=l.current)==null?void 0:ft.selectionDirection]});n.useImperativeHandle(B,()=>l.current,[]),n.useEffect(()=>{let t=l.current,o=K.current;if(!t||!o)return;J.current.value!==t.value&&J.current.onChange(t.value),V.current.prev=[t.selectionStart,t.selectionEnd,t.selectionDirection];function d(){if(document.activeElement!==t){L(null),N(null);return}let c=t.selectionStart,b=t.selectionEnd,mt=t.selectionDirection,v=t.maxLength,C=t.value,_=V.current.prev,g=-1,E=-1,w;if(C.length!==0&&c!==null&&b!==null){let Dt=c===b,Ht=c===C.length&&C.length<v;if(Dt&&!Ht){let y=c;if(y===0)g=0,E=1,w=\"forward\";else if(y===v)g=y-1,E=y,w=\"backward\";else if(v>1&&C.length>1){let et=0;if(_[0]!==null&&_[1]!==null){w=y<_[1]?\"backward\":\"forward\";let Wt=_[0]===_[1]&&_[0]<v;w===\"backward\"&&!Wt&&(et=-1)}g=et+y,E=et+y+1}}g!==-1&&E!==-1&&g!==E&&l.current.setSelectionRange(g,E,w)}let pt=g!==-1?g:c,Rt=E!==-1?E:b,yt=w!=null?w:mt;L(pt),N(Rt),V.current.prev=[pt,Rt,yt]}if(document.addEventListener(\"selectionchange\",d,{capture:!0}),d(),document.activeElement===t&&Q(!0),!document.getElementById(\"input-otp-style\")){let c=document.createElement(\"style\");if(c.id=\"input-otp-style\",document.head.appendChild(c),c.sheet){let b=\"background: transparent !important; color: transparent !important; border-color: transparent !important; opacity: 0 !important; box-shadow: none !important; -webkit-box-shadow: none !important; -webkit-text-fill-color: transparent !important;\";$(c.sheet,\"[data-input-otp]::selection { background: transparent !important; color: transparent !important; }\"),$(c.sheet,`[data-input-otp]:autofill { ${b} }`),$(c.sheet,`[data-input-otp]:-webkit-autofill { ${b} }`),$(c.sheet,\"@supports (-webkit-touch-callout: none) { [data-input-otp] { letter-spacing: -.6em !important; font-weight: 100 !important; font-stretch: ultra-condensed; font-optical-sizing: none !important; left: -1px !important; right: 1px !important; } }\"),$(c.sheet,\"[data-input-otp] + * { pointer-events: all !important; }\")}}let R=()=>{o&&o.style.setProperty(\"--root-height\",`${t.clientHeight}px`)};R();let p=new ResizeObserver(R);return p.observe(t),()=>{document.removeEventListener(\"selectionchange\",d,{capture:!0}),p.disconnect()}},[]);let[ot,rt]=n.useState(!1),[j,Q]=n.useState(!1),[M,L]=n.useState(null),[k,N]=n.useState(null);n.useEffect(()=>{ht(()=>{var R,p,c,b;(R=l.current)==null||R.dispatchEvent(new Event(\"input\"));let t=(p=l.current)==null?void 0:p.selectionStart,o=(c=l.current)==null?void 0:c.selectionEnd,d=(b=l.current)==null?void 0:b.selectionDirection;t!==null&&o!==null&&(L(t),N(o),V.current.prev=[t,o,d])})},[i,j]),n.useEffect(()=>{I!==void 0&&i!==I&&I.length<e&&i.length===e&&(H==null||H(i))},[e,H,I,i]);let O=Tt({containerRef:K,inputRef:l,pushPasswordManagerStrategy:F,isFocused:j}),st=n.useCallback(t=>{let o=t.currentTarget.value.slice(0,e);if(o.length>0&&m&&!m.test(o)){t.preventDefault();return}typeof I==\"string\"&&o.length<I.length&&document.dispatchEvent(new Event(\"selectionchange\")),x(o)},[e,x,I,m]),at=n.useCallback(()=>{var t;if(l.current){let o=Math.min(l.current.value.length,e-1),d=l.current.value.length;(t=l.current)==null||t.setSelectionRange(o,d),L(o),N(d)}Q(!0)},[e]),ct=n.useCallback(t=>{var g,E;let o=l.current;if(!W&&(!J.current.isIOS||!t.clipboardData||!o))return;let d=t.clipboardData.getData(\"text/plain\"),R=W?W(d):d;t.preventDefault();let p=(g=l.current)==null?void 0:g.selectionStart,c=(E=l.current)==null?void 0:E.selectionEnd,v=(p!==c?i.slice(0,p)+R+i.slice(c):i.slice(0,p)+R+i.slice(p)).slice(0,e);if(v.length>0&&m&&!m.test(v))return;o.value=v,x(v);let C=Math.min(v.length,e-1),_=v.length;o.setSelectionRange(C,_),L(C),N(_)},[e,x,m,i]),It=n.useMemo(()=>({position:\"relative\",cursor:a.disabled?\"default\":\"text\",userSelect:\"none\",WebkitUserSelect:\"none\",pointerEvents:\"none\"}),[a.disabled]),it=n.useMemo(()=>({position:\"absolute\",inset:0,width:O.willPushPWMBadge?`calc(100% + ${O.PWM_BADGE_SPACE_WIDTH})`:\"100%\",clipPath:O.willPushPWMBadge?`inset(0 ${O.PWM_BADGE_SPACE_WIDTH} 0 0)`:void 0,height:\"100%\",display:\"flex\",textAlign:u,opacity:\"1\",color:\"transparent\",pointerEvents:\"all\",background:\"transparent\",caretColor:\"transparent\",border:\"0 solid transparent\",outline:\"0 solid transparent\",boxShadow:\"none\",lineHeight:\"1\",letterSpacing:\"-.5em\",fontSize:\"var(--root-height)\",fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\"}),[O.PWM_BADGE_SPACE_WIDTH,O.willPushPWMBadge,u]),Mt=n.useMemo(()=>n.createElement(\"input\",bt(St({autoComplete:a.autoComplete||\"one-time-code\"},a),{\"data-input-otp\":!0,\"data-input-otp-placeholder-shown\":i.length===0||void 0,\"data-input-otp-mss\":M,\"data-input-otp-mse\":k,inputMode:G,pattern:m==null?void 0:m.source,\"aria-placeholder\":D,style:it,maxLength:e,value:i,ref:l,onPaste:t=>{var o;ct(t),(o=a.onPaste)==null||o.call(a,t)},onChange:st,onMouseOver:t=>{var o;rt(!0),(o=a.onMouseOver)==null||o.call(a,t)},onMouseLeave:t=>{var o;rt(!1),(o=a.onMouseLeave)==null||o.call(a,t)},onFocus:t=>{var o;at(),(o=a.onFocus)==null||o.call(a,t)},onBlur:t=>{var o;Q(!1),(o=a.onBlur)==null||o.call(a,t)}})),[st,at,ct,G,it,e,k,M,a,m==null?void 0:m.source,i]),tt=n.useMemo(()=>({slots:Array.from({length:e}).map((t,o)=>{var c;let d=j&&M!==null&&k!==null&&(M===k&&o===M||o>=M&&o<k),R=i[o]!==void 0?i[o]:null,p=i[0]!==void 0?null:(c=D==null?void 0:D[o])!=null?c:null;return{char:R,placeholderChar:p,isActive:d,hasFakeCaret:d&&R===null}}),isFocused:j,isHovering:!a.disabled&&ot}),[j,ot,e,k,M,a.disabled,i]),Ct=n.useMemo(()=>f?f(tt):n.createElement(jt.Provider,{value:tt},h),[h,tt,f]);return n.createElement(n.Fragment,null,T!==null&&n.createElement(\"noscript\",null,n.createElement(\"style\",null,T)),n.createElement(\"div\",{ref:K,\"data-input-otp-container\":!0,style:It,className:Z},Ct,n.createElement(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\"}},Mt)))});Lt.displayName=\"Input\";function $(r,s){try{r.insertRule(s)}catch(e){console.error(\"input-otp could not insert CSS rule:\",s)}}var Nt=`\n[data-input-otp] {\n --nojs-bg: white !important;\n --nojs-fg: black !important;\n\n background-color: var(--nojs-bg) !important;\n color: var(--nojs-fg) !important;\n caret-color: var(--nojs-fg) !important;\n letter-spacing: .25em !important;\n text-align: center !important;\n border: 1px solid var(--nojs-fg) !important;\n border-radius: 4px !important;\n width: 100% !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-input-otp] {\n --nojs-bg: black !important;\n --nojs-fg: white !important;\n }\n}`;var Kt=\"^\\\\d+$\",Jt=\"^[a-zA-Z]+$\",Qt=\"^[a-zA-Z0-9]+$\";export{Lt as OTPInput,jt as OTPInputContext,Jt as REGEXP_ONLY_CHARS,Kt as REGEXP_ONLY_DIGITS,Qt as REGEXP_ONLY_DIGITS_AND_CHARS};\n//# sourceMappingURL=index.mjs.map","import {\n Dialog,\n DialogContent,\n Drawer,\n DrawerContent,\n DrawerFooter,\n} from \"@egaranti/components\";\n\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Slot from \"@/components/common/shared/slot\";\n\nimport { OTPInput } from \"input-otp\";\n\nimport useMediaQuery from \"@/lib/utils/hooks/useMediaQuery\";\n\nconst OtpVerifyDialog = ({ open, onOpenChange, phone, email, onVerify }) => {\n const { t } = useTranslation();\n const isMobile = useMediaQuery(\"(max-width: 640px)\");\n const [code, setCode] = useState(\"\");\n const [remainingTime, setRemainingTime] = useState(179);\n const [isResendDisabled, setIsResendDisabled] = useState(true);\n\n useEffect(() => {\n const interval = setInterval(() => {\n setRemainingTime((prev) => (prev > 0 ? prev - 1 : 0));\n }, 1000);\n return () => clearInterval(interval);\n }, []);\n\n useEffect(() => {\n if (remainingTime === 0) {\n setIsResendDisabled(false);\n } else {\n setIsResendDisabled(true);\n }\n }, [remainingTime]);\n\n useEffect(() => {\n if (code.length === 6) {\n onVerify(code);\n }\n }, [code]);\n\n if (isMobile)\n return (\n <Drawer open={open} onOpenChange={onOpenChange}>\n <DrawerContent className=\"flex flex-col gap-4 bg-white\">\n <div className=\"flex flex-col gap-4 p-4 py-0\">\n <h2 className=\"text-2xl font-semibold\">\n {t(\"authPages.verifyPhone\")}\n </h2>\n <h3 className=\"text-[#677389]\">\n {email?.length > 2\n ? t(\"authPages.verifyEmailDesc\", { email })\n : t(\"authPages.verifyPhoneDesc\", { phone })}\n </h3>\n <div className=\"flex flex-col items-center\">\n <label className=\"text-xs font-medium text-[#677389]\">\n {t(\"authPages.otpCode\")}\n </label>\n <OTPInput\n value={code}\n onChange={(c) => setCode(c)}\n maxLength={6}\n containerClassName=\"flex justify-center gap-3 mt-5\"\n render={({ slots }) => (\n <div className=\"flex gap-3\">\n {slots.slice(0, 6).map((slot, idx) => (\n <Slot key={idx} {...slot} />\n ))}\n </div>\n )}\n />\n {/* remaning time */}\n <div className=\"mt-4 flex items-center gap-2 \">\n <p className=\"text-sm text-gray-500\">\n {t(\"accountPage.remainingTime\")} :\n </p>\n <p className=\"text-sm font-medium text-[#0049E6]\">\n {isResendDisabled\n ? `${Math.floor(remainingTime / 60)}:${remainingTime % 60}`\n : t(\"accountPage.resend\")}\n </p>\n </div>\n </div>\n </div>\n <DrawerFooter></DrawerFooter>\n </DrawerContent>\n </Drawer>\n );\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"bg-white\">\n <div className=\"flex flex-col gap-4 pb-6\">\n <h2 className=\"text-2xl font-semibold\">\n {t(\"authPages.verifyPhone\")}\n </h2>\n <h3 className=\"text-[#677389]\">\n {email?.length > 2\n ? t(\"authPages.verifyEmailDesc\", { email })\n : t(\"authPages.verifyPhoneDesc\", { phone })}\n </h3>\n <div className=\"flex flex-col items-center\">\n <label className=\"text-xs font-medium text-[#677389]\">\n {t(\"authPages.otpCode\")}\n </label>\n <OTPInput\n value={code}\n onChange={(c) => setCode(c)}\n maxLength={6}\n containerClassName=\"flex justify-center gap-3 mt-5\"\n render={({ slots }) => (\n <div className=\"flex gap-3\">\n {slots.slice(0, 6).map((slot, idx) => (\n <Slot key={idx} {...slot} />\n ))}\n </div>\n )}\n />\n {/* remaning time */}\n <div className=\"mt-4 flex items-center gap-2 \">\n <p className=\"text-sm text-gray-500\">\n {t(\"accountPage.remainingTime\")} :\n </p>\n <p className=\"text-sm font-medium text-[#0049E6]\">\n {isResendDisabled\n ? `${Math.floor(remainingTime / 60)}:${remainingTime % 60}`\n : t(\"accountPage.resend\")}\n </p>\n </div>\n </div>\n </div>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default OtpVerifyDialog;\n","import { Button } from \"@egaranti/components\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { ReactComponent as InsuranceIcon } from \"@/assets/svgs/insurance.svg\";\nimport { ReactComponent as RightArrow } from \"@/assets/svgs/right-arrow.svg\";\n\nconst ServicesSection = ({ triggerLoginModal }) => {\n const { t } = useTranslation();\n const userCountry = localStorage.getItem(\"userCountry\");\n\n const data = [\n // Insurance kartını sadece userCountry !== \"UZ\" olduÄŸunda ekle\n ...(userCountry === \"UZ\"\n ? []\n : [\n {\n title: t(\"overview.ourServices.insurance\"),\n description: t(\"overview.ourServices.insuranceDescription\"),\n icon: <InsuranceIcon className=\"h-12 w-12 md:h-24 md:w-24\" />,\n link: \"/services/get-extended-warranty\",\n },\n ]),\n {\n title: t(\"overview.ourServices.claims\"),\n description: t(\"overview.ourServices.claimsDescription\"),\n icon: (\n <svg\n width=\"80\"\n height=\"80\"\n viewBox=\"0 0 80 80\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-12 w-12 md:h-24 md:w-24\"\n >\n <path\n d=\"M27.7996 69.6974L23.7181 75.7487C22.5838 77.4304 20.9984 78.6426 19.2248 79.3335C17.4066 80.0416 15.3937 80.197 13.4719 79.7443L11.5367 79.2882L12.6467 77.6429L17.8022 69.9995L15.4584 64.2121L9.18877 64.1875L4.03219 71.8325L2.92288 73.4771L1.77538 71.854C0.635468 70.2416 0.0254822 68.316 0.000968933 66.3623C-0.0226898 64.4612 0.507011 62.5388 1.64083 60.8575L5.72262 54.8062C7.20929 52.6019 9.46349 51.2061 11.8974 50.7331C14.0526 50.3143 16.35 50.6215 18.3803 51.7345L51.1296 18.985C50.6706 17.7099 50.4799 16.3491 50.5762 14.9976C50.6923 13.3671 51.2218 11.7469 52.1957 10.3026L56.2775 4.2513C57.4117 2.56955 58.9972 1.35738 60.7709 0.666458C62.5892 -0.0416183 64.6019 -0.196991 66.5234 0.255676L68.4586 0.711815L67.3489 2.35712L62.1936 10.0005L64.5372 15.7879L70.8068 15.8125L75.9634 8.16753L77.0727 6.52287L78.2204 8.14603C79.3601 9.75813 79.9698 11.684 79.9944 13.6377C80.018 15.5388 79.4885 17.4612 78.3545 19.1425L74.2727 25.1938V25.1943C72.786 27.3981 70.5318 28.7939 68.0979 29.2669C65.9429 29.6857 63.6453 29.3785 61.6153 28.2655L28.8657 61.015C29.3247 62.2901 29.5154 63.6511 29.4193 65.0022C29.303 66.6329 28.7737 68.2533 27.7996 69.6974Z\"\n fill=\"#CDD5E0\"\n />\n <path\n d=\"M18.4148 51.7002L51.129 18.9863L61.6123 28.2689L28.8793 61.002L18.4148 51.7002Z\"\n fill=\"#0040C9\"\n />\n <path\n d=\"M52.0449 24.9051L55.1029 27.9631C55.9039 28.7638 55.9039 30.0743 55.1029 30.8752L30.8952 55.083C30.0942 55.8839 28.784 55.8837 27.983 55.083L24.9251 52.025C24.1241 51.2243 24.1243 49.9138 24.9251 49.1128L49.1328 24.9051C49.9337 24.1042 51.244 24.1042 52.0449 24.9051Z\"\n fill=\"#002E90\"\n />\n <path\n d=\"M68.9152 62.1328L69.5778 65.6325L70.2406 69.1322L67.5413 71.456L64.8414 73.7797L61.4795 72.6036L58.1174 71.4278L57.4547 67.9281L56.7919 64.4284L59.4914 62.1047L62.1911 59.7809L65.5531 60.9568L68.9152 62.1328ZM23.1446 18.9912L14.2959 20.5501L6.84659 11.8963C2.85625 17.8018 8.29284 24.7818 13.8683 27.0824C15.6688 27.8254 17.6129 28.1959 19.5612 28.1428L20.4918 28.1176L52.0898 64.8246C51.5287 68.1131 51.4692 70.5541 54.7306 74.3431C57.9922 78.1319 66.2269 79.7429 71.079 75.5659C75.9311 71.3892 75.5627 63.0053 72.3018 59.2175C69.0411 55.4295 66.6226 55.1268 63.2899 55.19L31.6888 18.4791L31.8523 17.5625C32.1945 15.6438 32.1177 13.6666 31.651 11.7756C30.2045 5.91596 24.101 -0.466136 17.6886 2.58448L25.1276 11.2263L23.1446 18.9912Z\"\n fill=\"#447AED\"\n />\n <path\n d=\"M31.8677 27.202C31.2067 26.4342 30.0484 26.3478 29.2806 27.0087C28.5128 27.6696 28.4264 28.8278 29.0872 29.5956L51.4719 55.5997C52.1326 56.3675 53.2908 56.4538 54.0586 55.7929C54.8263 55.1322 54.9129 53.9741 54.2522 53.2063L31.8677 27.202Z\"\n fill=\"#0040C9\"\n />\n <path\n d=\"M69.6039 68.9076L69.0045 65.7431L69.578 65.6333L69.0018 65.7424C68.9991 65.729 68.9973 65.716 68.9956 65.7028L68.4033 62.5742L65.3606 61.5101L65.553 60.9577L65.3595 61.5111C65.3422 61.5051 65.3254 61.4983 65.3089 61.4909L62.319 60.4449L59.874 62.5498L57.4287 64.6548L58.0278 67.8192L57.4545 67.929L58.0307 67.8199C58.033 67.8331 58.035 67.8463 58.0367 67.8595L58.629 70.9881L61.672 72.0522L61.4796 72.6046L61.673 72.0512C61.6901 72.0572 61.7073 72.064 61.7236 72.0714L64.7133 73.1172L67.1586 71.0125L69.6039 68.9076ZM70.1517 65.5254L70.8038 68.9693C70.8658 69.183 70.8025 69.4228 70.6231 69.5774L67.9236 71.9011L65.2254 74.2239L65.224 74.2249C65.0704 74.3567 64.853 74.4055 64.6482 74.3338L64.8416 73.7806L64.6476 74.3311L61.338 73.1736C61.3206 73.169 61.3031 73.1641 61.2859 73.1579L61.2863 73.1566L57.9635 71.9945C57.754 71.9373 57.5845 71.7653 57.5413 71.5378L58.1173 71.4287L57.5423 71.5368L56.8872 68.0768C56.8839 68.0639 56.8812 68.0511 56.8787 68.0381L56.88 68.0379L56.8798 68.0369H56.8808L56.2288 64.593C56.1668 64.3793 56.2298 64.1395 56.4094 63.9849L59.1089 61.6612L61.8071 59.3384L61.8084 59.3374C61.9619 59.2053 62.1795 59.1568 62.3843 59.2283L62.1909 59.7817L62.3848 59.2312L65.6945 60.3887C65.7119 60.3933 65.7293 60.3982 65.7466 60.4042L65.746 60.4057L69.069 61.5678C69.2786 61.625 69.448 61.7968 69.4912 62.0245L68.9152 62.1336L69.49 62.0255L70.1453 65.4856C70.1486 65.4982 70.1513 65.5112 70.1538 65.5242L70.1526 65.5244V65.5252L70.1517 65.5254Z\"\n fill=\"#0049E6\"\n />\n <path\n d=\"M7.69028 11.976C7.47907 11.7307 7.10893 11.703 6.8634 11.9142C6.61809 12.1254 6.5904 12.4958 6.80161 12.7413L13.8519 20.9313C14.0007 21.1043 14.2282 21.169 14.4355 21.1185L23.2465 19.5663L23.2467 19.5675C23.4999 19.5229 23.6863 19.3218 23.7244 19.0814L25.6937 11.3694L25.1278 11.2252L25.696 11.3702C25.7451 11.1774 25.6927 10.9825 25.5722 10.8424L18.5219 2.65198C18.3107 2.40666 17.9406 2.37897 17.695 2.59019C17.4497 2.8014 17.422 3.17154 17.6333 3.41706L24.4861 11.3783L22.673 18.479L14.5237 19.9145L7.69028 11.976Z\"\n fill=\"#0049E6\"\n />\n </svg>\n ),\n link: \"/claims\",\n },\n ];\n\n return (\n <div className=\"flex w-full flex-col py-6\">\n <div className=\"mb-4 flex flex-col items-center justify-between sm:flex-row\">\n <h2 className=\"text-lg font-medium text-[#111729] sm:text-xl\">\n {t(\"navbar.services\")}\n </h2>\n <Button\n size=\"sm\"\n variant=\"secondaryGray\"\n className=\"mt-2 sm:mt-0\"\n onClick={triggerLoginModal}\n >\n {t(\"overview.ServicesSectionButton\")}\n </Button>\n </div>\n\n {/* Grid düzeni mobil uyumlu hale getirildi */}\n <div className=\"grid w-full grid-cols-1 gap-6 sm:grid-cols-2 sm:gap-8 md:grid-cols-3 md:gap-12\">\n {data.map((item, index) => (\n <Card\n key={index}\n link={item.link}\n title={item.title}\n description={item.description}\n icon={item.icon}\n triggerLoginModal={triggerLoginModal}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default ServicesSection;\n\nconst Card = ({ title, icon, description, triggerLoginModal }) => {\n return (\n <Link\n onClick={triggerLoginModal}\n className=\"flex w-full flex-col items-center\"\n >\n <div className=\"flex h-auto w-full flex-col gap-3 rounded-lg border bg-white p-4 hover:border-gray-300\">\n <h3 className=\"text-sm font-semibold text-[#364153] md:text-lg\">\n {title}\n </h3>\n <p className=\"text-xs font-medium text-[#677389] md:text-sm\">\n {description}\n </p>\n <div className=\"mt-auto flex w-full items-center justify-center md:justify-between\">\n {icon}\n <RightArrow className=\"h-10 w-10 md:h-12 md:w-12\" />\n </div>\n </div>\n </Link>\n );\n};\n","import { useToast } from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport { useEffect, useState } from \"react\";\nimport Helmet from \"react-helmet\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport BrandsSection from \"@/components/Auth/Login/BrandsSection\";\nimport FeaturesSection from \"@/components/Auth/Login/FeaturesSection\";\nimport LoginHeroDesktop from \"@/components/Auth/Login/LoginHeroDesktop\";\nimport LoginHeroMobile from \"@/components/Auth/Login/LoginHeroMobile\";\nimport LoginModal from \"@/components/Auth/Login/LoginModal\";\nimport OtpVerifyDialog from \"@/components/Auth/Login/OtpVerifyDialog\";\nimport ServicesSection from \"@/components/Auth/Login/ServicesSection\";\nimport Footer from \"@/components/common/Footer\";\n\nimport * as yup from \"yup\";\n\nimport axios from \"@/lib/api/axios\";\nimport { parseError } from \"@/lib/utils\";\nimport useUser from \"@/lib/utils/hooks/use-user\";\n\nexport default function Login() {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { toast } = useToast();\n const [open, onOpenChange] = useState(false);\n const [openOtpVerify, onOpenOtpVerify] = useState(false);\n const [loading, setLoading] = useState(false);\n const [loginMethod, setLoginMethod] = useState(\n localStorage.getItem(\"userCountry\") === \"UZ\" ? 1 : 0,\n );\n const [otpData, setOtpData] = useState(null);\n\n const loginFormSchemaPhone = yup.object().shape({\n countryCode: yup\n .string()\n .required(t(\"common.formErrors.countryCodeRequired\")),\n phone: yup.string().required(t(\"common.formErrors.phoneRequired\")),\n //.max(10, t(\"common.formErrors.phoneMax\")),\n });\n\n const loginFormSchemaEmail = yup.object().shape({\n email: yup\n .string(t(\"common.formErrors.emailInvalid\"))\n .email(t(\"common.formErrors.emailInvalid\"))\n .required(t(\"common.formErrors.emailRequired\")),\n });\n\n const form = useForm({\n resolver: yupResolver(\n loginMethod === 0 ? loginFormSchemaPhone : loginFormSchemaEmail,\n ),\n defaultValues: {\n countryCode: \"TR\",\n phone: \"\",\n email: \"\",\n },\n });\n\n useEffect(() => {\n if (loginMethod === 0) {\n form.reset({ email: \"\", countryCode: \"TR\", phone: \"\" }); // Sadece loginMethod deÄŸiÅŸtiÄŸinde resetle\n } else {\n form.reset({ email: \"\", countryCode: \"TR\", phone: \"\" });\n }\n }, [loginMethod, form]);\n\n const handleLoginPhoneMethod = (data) => {\n setLoading(true);\n\n const body = {\n countryCode: data.countryCode,\n phone: data.phone,\n };\n\n axios\n .post(`/otp/generate`, body)\n .then((res) => {\n setOtpData({\n email: data.email,\n phone: data.phone,\n countryCode: data.countryCode,\n });\n onOpenOtpVerify(true);\n })\n .catch((err) => {\n const errorText = parseError(err.response?.data?.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n const handleLoginEmailMethod = (data) => {\n setLoading(true);\n\n const body = {\n email: data.email,\n };\n\n axios\n .post(`/otp/generate`, body)\n .then((res) => {\n setOtpData({\n email: data.email,\n phone: data.phone,\n countryCode: data.countryCode,\n });\n onOpenOtpVerify(true);\n })\n .catch((err) => {\n const errorText = parseError(err.response.data.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n const onVerify = async (otpCode) => {\n setLoading(true);\n try {\n const res = await axios.post(\"/otp/login\", {\n email: otpData.email,\n phone: otpData.phone,\n countryCode: otpData.countryCode,\n otpCode: otpCode,\n });\n\n localStorage.setItem(\"token\", res.data.jwtToken.substring(7));\n toast({\n description: t(\"authPages.loginSuccess\"),\n variant: \"success\",\n });\n setTimeout(() => {\n window.location.href = location.state?.from || \"/\";\n }, 1250);\n } catch (err) {\n toast({\n description: t(\"authPages.invalidOtp\"),\n variant: \"error\",\n });\n } finally {\n setLoading(false);\n }\n };\n\n const onSubmit = async (data) => {\n loginMethod === 0\n ? handleLoginPhoneMethod(data)\n : handleLoginEmailMethod(data);\n };\n\n const triggerLoginModal = () => onOpenChange(true);\n\n const { user } = useUser();\n\n if (user) navigate(\"/\");\n\n return (\n <>\n <Helmet>\n <title>{t(\"authPages.egarantiLogin\")}</title>\n <meta\n name=\"description\"\n content=\"egaranti tüketicilerin garanti süreçlerini tamamen ücretsiz bir ÅŸekilde dijital olarak yönetebilmeleri için firmalara yazılım çözümü saÄŸlar.\"\n />\n </Helmet>\n <div className=\"flex min-h-screen w-full flex-col bg-[#F9FAFC]\">\n <LoginHeroMobile\n form={form}\n loginMethod={loginMethod}\n setLoginMethod={setLoginMethod}\n onSubmit={onSubmit}\n loading={loading}\n />\n <LoginHeroDesktop\n form={form}\n loginMethod={loginMethod}\n setLoginMethod={setLoginMethod}\n onSubmit={onSubmit}\n loading={loading}\n />\n <main className=\"mx-auto mt-12 flex w-full max-w-6xl flex-col gap-9 p-6 \">\n <ServicesSection triggerLoginModal={triggerLoginModal} />\n <BrandsSection />\n <FeaturesSection triggerLoginModal={triggerLoginModal} />\n <LoginModal\n loginMethod={loginMethod}\n setLoginMethod={setLoginMethod}\n onSubmit={onSubmit}\n open={open}\n onOpenChange={onOpenChange}\n form={form}\n loading={loading}\n />\n {openOtpVerify && (\n <OtpVerifyDialog\n email={otpData.email}\n phone={otpData.phone}\n countryCode={otpData.countryCode}\n open={openOtpVerify}\n onOpenChange={onOpenOtpVerify}\n onVerify={onVerify}\n loading={loading}\n />\n )}\n </main>\n <Footer />\n </div>\n </>\n );\n}\n","import React from \"react\";\n\nconst LoginJwt = () => {\n const token = new URLSearchParams(window.location.search).get(\"token\");\n const redirect = new URLSearchParams(window.location.search).get(\"redirect\");\n function getParamsAsObject() {\n const params = new URLSearchParams(window.location.search);\n let paramsObj = {};\n for (const [key, value] of params.entries()) {\n paramsObj[key] = value;\n }\n return paramsObj;\n }\n\n if (token) {\n localStorage.setItem(\"customizations\", JSON.stringify(getParamsAsObject()));\n localStorage.setItem(\"token\", token);\n window.location.href = redirect || \"/\";\n }\n\n return <>{JSON.stringify(customizations)}</>;\n};\n\nexport default LoginJwt;\n","import React from \"react\";\n\nimport { ReactComponent as EgarantiLogo } from \"../../assets/svgs/egarantilogo.svg\";\nimport LanguageSwitcher from \"../common/LanguageSwitcher\";\n\nexport default function AuthHeader() {\n return (\n <header className=\"flex w-full justify-between\">\n <EgarantiLogo className=\"w-32\" />\n <LanguageSwitcher />\n </header>\n );\n}\n","export default \"__VITE_ASSET__6096f7c9__\"","export default \"__VITE_ASSET__d99bcfe1__\"","import axios from \"./axios\";\n\nexport const register = (data) => {\n return axios.post(`/register`, data);\n};\n","const DialCodes = [\n {\n label: \"TR\",\n value: \"TR\",\n countryCode: \"+90\",\n icon: \"🇹🇷\",\n id: 1,\n },\n {\n label: \"UZ\",\n value: \"UZ\",\n countryCode: \"+998\",\n icon: \"🇺🇿\",\n id: 2,\n },\n];\n\nexport default DialCodes;\n","import {\n Button,\n Checkbox,\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n Input,\n Label,\n PhoneInput,\n useToast,\n} from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport { useEffect, useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nimport AuthHeader from \"@/components/Auth/AuthHeader\";\nimport OtpVerifyDialog from \"@/components/Auth/Login/OtpVerifyDialog\";\n\nimport LoginPageBannerImage from \"@/assets/images/loginpagebanner.png\";\nimport LoginPageBannerImageRu from \"@/assets/images/loginpagebannerru.png\";\n\nimport * as yup from \"yup\";\n\nimport { register } from \"@/lib/api/auth\";\nimport axios from \"@/lib/api/axios\";\nimport { parseError } from \"@/lib/utils\";\nimport DialCodes from \"@/lib/utils/data/dialCodes\";\n\nexport default function Register() {\n const { toast } = useToast();\n const { t, i18n } = useTranslation();\n const navigate = useNavigate();\n const location = useLocation();\n const [loading, setLoading] = useState(false);\n const [openOtpVerify, setOpenOtpVerify] = useState(false);\n\n const registerFormSchema = yup.object().shape({\n firstName: yup.string().required(t(\"common.formErrors.nameRequired\")),\n lastName: yup.string().required(t(\"common.formErrors.surnameRequired\")),\n email: yup\n .string(t(\"common.formErrors.emailInvalid\"))\n .email(t(\"common.formErrors.emailInvalid\"))\n .required(t(\"common.formErrors.emailRequired\")),\n phone: yup.string().required(t(\"common.formErrors.phoneRequired\")),\n membershipAgreement: yup\n .boolean()\n .oneOf([true], t(\"common.formErrors.termsRequired\")),\n commercialCommunicationAgreement: yup.boolean(),\n countryCode: yup\n .string()\n .required(t(\"common.formErrors.countryCodeRequired\")),\n });\n\n const form = useForm({\n resolver: yupResolver(registerFormSchema),\n defaultValues: {\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n phone: \"\",\n countryCode: \"TR\",\n countryValue: \"TR\",\n regionValue: \"TR\",\n membershipAgreement: false,\n commercialCommunicationAgreement: false,\n },\n });\n\n const onSubmit = async (data) => {\n setLoading(true);\n try {\n await register(data);\n\n setOpenOtpVerify(true);\n } catch (err) {\n const errorText = parseError(err.response?.data?.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n } finally {\n setLoading(false);\n }\n };\n\n const handleOtpVerification = async (otpCode) => {\n try {\n const response = await axios.post(\"/otp/login\", {\n phone: form.getValues(\"phone\"),\n countryCode: form.getValues(\"countryCode\"),\n otpCode: otpCode,\n });\n localStorage.setItem(\"token\", response.data.jwtToken.substring(7));\n toast({\n description: t(\"authPages.registerSuccessOtp\"),\n variant: \"success\",\n });\n setTimeout(() => {\n window.location.href = location.state?.from || \"/\";\n }, 1000);\n } catch (err) {\n const errorText = parseError(err.response?.data?.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n }\n };\n\n const getIP = async () => {\n const response = await fetch(\"https://api.ipify.org?format=json\");\n const data = await response.json();\n form.setValue(\"ip\", data.ip);\n };\n\n useEffect(() => {\n getIP();\n }, []);\n\n return (\n <>\n <Helmet>\n <title>{t(\"authPages.egarantiRegister\")}</title>\n <meta\n name=\"description\"\n content=\"egaranti platformundan en iyi ÅŸekilde yararlanmanıza ve satış sonrası deneyiminizi artırmanıza yardımcı olacak içeriÄŸe eriÅŸin.\"\n />\n </Helmet>\n <div className=\"flex min-h-screen w-full bg-white\">\n <div className=\"flex w-full flex-col items-center overflow-auto px-7 pb-12 pt-6\">\n <AuthHeader />\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)}>\n <div className=\"mt-6 flex max-w-[360px] flex-col gap-3\">\n <div className=\"mb-1 flex flex-col gap-1\">\n <h2 className=\"text-[36px] font-semibold\">\n {t(\"authPages.register\")}\n </h2>\n <h3 className=\"text-[16px] font-normal text-[#677389]\">\n {t(\"authPages.createAnAccountToContinue\")}\n </h3>\n </div>\n <div className=\"flex flex-col items-center gap-4 md:flex-row\">\n <FormField\n control={form.control}\n name=\"firstName\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"authPages.name\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"lastName\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"authPages.surname\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n <FormField\n control={form.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"authPages.email\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"phone\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"authPages.phoneNumber\")}</Label>\n <FormControl>\n <PhoneInput\n defaultCountry=\"TR\"\n onChange={(country, value) => {\n form.setValue(\"phone\", value);\n form.setValue(\"countryCode\", country);\n }}\n value={form.getValues(\"phone\")}\n onBlur={field.onBlur}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"membershipAgreement\"\n render={({ field }) => (\n <FormItem>\n <FormControl>\n <div>\n <Label\n htmlFor=\"membershipAgreement\"\n className=\"flex cursor-pointer items-center gap-1 text-gray-500\"\n >\n <Checkbox\n {...field}\n id=\"membershipAgreement\"\n name=\"membershipAgreement\"\n control={form.control}\n checked={field.value}\n onCheckedChange={field.onChange}\n />\n {i18n.language === \"tr\" ? (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/usage-terms/\"\n target={\"_blank\"}\n >\n Ãœyelik sözleÅŸmesi\n </a>\n 'ni okudum, kabul ediyorum.\n <br />\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/privacy/\"\n target={\"_blank\"}\n >\n KiÅŸisel Veri Aydınlatma Formu\n </a>\n 'nu okudum.\n </span>\n ) : i18n.language === \"ru\" ? (\n <span className=\"text-sm font-normal text-[#677389]\">\n Я ознакомлен(а) и принÑл(а){\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/ru/policy/usage-terms/\"\n target={\"_blank\"}\n >\n Ñоглашение об учаÑтии\n </a>\n . Я ознакомлен(а) Ñ{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/ru/policy/privacy\"\n target={\"_blank\"}\n >\n правилами обработки перÑональных данных.\n </a>\n </span>\n ) : (\n <span className=\"text-sm font-normal text-[#677389]\">\n I've read the{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/privacy\"\n target={\"_blank\"}\n >\n Personal Data Disclosure Form.\n </a>\n </span>\n )}\n </Label>\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"commercialCommunicationAgreement\"\n render={({ field }) => (\n <FormItem className=\"flex cursor-pointer items-center gap-1\">\n <FormControl>\n <div className=\"flex\">\n <Checkbox\n {...field}\n control={form.control}\n checked={field.value}\n onCheckedChange={field.onChange}\n />\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n <a\n className=\"text-[#0F6FFF] underline\"\n href={`https://egaranti.com/${i18n.language}/policy/ticari-elektronik-ileti/`}\n target={\"_blank\"}\n >\n {t(\"authPages.commercialElectronicMessage\")}\n </a>{\" \"}\n {t(\"authPages.acceptCommercialElectronicMessage\")}\n </span>\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <Button disabled={loading}>\n {loading ? t(\"common.loading\") : t(\"authPages.register\")}\n </Button>\n <span\n className=\"text-center text-[14px] font-medium text-[#667085]\"\n href=\"/login\"\n >\n {t(\"authPages.haveAnAccount\")}\n <a className=\"ml-1 text-[#0F6FFF]\" href=\"/login\">\n {t(\"authPages.login\")}\n </a>\n </span>\n </div>\n </form>\n </Form>\n </div>\n <div className=\"hidden w-full flex-col items-end justify-end gap-12 bg-gradient-to-b from-[#799AE3] to-[#0B338B] pl-28 lg:flex\">\n <div className=\"flex flex-col\">\n <h2 className=\"text-sm font-bold uppercase text-gray-50\">\n {t(\"authPages.egarantiAwaitsYou\")}\n </h2>\n <h4 className=\"pr-4 text-[30px] font-medium text-white lg:text-[28px]\">\n {t(\"authPages.oneStepToCollect\")}\n </h4>\n </div>\n <img\n className=\"sr-hidden max-h-[600px] w-full object-contain\"\n src={\n i18n.language === \"ru\"\n ? LoginPageBannerImageRu\n : LoginPageBannerImage\n }\n alt=\"egaranti kayıt ol\"\n />\n </div>\n </div>\n {openOtpVerify && (\n <OtpVerifyDialog\n open={openOtpVerify}\n onOpenChange={setOpenOtpVerify}\n phone={form.getValues(\"phone\")}\n countryCode={form.getValues(\"countryCode\")}\n onVerify={handleOtpVerification}\n />\n )}\n </>\n );\n}\n","import {\n Button,\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n Input,\n Label,\n useToast,\n} from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport axios from \"../../../lib/api/axios\";\nimport AuthHeader from \"../../../components/Auth/AuthHeader\";\n\nimport * as yup from \"yup\";\n\nimport { parseError } from \"@/lib/utils\";\n\nexport default function ForgotPasswordMail() {\n const { toast } = useToast();\n const { t } = useTranslation();\n const [isSend, setIsSend] = React.useState(false);\n\n const emailValidationSchema = yup.object().shape({\n email: yup\n .string(t(\"common.formErrors.emailInvalid\"))\n .email(t(\"common.formErrors.emailInvalid\"))\n .required(t(\"common.formErrors.emailRequired\")),\n });\n\n const form = useForm({\n resolver: yupResolver(emailValidationSchema),\n defaultValues: {\n email: \"\",\n },\n });\n\n const onSubmit = (data) => {\n axios\n .post(`/forgot-password/mail`, data)\n .then((res) => {\n toast({\n description: t(\"authPages.resetPasswordRequestSuccess\"),\n variant: \"success\",\n });\n setIsSend(true);\n })\n .catch((err) => {\n const errorText = parseError(err.response.data.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n });\n };\n\n if (isSend) {\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <div className=\"relative flex h-full w-full items-center justify-center\">\n <h3 className=\"text-[16px] font-normal text-[#677389]\">\n {t(\"authPages.resetPasswordRequestSent\")}\n </h3>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <Form\n {...form}\n className=\"relative flex h-full w-full items-center justify-center\"\n >\n <div className=\"flex h-full w-full items-center justify-center\">\n <form\n onSubmit={form.handleSubmit(onSubmit)}\n className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\"\n >\n <div className=\"mb-2 flex flex-col gap-3\">\n <h2 className=\"text-[24px] font-semibold\">\n {t(\"authPages.soYouForgotYourPassword\")}\n </h2>\n <h3 className=\"text-[16px] font-normal text-[#677389]\">\n {t(\"authPages.enterEmailToCreateNewPassword\")}\n </h3>\n </div>\n <FormField\n control={form.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem>\n <Label>{t(\"authPages.email\")}</Label>\n <FormControl>\n <Input type=\"email\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <Button disabled={!form.watch(\"email\")} onClick={onSubmit}>\n {t(\"common.send\")}\n </Button>\n <span className=\"text-center text-[14px] text-[#667085]\">\n {t(\"authPages.wannaGoBackToLoginPage\")}\n <a href=\"/login\" className=\"ml-1 text-[#0049e6]\">\n {t(\"authPages.login\")}\n </a>\n </span>\n </form>\n </div>\n </Form>\n </div>\n </div>\n );\n}\n","import {\n Button,\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n Input,\n Label,\n useToast,\n} from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nimport axios from \"../../../lib/api/axios\";\nimport AuthHeader from \"../../../components/Auth/AuthHeader\";\n\nimport * as yup from \"yup\";\n\nimport { parseError } from \"@/lib/utils\";\n\nconst ForgotPasswordVerify = () => {\n const navigateTo = useNavigate();\n const token = useLocation().search.split(\"=\")[1];\n const { toast } = useToast();\n const { t } = useTranslation();\n\n const updatePasswordSchema = yup.object({\n password: yup\n .string()\n .required(t(\"common.formErrors.passwordRequired\"))\n .min(8, t(\"common.formErrors.passwordMin\")),\n confirmPassword: yup\n .string()\n .min(8, t(\"common.formErrors.confirmPasswordMin\"))\n .required(t(\"common.formErrors.confirmPasswordRequired\"))\n .oneOf(\n [yup.ref(\"password\")],\n t(\"common.formErrors.confirmPasswordMatch\"),\n ),\n });\n\n const form = useForm({\n resolver: yupResolver(updatePasswordSchema),\n defaultValues: {\n password: \"\",\n confirmPassword: \"\",\n },\n });\n\n const onSubmit = (data) => {\n axios\n .post(`/reset/password/mail`, { ...data, hash: token })\n .then((res) => {\n toast({\n description: t(\"authPages.passwordResetSuccess\"),\n variant: \"success\",\n });\n setTimeout(() => {\n navigateTo(\"/login\");\n }, 2500);\n })\n .catch((err) => {\n const errorText = parseError(err.response.data.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n });\n };\n\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(onSubmit)}\n className=\"relative flex h-full w-full items-center justify-center\"\n >\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col gap-3\">\n <h2 className=\"text-[24px] font-semibold\">\n {t(\"authPages.forgotPassword\")}\n </h2>\n <h3 className=\"text-[16px] font-normal text-[#677389]\">\n {t(\"authPages.enterNewPassword\")}\n </h3>\n </div>\n <FormField\n control={form.control}\n name=\"password\"\n render={({ field }) => (\n <FormItem>\n <Label>{t(\"authPages.password\")}</Label>\n <FormControl>\n <Input type=\"password\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"confirmPassword\"\n render={({ field }) => (\n <FormItem>\n <Label>{t(\"authPages.confirmPassword\")}</Label>\n <FormControl>\n <Input type=\"password\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <Button size=\"lg\">{t(\"common.save\")}</Button>\n </div>\n </form>\n </Form>\n </div>\n </div>\n );\n};\n\nexport default ForgotPasswordVerify;\n","// ✅\n// Verfiy mail register pageden üye olan kullanıcılar içim mailine gelen tokenın doÄŸrulandığı sayfa\nimport { Button } from \"@egaranti/components\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport axios from \"../../lib/api/axios\";\nimport AuthHeader from \"../../components/Auth/AuthHeader\";\nimport Loading from \"../../components/common/Loading\";\n\nexport default function VerifyMail() {\n const { t } = useTranslation();\n const token = new URLSearchParams(window.location.search).get(\"hash\");\n const [showSuccess, setShowSuccess] = useState(false);\n const [loading, setLoading] = useState(true);\n const navigateTo = useNavigate();\n\n useEffect(() => {\n if (token) {\n axios\n .get(`/mail/verify?hash=${token}`)\n .then((res) => {\n setShowSuccess(true);\n })\n .catch((err) => {\n setShowSuccess(false);\n })\n .finally(() => {\n setTimeout(() => {\n setLoading(false);\n }, 750);\n });\n }\n }, [token]);\n\n if (loading) return <Loading />;\n\n if (!showSuccess) {\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <div className=\"flex h-full w-full items-center justify-center\">\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col items-center gap-3\">\n <h2 className=\"text-[24px] font-semibold\">Oppss</h2>\n <p className=\"text-center text-[16px] font-normal text-[#677389]\">\n {t(\"verifyPage.emailVerificationFail\")}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <div className=\"flex h-full w-full items-center justify-center\">\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col items-center gap-3\">\n <h2 className=\"text-[24px] font-semibold\">\n {t(\"verifyPage.emailVerified\")}\n </h2>\n <p className=\"text-center text-[16px] font-normal text-[#677389]\">\n {t(\"verifyPage.youCanLogin\")}\n </p>\n <Button\n className=\"mt-5\"\n size=\"full\"\n onClick={() => navigateTo(\"/login\")}\n >\n {t(\"verifyPage.login\")}\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import { Button, Checkbox } from \"@egaranti/components\";\nimport { PasswordInput, useToast } from \"@egaranti/components\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport axios from \"../../lib/api/axios\";\nimport AuthHeader from \"../../components/Auth/AuthHeader\";\n\nimport * as yup from \"yup\";\n\nimport { parseError } from \"@/lib/utils\";\n\nexport default function VerifyClient() {\n const navigateTo = useNavigate();\n const { toast } = useToast();\n const token = new URLSearchParams(window.location.search).get(\"hash\");\n const { t, i18n } = useTranslation();\n const [showSuccess, setShowSuccess] = useState(true);\n const [formState, setFormState] = useState({\n password: \"\",\n repeatpassword: \"\",\n });\n const [loading, setLoading] = useState(false);\n const [formErrors, setFormErrors] = useState({});\n\n useEffect(() => {\n if (!token) {\n setShowSuccess(false);\n }\n }, [token]);\n\n const handleSubmit = () => {\n const schema = yup.object().shape({\n password: yup\n .string()\n .required(t(\"common.formErrors.passwordRequired\"))\n .min(8, t(\"common.formErrors.passwordMin\"))\n .max(50, t(\"common.formErrors.passwordMax\")),\n repeatpassword: yup\n .string()\n .required(\"common.formErrors.confirmPasswordRequired\")\n .min(8, t(\"common.formErrors.confirmPasswordMin\"))\n .max(50, t(\"common.formErrors.confirmPasswordMax\"))\n .oneOf(\n [yup.ref(\"password\"), null],\n t(\"common.formErrors.confirmPasswordMatch\"),\n ),\n terms: yup\n .boolean()\n .required()\n .oneOf([true], \"Kullanım koÅŸullarını kabul etmelisiniz\"),\n terms2: yup.boolean(),\n });\n schema\n .validate(formState, { abortEarly: false })\n .then(() => {\n setLoading(true);\n axios\n .post(`/onboard/email`, {\n hash: token,\n password: formState.password,\n passwordConfirmation: formState.repeatpassword,\n membershipAgreement: formState.terms,\n commercialCommunicationAgreement: formState.terms2,\n ip: formState.ip,\n })\n .then((res) => {\n setLoading(false);\n toast({\n description: t(\"verifyPage.passwordUpdated\"),\n variant: \"success\",\n });\n\n setTimeout(() => {\n navigateTo(\"/login\");\n }, 1500);\n })\n .catch((err) => {\n setLoading(false);\n const errorText = parseError(err.response.data.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n });\n })\n .catch((err) => {\n const errors = {};\n err.inner.forEach((error) => {\n errors[error.path] = error.message;\n });\n setFormErrors(errors);\n toast({\n description: t(\"verifyPage.pleaseFillAllFields\"),\n variant: \"error\",\n });\n });\n };\n\n const getIP = async () => {\n const response = await fetch(\"https://api.ipify.org?format=json\");\n const data = await response.json();\n setFormState({ ...formState, ip: data.ip });\n };\n\n useEffect(() => {\n getIP();\n }, []);\n\n if (!showSuccess) {\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <div className=\"flex h-full w-full items-center justify-center\">\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col items-center gap-3\">\n <h2 className=\"text-[24px] font-semibold\">Oppss</h2>\n <p className=\"text-center text-[16px] font-normal text-[#677389]\">\n {t(\"verifyPage.emailVerificationFail\")}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <div className=\"flex h-full w-full items-center justify-center\">\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col gap-3\">\n <h2 className=\"text-[24px] font-semibold\">\n {t(\"verifyPage.selectNewPassword\")}\n </h2>\n <h3 className=\"text-[16px] font-normal text-[#677389]\">\n {t(\"verifyPage.minEightChar\")}\n </h3>\n </div>\n <PasswordInput\n placeholder={t(\"verifyPage.password\")}\n name=\"password\"\n value={formState.password}\n onChange={(e) => {\n setFormState({ ...formState, password: e.target.value });\n }}\n />\n <PasswordInput\n placeholder={t(\"verifyPage.confirmPassword\")}\n name=\"password\"\n value={formState.repeatpassword}\n onChange={(e) => {\n setFormState({ ...formState, repeatpassword: e.target.value });\n }}\n />\n <label className=\"mt-2 flex\">\n <Checkbox\n onCheckedChange={(value) => {\n setFormState({ ...formState, terms: value });\n }}\n checked={formState.terms}\n />\n {i18n.language === \"tr\" ? (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/usage-terms/\"\n target={\"_blank\"}\n >\n Ãœyelik sözleÅŸmesi\n </a>\n 'ni okudum, kabul ediyorum.\n <br />\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/privacy/\"\n target={\"_blank\"}\n >\n KiÅŸisel Veri Aydınlatma Formu\n </a>\n ’nu okudum.\n </span>\n ) : (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n I've read and accepted the{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/usage-terms/\"\n target={\"_blank\"}\n >\n Membership Agreement.\n </a>{\" \"}\n I've read the{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/privacy/\"\n target={\"_blank\"}\n >\n Personal Data Disclosure Form\n </a>\n </span>\n )}\n </label>\n <label className=\"mt-2 flex\">\n <Checkbox\n onCheckedChange={(value) => {\n setFormState({ ...formState, terms2: value });\n }}\n checked={formState.terms2}\n />\n {i18n.language === \"tr\" ? (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/ticari-elektronik-ileti/\"\n target={\"_blank\"}\n >\n Ticari Elektronik Ä°leti{\" \"}\n </a>{\" \"}\n almayı kabul ediyorum.\n </span>\n ) : (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n I accept receiving{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/ticari-elektronik-ileti/\"\n target={\"_blank\"}\n >\n Commercial Electronic Message\n </a>{\" \"}\n </span>\n )}\n </label>\n {!loading && <Button onClick={handleSubmit}>Gönder</Button>}\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import { Button, Checkbox } from \"@egaranti/components\";\nimport { PasswordInput, useToast } from \"@egaranti/components\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport axios from \"../../lib/api/axios\";\nimport AuthHeader from \"../../components/Auth/AuthHeader\";\n\nimport * as yup from \"yup\";\n\nimport { parseError } from \"@/lib/utils\";\n\nexport default function VerifyPhone() {\n const navigateTo = useNavigate();\n const { toast } = useToast();\n const token = new URLSearchParams(window.location.search).get(\"hash\");\n const { t, i18n } = useTranslation();\n const [showSuccess, setShowSuccess] = useState(true);\n const [formState, setFormState] = useState({\n password: \"\",\n repeatpassword: \"\",\n });\n const [loading, setLoading] = useState(false);\n const [formErrors, setFormErrors] = useState({});\n\n useEffect(() => {\n if (!token) {\n setShowSuccess(false);\n }\n }, [token]);\n\n const handleSubmit = () => {\n const schema = yup.object().shape({\n password: yup\n .string()\n .required(t(\"common.formErrors.passwordRequired\"))\n .min(8, t(\"common.formErrors.passwordMin\"))\n .max(50, t(\"common.formErrors.passwordMax\")),\n repeatpassword: yup\n .string()\n .required(\"common.formErrors.confirmPasswordRequired\")\n .min(8, t(\"common.formErrors.confirmPasswordMin\"))\n .max(50, t(\"common.formErrors.confirmPasswordMax\"))\n .oneOf(\n [yup.ref(\"password\"), null],\n t(\"common.formErrors.confirmPasswordMatch\"),\n ),\n terms: yup\n .boolean()\n .required()\n .oneOf([true], t(\"common.formErrors.termsRequired\")),\n terms2: yup.boolean(),\n });\n\n schema\n .validate(formState, { abortEarly: false })\n .then(() => {\n setLoading(true);\n axios\n .post(`/onboard/phone`, {\n hash: token,\n password: formState.password,\n passwordConfirmation: formState.repeatpassword,\n membershipAgreement: formState.terms,\n commercialCommunicationAgreement: formState.terms2,\n ip: formState.ip,\n })\n .then((res) => {\n toast({\n variant: \"success\",\n description: t(\"verifyPage.passwordUpdated\"),\n });\n setLoading(false);\n setTimeout(() => {\n navigateTo(\"/login\");\n }, 1500);\n })\n .catch((err) => {\n setLoading(false);\n const errorText = parseError(err.response.data.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n });\n })\n .catch((err) => {\n const errors = {};\n err.inner.forEach((error) => {\n errors[error.path] = error.message;\n });\n setFormErrors(errors);\n toast({\n description: t(\"verifyPage.pleaseFillAllFields\"),\n variant: \"error\",\n });\n });\n };\n\n const getIP = async () => {\n const response = await fetch(\"https://api.ipify.org?format=json\");\n const data = await response.json();\n setFormState({ ...formState, ip: data.ip });\n };\n\n useEffect(() => {\n getIP();\n }, []);\n\n if (!showSuccess) {\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <div className=\"flex h-full w-full items-center justify-center\">\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col items-center gap-3\">\n <h2 className=\"text-[24px] font-semibold\">Oppss</h2>\n <p className=\"text-center text-[16px] font-normal text-[#677389]\">\n {t(\"verifyPage.phoneVerificationFail\")}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <div className=\"flex h-full w-full items-center justify-center\">\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col gap-3\">\n <h2 className=\"text-[24px] font-semibold\">\n {t(\"verifyPage.selectNewPassword\")}\n </h2>\n <h3 className=\"text-[16px] font-normal text-[#677389]\">\n {t(\"verifyPage.minEightChar\")}\n </h3>\n </div>\n <PasswordInput\n placeholder={t(\"verifyPage.password\")}\n name=\"password\"\n value={formState.password}\n onChange={(e) => {\n setFormState({ ...formState, password: e.target.value });\n }}\n />\n <PasswordInput\n placeholder={t(\"verifyPage.confirmPassword\")}\n name=\"password\"\n value={formState.repeatpassword}\n onChange={(e) => {\n setFormState({ ...formState, repeatpassword: e.target.value });\n }}\n />\n <label className=\"mt-2 flex\">\n <Checkbox\n onCheckedChange={(value) => {\n setFormState({ ...formState, terms: value });\n }}\n checked={formState.terms}\n />\n {i18n.language === \"tr\" ? (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/usage-terms/\"\n target={\"_blank\"}\n >\n Ãœyelik sözleÅŸmesi\n </a>\n 'ni okudum, kabul ediyorum.\n <br />\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/privacy/\"\n target={\"_blank\"}\n >\n KiÅŸisel Veri Aydınlatma Formu\n </a>\n ’nu okudum.\n </span>\n ) : (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n I've read and accepted the{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/usage-terms/\"\n target={\"_blank\"}\n >\n Membership Agreement.\n </a>{\" \"}\n I've read the{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/privacy/\"\n target={\"_blank\"}\n >\n Personal Data Disclosure Form\n </a>\n </span>\n )}\n </label>\n <label className=\"mt-2 flex\">\n <Checkbox\n onCheckedChange={(value) => {\n setFormState({ ...formState, terms2: value });\n }}\n checked={formState.terms2}\n />\n {i18n.language === \"tr\" ? (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/ticari-elektronik-ileti/\"\n target={\"_blank\"}\n >\n Ticari Elektronik Ä°leti{\" \"}\n </a>{\" \"}\n almayı kabul ediyorum.\n </span>\n ) : (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n I accept receiving{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/ticari-elektronik-ileti/\"\n target={\"_blank\"}\n >\n Commercial Electronic Message\n </a>{\" \"}\n </span>\n )}\n </label>\n {!loading && (\n <Button onClick={handleSubmit}>{t(\"common.send\")}</Button>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n","// ✅\n// Verfiy mail register pageden üye olan kullanıcılar içim mailine gelen tokenın doÄŸrulandığı sayfa\nimport { Button } from \"@egaranti/components\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport axios from \"../../lib/api/axios\";\nimport AuthHeader from \"../../components/Auth/AuthHeader\";\nimport Loading from \"../../components/common/Loading\";\n\nexport default function VerifyPhoneDirect() {\n const { t } = useTranslation();\n const token = new URLSearchParams(window.location.search).get(\"hash\");\n const [showSuccess, setShowSuccess] = useState(false);\n const [loading, setLoading] = useState(true);\n const navigateTo = useNavigate();\n\n useEffect(() => {\n if (token) {\n axios\n .get(`/phone/verify?hash=${token}`)\n .then((res) => {\n setShowSuccess(true);\n })\n .catch((err) => {\n setShowSuccess(false);\n })\n .finally(() => {\n setTimeout(() => {\n setLoading(false);\n }, 750);\n });\n }\n }, [token]);\n\n if (loading) return <Loading />;\n\n if (!showSuccess) {\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <div className=\"flex h-full w-full items-center justify-center\">\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col items-center gap-3\">\n <h2 className=\"text-[24px] font-semibold\">Oppss</h2>\n <p className=\"text-center text-[16px] font-normal text-[#677389]\">\n {t(\"verifyPage.phoneVerificationFail\")}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <div className=\"flex h-full w-full items-center justify-center\">\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col items-center gap-3\">\n <h2 className=\"text-[24px] font-semibold\">\n {t(\"verifyPage.phoneVerified\")}\n </h2>\n <p className=\"text-center text-[16px] font-normal text-[#677389]\">\n {t(\"verifyPage.youCanLogin\")}\n </p>\n <Button\n className=\"mt-5\"\n size=\"full\"\n onClick={() => navigateTo(\"/login\")}\n >\n {t(\"verifyPage.login\")}\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import { Button } from \"@egaranti/components\";\nimport {\n Checkbox,\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n Input,\n Label,\n PasswordInput,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n useToast,\n} from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport axios from \"../../lib/api/axios\";\nimport AuthHeader from \"../../components/Auth/AuthHeader\";\n\nimport Slot from \"@/components/common/shared/slot\";\n\nimport { OTPInput } from \"input-otp\";\nimport * as yup from \"yup\";\n\nimport { parseError } from \"@/lib/utils\";\nimport DialCodes from \"@/lib/utils/data/dialCodes\";\n\nexport default function VerifyTrendyol() {\n const token = new URLSearchParams(window.location.search).get(\"hash\");\n const { t } = useTranslation();\n const { toast } = useToast();\n\n const [step, setStep] = useState(1);\n const [showSuccess, setShowSuccess] = useState(true);\n const [formState, setFormState] = useState({\n codeSent: false,\n timer: 179,\n code: \"\",\n password: \"\",\n repeatpassword: \"\",\n phone: \"\",\n countryCode: \"TR\",\n ip: \"0\",\n });\n\n const schema = yup.object().shape({\n phone: yup.string().required(t(\"common.formErrors.phoneRequired\")),\n\n password: yup\n .string()\n .required(t(\"common.formErrors.passwordRequired\"))\n .min(8, t(\"common.formErrors.passwordMin\"))\n .max(50, t(\"common.formErrors.passwordMax\")),\n repeatpassword: yup\n .string()\n .min(8, t(\"common.formErrors.confirmPasswordMin\"))\n .max(50, t(\"common.formErrors.confirmPasswordMax\"))\n .required(t(\"common.formErrors.confirmPasswordRequired\"))\n .oneOf(\n [yup.ref(\"password\")],\n t(\"common.formErrors.confirmPasswordMatch\"),\n ),\n membershipAgreement: yup\n .boolean()\n .required(t(\"common.formErrors.termsRequired\"))\n .oneOf([true], t(\"common.formErrors.termsRequired\")),\n commercialCommunicationAgreement: yup.boolean(),\n });\n\n const form = useForm({\n resolver: yupResolver(schema),\n defaultValues: {\n phone: \"\",\n password: \"\",\n repeatpassword: \"\",\n membershipAgreement: false,\n commercialCommunicationAgreement: false,\n countryCode: \"TR\",\n },\n });\n\n useEffect(() => {\n if (!token) {\n setShowSuccess(false);\n }\n }, [token]);\n\n if (!showSuccess) {\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <div className=\"flex h-full w-full items-center justify-center\">\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col items-center gap-3\">\n <h2 className=\"text-[24px] font-semibold\">Oppss</h2>\n <p className=\"text-center text-[16px] font-normal text-[#677389]\">\n {t(\"verifyPage.trendyolVerificationFail\")}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n const handleSendCode = () => {\n axios\n .post(\"/send-phone-verification-trendyol\", {\n phone: form.getValues().phone,\n countryCode: form.getValues().countryCode,\n })\n .then(() => {\n setStep(2);\n })\n .catch((err) => {\n toast({\n title: err.response.data?.errors[0]?.message,\n variant: \"error\",\n });\n });\n };\n\n return (\n <div className=\"flex min-h-screen w-full bg-[#F9FAFC]\">\n <div className=\"flex w-full flex-1 flex-col items-center justify-between px-7 pt-6\">\n <AuthHeader />\n <div className=\"flex h-full w-full items-center justify-center\">\n {step === 1 && <Step1 handleSendCode={handleSendCode} form={form} />}\n {step === 2 && (\n <Step2\n setStep={setStep}\n setFormState={setFormState}\n formState={formState}\n token={token}\n handleSendCode={handleSendCode}\n form={form}\n />\n )}\n </div>\n </div>\n </div>\n );\n}\n\nconst Step1 = ({ handleSendCode, form }) => {\n const { t, i18n } = useTranslation();\n\n const handleSubmit = (data) => {\n handleSendCode();\n };\n\n return (\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col gap-3\">\n <h2 className=\"text-[24px] font-semibold\">\n {t(\"verifyPage.selectNewPassword\")}\n </h2>\n <h3 className=\"text-[16px] font-normal text-[#677389]\">\n {t(\"verifyPage.minEightChar\")}\n </h3>\n </div>\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(handleSubmit)}\n className=\"flex flex-col gap-4\"\n >\n <div className=\"flex gap-2\">\n <div className=\"min-w-[110px]\">\n <FormField\n control={form.control}\n name=\"countryCode\"\n render={({ field }) => (\n <FormItem>\n <Label>{t(\"authPages.countryCode\")}</Label>\n <Select\n onValueChange={field.onChange}\n defaultValue={field.value}\n >\n <FormControl>\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n </FormControl>\n <SelectContent>\n {DialCodes.map((item, index) => (\n <SelectItem key={index} value={item.value}>\n {item.icon} {item.countryCode}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n <FormField\n control={form.control}\n name=\"phone\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"authPages.phoneNumber\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n <FormField\n control={form.control}\n name=\"password\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"authPages.password\")}</Label>\n <FormControl>\n <PasswordInput {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"repeatpassword\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"authPages.confirmPassword\")}</Label>\n <FormControl>\n <PasswordInput {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"membershipAgreement\"\n render={({ field }) => (\n <FormItem>\n <FormControl>\n <div>\n <Label\n htmlFor=\"membershipAgreement\"\n className=\"flex cursor-pointer items-center gap-1 text-gray-500\"\n >\n <Checkbox\n {...field}\n id=\"membershipAgreement\"\n name=\"membershipAgreement\"\n control={form.control}\n checked={field.value}\n onCheckedChange={field.onChange}\n />\n {i18n.language === \"tr\" ? (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/usage-terms/\"\n target={\"_blank\"}\n >\n Ãœyelik sözleÅŸmesi\n </a>\n 'ni okudum, kabul ediyorum.\n <br />\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/privacy/\"\n target={\"_blank\"}\n >\n KiÅŸisel Veri Aydınlatma Formu\n </a>\n ’nu okudum.\n </span>\n ) : (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n I've read and accepted the{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/usage-terms/\"\n target={\"_blank\"}\n >\n Membership Agreement.\n </a>{\" \"}\n I've read the{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/privacy/\"\n target={\"_blank\"}\n >\n Personal Data Disclosure Form\n </a>\n </span>\n )}\n </Label>\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"commercialCommunicationAgreement\"\n render={({ field }) => (\n <FormItem className=\"flex cursor-pointer items-center gap-1\">\n <FormControl>\n <div className=\"flex\">\n <Checkbox\n {...field}\n control={form.control}\n checked={field.value}\n onCheckedChange={field.onChange}\n />\n {i18n.language === \"tr\" ? (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/ticari-elektronik-ileti/\"\n target={\"_blank\"}\n >\n Ticari Elektronik Ä°leti{\" \"}\n </a>{\" \"}\n almayı kabul ediyorum.\n </span>\n ) : (\n <span className=\"ml-2 text-[14px] font-normal text-[#677389]\">\n I accept receiving{\" \"}\n <a\n className=\"text-[#0F6FFF] underline\"\n href=\"https://egaranti.com/tr/policy/ticari-elektronik-ileti/\"\n target={\"_blank\"}\n >\n Commercial Electronic Message\n </a>{\" \"}\n </span>\n )}\n </div>\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n <Button onClick={form.handleSubmit(handleSubmit)}>\n {t(\"common.send\")}\n </Button>\n </form>\n </Form>\n </div>\n );\n};\n\nconst Step2 = ({ formState, setFormState, token, handleSendCode, form }) => {\n const { toast } = useToast();\n const navigateTo = useNavigate();\n const [code, setCode] = useState(\"\");\n const { t } = useTranslation();\n const [clientIp, setClientIp] = useState(\"\");\n const [loading, setLoading] = useState(false);\n\n const handleSubmit = () => {\n const schema = yup.object().shape({\n code: yup\n .string()\n .min(6, t(\"common.formErrors.codeMin\"))\n .max(6, t(\"common.formErrors.codeMax\"))\n .required(t(\"common.formErrors.codeRequired\")),\n });\n schema\n .validate({ code }, { abortEarly: false })\n .then(() => {\n setLoading(true);\n axios\n .post(`/onboard/trendyol`, {\n countryCode: form.getValues().countryCode,\n phone: form.getValues().phone,\n password: form.getValues().password,\n passwordConfirmation: form.getValues().repeatpassword,\n hash: token,\n code: code,\n commercialCommunicationAgreement:\n form.getValues().commercialCommunicationAgreement,\n membershipAgreement: form.getValues().membershipAgreement,\n ip: clientIp,\n })\n .then(() => {\n setLoading(false);\n navigateTo(\"/login\");\n })\n .catch((err) => {\n const errorText = parseError(err.response.data.errors);\n toast({\n description: errorText,\n variant: \"error\",\n });\n });\n })\n .catch((err) => {\n console.log(err);\n const errorText = parseError(err.inner);\n toast({\n description: errorText,\n variant: \"error\",\n });\n });\n };\n\n const getIP = async () => {\n const response = await fetch(\"https://api.ipify.org?format=json\");\n const data = await response.json();\n setClientIp(data.ip);\n };\n\n useEffect(() => {\n setFormState({ ...formState, codeSent: true });\n getIP();\n }, []);\n\n useEffect(() => {\n let interval = null;\n if (formState.codeSent) {\n interval = setInterval(() => {\n setFormState((formState) => ({\n ...formState,\n timer: formState.timer - 1,\n }));\n }, 1000);\n } else if (!formState.codeSent) {\n clearInterval(interval);\n }\n return () => clearInterval(interval);\n }, [formState.codeSent]);\n\n const handleResendCode = () => {\n handleSendCode();\n setFormState({ ...formState, timer: 179 });\n };\n\n return (\n <div className=\"flex w-full max-w-[400px] flex-col gap-5 rounded-lg md:bg-white md:p-6 md:shadow-default\">\n <div className=\"mb-2 flex flex-col gap-3\">\n <h2 className=\"text-[24px] font-semibold\">\n {t(\"verifyPage.phoneNumberVerification\")}\n </h2>\n <h3 className=\"text-[16px] font-normal text-[#677389]\">\n {t(\"verifyPage.pleaseEnterVerificationCode\")}\n </h3>\n </div>\n <div className=\"flex flex-col items-center gap-2\">\n <div className=\"flex w-full max-w-[200px] flex-col items-center gap-2\">\n <span className=\"text-sm text-gray-500\">\n {t(\"verifyPage.verificationCode\")}\n </span>\n <div className=\"flex gap-2\">\n <OTPInput\n value={code}\n onChange={(c) => setCode(c)}\n maxLength={6}\n containerClassName=\"flex justify-center gap-3 mt-5\"\n render={({ slots }) => (\n <div className=\"flex gap-3\">\n {slots.slice(0, 6).map((slot, idx) => (\n <Slot key={idx} {...slot} />\n ))}\n </div>\n )}\n />\n </div>\n </div>\n {formState.timer > 0 ? (\n <div className=\"flex items-center gap-2\">\n <p className=\"text-sm text-gray-500\">\n {t(\"verifyPage.remainingTime\")} :\n </p>\n <p className=\"text-sm font-medium text-[#0049E6]\">\n {formState.timer}\n </p>\n </div>\n ) : (\n <div className=\"flex items-center gap-2\">\n <button\n onClick={handleResendCode}\n className=\"text-sm font-medium text-[#0049E6]\"\n >\n {t(\"verifyPage.sendAgain\")}\n </button>\n </div>\n )}\n </div>\n {!loading && (\n <Button onClick={handleSubmit}>{t(\"common.confirm\")}</Button>\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport { Route } from \"react-router-dom\";\n\nimport { Login, LoginJwt, Register } from \"../pages/Auth\";\nimport ForgotPasswordMail from \"../pages/Auth/ForgotPassword/mail\";\nimport ForgotPasswordVerify from \"../pages/Auth/ForgotPassword/verify\";\nimport {\n VerifyMail,\n VerifyOnboardMail,\n VerifyPhone,\n VerifyPhoneDirect,\n VerifyTrendyol,\n} from \"../pages/VerifyAccount\";\n\nexport const authRoutes = (\n <>\n <Route path=\"/mail-verify\" element={<VerifyMail />} />\n <Route path=\"/phone-verify\" element={<VerifyPhoneDirect />} />\n <Route path=\"/onboard-phone\" element={<VerifyPhone />} />\n <Route path=\"/onboard-email\" element={<VerifyOnboardMail />} />\n <Route path=\"/mail-onboarding\" element={<VerifyOnboardMail />} />\n <Route path=\"/trendyol-onboarding\" element={<VerifyTrendyol />} />\n <Route path=\"/login\" element={<Login />} />\n <Route path=\"/login/jwt\" element={<LoginJwt />} />\n <Route path=\"/register\" element={<Register />} />\n <Route path=\"/forgot-password/mail\" element={<ForgotPasswordMail />} />\n <Route path=\"/password/reset\" element={<ForgotPasswordVerify />} />\n </>\n);\n","import axios from \"./axios\";\n\n// Get all service for the current user\nexport const getClaims = (filters = {}) => {\n const { page = 1, size = 10 } = filters;\n return axios.get(`/service/all?page=${page}&size=${size}`);\n};\n\n// Get a specific claim by ID\nexport const getClaim = (id) => {\n return axios.get(`/service/${id}`);\n};\n\n// Create a new claim\nexport const createClaim = (data) => {\n return axios.post(\"/service\", data);\n};\n\n// Get service templates for claim creation\nexport const getServiceTemplates = (formTitle, merchantId) => {\n return axios.get(`/service?formTitle=${formTitle}&merchantId=${merchantId}`);\n};\n\n// Get user products\nexport const getUserProducts = (page = 1, size = 10) => {\n return axios.get(`/individual-customer-products?page=${page}&size=${size}`);\n};\n","import {\n Button,\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n useToast,\n} from \"@egaranti/components\";\n\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Calendar, FileText, Hash, MessageSquare } from \"lucide-react\";\n\nimport { getClaim } from \"@/lib/api/claims\";\nimport useMediaQuery from \"@/lib/utils/hooks/useMediaQuery\";\n\nconst ClaimDetailSheet = ({ open, onOpenChange, claimId }) => {\n const { t } = useTranslation();\n const [claim, setClaim] = useState(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n const isMobile = useMediaQuery(\"(max-width: 768px)\");\n\n useEffect(() => {\n if (open && claimId) {\n // fetchClaimDetail();\n setClaim(claimId);\n }\n\n return () => {\n setClaim(null);\n setError(null);\n };\n }, [open, claimId]);\n\n // const fetchClaimDetail = async () => {\n // try {\n // setLoading(true);\n // const response = await getClaim(claimId);\n // setClaim(response.data);\n // } catch (err) {\n // setError(err.message || \"Talep detayları yüklenirken bir hata oluÅŸtu.\");\n // } finally {\n // await new Promise((resolve) => setTimeout(resolve, 500));\n // setLoading(false);\n // }\n // };\n\n const renderClaimInfo = () => {\n if (loading) {\n return (\n <div className=\"space-y-4\">\n {[...Array(4)].map((_, index) => (\n <div key={index} className=\"animate-pulse\">\n <div className=\"mb-2 h-6 rounded bg-gray-100\"></div>\n <div className=\"h-6 rounded bg-gray-100\"></div>\n </div>\n ))}\n </div>\n );\n }\n\n if (error) {\n return (\n <div className=\"rounded-lg border border-red-200 bg-red-50 p-4 text-red-700\">\n <p>{error}</p>\n </div>\n );\n }\n\n if (!claim) {\n return (\n <div className=\"rounded-lg border border-yellow-200 bg-yellow-50 p-4 text-yellow-700\">\n <p>{t(\"claims.notFound\", \"Talep bulunamadı.\")}</p>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6\">\n <div className=\"rounded-lg border p-4\">\n <h3 className=\"mb-2 text-lg font-medium\">\n {t(\"claims.basicInfo\", \"Temel Bilgiler\")}\n </h3>\n <div className=\"space-y-2\">\n <div className=\"flex items-start\">\n <Hash className=\"mr-2 h-5 w-5 text-gray-500\" />\n <div>\n <p className=\"text-sm text-gray-500\">\n {t(\"claims.id\", \"Talep No\")}\n </p>\n <p className=\"font-medium\">{claim.id}</p>\n </div>\n </div>\n <div className=\"flex items-start\">\n <Calendar className=\"mr-2 h-5 w-5 text-gray-500\" />\n <div>\n <p className=\"text-sm text-gray-500\">\n {t(\"claims.createdAt\", \"OluÅŸturulma Tarihi\")}\n </p>\n <p className=\"font-medium\">{claim.createdAt}</p>\n </div>\n </div>\n <div className=\"flex items-start\">\n <FileText className=\"mr-2 h-5 w-5 text-gray-500\" />\n <div>\n <p className=\"text-sm text-gray-500\">\n {t(\"claims.status\", \"Durum\")}\n </p>\n <p className=\"font-medium\">{claim.status}</p>\n </div>\n </div>\n </div>\n </div>\n\n {claim.demandData && claim.demandData.length > 0 && (\n <div className=\"rounded-lg border p-4\">\n <h3 className=\"mb-2 text-lg font-medium\">\n {t(\"claims.details\", \"Talep Detayları\")}\n </h3>\n <div className=\"space-y-3\">\n {claim.demandData.map((item) => (\n <div\n key={item.id}\n className=\"border-b border-gray-100 pb-2 last:border-0\"\n >\n <p className=\"text-sm text-gray-500\">{item.label}</p>\n <p className=\"font-medium\">\n {Array.isArray(item.value)\n ? item.value.join(\", \")\n : item.value}\n {Array.isArray(item.spareParts)\n ? item.spareParts.join(\", \")\n : \"\"}\n </p>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* <div className=\"flex flex-col space-y-2\">\n <Button variant=\"outline\" className=\"w-full\">\n <MessageSquare className=\"mr-2 h-4 w-4\" />\n {t(\"claims.contactService\", \"Servis ile Ä°letiÅŸime Geç\")}\n </Button>\n </div> */}\n </div>\n );\n };\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent\n side={isMobile ? \"bottom\" : \"right\"}\n className=\"rounded-lg bg-white p-4 md:m-4\"\n >\n <SheetHeader>\n <SheetTitle>{t(\"claims.detail\", \"Talep Detayı\")}</SheetTitle>\n </SheetHeader>\n <div className=\"mt-6 flex w-full flex-col\">{renderClaimInfo()}</div>\n </SheetContent>\n </Sheet>\n );\n};\n\nexport default ClaimDetailSheet;\n","import { create } from \"zustand\";\n\nimport {\n createClaim,\n getClaims,\n getServiceTemplates,\n getUserProducts,\n} from \"@/lib/api/claims\";\n\nconst useClaimsStore = create((set, get) => ({\n // State\n claims: [],\n claimsFilters: {\n page: 1,\n size: 10,\n totalPages: 1,\n totalElements: 0,\n },\n productFilters: {\n page: 1,\n size: 10,\n totalPages: 1,\n totalElements: 0,\n },\n serviceTemplates: [],\n userProducts: [],\n selectedProduct: null,\n selectedFormType: null, // Will be \"SETUP\" or \"SERVICE\"\n selectedTemplate: null,\n selectedClaim: null,\n loading: false,\n error: null,\n formData: {},\n step: 1, // 1: Product selection, 2: Form type selection, 3: Form filling\n\n // Actions\n fetchClaims: async () => {\n set({ loading: true, error: null });\n try {\n const response = await getClaims(get().claimsFilters);\n set({\n claims: response.data?.content,\n loading: false,\n claimsFilters: {\n ...get().claimsFilters,\n totalPages: response.data?.totalPages,\n totalElements: response.data?.totalElements,\n },\n });\n } catch (error) {\n set({ error: error.message, loading: false });\n }\n },\n\n fetchUserProducts: async () => {\n set({ loading: true, error: null });\n try {\n const { page, size } = get().productFilters;\n const response = await getUserProducts(page, size);\n set({\n userProducts: response.data?.content || [],\n loading: false,\n productFilters: {\n ...get().productFilters,\n totalPages: response.data?.totalPages || 1,\n totalElements: response.data?.totalElements || 0,\n },\n });\n } catch (error) {\n set({ error: error.message, loading: false });\n }\n },\n\n setProductPage: (page) => {\n set((state) => ({\n productFilters: {\n ...state.productFilters,\n page,\n },\n }));\n get().fetchUserProducts();\n },\n\n handlePageChange: (page) => {\n // This function is used by the Pagination component\n get().setProductPage(page);\n },\n\n setClaimsPage: (page) => {\n set((state) => ({\n claimsFilters: {\n ...state.claimsFilters,\n page,\n },\n }));\n get().fetchClaims();\n },\n\n handleClaimsPageChange: (page) => {\n // This function is used by the Pagination component for claims\n get().setClaimsPage(page);\n },\n\n setClaimsPageSize: (size) => {\n set((state) => ({\n claimsFilters: {\n ...state.claimsFilters,\n size,\n page: 1, // Reset to first page when changing page size\n },\n }));\n get().fetchClaims();\n },\n\n fetchServiceTemplates: async (formTitle) => {\n set({ loading: true, error: null });\n try {\n const selectedProduct = get().selectedProduct;\n // Use merchantId from the selected product\n const merchantId = selectedProduct?.merchantId;\n\n const response = await getServiceTemplates(formTitle, merchantId);\n\n // Get the templates from response\n const templates = response.data || [];\n\n set({\n serviceTemplates: templates,\n loading: false,\n });\n\n // Automatically select the first template if available\n if (templates.length > 0) {\n get().setSelectedTemplate(templates[0]);\n }\n\n return templates;\n } catch (error) {\n set({ error: error.message, loading: false });\n return [];\n }\n },\n\n // Initialize from URL parameters - to be called once on component mount\n initFromUrlParams: (productId, formType, products) => {\n if (productId && products.length > 0) {\n const product = products.find((p) => p.id.toString() === productId);\n if (product) {\n set({ selectedProduct: product, step: 2 });\n\n if (formType) {\n // This will also fetch templates\n get().setSelectedFormType(formType);\n }\n }\n }\n },\n\n setSelectedProduct: (product) => {\n set({ selectedProduct: product, step: 2 });\n },\n\n setSelectedFormType: (formType) => {\n set({ selectedFormType: formType, step: 3 });\n // Fetch templates for the selected form type\n get().fetchServiceTemplates(formType);\n },\n\n setSelectedTemplate: (template) => {\n set({ selectedTemplate: template });\n },\n\n setSelectedClaim: (claim) => {\n set({ selectedClaim: claim });\n },\n\n setFormData: (data) => {\n set({ formData: data });\n },\n\n updateFormField: (name, value) => {\n set((state) => ({\n formData: {\n ...state.formData,\n [name]: value,\n },\n }));\n },\n\n resetForm: () => {\n set({\n formData: {},\n selectedTemplate: null,\n selectedProduct: null,\n selectedFormType: null,\n step: 1,\n });\n },\n\n goToStep: (step) => {\n set({ step });\n },\n\n submitClaim: async (formData) => {\n set({ loading: true, error: null });\n try {\n // Format the data according to the API requirements\n const demandData = Object.entries(formData || {}).map(\n ([label, value]) => ({ label, value }),\n );\n\n const selectedProduct = get().selectedProduct;\n // Use merchantId from the selected product\n const merchantId = selectedProduct?.merchantId;\n\n const data = {\n formId: get().selectedTemplate.id,\n productId: get().selectedProduct.id,\n merchantId: merchantId,\n demandData,\n };\n\n const response = await createClaim(data);\n\n // After successful submission, refresh claims list\n await get().fetchClaims();\n\n // Reset form\n get().resetForm();\n\n return response.data;\n } catch (error) {\n set({ error: error.message, loading: false });\n throw error;\n }\n },\n\n setProductPageSize: (size) => {\n set((state) => ({\n productFilters: {\n ...state.productFilters,\n size,\n page: 1, // Reset to first page when changing page size\n },\n }));\n get().fetchUserProducts();\n },\n}));\n\nexport default useClaimsStore;\n","import { Button } from \"@egaranti/components\";\n\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\n\nimport ClaimDetailSheet from \"./ClaimDetailSheet\";\n\nimport useClaimsStore from \"@/store/useClaimsStore\";\n\nimport EmptyData from \"@/components/common/EmptyData\";\n\nimport {\n ArrowRight,\n Calendar,\n CalendarIcon,\n FileQuestionIcon,\n FileText,\n Hash,\n} from \"lucide-react\";\n\nconst Claims = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { claims, loading, error, fetchClaims } = useClaimsStore();\n const [selectedClaimId, setSelectedClaimId] = useState(null);\n const [isDetailSheetOpen, setIsDetailSheetOpen] = useState(false);\n\n useEffect(() => {\n fetchClaims();\n }, [fetchClaims]);\n\n const handleCreateClaim = () => {\n navigate(\"/claims/create\");\n };\n\n const handleViewClaim = (claimId) => {\n setSelectedClaimId(claimId);\n setIsDetailSheetOpen(true);\n };\n\n if (loading && claims.length === 0) {\n return (\n <div className=\"mx-auto max-w-2xl space-y-4 p-6\">\n <div className=\"mb-4 flex items-center justify-between\">\n <h1 className=\"text-xl font-semibold\">{t(\"navbar.claims\")}</h1>\n <Button onClick={handleCreateClaim}>\n {t(\"claims.createClaim\", \"Yeni Talep OluÅŸtur\")}\n </Button>\n </div>\n {[...Array(3)].map((_, index) => (\n <div key={index} className=\"animate-pulse\">\n <div className=\"mb-2 h-6 rounded bg-gray-100\"></div>\n <div className=\"h-6 rounded bg-gray-100\"></div>\n </div>\n ))}\n </div>\n );\n }\n\n if (error) {\n return (\n <div className=\"p-4\">\n <div className=\"text-red-500\">{error}</div>\n </div>\n );\n }\n\n return (\n <div className=\"mx-auto max-w-2xl p-6\">\n <div className=\"mb-6 flex justify-between\">\n <h1 className=\"text-xl font-semibold\">{t(\"navbar.claims\")}</h1>\n <Button onClick={handleCreateClaim}>\n {t(\"claims.createClaim\", \"Yeni Talep OluÅŸtur\")}\n </Button>\n </div>\n\n {claims.length === 0 ? (\n <EmptyData\n title={t(\"claims.noClaims\", \"Henüz talep bulunmuyor\")}\n description={t(\n \"claims.noClaimsDesc\",\n \"Ãœrünleriniz için servis veya kurulum talebi oluÅŸturabilirsiniz.\",\n )}\n buttonText={t(\"claims.createClaim\", \"Yeni Talep OluÅŸtur\")}\n buttonAction={handleCreateClaim}\n />\n ) : (\n <div className=\"space-y-4\">\n {claims.map((claim) => (\n <div\n key={claim.id}\n className=\"hover:border-primary cursor-pointer rounded-lg border bg-white p-4 transition-all hover:border-gray-300\"\n onClick={() => handleViewClaim(claim)}\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-full bg-blue-100\">\n <FileQuestionIcon className=\"h-6 w-6 text-blue-600\" />\n </div>\n\n <div className=\"flex flex-col space-y-3\">\n <div className=\"flex items-center\">\n <Hash className=\"mr-2 h-5 w-5 text-blue-500\" />\n <span className=\"text-sm text-gray-600\">\n {t(\"claims.id\", \"Talep No\")}:{\" \"}\n <span className=\"ml-1 font-semibold text-gray-900\">\n {claim.id}\n </span>\n </span>\n </div>\n\n <div className=\"flex items-center\">\n <Calendar className=\"mr-2 h-5 w-5 text-green-500\" />\n <span className=\"text-sm text-gray-600\">\n {t(\"claims.createdAt\", \"OluÅŸturulma Tarihi\")}:{\" \"}\n <span className=\"ml-1 font-semibold text-gray-900\">\n {claim.createdAt}\n </span>\n </span>\n </div>\n\n <div className=\"flex items-center\">\n <FileText className=\"mr-2 h-5 w-5 text-purple-500\" />\n <span className=\"text-sm text-gray-600\">\n {t(\"claims.status\", \"Durum\")}:{\" \"}\n <span className=\"ml-1 font-semibold text-gray-900\">\n {claim.status}\n </span>\n </span>\n </div>\n </div>\n </div>\n <ArrowRight className=\"h-5 w-5 text-gray-400\" />\n </div>\n </div>\n ))}\n </div>\n )}\n\n <ClaimDetailSheet\n open={isDetailSheetOpen}\n onOpenChange={setIsDetailSheetOpen}\n claimId={selectedClaimId}\n />\n </div>\n );\n};\n\nexport default Claims;\n","import React from \"react\";\n\nimport PropTypes from \"prop-types\";\n\nconst BaseFieldRenderer = ({ field, error, touched, children }) => {\n const renderLabel = () => (\n <label className=\"mb-2 block text-sm font-medium text-gray-900\">\n {field.label}\n {field.required && <span className=\"text-red-500\">*</span>}\n </label>\n );\n\n const renderError = () =>\n touched &&\n error &&\n error.length > 0 && (\n <div className=\"mt-1 text-sm text-red-500\">\n {error.map((err, index) => (\n <div key={index}>{err}</div>\n ))}\n </div>\n );\n\n return (\n <div className={`mb-4 ${error && error.length > 0 ? \"error\" : \"\"}`}>\n {renderLabel()}\n {children}\n {renderError()}\n </div>\n );\n};\n\nBaseFieldRenderer.propTypes = {\n field: PropTypes.shape({\n label: PropTypes.string.isRequired,\n required: PropTypes.bool,\n }).isRequired,\n error: PropTypes.arrayOf(PropTypes.string),\n touched: PropTypes.bool.isRequired,\n children: PropTypes.node.isRequired,\n};\n\nexport default BaseFieldRenderer;\n","import { Checkbox } from \"@egaranti/components\";\n\nimport React from \"react\";\n\nimport BaseFieldRenderer from \"./BaseFieldRenderer\";\n\nimport PropTypes from \"prop-types\";\n\nconst CheckboxFieldRenderer = ({\n field,\n value,\n onChange,\n error,\n touched,\n disabled,\n}) => {\n return (\n <BaseFieldRenderer field={field} error={error} touched={touched}>\n <div className=\"flex items-center\">\n <Checkbox\n checked={value}\n onCheckedChange={(val) => onChange(val)}\n disabled={disabled}\n />\n <label className=\"ml-2 text-sm font-medium text-gray-900\">\n {field.label}\n {field.required && <span className=\"text-red-500\">*</span>}\n </label>\n </div>\n </BaseFieldRenderer>\n );\n};\n\nCheckboxFieldRenderer.propTypes = {\n field: PropTypes.shape({\n label: PropTypes.string.isRequired,\n required: PropTypes.bool,\n }).isRequired,\n value: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.arrayOf(PropTypes.string),\n touched: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n};\n\nexport default CheckboxFieldRenderer;\n","import { Input } from \"@egaranti/components\";\n\nimport React from \"react\";\n\nimport BaseFieldRenderer from \"./BaseFieldRenderer\";\n\nimport PropTypes from \"prop-types\";\n\nconst DateFieldRenderer = ({\n field,\n value,\n onChange,\n error,\n touched,\n disabled,\n}) => {\n return (\n <BaseFieldRenderer field={field} error={error} touched={touched}>\n <Input\n type=\"date\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n disabled={disabled}\n />\n </BaseFieldRenderer>\n );\n};\n\nDateFieldRenderer.propTypes = {\n field: PropTypes.shape({\n label: PropTypes.string.isRequired,\n required: PropTypes.bool,\n }).isRequired,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.arrayOf(PropTypes.string),\n touched: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n};\n\nexport default DateFieldRenderer;\n","import { Select } from \"@egaranti/components\";\n\nconst EmployeeFieldRenderer = ({ field, value, onChange, error, disabled }) => {\n return (\n <div>\n <label className=\"mb-1 block text-sm font-medium text-gray-700\">\n {field.label}\n {field.required && <span className=\"text-red-500\">*</span>}\n </label>\n <Select\n value={value}\n onChange={(value) => onChange(value)}\n placeholder={field.placeholder || \"Çalışan seçiniz\"}\n disabled={disabled}\n error={error}\n options={\n field.employees?.map((employee) => ({\n label: employee.name,\n value: employee.id,\n })) || []\n }\n />\n {error && <span className=\"text-sm text-red-500\">{error}</span>}\n </div>\n );\n};\n\nexport default EmployeeFieldRenderer;\n","import { Input } from \"@egaranti/components\";\n\nimport React from \"react\";\n\nimport BaseFieldRenderer from \"./BaseFieldRenderer\";\n\nimport PropTypes from \"prop-types\";\n\nconst FileFieldRenderer = ({\n field,\n value,\n onChange,\n error,\n touched,\n disabled,\n}) => {\n return (\n <BaseFieldRenderer field={field} error={error} touched={touched}>\n <div className=\"mt-2\">\n <Input\n type=\"file\"\n onChange={(e) => onChange(e.target.files[0])}\n disabled={disabled}\n />\n </div>\n </BaseFieldRenderer>\n );\n};\n\nFileFieldRenderer.propTypes = {\n field: PropTypes.shape({\n label: PropTypes.string.isRequired,\n required: PropTypes.bool,\n }).isRequired,\n value: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.arrayOf(PropTypes.string),\n touched: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n};\n\nexport default FileFieldRenderer;\n","import { Input } from \"@egaranti/components\";\n\nconst NumberFieldRenderer = ({ field, value, onChange, error, disabled }) => {\n return (\n <div>\n <label className=\"mb-1 block text-sm font-medium text-gray-700\">\n {field.label}\n {field.required && <span className=\"text-red-500\">*</span>}\n </label>\n <Input\n type=\"number\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={field.placeholder}\n disabled={disabled}\n />\n {error && <span className=\"text-sm text-red-500\">{error}</span>}\n </div>\n );\n};\n\nexport default NumberFieldRenderer;\n","import { RadioGroup, RadioGroupItem } from \"@egaranti/components\";\n\nimport React from \"react\";\n\nimport BaseFieldRenderer from \"./BaseFieldRenderer\";\n\nimport PropTypes from \"prop-types\";\n\nconst RadioFieldRenderer = ({\n field,\n value,\n onChange,\n error,\n touched,\n disabled,\n}) => {\n return (\n <BaseFieldRenderer field={field} error={error} touched={touched}>\n <RadioGroup value={value} onValueChange={onChange} disabled={disabled}>\n {field.options?.map((option) => {\n const optionValue =\n typeof option === \"object\" ? option.value : option;\n const optionLabel =\n typeof option === \"object\" ? option.label : option;\n const id = `${field.id}-${optionValue}`;\n return (\n <div key={optionValue} className=\"flex items-center space-x-2\">\n <RadioGroupItem value={optionValue} id={id} />\n <label htmlFor={id}>{optionLabel}</label>\n </div>\n );\n })}\n </RadioGroup>\n </BaseFieldRenderer>\n );\n};\n\nRadioFieldRenderer.propTypes = {\n field: PropTypes.shape({\n label: PropTypes.string.isRequired,\n required: PropTypes.bool,\n options: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({ label: PropTypes.string, value: PropTypes.string }),\n ]),\n ).isRequired,\n }).isRequired,\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.arrayOf(PropTypes.string),\n touched: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n};\n\nexport default RadioFieldRenderer;\n","import {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@egaranti/components\";\n\nimport React from \"react\";\n\nimport BaseFieldRenderer from \"./BaseFieldRenderer\";\n\nimport PropTypes from \"prop-types\";\n\nconst SelectFieldRenderer = ({\n field,\n value,\n onChange,\n error,\n touched,\n disabled,\n}) => {\n return (\n <BaseFieldRenderer field={field} error={error} touched={touched}>\n <Select\n value={value}\n onValueChange={onChange}\n disabled={disabled}\n error={error}\n >\n <SelectTrigger>\n <SelectValue placeholder={field.placeholder} />\n </SelectTrigger>\n <SelectContent>\n {field.options?.map((option) => (\n <SelectItem key={option} value={option}>\n {option}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </BaseFieldRenderer>\n );\n};\n\nSelectFieldRenderer.propTypes = {\n field: PropTypes.shape({\n label: PropTypes.string.isRequired,\n required: PropTypes.bool,\n placeholder: PropTypes.string,\n options: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n }),\n ]),\n ).isRequired,\n }).isRequired,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n touched: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nexport default SelectFieldRenderer;\n","import {\n Button,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n Tag,\n} from \"@egaranti/components\";\n\nimport { useEffect, useState } from \"react\";\n\nimport BaseFieldRenderer from \"./BaseFieldRenderer\";\n\nimport PropTypes from \"prop-types\";\n\nconst SparePartFieldRenderer = ({\n field,\n value = [],\n onChange,\n error,\n touched,\n disabled,\n}) => {\n console.log(field);\n return (\n <BaseFieldRenderer field={field} error={error} touched={touched}>\n <div className=\"w-full\">\n {field?.spareParts?.length > 0 && (\n <div className=\"mt-4 flex max-w-full flex-wrap gap-1 overflow-hidden\">\n {field?.spareParts?.map((partName) => (\n <Tag size=\"sm\" key={partName} className=\"max-w-[100px] truncate\">\n {partName}\n </Tag>\n ))}\n </div>\n )}\n\n {error && <p className=\"mt-1 text-sm text-red-500\">{error}</p>}\n </div>\n </BaseFieldRenderer>\n );\n};\n\nSparePartFieldRenderer.propTypes = {\n field: PropTypes.shape({\n label: PropTypes.string.isRequired,\n required: PropTypes.bool,\n placeholder: PropTypes.string,\n }).isRequired,\n value: PropTypes.arrayOf(PropTypes.string),\n onChange: PropTypes.func.isRequired,\n error: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n touched: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nexport default SparePartFieldRenderer;\n","import { Textarea } from \"@egaranti/components\";\n\nimport React from \"react\";\n\nimport BaseFieldRenderer from \"./BaseFieldRenderer\";\n\nimport PropTypes from \"prop-types\";\n\nconst TextAreaRenderer = ({\n field,\n value,\n onChange,\n error,\n touched,\n disabled,\n}) => {\n return (\n <BaseFieldRenderer field={field} error={error} touched={touched}>\n <Textarea\n placeholder={field.placeholder}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n disabled={disabled}\n rows={4}\n />\n </BaseFieldRenderer>\n );\n};\n\nTextAreaRenderer.propTypes = {\n field: PropTypes.shape({\n label: PropTypes.string.isRequired,\n required: PropTypes.bool,\n placeholder: PropTypes.string,\n }).isRequired,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.arrayOf(PropTypes.string),\n touched: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n};\n\nexport default TextAreaRenderer;\n","import { Input } from \"@egaranti/components\";\n\nimport React from \"react\";\n\nimport BaseFieldRenderer from \"./BaseFieldRenderer\";\n\nimport PropTypes from \"prop-types\";\n\nconst TextFieldRenderer = ({\n field,\n value,\n onChange,\n error,\n touched,\n disabled,\n}) => {\n return (\n <BaseFieldRenderer field={field} error={error} touched={touched}>\n <Input\n placeholder={field.placeholder}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n disabled={disabled}\n />\n </BaseFieldRenderer>\n );\n};\n\nTextFieldRenderer.propTypes = {\n field: PropTypes.shape({\n label: PropTypes.string.isRequired,\n required: PropTypes.bool,\n placeholder: PropTypes.string,\n }).isRequired,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.arrayOf(PropTypes.string),\n touched: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n};\n\nexport default TextFieldRenderer;\n","import {\n CalendarIcon,\n CheckSquare,\n ChevronDown,\n FileText,\n ListOrdered,\n Paperclip,\n PuzzleIcon,\n Tag,\n ToggleLeft,\n Type,\n Users,\n} from \"lucide-react\";\n\nclass FieldRegistry {\n constructor() {\n this.fields = new Map();\n }\n\n register(type, config) {\n this.fields.set(type, config);\n }\n\n get(type) {\n return this.fields.get(type);\n }\n\n getAll() {\n return Array.from(this.fields.values());\n }\n}\n\nexport const fieldRegistry = new FieldRegistry();\n\nconst baseFieldConfig = {\n getDefaultProps: (field) => ({\n type: field.type,\n label: `Yeni ${field.type} alan`,\n required: false,\n placeholder: `Yaz ${field.type}`,\n }),\n};\n\n// Register all field types\nfieldRegistry.register(\"TEXT\", {\n ...baseFieldConfig,\n type: \"TEXT\",\n icon: Type,\n label: \"Text Input\",\n});\n\nfieldRegistry.register(\"TEXTAREA\", {\n ...baseFieldConfig,\n type: \"TEXTAREA\",\n icon: FileText,\n label: \"Text Area\",\n});\n\nfieldRegistry.register(\"DROPDOWN\", {\n ...baseFieldConfig,\n type: \"DROPDOWN\",\n icon: ChevronDown,\n label: \"Dropdown\",\n getDefaultProps: (field) => ({\n ...baseFieldConfig.getDefaultProps(field),\n options: [\"Option 1\", \"Option 2\"],\n }),\n});\n\nfieldRegistry.register(\"NUMBER\", {\n ...baseFieldConfig,\n type: \"NUMBER\",\n icon: ListOrdered,\n label: \"Number\",\n getDefaultProps: (field) => ({\n ...baseFieldConfig.getDefaultProps(field),\n validation: { min: undefined, max: undefined },\n }),\n});\n\nfieldRegistry.register(\"CHECKBOX\", {\n ...baseFieldConfig,\n type: \"CHECKBOX\",\n icon: CheckSquare,\n label: \"Checkbox\",\n getDefaultProps: (field) => ({\n ...baseFieldConfig.getDefaultProps(field),\n options: [\"Seçenek 1\", \"Seçenek 2\"],\n }),\n});\n\nfieldRegistry.register(\"DATE\", {\n ...baseFieldConfig,\n type: \"DATE\",\n icon: CalendarIcon,\n label: \"Date\",\n});\n\nfieldRegistry.register(\"RADIO\", {\n ...baseFieldConfig,\n type: \"RADIO\",\n icon: ToggleLeft,\n label: \"Radio Group\",\n getDefaultProps: (field) => ({\n ...baseFieldConfig.getDefaultProps(field),\n options: [\"Option 1\", \"Option 2\"],\n }),\n});\nfieldRegistry.register(\"SPARE_PART\", {\n ...baseFieldConfig,\n type: \"SPARE_PART\",\n icon: PuzzleIcon,\n label: \"Yedek Parça\",\n getDefaultProps: (field) => ({\n ...baseFieldConfig.getDefaultProps(field),\n label: \"Yedek Parça\",\n }),\n});\nfieldRegistry.register(\"FILE\", {\n ...baseFieldConfig,\n type: \"FILE\",\n icon: Paperclip,\n label: \"File Upload\",\n});\n\nfieldRegistry.register(\"STATUS\", {\n ...baseFieldConfig,\n type: \"STATUS\",\n icon: Tag,\n label: \"Status\",\n customField: true,\n getDefaultProps: (field) => ({\n ...baseFieldConfig.getDefaultProps(field),\n label: \"Durum\",\n placeholder: \"Durum seç\",\n status: [\n { label: \"Beklemede\", color: \"#10B981\" },\n { label: \"Ä°ÅŸlemde\", color: \"#6B7280\" },\n { label: \"Bitti\", color: \"#F59E0B\" },\n ],\n }),\n});\n","import { Button } from \"@egaranti/components\";\n\nimport { forwardRef, useEffect, useMemo, useState } from \"react\";\n\nimport CheckboxFieldRenderer from \"./CheckboxFieldRenderer\";\nimport DateFieldRenderer from \"./DateFieldRenderer\";\nimport EmployeeFieldRenderer from \"./EmployeeFieldRenderer\";\nimport FileFieldRenderer from \"./FileFieldRenderer\";\nimport NumberFieldRenderer from \"./NumberFieldRenderer\";\nimport RadioFieldRenderer from \"./RadioFieldRenderer\";\nimport SelectFieldRenderer from \"./SelectFieldRenderer\";\nimport SparePartFieldRenderer from \"./SparePartFieldRenderer\";\nimport TextAreaRenderer from \"./TextAreaRenderer\";\nimport TextFieldRenderer from \"./TextFieldRenderer\";\nimport { fieldRegistry } from \"./registry\";\n\nconst DynamicForm = forwardRef(function DynamicForm(\n {\n fields,\n onSubmit,\n defaultValues,\n isEditing = true,\n className,\n customRenderers,\n validationRules,\n submitButtonProps,\n onChange,\n },\n ref,\n) {\n const [formData, setFormData] = useState({});\n const [errors, setErrors] = useState({});\n const [touched, setTouched] = useState({});\n\n useEffect(() => {\n if (defaultValues) {\n setFormData(defaultValues);\n }\n }, [defaultValues]);\n\n const handleChange = (name, value) => {\n setFormData((prev) => ({ ...prev, [name]: value }));\n setTouched((prev) => ({ ...prev, [name]: true }));\n\n // Call the onChange prop if provided\n if (onChange) {\n onChange(name, value);\n }\n\n if (validationRules?.[name]) {\n const fieldErrors = validateField(name, value, validationRules[name]);\n setErrors((prev) => ({ ...prev, [name]: fieldErrors }));\n }\n };\n\n const validateField = (name, value, rules) => {\n const errs = [];\n if (rules.required && !value) {\n errs.push(\"This field is required\");\n }\n if (rules.min && value < rules.min) {\n errs.push(`Value must be at least ${rules.min}`);\n }\n if (rules.max && value > rules.max) {\n errs.push(`Value must be at most ${rules.max}`);\n }\n if (rules.pattern && !new RegExp(rules.pattern).test(value)) {\n errs.push(\"Invalid format\");\n }\n if (rules.custom) {\n const customError = rules.custom(value, formData);\n if (customError) errs.push(customError);\n }\n return errs;\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n const newErrors = {};\n let hasErrors = false;\n\n fields.forEach((field) => {\n if (validationRules?.[field.label]) {\n const fieldErrors = validateField(\n field.label,\n formData[field.label],\n validationRules[field.label],\n );\n if (fieldErrors.length > 0) {\n newErrors[field.label] = fieldErrors;\n hasErrors = true;\n }\n }\n });\n\n setErrors(newErrors);\n if (!hasErrors) {\n onSubmit(formData);\n }\n };\n\n const visibleFields = useMemo(() => {\n return fields.filter((field) => !field.showIf || field.showIf(formData));\n }, [fields, formData]);\n\n const renderFormField = (field) => {\n if (customRenderers?.[field.type]) {\n return customRenderers[field.type]({\n field,\n value: formData[field.label] || \"\",\n onChange: (value) => handleChange(field.label, value),\n error: errors[field.label],\n disabled: !isEditing,\n });\n }\n\n const value = formData[field.label] || \"\";\n const fieldErrors = errors[field.label] || [];\n const isFieldTouched = touched[field.label];\n\n switch (field.type) {\n case \"TEXT\":\n return (\n <TextFieldRenderer\n field={field}\n value={value}\n onChange={(val) => handleChange(field.label, val)}\n error={fieldErrors}\n touched={isFieldTouched}\n disabled={!isEditing}\n />\n );\n case \"TEXTAREA\":\n return (\n <TextAreaRenderer\n field={field}\n value={value}\n onChange={(val) => handleChange(field.label, val)}\n error={fieldErrors}\n touched={isFieldTouched}\n disabled={!isEditing}\n />\n );\n case \"CHECKBOX\":\n return (\n <CheckboxFieldRenderer\n field={field}\n value={value}\n onChange={(val) => handleChange(field.label, val)}\n error={fieldErrors}\n touched={isFieldTouched}\n disabled={!isEditing}\n />\n );\n case \"NUMBER\":\n return (\n <NumberFieldRenderer\n field={field}\n value={value}\n onChange={(val) => handleChange(field.label, val)}\n error={fieldErrors}\n touched={isFieldTouched}\n disabled={!isEditing}\n />\n );\n case \"DROPDOWN\":\n return (\n <SelectFieldRenderer\n field={field}\n value={value}\n onChange={(val) => handleChange(field.label, val)}\n error={fieldErrors}\n touched={isFieldTouched}\n disabled={!isEditing}\n />\n );\n // case \"STATUS\":\n // return (\n // <StatusFieldRenderer\n // field={field}\n // value={value}\n // onChange={(val) => handleChange(field.label, val)}\n // error={fieldErrors}\n // touched={isFieldTouched}\n // disabled={!isEditing}\n // />\n // );\n case \"EMPLOYEE\":\n return (\n <EmployeeFieldRenderer\n field={field}\n value={value}\n onChange={(val) => handleChange(field.label, val)}\n error={fieldErrors}\n touched={isFieldTouched}\n disabled={!isEditing}\n />\n );\n case \"RADIO\":\n return (\n <RadioFieldRenderer\n field={field}\n value={value}\n onChange={(val) => handleChange(field.label, val)}\n error={fieldErrors}\n touched={isFieldTouched}\n disabled={!isEditing}\n />\n );\n case \"DATE\":\n return (\n <DateFieldRenderer\n field={field}\n value={value}\n onChange={(val) => handleChange(field.label, val)}\n error={fieldErrors}\n touched={isFieldTouched}\n disabled={!isEditing}\n />\n );\n case \"FILE\":\n return (\n <FileFieldRenderer\n field={field}\n value={value}\n onChange={(val) => handleChange(field.label, val)}\n error={fieldErrors}\n touched={isFieldTouched}\n disabled={!isEditing}\n />\n );\n case \"SPARE_PART\":\n return (\n <SparePartFieldRenderer\n field={field}\n value={value}\n onChange={(val) => handleChange(field.label, val)}\n error={fieldErrors}\n touched={isFieldTouched}\n disabled={!isEditing}\n />\n );\n\n default:\n const registeredField = fieldRegistry.get(field.type);\n if (registeredField?.render) {\n return registeredField.render({\n field,\n value,\n onChange: (val) => handleChange(field.label, val),\n disabled: !isEditing,\n error: fieldErrors,\n });\n }\n return null;\n }\n };\n\n return (\n <form ref={ref} onSubmit={handleSubmit} className={className}>\n {visibleFields.map((field) => renderFormField(field))}\n {isEditing && submitButtonProps && (\n <div className=\"mt-4 flex w-full justify-end\">\n <Button type=\"submit\" {...submitButtonProps}>\n {submitButtonProps?.children || \"Kaydet\"}\n </Button>\n </div>\n )}\n </form>\n );\n});\n\nexport default DynamicForm;\n","import { Button, Pagination } from \"@egaranti/components\";\n\nimport React, { useEffect, useRef } from \"react\";\nimport { useNavigate, useSearchParams } from \"react-router-dom\";\n\nimport useClaimsStore from \"@/store/useClaimsStore\";\n\nimport DynamicForm from \"@/components/Claims/dynamicForm\";\n\nimport { ArrowLeft } from \"lucide-react\";\n\nconst ClaimCreate = () => {\n const navigate = useNavigate();\n const formRef = useRef(null);\n const [searchParams, setSearchParams] = useSearchParams();\n\n const {\n loading,\n userProducts,\n productFilters,\n fetchUserProducts,\n handlePageChange,\n setSelectedProduct,\n selectedProduct,\n setSelectedFormType,\n selectedTemplate,\n formData,\n submitClaim,\n resetForm,\n setFormData,\n step,\n goToStep,\n } = useClaimsStore();\n\n // Fetch products only once on component mount\n useEffect(() => {\n fetchUserProducts();\n\n return () => resetForm(); // Clean up on unmount\n }, [fetchUserProducts, resetForm]);\n\n // Handle URL parameters separately to avoid infinite loops\n useEffect(() => {\n // Only process URL parameters if we have products and no product is already selected\n if (userProducts.length > 0 && !selectedProduct) {\n const productId = searchParams.get(\"productId\");\n const formType = searchParams.get(\"formType\");\n\n // Use the store's initFromUrlParams function to handle URL parameters\n // This will only be called once when products are loaded and no product is selected\n if (productId) {\n useClaimsStore\n .getState()\n .initFromUrlParams(productId, formType, userProducts);\n }\n }\n }, [userProducts, searchParams, selectedProduct]);\n\n const handleBack = () => {\n if (step === 1) {\n navigate(\"/claims\");\n } else {\n // Update URL parameters when going back\n setSearchParams((prev) => {\n const newParams = new URLSearchParams(prev);\n if (step === 3) {\n // Going back from form filling to form type selection\n // Keep both product and form type parameters\n } else if (step === 2) {\n // Going back from form type selection to product selection\n // Remove form type but keep product\n newParams.delete(\"formType\");\n }\n return newParams;\n });\n\n // Go back one step\n goToStep(step - 1);\n }\n };\n\n const handleSubmit = async (data) => {\n try {\n // Pass the form data to the submitClaim function\n await submitClaim(data);\n navigate(\"/claims\", {\n state: {\n success: true,\n message: \"Talebiniz baÅŸarıyla oluÅŸturuldu.\",\n },\n });\n } catch (error) {\n console.error(\"Form submission error:\", error);\n }\n };\n\n const handleProductSelect = (product) => {\n // Update URL with product ID\n setSearchParams((prev) => {\n // Create a new URLSearchParams object to avoid mutating the original\n const newParams = new URLSearchParams(prev);\n newParams.set(\"productId\", product.id.toString());\n // Remove formType if we're at step 2 (form type selection)\n // This ensures we don't keep an old form type when selecting a new product\n if (step === 2) {\n newParams.delete(\"formType\");\n }\n return newParams;\n });\n\n setSelectedProduct(product);\n };\n\n const handleFormTypeSelect = (formType) => {\n // Update URL with form type\n setSearchParams((prev) => {\n const newParams = new URLSearchParams(prev);\n newParams.set(\"formType\", formType);\n return newParams;\n });\n\n setSelectedFormType(formType);\n };\n\n // Loading state\n if (\n loading &&\n ((step === 1 && userProducts.length === 0) ||\n step === 2 ||\n (step === 3 && !selectedTemplate))\n ) {\n return (\n <div className=\"space-y-4 p-4\">\n <div className=\"mb-4 flex items-center\">\n <Button variant=\"secondaryGray\" onClick={handleBack} className=\"mr-2\">\n <ArrowLeft size={20} />\n </Button>\n <h1 className=\"text-xl font-semibold\">\n {step === 1\n ? \"Ãœrün Seçimi\"\n : step === 2\n ? \"Talep Türü Seçimi\"\n : \"Talep Detayları\"}\n </h1>\n </div>\n {[...Array(3)].map((_, index) => (\n <div\n key={index}\n className=\"animate-pulse h-24 w-full rounded-lg bg-gray-200\"\n />\n ))}\n </div>\n );\n }\n\n // Empty state\n if (\n (step === 1 && userProducts.length === 0) ||\n (step === 3 && !selectedTemplate)\n ) {\n return (\n <div className=\"mx-auto max-w-2xl space-y-4 p-4\">\n <div className=\"mb-4 flex items-center\">\n <Button variant=\"secondaryGray\" onClick={handleBack} className=\"mr-2\">\n <ArrowLeft size={20} />\n </Button>\n <h1 className=\"text-xl font-semibold\">\n {step === 1\n ? \"Ãœrün Seçimi\"\n : step === 2\n ? \"Talep Türü Seçimi\"\n : \"Talep Detayları\"}\n </h1>\n </div>\n <div className=\"flex h-40 items-center justify-center rounded-lg border-2 border-dashed border-gray-300 bg-gray-50\">\n <p className=\"text-center text-gray-500\">\n {step === 1\n ? \"Henüz ürün bulunmuyor.\"\n : \"Bu marka henüz egaranti üzerinden doÄŸrudan servis talebi alma özelliÄŸini kullanmamaktadır. Daha fazla bilgi için markayla iletiÅŸime geçebilirsiniz.\"}\n </p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"mx-auto max-w-3xl p-6\">\n {/* Header with title and back button */}\n <div className=\"mb-6 flex items-center justify-between\">\n <div className=\"flex items-center\">\n <Button\n variant=\"secondaryGray\"\n onClick={handleBack}\n className=\"mr-3 rounded-full p-2\"\n >\n <ArrowLeft size={20} />\n </Button>\n <h1 className=\"text-xl font-semibold\">\n {step === 1\n ? \"Ãœrün Seçimi\"\n : step === 2\n ? \"Talep Türü Seçimi\"\n : selectedTemplate\n ? selectedTemplate.title\n : \"Talep Detayları\"}\n </h1>\n </div>\n </div>\n\n {/* Stepper */}\n <div className=\"mb-8\">\n <div className=\"flex items-center justify-between\">\n {[1, 2, 3].map((stepNumber) => (\n <div key={stepNumber} className=\"flex flex-1 flex-col items-center\">\n <div\n className={`flex h-8 w-8 items-center justify-center rounded-full ${\n step >= stepNumber\n ? \"bg-blue-600 text-white\"\n : \"border-2 border-gray-300 bg-white text-gray-500\"\n }`}\n >\n {stepNumber}\n </div>\n <div className=\"mt-2 text-center text-xs font-medium\">\n {stepNumber === 1\n ? \"Ãœrün Seçimi\"\n : stepNumber === 2\n ? \"Talep Türü\"\n : \"Talep Detayları\"}\n </div>\n {stepNumber < 3 && (\n <div className=\"mt-2 h-0.5 w-full flex-1 bg-gray-200\">\n <div\n className=\"h-full bg-blue-600\"\n style={{ width: step > stepNumber ? \"100%\" : \"0%\" }}\n />\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n\n {/* Step 1: Product Selection */}\n {step === 1 && (\n <main className=\"\">\n <div className=\"mb-4\">\n <h2 className=\"text-lg font-medium\">Ãœrünler</h2>\n <p className=\"text-sm text-gray-500\">\n Lütfen talep oluÅŸturmak istediÄŸiniz ürünü seçin\n </p>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {userProducts.map((product) => (\n <div\n key={product.id}\n className=\"h-full cursor-pointer rounded-lg border border-gray-200 bg-white p-4 transition-all hover:border-blue-500\"\n onClick={() => handleProductSelect(product)}\n >\n <div className=\"flex items-center justify-between\">\n <div>\n <h3 className=\"font-medium text-gray-800\">\n {product.name}\n </h3>\n <p className=\"text-sm text-gray-500\">{product.brand}</p>\n </div>\n <div className=\"flex items-center\">\n <span className=\"mr-3 text-sm text-gray-600\">\n {product.merchantName}\n </span>\n </div>\n </div>\n </div>\n ))}\n </div>\n\n {/* Pagination */}\n {productFilters.totalPages > 1 && (\n <div className=\"mt-6 flex justify-center\">\n <Pagination\n currentPage={productFilters.page}\n totalPages={productFilters.totalPages}\n pageSize={productFilters.size}\n onPageChange={handlePageChange}\n />\n </div>\n )}\n\n {/* Empty state */}\n {userProducts.length === 0 && !loading && (\n <div className=\"mt-4 flex h-40 items-center justify-center rounded-lg border-2 border-dashed border-gray-300 bg-gray-50\">\n <p className=\"text-center text-gray-500\">\n Gösterilecek veri bulunamadı\n </p>\n </div>\n )}\n </main>\n )}\n\n {/* Step 2: Form Type Selection */}\n {step === 2 && (\n <div>\n <div className=\"mb-4\">\n <h2 className=\"text-lg font-medium\">Talep Türü</h2>\n <p className=\"text-sm text-gray-500\">\n Lütfen oluÅŸturmak istediÄŸiniz talep türünü seçin\n </p>\n </div>\n\n <div className=\"space-y-3\">\n {/* Service Request */}\n <div\n className=\"group cursor-pointer rounded-lg border border-gray-200 bg-white p-4 transition-all hover:border-blue-500\"\n onClick={() => handleFormTypeSelect(\"SERVICE\")}\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center\">\n <div className=\"mr-4 flex h-10 w-10 items-center justify-center rounded-full bg-blue-50 text-blue-600\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"group-hover:stroke-blue-800\"\n >\n <path d=\"m20.39 18.39-5.78-5.79 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29s-.51.1-.7.29l-1.83 1.83-5.79-5.78v-2.07h-2v2.07l5.79 5.78-1.83 1.83c-.39.39-.39 1.02 0 1.41l2.34 2.34c.2.2.45.29.71.29s.51-.1.7-.29l1.83-1.83 5.78 5.79h2.07v-2z\" />\n </svg>\n </div>\n <div>\n <h3 className=\"font-medium text-gray-800\">Servis Talebi</h3>\n <p className=\"text-sm text-gray-500\">\n Ãœrününüz için servis talebi oluÅŸturun\n </p>\n </div>\n </div>\n <Button variant=\"secondaryGray\" size=\"sm\">\n Seç\n </Button>\n </div>\n </div>\n\n {/* Setup Request */}\n <div\n className=\"cursor-pointer rounded-lg border border-gray-200 bg-white p-4 transition-all hover:border-blue-500\"\n onClick={() => handleFormTypeSelect(\"SETUP\")}\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"group flex items-center\">\n <div className=\"mr-4 flex h-10 w-10 items-center justify-center rounded-full bg-green-50 text-green-600\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"group-hover:stroke-green-800\"\n >\n <path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n </div>\n <div>\n <h3 className=\"font-medium text-gray-800\">\n Kurulum Talebi\n </h3>\n <p className=\"text-sm text-gray-500\">\n Ãœrününüz için kurulum talebi oluÅŸturun\n </p>\n </div>\n </div>\n <Button variant=\"secondaryGray\" size=\"sm\">\n Seç\n </Button>\n </div>\n </div>\n </div>\n </div>\n )}\n\n {/* Step 3: Form Template Selection and Filling */}\n {step === 3 && (\n <div>\n <div className=\"mb-4\">\n <h2 className=\"text-lg font-medium\">\n {selectedTemplate ? selectedTemplate.title : \"Talep Detayları\"}\n </h2>\n <p className=\"text-sm text-gray-500\">\n Lütfen talep detaylarını doldurun\n </p>\n </div>\n\n {!selectedTemplate ? (\n // Show loading state while waiting for template\n <div className=\"flex h-40 items-center justify-center rounded-lg border-2 border-dashed border-gray-300 bg-gray-50\">\n <p className=\"text-center text-gray-500\">Åžablon yükleniyor...</p>\n </div>\n ) : (\n <div className=\"rounded-lg border border-gray-200 bg-white p-4 shadow-sm\">\n <DynamicForm\n ref={formRef}\n fields={selectedTemplate.fields}\n onSubmit={handleSubmit}\n defaultValues={formData}\n onChange={(fieldName, value) => {\n // Update the form data in the store\n setFormData({\n ...formData,\n [fieldName]: value,\n });\n }}\n submitButtonProps={{\n text: \"Talebi OluÅŸtur\",\n isLoading: loading,\n className: \"mt-6 w-full md:w-auto\",\n }}\n />\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default ClaimCreate;\n","import React from \"react\";\nimport { Route } from \"react-router-dom\";\n\nimport Claims from \"../pages/Claims\";\nimport ClaimCreate from \"../pages/Claims/Create\";\nimport PrivateRoute from \"./PrivateRoute\";\n\nexport const claimsRoutesWithLayout = (\n <>\n <Route\n path=\"/claims\"\n element={\n <PrivateRoute>\n <Claims />\n </PrivateRoute>\n }\n />\n <Route\n path=\"/claims/create\"\n element={\n <PrivateRoute>\n <ClaimCreate />\n </PrivateRoute>\n }\n />\n </>\n);\n","import { Button } from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function FilePreview() {\n const url = new URL(window.location.href);\n const fileUrl = url.searchParams.get(\"url\");\n const { t } = useTranslation();\n return (\n <div className=\"flex h-screen flex-col \">\n <header className=\"flex items-center justify-between border-b p-4 shadow-sm\">\n {/* go back button */}\n <Button onClick={() => window.history.back()}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-6 w-6\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 19l-7-7m0 0l7-7m-7 7h18\"\n />\n </svg>\n {t(\"common.back\")}\n </Button>\n <div className=\"flex gap-2\">\n <Button onClick={() => window.open(fileUrl, \"_blank\")}>\n {t(\"common.download\")}\n </Button>\n </div>\n </header>\n <iframe\n src={fileUrl}\n title=\"file-preview\"\n width={\"100%\"}\n height={\"90vh\"}\n className=\"m-4 mx-auto ml-4 flex-1\"\n />\n </div>\n );\n}\n","export default \"__VITE_ASSET__fe0c04e3__\"","import { Button } from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport egarantiLogo from \"../assets/images/egarantilogo.png\";\nimport plugImage from \"../assets/images/plug.png\";\n\nexport default function NotFound() {\n const { t } = useTranslation();\n return (\n <div className=\"flex h-screen w-full flex-col items-center bg-[#F9FAFC] p-[50px]\">\n <img className=\"w-[200px]\" src={egarantiLogo} alt=\"egaranti\" />\n <div className=\"mt-12 flex flex-col items-center\">\n <h2 className=\"text-8xl font-bold text-white drop-shadow-xl\">404</h2>\n <p className=\"mt-4 text-center font-medium text-[#111729]\">\n {t(\"notFoundPage.notFound\", \"Bütün ışıkları kim kapattı?\")}\n <br />\n {t(\n \"notFoundPage.notFoundDesc\",\n \"Ãœzgünüm, ÅŸu anda bu sayfayı bulamıyoruz.\",\n )}\n </p>\n <Button\n className=\"mt-8\"\n onClick={() => {\n window.location.href = \"/\";\n }}\n >\n {t(\"notFoundPage.backToHome\", \"Anasayfaya dön\")}\n </Button>\n </div>\n <img\n className=\"sr-hidden absolute bottom-0 right-0 max-h-[300px] w-full\"\n src={plugImage}\n />\n </div>\n );\n}\n","import React from \"react\";\nimport { Route } from \"react-router-dom\";\n\nimport FilePreview from \"../pages/FilePreview\";\nimport NotFound from \"../pages/NotFound.jsx\";\n\nexport const publicRoutes = (\n <>\n <Route path=\"/file-preview\" element={<FilePreview />} />\n <Route path=\"/.well-known/assetlinks.json\" element={null} />\n <Route path=\"/*\" element={<NotFound />} />\n </>\n);\n","import { Button } from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { ReactComponent as InsuranceIcon } from \"@/assets/svgs/insurance.svg\";\n\nconst HomePageBanner = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n return (\n <div className=\"flex w-full flex-col gap-4 rounded-lg bg-white p-6 md:p-14 md:shadow-sm\">\n <div className=\"flex items-center justify-between gap-6\">\n <div className=\"flex flex-col gap-4\">\n <h1 className=\"text-xl font-semibold text-[#364153] md:text-2xl\">\n {t(\"services.homePageBanner.title\")}\n </h1>\n <p className=\"font-medium text-[#677389]\">\n {t(\"services.homePageBanner.subtitle\")}\n </p>\n <Button\n onClick={() => {\n navigate(\"/services/get-extended-warranty/step1\");\n }}\n className=\"mt-9 hidden w-full max-w-[640px] md:block\"\n size=\"lg\"\n >\n {t(\"services.homePageBanner.button\")}\n </Button>\n </div>\n <InsuranceIcon />\n </div>\n <Button\n onClick={() => {\n navigate(\"/services/get-extended-warranty/step1\");\n }}\n className=\"w-full md:mt-9 md:hidden\"\n size=\"lg\"\n >\n {t(\"services.homePageBanner.button\")}\n </Button>\n </div>\n );\n};\n\nexport default HomePageBanner;\n","import { Tag, useToast } from \"@egaranti/components\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n} from \"@/components/common/shared/Carousel\";\n\nimport axios from \"@/lib/api/axios\";\n\nconst MyServices = () => {\n const [data, setData] = useState([]);\n const { t } = useTranslation();\n const [loading, setLoading] = useState(true);\n useEffect(() => {\n axios\n .get(\"/unverified-product-extended-warranties\")\n .then((res) => {\n setData(res.data.content);\n })\n .finally(() => {\n setLoading(false);\n });\n }, []);\n\n if (data?.length === 0 || loading) return <></>;\n\n return (\n <div className=\"flex flex-col gap-4\">\n <h2 className=\"text-lg font-semibold text-[#364153]\">\n {t(\"extendedWarrantyPage.myServices\")}\n </h2>\n <Carrousel data={data} />\n </div>\n );\n};\n\nexport default MyServices;\n\nconst Carrousel = ({ data }) => {\n const { toast } = useToast();\n const { t } = useTranslation();\n\n return (\n <Carousel>\n <CarouselContent>\n {data.map((item) => (\n <CarouselItem className=\"md:basis-1/2\">\n <div className=\"flex flex-col items-center justify-between gap-8 rounded-lg border bg-white p-5 md:flex-row md:gap-16\">\n <div className=\"flex items-center gap-3\">\n <div className=\"flex flex-col gap-2\">\n <h1 className=\"text-lg font-semibold text-[#111729]\">\n {item?.externalProductName}\n </h1>\n <span className=\"font-medium text-[#364153]\">\n {t(\"extendedWarrantyPage.totalPrice\")}:{\" \"}\n <b className=\"text-[#0049E6]\">{item?.offerPrice}₺</b>\n </span>\n <span className=\"text-sm font-medium text-[#677389]\">\n {item?.warrantyStartDate} - {item?.warrantyExpireDate}\n </span>\n {\n <Tag\n size=\"sm\"\n variant={\n item?.warrantyExpireDate < new Date().toISOString()\n ? \"green\"\n : \"red\"\n }\n >\n {item?.warrantyExpireDate < new Date().toISOString()\n ? t(\"extendedWarrantyPage.active\")\n : t(\"extendedWarrantyPage.inactive\")}\n </Tag>\n }\n </div>\n </div>\n <div className=\"flex flex-col items-center gap-2 text-blue-600\">\n <span className=\"text-[#111729]\">\n {t(\"extendedWarrantyPage.productName\")}:{\" \"}\n <b className=\"font-semibold\">{item?.unverifiedProductName}</b>\n </span>\n <span className=\"text-[#111729]\">\n {t(\"extendedWarrantyPage.policyNo\")}:{\" \"}\n <b className=\"font-semibold\">{item?.externalPolicyNo}</b>\n </span>\n <a\n href={item?.policyDocumentUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"font-medium\"\n >\n {t(\"extendedWarrantyPage.download\")}\n </a>\n </div>\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n </Carousel>\n );\n};\n","import {\n Button,\n Dialog,\n DialogContent,\n DialogTrigger,\n Drawer,\n DrawerContent,\n} from \"@egaranti/components\";\nimport { DrawerTrigger } from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport useMediaQuery from \"@/lib/utils/hooks/useMediaQuery\";\n\nconst ExtendedWarrantyModal = () => {\n const { t } = useTranslation();\n const isMobile = useMediaQuery(\"(max-width: 640px)\");\n const navigate = useNavigate();\n\n if (isMobile)\n return (\n <Drawer>\n <DrawerTrigger>\n {t(\"services.extendedWarrantyModal.trigger\", \"Åžimdi KeÅŸfet\")}\n </DrawerTrigger>\n <DrawerContent className=\"flex flex-col gap-4 border-none bg-gradient-to-b from-[#0037AD] to-[#6692F0] p-7\">\n <h1 className=\"text-center text-lg font-semibold text-[#F9FAFC]\">\n Uzatılmış Garanti Paketi\n </h1>\n <h3 className=\"text-center font-medium text-[#CDD5E0]\">\n egaranti’ye kaydettiÄŸiniz telefonlarınıza 1 yıllık uzatılmış garanti\n paketi tanımlayarak ömrünü uzatabilirsiniz. ✨\n </h3>\n <div className=\"mb-6 mt-4 flex flex-col gap-3 rounded-lg bg-white p-6 md:shadow-sm\">\n <h1 className=\"text-center text-xl font-medium\">Teminat Kapsamı</h1>\n <ul className=\"mt-2 flex flex-col items-center gap-4 text-sm font-medium text-[#364153]\">\n <li className=\"flex items-center gap-2\">\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 13.125H9.0075M6.15 16.5H11.85C12.6901 16.5 13.1101 16.5 13.431 16.3365C13.7132 16.1927 13.9427 15.9632 14.0865 15.681C14.25 15.3601 14.25 14.9401 14.25 14.1V3.9C14.25 3.05992 14.25 2.63988 14.0865 2.31901C13.9427 2.03677 13.7132 1.8073 13.431 1.66349C13.1101 1.5 12.6901 1.5 11.85 1.5H6.15C5.30992 1.5 4.88988 1.5 4.56901 1.66349C4.28677 1.8073 4.0573 2.03677 3.91349 2.31901C3.75 2.63988 3.75 3.05992 3.75 3.9V14.1C3.75 14.9401 3.75 15.3601 3.91349 15.681C4.0573 15.9632 4.28677 16.1927 4.56901 16.3365C4.88988 16.5 5.30992 16.5 6.15 16.5ZM9.375 13.125C9.375 13.3321 9.20711 13.5 9 13.5C8.79289 13.5 8.625 13.3321 8.625 13.125C8.625 12.9179 8.79289 12.75 9 12.75C9.20711 12.75 9.375 12.9179 9.375 13.125Z\"\n stroke=\"#0049E6\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n Ãœretici Kusurları\n </li>\n <li className=\"flex items-center gap-2\">\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.7235 5.72353C11.4264 5.42652 11.2779 5.27801 11.2223 5.10676C11.1734 4.95613 11.1734 4.79387 11.2223 4.64324C11.2779 4.47199 11.4264 4.32348 11.7235 4.02647L13.8522 1.89769C13.2873 1.64222 12.6602 1.5 11.9999 1.5C9.51464 1.5 7.49993 3.51472 7.49993 6C7.49993 6.36828 7.54417 6.72623 7.62762 7.06882C7.71699 7.43568 7.76168 7.61911 7.75374 7.735C7.74544 7.85632 7.72735 7.92087 7.6714 8.02884C7.61796 8.13197 7.51557 8.23436 7.31079 8.43914L2.62493 13.125C2.00361 13.7463 2.00361 14.7537 2.62493 15.375C3.24625 15.9963 4.25361 15.9963 4.87493 15.375L9.56079 10.6891C9.76557 10.4844 9.86796 10.382 9.97109 10.3285C10.0791 10.2726 10.1436 10.2545 10.2649 10.2462C10.3808 10.2382 10.5642 10.2829 10.9311 10.3723C11.2737 10.4558 11.6316 10.5 11.9999 10.5C14.4852 10.5 16.4999 8.48528 16.4999 6C16.4999 5.33969 16.3577 4.71261 16.1022 4.14769L13.9735 6.27647C13.6764 6.57348 13.5279 6.72199 13.3567 6.77763C13.2061 6.82658 13.0438 6.82658 12.8932 6.77763C12.7219 6.72199 12.5734 6.57348 12.2764 6.27647L11.7235 5.72353Z\"\n stroke=\"#0049E6\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n Servis Hizmeti\n </li>\n </ul>\n </div>\n <Button\n onClick={() => {\n navigate(\"/services/get-extended-warranty/step1\");\n }}\n size=\"lg\"\n variant=\"secondaryColor\"\n >\n Åžimdi Uzatılmış Garanti Satın Al\n </Button>\n </DrawerContent>\n </Drawer>\n );\n\n return (\n <Dialog>\n <DialogTrigger>\n {t(\"services.extendedWarrantyModal.trigger\", \"Åžimdi KeÅŸfet\")}\n </DialogTrigger>\n <DialogContent className=\"border-none bg-gradient-to-b from-[#0037AD] to-[#6692F0] p-8\">\n <h1 className=\"text-center text-lg font-semibold text-[#F9FAFC]\">\n Uzatılmış Garanti Paketi\n </h1>\n <h3 className=\"text-center font-medium text-[#CDD5E0]\">\n egaranti’ye kaydettiÄŸiniz telefonlarınıza 1 yıllık uzatılmış garanti\n paketi tanımlayarak ömrünü uzatabilirsiniz. ✨\n </h3>\n <div className=\"mb-6 mt-4 flex flex-col gap-3 rounded-lg bg-white p-6 md:shadow-sm\">\n <h1 className=\"text-center text-xl font-medium\">Teminat Kapsamı</h1>\n <ul className=\"flex flex-col items-center gap-4 text-sm font-medium text-[#364153]\">\n <li className=\"flex items-center gap-2\">\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 13.125H9.0075M6.15 16.5H11.85C12.6901 16.5 13.1101 16.5 13.431 16.3365C13.7132 16.1927 13.9427 15.9632 14.0865 15.681C14.25 15.3601 14.25 14.9401 14.25 14.1V3.9C14.25 3.05992 14.25 2.63988 14.0865 2.31901C13.9427 2.03677 13.7132 1.8073 13.431 1.66349C13.1101 1.5 12.6901 1.5 11.85 1.5H6.15C5.30992 1.5 4.88988 1.5 4.56901 1.66349C4.28677 1.8073 4.0573 2.03677 3.91349 2.31901C3.75 2.63988 3.75 3.05992 3.75 3.9V14.1C3.75 14.9401 3.75 15.3601 3.91349 15.681C4.0573 15.9632 4.28677 16.1927 4.56901 16.3365C4.88988 16.5 5.30992 16.5 6.15 16.5ZM9.375 13.125C9.375 13.3321 9.20711 13.5 9 13.5C8.79289 13.5 8.625 13.3321 8.625 13.125C8.625 12.9179 8.79289 12.75 9 12.75C9.20711 12.75 9.375 12.9179 9.375 13.125Z\"\n stroke=\"#0049E6\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n Ãœretici Kusurları\n </li>\n <li className=\"flex items-center gap-2\">\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.7235 5.72353C11.4264 5.42652 11.2779 5.27801 11.2223 5.10676C11.1734 4.95613 11.1734 4.79387 11.2223 4.64324C11.2779 4.47199 11.4264 4.32348 11.7235 4.02647L13.8522 1.89769C13.2873 1.64222 12.6602 1.5 11.9999 1.5C9.51464 1.5 7.49993 3.51472 7.49993 6C7.49993 6.36828 7.54417 6.72623 7.62762 7.06882C7.71699 7.43568 7.76168 7.61911 7.75374 7.735C7.74544 7.85632 7.72735 7.92087 7.6714 8.02884C7.61796 8.13197 7.51557 8.23436 7.31079 8.43914L2.62493 13.125C2.00361 13.7463 2.00361 14.7537 2.62493 15.375C3.24625 15.9963 4.25361 15.9963 4.87493 15.375L9.56079 10.6891C9.76557 10.4844 9.86796 10.382 9.97109 10.3285C10.0791 10.2726 10.1436 10.2545 10.2649 10.2462C10.3808 10.2382 10.5642 10.2829 10.9311 10.3723C11.2737 10.4558 11.6316 10.5 11.9999 10.5C14.4852 10.5 16.4999 8.48528 16.4999 6C16.4999 5.33969 16.3577 4.71261 16.1022 4.14769L13.9735 6.27647C13.6764 6.57348 13.5279 6.72199 13.3567 6.77763C13.2061 6.82658 13.0438 6.82658 12.8932 6.77763C12.7219 6.72199 12.5734 6.57348 12.2764 6.27647L11.7235 5.72353Z\"\n stroke=\"#0049E6\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n Servis Hizmeti\n </li>\n </ul>\n </div>\n <Button\n onClick={() => {\n navigate(\"/services/get-extended-warranty/step1\");\n }}\n size=\"lg\"\n variant=\"secondaryColor\"\n >\n Åžimdi Uzatılmış Garanti Satın Al\n </Button>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default ExtendedWarrantyModal;\n","export default \"__VITE_ASSET__f3326d37__\"","export default \"__VITE_ASSET__c4a2a6da__\"","import { Button, useToast } from \"@egaranti/components\";\n\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ExtendedWarrantyModal from \"./ExtendedWarrantyModal\";\n\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n} from \"@/components/common/shared/Carousel\";\n\nimport ThiefIcon from \"@/assets/images/overview/thieft.png\";\nimport { ReactComponent as PhoneIcon } from \"@/assets/svgs/phone.svg\";\n\nconst Opportunities = () => {\n const { t } = useTranslation();\n return (\n <div className=\"flex flex-col gap-4\">\n <h2 className=\"text-lg font-semibold text-[#364153]\">\n {t(\"opportunities.title\", \"Fırsatlar\")}\n </h2>\n <Carrousel />\n </div>\n );\n};\n\nexport default Opportunities;\n\nconst Carrousel = () => {\n const { t } = useTranslation();\n const [isSent, setIsSent] = useState(false);\n const { toast } = useToast();\n const content = [\n {\n id: 0,\n title: t(\n \"opportunities.extendedWarranty.title\",\n \"Uzatılmış garanti satın al, telefonunun ömrünü uzat 🛡\",\n ),\n buttonTitle: <ExtendedWarrantyModal />,\n svg: <PhoneIcon />,\n },\n {\n id: 1,\n title: t(\n \"opportunities.theftProtection.title\",\n \"Telefonuna uzatılmış garanti yaptır, hırsızlığa karşı önlemini al!\",\n ),\n buttonTitle: isSent\n ? t(\"opportunities.theftProtection.sent\", \"Talebini Aldık!\")\n : t(\"opportunities.theftProtection.notify\", \"Gelince Haber Ver\"),\n image: ThiefIcon,\n action: () => {\n setIsSent(true);\n toast({\n variant: \"success\",\n title: t(\n \"opportunities.theftProtection.toastTitle\",\n \"Talebini Aldık!\",\n ),\n description: t(\n \"opportunities.theftProtection.toastDescription\",\n \"Paket geldiÄŸinde size haber vereceÄŸiz.\",\n ),\n });\n },\n },\n ];\n\n return (\n <Carousel>\n <CarouselContent className=\"gap-6\">\n {content.map((item) => (\n <CarouselItem className=\"md:basis-1/3\" key={item.id}>\n <div className=\"flex h-full rounded-lg bg-white\">\n <div className=\"relative flex w-3/4 flex-col items-center justify-center gap-4 rounded-lg bg-[#0067AB] px-2 py-10\">\n <span className=\"absolute bottom-1 left-2 flex items-center gap-1 text-[10px] text-white\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.6666 6.12499V3.96666C11.6666 2.98656 11.6666 2.49652 11.4759 2.12217C11.3081 1.79289 11.0404 1.52517 10.7111 1.3574C10.3368 1.16666 9.84674 1.16666 8.86665 1.16666H5.13331C4.15322 1.16666 3.66318 1.16666 3.28883 1.3574C2.95955 1.52517 2.69183 1.79289 2.52405 2.12217C2.33331 2.49652 2.33331 2.98656 2.33331 3.96666V10.0333C2.33331 11.0134 2.33331 11.5035 2.52405 11.8778C2.69183 12.2071 2.95955 12.4748 3.28883 12.6426C3.66318 12.8333 4.15322 12.8333 5.13331 12.8333H6.99998M10.5 12.25V8.74999M8.74998 10.5H12.25\"\n stroke=\"white\"\n stroke-width=\"1.12\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n {t(\n \"opportunities.extendedWarranty.label\",\n \"Uzatılmış Garanti\",\n )}\n </span>\n <h1 className=\"text-center text-sm font-semibold text-white\">\n {item.title}\n </h1>\n <Button\n disabled={isSent && item.id === 1}\n onClick={item.action}\n size=\"sm\"\n className=\"text-xs md:text-sm\"\n variant=\"secondaryGray\"\n >\n {item.buttonTitle}\n </Button>\n </div>\n <div\n aria-hidden=\"true\"\n className=\"flex w-2/4 items-center justify-center\"\n >\n {item.svg && item.svg}\n {item.image && (\n <img className=\"w-30 object-contain\" src={item.image} />\n )}\n </div>\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n </Carousel>\n );\n};\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\n// Added\nimport { motion } from \"framer-motion\";\n\n// Reusable Insurance Option Component\nconst InsuranceOption = ({\n to,\n icon: Icon,\n title,\n description,\n comingSoon,\n}) => {\n const { t } = useTranslation(); // Added\n\n return (\n <div\n className={`relative flex h-full flex-col items-center justify-center gap-5 rounded-lg border border-gray-200 p-4 md:h-[240px] md:w-[240px] ${\n comingSoon\n ? \"cursor-default bg-[#F9FAFC] md:bg-transparent\"\n : \"bg-white\"\n }`}\n >\n {comingSoon && (\n <span className=\"absolute -right-5 -top-3 rounded-full bg-[#E3E7EF] px-2 py-1 text-xs font-medium text-[#111729]\">\n {t(\"comingSoon\", \"Yakında 🔜\")}\n </span>\n )}\n <Icon />\n <h3 className=\"text-center text-lg font-semibold text-[#364153]\">\n {title}\n </h3>\n <p className=\"text-center text-sm text-[#677389]\">{description}</p>\n </div>\n );\n};\n\nconst PhoneInsurances = () => {\n const { t } = useTranslation(); // Added\n\n const insuranceOptions = [\n {\n to: \"/services/get-extended-warranty/step1\",\n icon: Icon1,\n title: t(\"extendedWarranty.title\", \"Uzatılmış Garanti\"),\n description: t(\n \"extendedWarranty.description\",\n \"Telefonlarınızın garantisini 1,2 ya da 3 yıl uzatabilirsiniz.\",\n ),\n comingSoon: false,\n },\n {\n icon: Icon2,\n title: t(\"theftProtection.title\", \"Hırsızlık Koruma Paketi\"),\n description: t(\n \"theftProtection.description\",\n \"Kapkaç ve evden çalınmalara karşı koruma saÄŸlar.\",\n ),\n comingSoon: true,\n },\n {\n icon: Icon3,\n title: t(\"screenDamageProtection.title\", \"Ekran Kırılması Koruma Paketi\"),\n description: t(\n \"screenDamageProtection.description\",\n \"Telefonun ekranının kırılmasına karşı koruma saÄŸlar.\",\n ),\n comingSoon: true,\n },\n ];\n\n return (\n <div className=\"flex flex-col gap-4\">\n <h2 className=\"text-lg font-semibold text-[#364153]\">\n {t(\"phonePackages.title\", \"Cep Telefonu Paketleri\")} {/* Updated */}\n </h2>\n <div className=\"grid grid-cols-2 gap-4 md:flex\">\n {insuranceOptions.map((option, index) =>\n option.comingSoon ? (\n <InsuranceOption key={index} {...option} />\n ) : (\n <Link to={option.to} key={index} className=\"relative\">\n <InsuranceOption {...option} />\n </Link>\n ),\n )}\n </div>\n </div>\n );\n};\n\nexport default PhoneInsurances;\n\nconst Icon1 = () => {\n return (\n <motion.svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"42\"\n height=\"42\"\n fill=\"none\"\n viewBox=\"0 0 25 25\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 2 }}\n >\n <motion.path\n stroke=\"#0049E6\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2.222\"\n d=\"M14.5 2.7v4.13c0 .56 0 .84.109 1.054a1 1 0 00.437.437c.214.109.494.109 1.054.109h4.13m-10.73 8l2 2 4.5-4.5m-1.5-11.5H9.3c-1.68 0-2.52 0-3.162.327a3 3 0 00-1.311 1.31C4.5 4.71 4.5 5.55 4.5 7.23v10.4c0 1.68 0 2.52.327 3.162a3 3 0 001.311 1.31c.642.328 1.482.328 3.162.328h6.4c1.68 0 2.52 0 3.162-.327a3 3 0 001.311-1.311c.327-.642.327-1.482.327-3.162v-9.2l-6-6z\"\n initial={{ pathLength: 0, stroke: \"gray\" }}\n animate={{ pathLength: 1, stroke: \"#0049E6\" }}\n transition={{ duration: 3, ease: \"easeInOut\", repeat: Infinity }}\n ></motion.path>\n </motion.svg>\n );\n};\nconst Icon2 = () => {\n return (\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.6138 37.0608C11.6492 37.0012 11.6855 36.9418 11.7227 36.8828C14.4317 32.5763 15.9999 27.4836 15.9999 22.0001C15.9999 17.5818 19.5816 14.0001 23.9999 14.0001C28.4182 14.0001 31.9999 17.5818 31.9999 22.0001C31.9999 24.0341 31.8614 26.0372 31.5933 28.0001M27.3585 41.6873C28.5819 39.2453 29.5849 36.6738 30.3415 34.0001M38.0194 36.264C39.3094 31.7314 40.0001 26.9464 40.0001 22.0001C40.0001 13.1635 32.8366 6.00006 24.0001 6.00006C21.0858 6.00006 18.3534 6.77922 16.0001 8.14058M6.00006 30.7283C7.28138 28.0908 8.00006 25.1294 8.00006 22.0001C8.00006 19.0858 8.77922 16.3534 10.1406 14.0001M23.9998 22.0001C23.9998 29.0345 21.9822 35.5976 18.4942 41.1425\"\n stroke=\"#97A2B6\"\n stroke-width=\"3.6036\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n );\n};\nconst Icon3 = () => {\n return (\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M24 34.9999H24.02M16.4 43.9999H31.6C33.8402 43.9999 34.9603 43.9999 35.816 43.564C36.5686 43.1805 37.1805 42.5686 37.564 41.8159C38 40.9603 38 39.8401 38 37.5999V10.3999C38 8.15973 38 7.03962 37.564 6.18398C37.1805 5.43133 36.5686 4.81941 35.816 4.43591C34.9603 3.99994 33.8402 3.99994 31.6 3.99994H16.4C14.1598 3.99994 13.0397 3.99994 12.184 4.43591C11.4314 4.81941 10.8195 5.43133 10.436 6.18398C10 7.03962 10 8.15973 10 10.3999V37.5999C10 39.8401 10 40.9603 10.436 41.8159C10.8195 42.5686 11.4314 43.1805 12.184 43.564C13.0397 43.9999 14.1598 43.9999 16.4 43.9999ZM25 34.9999C25 35.5522 24.5523 35.9999 24 35.9999C23.4477 35.9999 23 35.5522 23 34.9999C23 34.4477 23.4477 33.9999 24 33.9999C24.5523 33.9999 25 34.4477 25 34.9999Z\"\n stroke=\"#97A2B6\"\n stroke-width=\"3.6036\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n );\n};\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport HomePageBanner from \"@/components/Services/HomePageBanner\";\nimport MyServices from \"@/components/Services/MyServices\";\nimport Opportunities from \"@/components/Services/Opportunities\";\nimport PhoneInsurances from \"@/components/Services/PhoneInsurances\";\n\nconst Services = () => {\n const { t } = useTranslation();\n\n const userCountry = localStorage.getItem(\"userCountry\");\n\n return (\n <div className=\"relative\">\n {userCountry === \"UZ\" && (\n <div className=\"absolute inset-0 z-10 flex items-center justify-center bg-blue-200 bg-opacity-50\">\n <div className=\"pointer-events-auto mx-auto mt-[-500px] max-w-md rounded-lg bg-white p-8 text-center shadow-lg md:mt-[-400px]\">\n <h2 className=\"mb-4 text-2xl font-semibold\">\n {t(\"services.notActiveTitle\")}\n </h2>\n <p className=\"mb-6\">{t(\"services.notActiveDescription\")}</p>\n </div>\n </div>\n )}\n <main className=\"flex min-h-screen flex-col gap-6 p-6 md:bg-[#F9FAFC]\">\n <HomePageBanner />\n <MyServices />\n <Opportunities />\n <PhoneInsurances />\n </main>\n </div>\n );\n};\n\nexport default Services;\n","export default \"__VITE_ASSET__deb3f2da__\"","import { Button, Tag } from \"@egaranti/components\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport Breadcrumb, { BreadcrumbItem } from \"@/components/common/shared/breadcrumbs\";\n\nimport Image from \"@/assets/images/overview/insurance.png\";\n\nimport axios from \"@/lib/api/axios\";\n\nconst GetExtendedWarranty = () => {\n const { t } = useTranslation();\n const [data, setData] = useState([]);\n\n useEffect(() => {\n axios.get(\"/unverified-product-extended-warranties\").then((res) => {\n setData(res.data.content);\n });\n }, []);\n\n return (\n <div>\n <Breadcrumb>\n <BreadcrumbItem link=\"/services\">\n {t(\"services.services\")}\n </BreadcrumbItem>\n <BreadcrumbItem link=\"/services/get-extended-warranty\" active>\n {t(\"extendedWarrantyPage.title\")}\n </BreadcrumbItem>\n </Breadcrumb>\n <main className=\"flex max-w-4xl flex-col gap-5 p-6\">\n {data?.length === 0 && (\n <div className=\"flex h-96 flex-col items-center justify-center gap-6 rounded-lg bg-white\">\n <span className=\"font-medium text-[#364153]\">\n {t(\"extendedWarrantyPage.noData\")}\n </span>\n <Button asChild>\n <Link to=\"/services/get-extended-warranty/step1\">\n {t(\"extendedWarrantyPage.getExtendedWarranty \")}\n </Link>\n </Button>\n </div>\n )}\n {data.map((item) => (\n <div className=\"flex flex-col items-center justify-between gap-12 rounded-lg border bg-white p-6 md:flex-row\">\n <div className=\"flex items-center gap-3\">\n <img\n className=\"h-20 w-20 rounded-lg object-cover\"\n src={Image}\n alt=\"Sigorta\"\n />\n <div className=\"flex flex-col gap-2\">\n <h1 className=\"text-lg font-semibold text-[#111729]\">\n {item?.externalProductName}\n </h1>\n <span className=\"font-medium text-[#364153]\">\n {t(\"extendedWarrantyPage.totalPrice\")}:{\" \"}\n <b className=\"text-[#0049E6]\">{item?.offerPrice}₺</b>\n </span>\n <span className=\"text-sm font-medium text-[#677389]\">\n {item?.warrantyStartDate} - {item?.warrantyExpireDate}\n </span>\n {\n <Tag\n size=\"sm\"\n variant={\n item?.warrantyExpireDate < new Date().toISOString()\n ? \"green\"\n : \"red\"\n }\n >\n {item?.warrantyExpireDate < new Date().toISOString()\n ? t(\"extendedWarrantyPage.active\")\n : t(\"extendedWarrantyPage.inactive\")}\n </Tag>\n }\n </div>\n </div>\n <div className=\"flex flex-col items-center gap-2 text-blue-600\">\n <span className=\"text-[#111729]\">\n {t(\"extendedWarrantyPage.productName\")}:{\" \"}\n <b className=\"font-semibold\">{item?.unverifiedProductName}</b>\n </span>\n <span className=\"text-[#111729]\">\n {t(\"extendedWarrantyPage.policyNo\")}:{\" \"}\n <b className=\"font-semibold\">{item?.externalPolicyNo}</b>\n </span>\n <a\n href={item?.policyDocumentUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"font-medium\"\n >\n {t(\"extendedWarrantyPage.download\")}\n </a>\n </div>\n </div>\n ))}\n </main>\n </div>\n );\n};\n\nexport default GetExtendedWarranty;\n","import React from \"react\";\n\nimport { motion } from \"framer-motion\";\nimport { t } from \"i18next\";\n\nconst Stepper = ({\n steps = [\n { title: t(\"productsPage.productSelection\") },\n { title: t(\"productsPage.planSelection\") },\n ],\n step = 0,\n}) => {\n return (\n <div className=\"mx-auto my-10 flex w-full max-w-sm select-none items-center justify-center gap-16 md:gap-24\">\n {steps.map((option, index) => (\n <div\n className={`flex items-center justify-between opacity-60 ${\n step >= index && \"!opacity-100\"\n }`}\n key={index}\n >\n <div className=\"flex flex-col items-center gap-2\">\n <div\n style={{ backgroundColor: step > index && \"#12B76A\" }}\n className=\"relative flex h-8 w-8 items-center justify-center rounded-full bg-[#E3E7EF]\"\n >\n <div\n className=\"z-20 flex h-8 w-8 items-center justify-center rounded-full\"\n style={{ backgroundColor: step > index && \"#12B76A\" }}\n >\n {step > index ? <GreenCheck /> : <BlackDot />}\n </div>\n {index !== steps.length - 1 && (\n <div\n style={{ backgroundColor: step > index && \"#111729\" }}\n className=\"absolute left-0 top-4 z-0 h-1 w-[150px] bg-[#E3E7EF] md:w-[190px]\"\n />\n )}\n </div>\n <span className=\"text-nowrap text-sm font-medium text-[#111729] md:text-base\">\n {option.title}\n </span>\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default Stepper;\n\nconst BlackDot = () => {\n return (\n <div className=\"z-10 flex h-6 w-6 items-center justify-center rounded-full bg-[#F2F5F9]\">\n <div className=\"h-2 w-2 rounded-full bg-[#111729]\" />\n </div>\n );\n};\n\nconst GreenCheck = () => {\n return (\n <motion.svg\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 22 22\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <motion.path\n initial={{ fillOpacity: 0 }}\n animate={{ fillOpacity: 1 }}\n transition={{ duration: 0.75 }}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.4319 6.67058L8.96877 12.908L7.25371 11.0756C6.93777 10.7777 6.44131 10.7597 6.08024 11.0124C5.7282 11.2742 5.62891 11.7345 5.84555 12.1046L7.87655 15.4084C8.07513 15.7153 8.41815 15.9049 8.80629 15.9049C9.17639 15.9049 9.52843 15.7153 9.72701 15.4084C10.052 14.9841 16.2533 7.5913 16.2533 7.5913C17.0657 6.76084 16.0818 6.02968 15.4319 6.66155V6.67058Z\"\n fill=\"white\"\n />\n </motion.svg>\n );\n};\n","export default \"__VITE_ASSET__d3fe51e0__\"","import { Button, Tag } from \"@egaranti/components\";\nimport { Pagination } from \"@egaranti/components\";\n\nimport React, { useEffect } from \"react\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\n//import AddProductSheet from \"@/components/Products/AddProductSheet\";\nimport Stepper from \"@/components/Services/GetExtendedWarranty/Stepper\";\nimport EmptyData from \"@/components/common/EmptyData\";\nimport Breadcrumb, {\n BreadcrumbItem,\n} from \"@/components/common/shared/breadcrumbs\";\nimport AddNewProductSheet from \"@/components/newaddproduct/ProductForm\";\n\nimport PhonePhoto from \"@/assets/images/overview/phone-photo.png\";\n\nimport axios from \"@/lib/api/axios\";\nimport { cn } from \"@/lib/utils\";\n\nconst GetExtendedWarrantyStep1 = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const [openAddProductSheet, setOpenAddProductSheet] = useState(false);\n const [products, setProducts] = useState([]);\n const [selectedProduct, setSelectedProduct] = useState(null);\n const [pagination, setPagination] = useState({});\n\n const fetchProductsForPhoneInsurance = (\n pagination = { page: 1, size: 6, totalPages: 1 },\n ) => {\n axios\n .get(\"/unverified-products/extended-warranty\", {\n params: {\n page: pagination.page,\n size: pagination.size,\n },\n })\n .then((res) => {\n setProducts(res.data.content);\n setPagination({\n page: res.data.page,\n size: res.data.size,\n totalPages: res.data.totalPages,\n totalElements: res.data.totalElements,\n });\n });\n };\n\n useEffect(() => {\n fetchProductsForPhoneInsurance();\n }, [openAddProductSheet]);\n\n return (\n <div className=\"min-h-screen md:bg-[#F9FAFC]\">\n <Breadcrumb>\n <BreadcrumbItem link=\"/services\">\n {t(\"services.services\")}\n </BreadcrumbItem>\n <BreadcrumbItem active>\n {t(\"extendedWarrantyPage.title\")}\n </BreadcrumbItem>\n </Breadcrumb>\n <main className=\"mx-auto max-w-4xl pt-0 md:py-12\">\n <div className=\"flex items-center justify-between gap-3 rounded-lg bg-gradient-to-b from-[#0037AD] to-[#447AED] p-6\">\n <div className=\"flex flex-col gap-2\">\n <h2 className=\"text-md font-semibold leading-8 text-white md:text-xl\">\n {t(\"extendedWarrantyPage.banner.title\")}\n </h2>\n <p className=\"md:text-md text-sm font-semibold text-[#E3E7EF]\">\n {t(\"extendedWarrantyPage.banner.description\")}\n </p>\n </div>\n <img src={PhonePhoto} alt=\"Phone\" className=\"w-12\" />\n </div>\n <Stepper\n steps={[\n { title: t(\"extendedWarrantyPage.steps.step1\") },\n { title: t(\"extendedWarrantyPage.steps.step2\") },\n { title: t(\"extendedWarrantyPage.steps.step3\") },\n ]}\n step={0}\n />\n <div className=\"m-5 mt-6 flex flex-col gap-6 rounded-lg p-6 md:m-0 md:border md:bg-white\">\n <header className=\"flex items-center justify-between\">\n <h3 className=\"text-lg font-medium text-[#111729]\">\n {t(\"extendedWarrantyPage.steps.step1\")}\n </h3>\n <button\n onClick={() => setOpenAddProductSheet(true)}\n className=\"font-medium text-[#0040C9] underline\"\n >\n {t(\"productsPage.addProduct\")}\n </button>\n </header>\n <div className=\"grid grid-cols-1 gap-6 md:grid-cols-2\">\n {products.length === 0 && (\n <EmptyData\n className=\"col-span-2 mx-auto max-w-[600px]\"\n title={t(\"productsPage.noData\")}\n description={t(\"productsPage.noDataDesc2\")}\n ></EmptyData>\n )}\n {products.map((product) => (\n <ProductCard\n key={product.id}\n onClick={() => {\n setSelectedProduct(product.id);\n navigate(\"/services/get-extended-warranty/step2\", {\n state: { product: product },\n });\n }}\n name={product.name}\n category={product.categoryName}\n brand={product.brand}\n selected={product.id === selectedProduct}\n />\n ))}\n {/* if pagination.totalPages is higher than 6, show the pagination component */}\n <div className=\"md:col-span-2\">\n {pagination.totalElements > 6 && (\n <Pagination\n totalPages={pagination.totalPages}\n currentPage={pagination.page}\n pageSize={pagination.size}\n onPageChange={(i) => {\n fetchProductsForPhoneInsurance({ ...pagination, page: i });\n }}\n />\n )}\n </div>\n </div>\n </div>\n </main>\n {/* <AddProductSheet\n open={openAddProductSheet}\n onOpenChange={setOpenAddProductSheet}\n /> */}\n <AddNewProductSheet\n open={openAddProductSheet}\n onOpenChange={setOpenAddProductSheet}\n />\n </div>\n );\n};\n\nexport default GetExtendedWarrantyStep1;\n\nconst ProductCard = ({ name, brand, category, selected, onClick }) => {\n return (\n <button\n onClick={onClick}\n aria-selected={selected}\n aria-label={name}\n tabIndex={0}\n className={cn(\n \"flex cursor-pointer flex-col gap-4 rounded-lg border p-6 shadow-md\",\n selected ? \"border-[#447AED]\" : \"border-[#E3E7EF]\",\n )}\n >\n <h3 className=\"font-medium text-[#111729]\">{name}</h3>\n <h4 className=\"text-sm text-[#677389]\">{brand}</h4>\n <Tag size=\"sm\" variant=\"yellow\">\n {category}\n </Tag>\n </button>\n );\n};\n","export default \"__VITE_ASSET__a99ff09c__\"","import {\n Button,\n Dialog,\n DialogContent,\n DialogTrigger,\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerFooter,\n DrawerHeader,\n} from \"@egaranti/components\";\nimport { DrawerTitle } from \"@egaranti/components\";\nimport { DrawerTrigger } from \"@egaranti/components\";\n\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport RecordGif from \"@/assets/images/recimei.gif\";\n\nimport useMediaQuery from \"@/lib/utils/hooks/useMediaQuery\";\n\nconst ImeiInfoDialog = () => {\n const { t } = useTranslation();\n const isMobile = useMediaQuery(\"(max-width: 640px)\");\n\n if (isMobile)\n return (\n <Drawer>\n <DrawerTrigger aria-label=\"IMEI numaranızı nereden bulabilirim?\">\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.49967 10.6667V8.00001M8.49967 5.33334H8.50634M15.1663 8.00001C15.1663 11.6819 12.1816 14.6667 8.49967 14.6667C4.81778 14.6667 1.83301 11.6819 1.83301 8.00001C1.83301 4.31811 4.81778 1.33334 8.49967 1.33334C12.1816 1.33334 15.1663 4.31811 15.1663 8.00001Z\"\n stroke=\"#677389\"\n stroke-width=\"1.3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </DrawerTrigger>\n <DrawerContent className=\"flex flex-col gap-4 bg-white\">\n <DrawerHeader className=\"text-left\">\n <DrawerTitle>\n {t(\"services.getExtendedWarranty.imeiInfoDialog.title\")}\n </DrawerTitle>\n </DrawerHeader>\n <img className=\"mx-auto h-56\" src={RecordGif}></img>\n <ul className=\"list-disc px-10 text-center font-medium text-[#677389]\">\n <li>{t(\"services.getExtendedWarranty.imeiInfoDialog.step1\")}</li>\n <li>{t(\"services.getExtendedWarranty.imeiInfoDialog.step2\")}</li>\n <li>{t(\"services.getExtendedWarranty.imeiInfoDialog.step3\")}</li>\n </ul>\n <DrawerFooter className=\"pt-2\">\n <DrawerClose asChild>\n <Button variant=\"secondaryColor\">{t(\"common.back\")}</Button>\n </DrawerClose>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n );\n\n return (\n <Dialog>\n <DialogTrigger aria-label=\"IMEI numaranızı nereden bulabilirim?\">\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.49967 10.6667V8.00001M8.49967 5.33334H8.50634M15.1663 8.00001C15.1663 11.6819 12.1816 14.6667 8.49967 14.6667C4.81778 14.6667 1.83301 11.6819 1.83301 8.00001C1.83301 4.31811 4.81778 1.33334 8.49967 1.33334C12.1816 1.33334 15.1663 4.31811 15.1663 8.00001Z\"\n stroke=\"#677389\"\n stroke-width=\"1.3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </DialogTrigger>\n <DialogContent className=\"bg-white\">\n <h2 className=\"text-lg font-semibold text-[#111729]\">\n {t(\"services.getExtendedWarranty.imeiInfoDialog.title\")}\n </h2>\n <img className=\"mx-auto h-56\" src={RecordGif}></img>\n <ul className=\"list-disc px-10 text-center font-medium text-[#677389]\">\n <li>{t(\"services.getExtendedWarranty.imeiInfoDialog.step1\")}</li>\n <li>{t(\"services.getExtendedWarranty.imeiInfoDialog.step2\")}</li>\n <li>{t(\"services.getExtendedWarranty.imeiInfoDialog.step3\")}</li>\n </ul>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default ImeiInfoDialog;\n","import { Button, Input, Label, Tag, useToast } from \"@egaranti/components\";\nimport { FormDescription } from \"@egaranti/components\";\n\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nimport ImeiInfoDialog from \"@/components/Services/GetExtendedWarranty/ImeiInfoDialog\";\nimport Stepper from \"@/components/Services/GetExtendedWarranty/Stepper\";\nimport Breadcrumb, { BreadcrumbItem } from \"@/components/common/shared/breadcrumbs\";\n\nimport { motion } from \"framer-motion\";\nimport * as yup from \"yup\";\n\nimport axios from \"@/lib/api/axios\";\nimport { cn } from \"@/lib/utils\";\n\nconst GetExtendedWarrantyStep2 = () => {\n const { toast } = useToast();\n const { t } = useTranslation();\n const [loading, setLoading] = useState(false);\n //const [error, setError] = useState(null);\n const navigate = useNavigate();\n const location = useLocation();\n const [packages, setPackages] = useState([]);\n const [selectedPackage, setSelectedPackage] = useState(null);\n const [newProductName, setNewProductName] = useState(\"\");\n const [imei, setImei] = useState(\"\");\n const [tc, setTc] = useState(\"\");\n\n if (!location.state) navigate(\"/services/get-extended-warranty/step1\");\n\n const onSubmit = () => {\n navigate(\"/services/get-extended-warranty/step3\", {\n state: {\n product: location.state.product,\n selectedPackage,\n imei,\n tc,\n },\n });\n };\n\n const getOffers = async (e) => {\n setLoading(true);\n setPackages([]);\n axios\n .post(`/unverified-product-extended-warranties/offer`, {\n imei: e.target.value,\n unverifiedProductId: location.state.product.id,\n })\n .then((res) => {\n setPackages(res.data.offers);\n setNewProductName(res.data.name);\n })\n .catch((err) => {\n //setError(err.response.data?.errors[0]?.message);\n toast({\n variant: \"error\",\n title: err.response.data?.errors[0]?.message,\n });\n })\n .finally(() => {\n setTimeout(() => {\n setLoading(false);\n window.scrollTo({\n top: document.body.scrollHeight,\n behavior: \"smooth\",\n });\n }, 500);\n });\n };\n\n const schema = yup.object().shape({\n tc: yup\n .string()\n .matches(/^[1-9]{1}[0-9]{10}$/, t(\"extendedWarrantyPage.step2.tcError\"))\n .required(t(\"extendedWarrantyPage.step2.tcRequired\")),\n });\n\n const handleImeiChange = (e) => {\n if (e.target.value.length > 15) return;\n setImei(e.target.value);\n if (e.target.value.length === 15) getOffers(e);\n };\n\n const newProductNameText = t(\"extendedWarrantyPage.step2.section0.title\", {\n newProductName: `<span class=\"text-[#364153] font-semibold\">${newProductName}</span>`,\n });\n\n return (\n <div className=\"min-h-screen md:bg-[#F9FAFC]\">\n <Breadcrumb>\n <BreadcrumbItem link=\"/services\">\n {t(\"services.services\")}\n </BreadcrumbItem>\n <BreadcrumbItem active>\n {t(\"extendedWarrantyPage.title\")}\n </BreadcrumbItem>\n </Breadcrumb>\n <main className=\"mx-auto max-w-4xl p-5 md:py-12\">\n <Stepper\n steps={[\n { title: t(\"extendedWarrantyPage.steps.step1\") },\n { title: t(\"extendedWarrantyPage.steps.step2\") },\n { title: t(\"extendedWarrantyPage.steps.step3\") },\n ]}\n step={1}\n />\n <div className=\"flex flex-col rounded-lg\">\n <h3 className=\"text-lg font-medium text-[#111729]\">\n {t(\"extendedWarrantyPage.steps.step2\")}\n </h3>\n ï¸\n <ProductCard\n name={location.state?.product.name}\n brand={location.state?.product.brand}\n category={location.state?.product.categoryName}\n />\n </div>\n <div className=\"mt-6 flex flex-col rounded-lg border bg-white p-6\">\n <h3 className=\"text-lg font-medium text-[#111729]\">\n {t(\"extendedWarrantyPage.step2.section1.title\")}\n </h3>\n <div className=\"mt-4 flex flex-col gap-2\">\n <Label className=\"flex items-center gap-2\" htmlFor=\"ime\">\n IMEI <ImeiInfoDialog />\n </Label>\n <Input\n value={imei}\n onChange={handleImeiChange}\n id=\"ime\"\n type=\"tel\"\n disabled={loading}\n />\n {newProductName && (\n <h2\n className=\"text-sm text-[#677389]\"\n dangerouslySetInnerHTML={{ __html: newProductNameText }}\n />\n )}\n {/* <p className=\"text-sm text-[#677389]\">{imei.length} / 15</p> */}\n </div>\n </div>\n <div className=\"mt-6 flex flex-col gap-2 rounded-lg border bg-white p-6\">\n <h3 className=\"text-lg font-medium text-[#111729]\">\n {t(\"extendedWarrantyPage.step2.section2.title\")}\n </h3>\n <p className=\"text-sm text-[#677389]\">\n {t(\"extendedWarrantyPage.step2.section2.description\")}\n </p>\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"tc\">\n {t(\"extendedWarrantyPage.step2.section2.tc\")}\n </Label>\n <Input\n value={tc}\n onChange={(e) => setTc(e.target.value)}\n id=\"tc\"\n />\n </div>\n </div>\n </div>\n {/* <div\n aria-hidden={!error}\n role=\"alert\"\n className={cn(\n \"mt-4\",\n { block: error, hidden: !error },\n \"rounded-lg bg-red-500 p-4 text-white\",\n )}\n >\n {error}\n </div> */}\n {packages.length > 0 && (\n <div className=\"background-animate mt-6 flex flex-col gap-2 rounded-lg border bg-white bg-gradient-to-r from-blue-200 via-blue-100 to-blue-50 p-6\">\n <h3 className=\"text-lg font-medium text-[#111729]\">\n {t(\"extendedWarrantyPage.step2.section3.title\")}\n </h3>\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {packages.map((pack) => (\n <PackageCard\n key={pack.id}\n t={t}\n pack={pack}\n selectedPackage={selectedPackage}\n setSelectedPackage={setSelectedPackage}\n />\n ))}\n </div>\n </div>\n )}\n <div className=\"my-4 flex justify-end\">\n <Button\n className=\"w-full md:w-auto\"\n onClick={onSubmit}\n disabled={!selectedPackage || !schema.isValidSync({ tc })}\n >\n {t(\"common.next\")}\n </Button>\n </div>\n </main>\n {loading && (\n <div\n className=\"fixed left-0 top-0 z-50 flex h-screen w-screen items-center justify-center bg-white bg-opacity-80\"\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n role=\"status\"\n >\n <motion.svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"42\"\n height=\"42\"\n fill=\"none\"\n viewBox=\"0 0 25 25\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 2 }}\n >\n <motion.path\n stroke=\"#0049E6\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2.222\"\n d=\"M14.5 2.7v4.13c0 .56 0 .84.109 1.054a1 1 0 00.437.437c.214.109.494.109 1.054.109h4.13m-10.73 8l2 2 4.5-4.5m-1.5-11.5H9.3c-1.68 0-2.52 0-3.162.327a3 3 0 00-1.311 1.31C4.5 4.71 4.5 5.55 4.5 7.23v10.4c0 1.68 0 2.52.327 3.162a3 3 0 001.311 1.31c.642.328 1.482.328 3.162.328h6.4c1.68 0 2.52 0 3.162-.327a3 3 0 001.311-1.311c.327-.642.327-1.482.327-3.162v-9.2l-6-6z\"\n initial={{ pathLength: 0, stroke: \"gray\" }}\n animate={{ pathLength: 1, stroke: \"#0049E6\" }}\n transition={{ duration: 3, ease: \"easeInOut\", repeat: Infinity }}\n ></motion.path>\n </motion.svg>\n </div>\n )}\n </div>\n );\n};\n\nexport default GetExtendedWarrantyStep2;\n\nconst ProductCard = ({ name, brand, category }) => {\n const navigate = useNavigate();\n return (\n <div\n role=\"button\"\n onClick={() => navigate(\"/services/get-extended-warranty/step1\")}\n aria-label=\"Ãœrün seçimine geri dön\"\n className={cn(\n \"flex flex-col gap-4 rounded-lg border border-[#0040C9] bg-[#F2F5F9] p-6 hover:bg-gray-50\",\n )}\n >\n <h3 className=\"font-medium text-[#111729]\">{name}</h3>\n <h4 className=\"text-sm text-[#677389]\">{brand}</h4>\n <Tag size=\"sm\" variant=\"yellow\">\n {category}\n </Tag>\n </div>\n );\n};\n\nconst PackageCard = ({ pack, selectedPackage, setSelectedPackage, t }) => {\n const GreenCheck = () => {\n return (\n <svg\n className=\"h-10 w-10\"\n viewBox=\"0 0 22 22\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.4319 6.67058L8.96877 12.908L7.25371 11.0756C6.93777 10.7777 6.44131 10.7597 6.08024 11.0124C5.7282 11.2742 5.62891 11.7345 5.84555 12.1046L7.87655 15.4084C8.07513 15.7153 8.41815 15.9049 8.80629 15.9049C9.17639 15.9049 9.52843 15.7153 9.72701 15.4084C10.052 14.9841 16.2533 7.5913 16.2533 7.5913C17.0657 6.76084 16.0818 6.02968 15.4319 6.66155V6.67058Z\"\n fill=\"#12B76A\"\n />\n </svg>\n );\n };\n return (\n <div\n key={pack.id}\n className={cn(\n \"flex cursor-pointer justify-between gap-2 rounded-lg border bg-white p-4 transition-all hover:bg-slate-50\",\n selectedPackage === pack && \"border-[#0040C9]\",\n )}\n role=\"button\"\n aria-label={t(\"extendedWarrantyPage.step2.selectPackage\")}\n aria-selected={selectedPackage === pack}\n onClick={() => setSelectedPackage(selectedPackage === pack ? null : pack)}\n >\n <div className=\"flex flex-col gap-2\">\n <h4 className=\"text-sm font-medium text-[#111729]\">{pack.offerName}</h4>\n <span className=\"text-xs font-medium text-[#677389]\">\n {pack.extendedWarrantyDate}\n </span>\n </div>\n <div className=\"flex flex-col items-end justify-between gap-2\">\n <h4 className=\"text-sm font-medium text-[#111729]\">\n {pack.offerPrice}₺\n </h4>\n </div>\n </div>\n );\n};\n","/* eslint-disable react/prop-types */\nimport { Input, useToast } from \"@egaranti/components\";\nimport { Label } from \"@egaranti/components\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@egaranti/components\";\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@egaranti/components\";\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n} from \"@egaranti/components\";\n\nimport { useEffect } from \"react\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { postAddress } from \"@/lib/api/address\";\nimport axios from \"@/lib/api/axios\";\n\nconst AddAddressDialog = ({ open, onOpenChange }) => {\n const { t } = useTranslation();\n const { toast } = useToast();\n const [cities, setCities] = useState([]);\n const [districts, setDistricts] = useState([]);\n\n const form = useForm({\n defaultValues: {\n title: \"\",\n firstName: \"\",\n lastName: \"\",\n cityId: \"\",\n districtId: \"\",\n addressLine: \"\",\n postCode: \"\",\n },\n });\n\n const getAllCities = () => {\n axios.get(\"/addresses/cities\").then((res) => {\n setCities(res.data);\n });\n };\n\n const getDistricts = (id) => {\n axios.get(`/addresses/cities/${id}/districts`).then((res) => {\n setDistricts(res.data);\n });\n };\n\n useEffect(() => {\n getAllCities();\n }, []);\n\n const onSelectCity = (id) => {\n getDistricts(id);\n };\n\n const handleSave = (data) => {\n postAddress(data).then(() => {\n toast({\n title: \"BaÅŸarılı\",\n description: \"Adres baÅŸarıyla eklendi.\",\n variant: \"success\",\n });\n });\n\n form.reset();\n onOpenChange(false);\n };\n\n return (\n <AlertDialog onOpenChange={onOpenChange} open={open}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>\n {t(\"payment.addAddressDialog.title\")}\n </AlertDialogTitle>\n </AlertDialogHeader>\n {/* scroll area */}\n <div className=\"h-[500px] overflow-y-auto p-1\">\n <Form {...form}>\n <form onSubmit={form.handleSubmit(handleSave)} className=\"\">\n <div className=\"mx-auto mt-6 flex flex-col gap-5\">\n <FormField\n control={form.control}\n name=\"title\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"address.title\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <div className=\"flex flex-col items-center gap-6 md:flex-row\">\n <FormField\n control={form.control}\n name=\"firstName\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"address.firstName\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"lastName\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"address.lastName\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n <FormField\n control={form.control}\n name=\"cityId\"\n render={({ field }) => (\n <FormItem>\n <Label>{t(\"address.city\")}</Label>\n <Select\n onValueChange={(value) => {\n onSelectCity(value);\n field.onChange(value);\n }}\n defaultValue={field.cityId}\n >\n <FormControl>\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n </FormControl>\n <SelectContent>\n {cities.map((item) => {\n return (\n <SelectItem key={item.id} value={String(item.id)}>\n {item.name}\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"districtId\"\n render={({ field }) => (\n <FormItem>\n <Label>{t(\"address.district\")}</Label>\n <Select onValueChange={field.onChange}>\n <FormControl>\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n </FormControl>\n <SelectContent>\n {districts.map((item) => {\n return (\n <SelectItem key={item.id} value={String(item.id)}>\n {item.name}\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"addressLine\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"address.addressLine\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <div className=\"w-1/2\">\n <FormField\n control={form.control}\n name=\"postCode\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"address.postCode\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n </div>\n </form>\n </Form>\n </div>\n <AlertDialogFooter>\n <AlertDialogCancel id=\"cancel\" onClick={() => onOpenChange(false)}>\n {t(\"common.cancel\")}\n </AlertDialogCancel>\n <AlertDialogAction onClick={form.handleSubmit(handleSave)}>\n {t(\"common.save\")}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n\nexport default AddAddressDialog;\n","/* eslint-disable react/prop-types */\nimport {\n Button,\n Checkbox,\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n Input,\n Label,\n} from \"@egaranti/components\";\n\nimport { useTranslation } from \"react-i18next\";\n\n//import IParaLogo from \"@/assets/icons/ipara-logo.svg?react\";\nimport { useHookFormMask } from \"use-mask-input\";\n\nconst CreditCardForm = ({\n form,\n onSubmit,\n actionText,\n isCvcRequired = true,\n}) => {\n const { t } = useTranslation();\n const handleFocus = (e) => {\n form.setValue(\"focus\", e.target.name);\n };\n\n const registerWithMask = useHookFormMask(form.register);\n\n return (\n <div className=\"grid grid-cols-1\">\n <div className=\"\">\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className=\"space-y-5\">\n <div className=\"flex flex-col items-center gap-4 md:flex-row\">\n <FormField\n control={form.control}\n name=\"cardHolderName\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"payment.addCreditCard.cardHolderName\")}</Label>\n <FormControl>\n <Input onFocus={handleFocus} {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n <FormField\n control={form.control}\n name=\"cardNumber\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"payment.addCreditCard.cardNumber\")}</Label>\n <FormControl>\n <Input\n type=\"tel\"\n onFocus={handleFocus}\n {...field}\n {...registerWithMask(\"cardNumber\", {\n mask: \"9999 9999 9999 9999\",\n placeholder: \"1234 5678 1234 5678\",\n })}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n <div className=\"flex items-center gap-4\">\n <FormField\n control={form.control}\n name=\"expireDate\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"payment.addCreditCard.expireDate\")}</Label>\n <FormControl>\n <Input\n type=\"tel\"\n onFocus={handleFocus}\n {...field}\n {...registerWithMask(\"expireDate\", {\n mask: \"99/99\",\n placeholder: \"MM/YY\",\n })}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n {isCvcRequired && (\n <FormField\n control={form.control}\n name=\"cvc\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>CVC</Label>\n <FormControl>\n <Input\n onFocus={handleFocus}\n {...field}\n {...registerWithMask(\"cvc\", {\n mask: \"999\",\n placeholder: \"CVC\",\n })}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n )}\n </div>\n\n {/* <div className=\"my-4 flex items-center gap-2\">\n <IParaLogo />\n <span className=\"text-sm font-medium text-[#677389]\">\n {t(\"payment.addCreditCard.payWith\")}\n </span>\n </div> */}\n <p className=\"my-4 text-sm text-[#677389]\">\n {t(\"payment.addCreditCard.description\")}\n </p>\n <div className=\"flex flex-col gap-2 py-5\">\n <Label className=\"flex items-start gap-2 text-sm text-[#364153]\">\n <Checkbox\n checked={form.watch(\"storeCardAfterSuccessPayment\")}\n onClick={() => {\n form.setValue(\n \"storeCardAfterSuccessPayment\",\n !form.watch(\"storeCardAfterSuccessPayment\"),\n );\n }}\n />\n {t(\"payment.addCreditCard.storeCardAfterSuccessPayment\")}\n </Label>\n <div>\n <Label className=\"flex items-start gap-2 text-sm text-[#364153]\">\n <Checkbox\n checked={form.watch(\"techpoint\")}\n onClick={() => {\n form.setValue(\"techpoint\", !form.watch(\"techpoint\"));\n }}\n />\n {t(\"payment.addCreditCard.techpoint\")}{\" \"}\n <a\n className=\"text-sm font-semibold text-[#0049E6]\"\n href=\"https://cdn.egaranti.com/static/E-Garanti_Uzat%C4%B1lm%C4%B1s%CC%A7_I%CC%87htiyari_Garanti_O%CC%88nbilgilendirme_Formu.pdf\"\n target=\"_blank\"\n >\n {t(\"extendedWarrantyPage.download\")}\n </a>\n </Label>\n </div>\n {form.watch(\"storeCardAfterSuccessPayment\") && (\n <FormField\n control={form.control}\n name=\"cardAlias\"\n render={({ field }) => (\n <FormItem className=\"w-full\">\n <Label>{t(\"payment.addCreditCard.cardAlias\")}</Label>\n <FormControl>\n <Input {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n )}\n </div>\n </form>\n </Form>\n <Button\n disabled={\n form.formState.isSubmitting ||\n !form.watch(\"addressId\") ||\n !form.watch(\"techpoint\")\n }\n onClick={form.handleSubmit(onSubmit)}\n >\n {actionText}\n </Button>\n </div>\n </div>\n );\n};\n\nexport default CreditCardForm;\n","export default \"__VITE_ASSET__6545cb1c__\"","export default \"__VITE_ASSET__5acb086e__\"","export default \"__VITE_ASSET__0ad0d5d0__\"","import axios from \"@/lib/api/axios\";\n\nclass PaymentService {\n constructor() {\n this.api = axios;\n }\n\n async getStoredCards() {\n const { data } = await this.api.get(\"/store-cards\", {\n params: {\n page: 1,\n size: 5,\n },\n });\n\n return data.content;\n }\n\n async addStoredCard(data) {\n const response = await this.api.post(\"/store-cards\", data);\n\n return response;\n }\n\n async deleteStoredCard(id) {\n const response = await this.api.delete(`/store-cards/${id}`);\n\n return response;\n }\n\n async getPastPayments() {\n const { data } = await this.api.get(\"/payments\", {\n params: {\n page: 1,\n size: 10,\n },\n });\n\n return data.content;\n }\n\n async postCheckout(data) {\n const response = await this.api.post(\"/payments/3ds/init\", data);\n\n return response;\n }\n\n async getPayment(paymentId) {\n const { data } = await this.api.get(`/payments/3ds/${paymentId}`);\n\n return data;\n }\n}\n\nexport default new PaymentService();\n","import {\n Button,\n Checkbox,\n Label,\n RadioGroup,\n RadioGroupItem,\n useToast,\n} from \"@egaranti/components\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\n\nimport { useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\n\nimport AddAddressDialog from \"@/components/Payment/addAddressDialog\";\nimport CreditCardForm from \"@/components/Payment/creditCardForm\";\nimport Stepper from \"@/components/Services/GetExtendedWarranty/Stepper\";\nimport Breadcrumb, {\n BreadcrumbItem,\n} from \"@/components/common/shared/breadcrumbs\";\n\nimport PaperIcon from \"@/assets/images/overview/insurance.png\";\nimport { ReactComponent as MasterCardIcon } from \"@/assets/svgs/masterCard.svg\";\nimport { ReactComponent as TroyIcon } from \"@/assets/svgs/troy.svg\";\nimport { ReactComponent as VisaIcon } from \"@/assets/svgs/visa.svg\";\n\nimport * as yup from \"yup\";\n\nimport { getAllAddress } from \"@/lib/api/address\";\nimport paymentService from \"@/lib/api/payment\";\n\nconst icon = {\n MASTER_CARD: <MasterCardIcon className=\"h-8 w-8\" />,\n VISA: <VisaIcon className=\"h-8 w-8\" />,\n TROY: <TroyIcon className=\"h-8 w-8\" />,\n};\n\nconst schema = (t) =>\n yup.object().shape({\n cardHolderName: yup\n .string()\n .min(1, t(\"payment.addAddressDialog.form.msg1\")),\n cardNumber: yup.string().min(1, t(\"payment.addAddressDialog.form.msg2\")),\n expireDate: yup.string().min(1, t(\"payment.addAddressDialog.form.msg3\")),\n cvc: yup.string().min(1, t(\"payment.addAddressDialog.form.msg4\")),\n });\n\n// with stored card\nconst storedCardSchema = (t) =>\n yup.object().shape({\n selectedStoredCard: yup\n .object()\n .required(t(\"payment.addAddressDialog.form.msg6\")),\n });\n\nconst GetExtendedWarrantyStep3 = () => {\n const { t } = useTranslation();\n const { toast } = useToast();\n const location = useLocation();\n const [onOpenAddressDialog, setOpenAddressDialog] = useState(false);\n const [address, setAddress] = useState([]);\n const [storedCards, setStoredCards] = useState([]);\n const [payWithStoredCard, setPayWithStoredCard] = useState(false);\n\n const form = useForm({\n resolver: yupResolver(payWithStoredCard ? storedCardSchema(t) : schema(t)),\n defaultValues: {\n cardHolderName: \"\",\n cardNumber: \"\",\n expireDate: \"\",\n cvc: \"\",\n focus: \"\",\n selectedStoredCard: null,\n storeCardAfterSuccessPayment: false,\n addressId: null,\n cardAlias: \"\",\n },\n });\n\n const onSubmit = (data) => {\n const payload = {\n currency: \"TRY\",\n isThreeDS: true,\n addressId: data.addressId,\n card: {\n cardUserKey: data.selectedStoredCard?.cardUserKey,\n cardToken: data.selectedStoredCard?.cardToken,\n cardAlias: data.cardAlias || data.cardHolderName,\n cardHolderName: data.cardHolderName,\n cardNumber: data.cardNumber.replace(/\\s/g, \"\"),\n expireYear: data.expireDate.split(\"/\")[1],\n expireMonth: data.expireDate.split(\"/\")[0],\n cvc: data.cvc,\n storeCardAfterSuccessPayment: data.storeCardAfterSuccessPayment,\n },\n elements: [\n {\n name: \"extendedwarranty-\" + Math.random().toString(36).substring(7),\n price: location.state.selectedPackage.offerPrice,\n quantity: 1,\n },\n ],\n additionalParameters: {\n externalProductId: location.state.selectedPackage.externalProductId,\n imei: location.state.imei,\n identityNumber: location.state.tc,\n },\n };\n\n paymentService\n .postCheckout(payload)\n .then((res) => {\n if (res.data.htmlContent) {\n window.document.write(atob(res.data.htmlContent));\n }\n })\n .catch((err) => {\n toast({\n title: err.response?.data?.errors[0]?.message,\n variant: \"error\",\n });\n });\n };\n\n const getStoredCards = () => {\n paymentService.getStoredCards().then((res) => setStoredCards(res));\n };\n\n useEffect(() => {\n // get all state in location.state set in form\n getStoredCards();\n getAllAddress().then((res) => setAddress(res.data));\n form.setValue(\"product\", location.state.product);\n form.setValue(\"selectedPackage\", location.state.selectedPackage);\n form.setValue(\"imei\", location.state.imei);\n form.setValue(\"tc\", location.state.tc);\n form.setValue(\"birthDate\", location.state.birthDate);\n }, []);\n\n useEffect(() => {\n setTimeout(() => {\n getAllAddress().then((res) => setAddress(res.data));\n }, 1000);\n }, [onOpenAddressDialog]);\n\n const onChangePayWithStoredCard = () => {\n setPayWithStoredCard(!payWithStoredCard);\n form.setValue(\"selectedStoredCard\", null);\n form.setValue(\"cardHolderName\", \"\");\n form.setValue(\"cardNumber\", \"\");\n form.setValue(\"expireDate\", \"\");\n form.setValue(\"cvc\", \"\");\n };\n\n return (\n <div className=\"min-h-screen md:bg-[#F9FAFC]\">\n <Breadcrumb>\n <BreadcrumbItem link=\"/services\">\n {t(\"services.services\")}\n </BreadcrumbItem>\n <BreadcrumbItem active>\n {t(\"extendedWarrantyPage.title\")}\n </BreadcrumbItem>\n </Breadcrumb>\n <main className=\"mx-auto max-w-6xl p-5 md:py-12\">\n <Stepper\n steps={[\n { title: t(\"extendedWarrantyPage.steps.step1\") },\n { title: t(\"extendedWarrantyPage.steps.step2\") },\n { title: t(\"extendedWarrantyPage.steps.step3\") },\n ]}\n step={2}\n />\n <div className=\"flex flex-col gap-6 md:flex-row\">\n <div className=\"flex flex-grow flex-col gap-6\">\n <ProductCard\n price={form.watch(\"selectedPackage\")?.offerPrice}\n title={form.watch(\"selectedPackage\")?.offerName}\n />\n <div className=\"flex-grow rounded-lg border bg-white p-6 shadow-sm\">\n <AddressSelectSection\n form={form}\n address={address}\n t={t}\n setOpenAddressDialog={setOpenAddressDialog}\n />\n <div className=\"flex items-center justify-between pb-4\">\n <h2 className=\"text-lg font-medium text-[#364153]\">\n {t(\"extendedWarrantyPage.step3.section1.paymentInfo\")}\n </h2>\n {storedCards.length > 0 && (\n <Button\n variant=\"secondaryColor\"\n onClick={() => onChangePayWithStoredCard()}\n >\n {payWithStoredCard\n ? t(\"extendedWarrantyPage.step3.section1.newCard\")\n : t(\"extendedWarrantyPage.step3.section1.useStoredCard\")}\n </Button>\n )}\n </div>\n {!payWithStoredCard ? (\n <CreditCardForm\n form={form}\n onSubmit={onSubmit}\n actionText={t(\"extendedWarrantyPage.step3.section1.pay\")}\n />\n ) : (\n <SelectStoredCardSection\n storedCards={storedCards}\n form={form}\n onSubmit={onSubmit}\n t={t}\n />\n )}\n </div>\n </div>\n <Summary price={form.watch(\"selectedPackage\")?.offerPrice} />\n </div>\n </main>\n <AddAddressDialog\n open={onOpenAddressDialog}\n onOpenChange={setOpenAddressDialog}\n />\n </div>\n );\n};\n\nexport default GetExtendedWarrantyStep3;\n\nconst Summary = ({ price }) => {\n const { t } = useTranslation();\n return (\n <div className=\"h-full w-full rounded-lg border bg-white p-6 shadow-sm md:w-1/3\">\n <h2 className=\"font-semibold text-[#677389]\">\n {t(\"extendedWarrantyPage.step3.section1.summary\")}\n </h2>\n <div className=\"mt-6 flex flex-col items-center justify-between rounded-lg border\">\n <div className=\"flex w-full items-center justify-between px-8 py-4\">\n <span className=\"font-medium text-[#677389]\">\n {t(\"extendedWarrantyPage.step3.section1.subtotal\")}\n </span>\n <span className=\"font-semibold text-[#111729]\">{price}₺</span>\n </div>\n <div className=\"flex w-full items-center justify-between border-t px-8 py-4\">\n <span className=\"font-medium text-[#677389]\">\n {t(\"extendedWarrantyPage.step3.section1.total\")}\n </span>\n <span className=\"font-semibold text-[#111729]\">{price}₺</span>\n </div>\n </div>\n </div>\n );\n};\n\nconst ProductCard = ({ title, price }) => {\n return (\n <div className=\"flex items-center justify-between rounded-lg border bg-white p-6 shadow-sm\">\n <div className=\"flex items-center gap-2\">\n <img className=\"h-20\" src={PaperIcon} aria-hidden />\n <h1 className=\"text-xl font-medium text-[#111729]\">{title}</h1>\n </div>\n <span className=\"text-xl font-semibold text-[#111729]\">{price}₺</span>\n </div>\n );\n};\n\nconst SelectStoredCardSection = ({ storedCards, form, onSubmit, t }) => {\n return (\n <div className=\"flex flex-col\">\n <RadioGroup\n onValueChange={(e) =>\n form.setValue(\"selectedStoredCard\", JSON.parse(e))\n }\n value={JSON.stringify(form.watch(\"selectedStoredCard\"))}\n className=\"mt-4 rounded-lg shadow\"\n >\n {storedCards?.map((card) => (\n <div\n key={card.id}\n className=\"flex items-center space-x-3 border-b border-b-[#F2F5F9] px-4\"\n >\n <RadioGroupItem value={JSON.stringify(card)} id={card.id} />\n <Label\n className=\"flex w-full cursor-pointer items-center justify-between py-3 text-sm font-medium text-[#344054]\"\n htmlFor={card.id}\n >\n <h3>{card.cardAlias}</h3>\n <span className=\"flex items-center gap-3 text-sm font-medium text-[#344054]\">\n <span>**** **** **** {card.lastFourDigits}</span>\n {icon[card.cardAssociation]}\n </span>\n </Label>\n </div>\n ))}\n </RadioGroup>\n <div>\n <Label className=\"mt-4 flex items-start gap-2 text-sm text-[#364153]\">\n <Checkbox\n checked={form.watch(\"techpoint\")}\n onClick={() => {\n form.setValue(\"techpoint\", !form.watch(\"techpoint\"));\n }}\n />\n {t(\"payment.addCreditCard.techpoint\")}\n <a\n className=\"text-sm font-semibold text-[#0049E6]\"\n href=\"https://cdn.egaranti.com/static/E-Garanti_Uzat%C4%B1lm%C4%B1s%CC%A7_I%CC%87htiyari_Garanti_O%CC%88nbilgilendirme_Formu.pdf\"\n target=\"_blank\"\n >\n {t(\"extendedWarrantyPage.download\")}\n </a>\n </Label>\n </div>\n <Button\n disabled={\n !form.watch(\"selectedStoredCard\") ||\n !form.watch(\"addressId\") ||\n !form.watch(\"techpoint\")\n }\n onClick={form.handleSubmit(onSubmit)}\n className=\"mt-4\"\n >\n {t(\"extendedWarrantyPage.step3.section1.pay\")}\n </Button>\n </div>\n );\n};\n\nconst AddressSelectSection = ({ form, address, t, setOpenAddressDialog }) => {\n return (\n <div className=\"mb-8 flex flex-col\">\n <Label>{t(\"extendedWarrantyPage.step3.section1.title\")}</Label>\n <RadioGroup\n onValueChange={(e) => form.setValue(\"addressId\", e)}\n value={form.watch(\"addressId\")}\n className=\"mt-4 rounded-lg shadow\"\n error={form.formState.errors.addressId?.message}\n >\n {address.map((item) => (\n <div\n key={item.id}\n className=\"flex items-center space-x-3 border-b border-b-[#F2F5F9] px-4\"\n >\n <RadioGroupItem value={item.id} id={item.id} />\n <Label\n className=\"w-full cursor-pointer py-3 text-sm font-medium text-[#344054]\"\n htmlFor={item.id}\n >\n {item.title}{\" \"}\n <span className=\"text-xs text-[#677389]\">\n {item.addressLine.substring(0, 26)}...\n </span>\n </Label>\n </div>\n ))}\n <button\n onClick={() => setOpenAddressDialog(true)}\n className=\"flex w-full items-center gap-2 rounded-lg rounded-t-none px-4 py-3 text-sm font-medium text-[#0049E6]\"\n >\n {/* <BluePlusIcon /> */}\n {t(\"extendedWarrantyPage.step3.section1.addAddress\")}\n </button>\n </RadioGroup>\n </div>\n );\n};\n","import { Button } from \"@egaranti/components\";\n\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport Stepper from \"@/components/Services/GetExtendedWarranty/Stepper\";\n\nimport paymentApi from \"@/lib/api/payment\";\n\nconst StatusPage = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const [payment, setPayment] = useState(null);\n\n const searchParams = new URLSearchParams(location.search);\n\n useEffect(\n () => {\n paymentApi\n .getPayment(searchParams.get(\"paymentId\"))\n .then((res) => {\n setPayment(res);\n })\n .catch((err) => {\n setPayment({\n paymentResultStatus: \"ERROR\",\n errorMessage: err.message,\n });\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n if (!payment) return <div>Loading...</div>;\n\n if (payment?.paymentResultStatus === \"SUCCESS\") {\n return (\n <div className=\"flex min-h-screen w-full flex-col items-center justify-center gap-[30px] bg-gray-50 p-6\">\n <div className=\"mx-auto flex max-w-lg flex-col items-center gap-4\">\n <Stepper\n steps={[\n { title: \"Ãœrün Seçimi\" },\n { title: \"Plan Seçimi\" },\n { title: \"Ödeme\" },\n ]}\n step={3}\n />\n <h1 className=\"text-center text-2xl font-semibold text-[#111729]\">\n {t(\"payment.statusPage.title\")}\n </h1>\n <p className=\"text-center font-medium text-[#7D7D7D]\">\n {t(\"payment.statusPage.subtitle\")}\n </p>\n </div>\n <div className=\"mx-auto flex max-w-lg flex-col items-center gap-5 rounded-lg bg-white p-6\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"120\"\n height=\"121\"\n fill=\"none\"\n className=\"mb-5\"\n viewBox=\"0 0 120 121\"\n >\n <rect\n width=\"120\"\n height=\"120\"\n y=\"0.275\"\n fill=\"#D1FADF\"\n rx=\"60\"\n ></rect>\n <path\n fill=\"#12B76A\"\n fillRule=\"evenodd\"\n d=\"M85.482 37.225l-35.8 34.55-9.5-10.15c-1.75-1.65-4.5-1.75-6.5-.35-1.95 1.45-2.5 4-1.3 6.05l11.25 18.3c1.1 1.7 3 2.75 5.15 2.75 2.05 0 4-1.05 5.1-2.75 1.8-2.35 36.15-43.3 36.15-43.3 4.5-4.6-.95-8.65-4.55-5.15v.05z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n <h2 className=\"font-semibold text-[#020246]\">\n {t(\"payment.statusPage.cardTitle\")}\n </h2>\n <p className=\"text-center text-[#677389]\">\n {t(\"payment.statusPage.cardDesc\")}\n </p>\n <hr />\n <h3 className=\"w-full text-left font-medium text-black\">\n {t(\"payment.statusPage.summary\")}\n </h3>\n <div className=\"flex w-full items-center justify-between gap-5 rounded-lg border bg-[#F9FAFC] p-10\">\n <span className=\"font-medium text-[#364153]\">\n {t(\"payment.statusPage.package\")}\n </span>\n <span className=\"text-lg font-semibold text-[#364153]\">\n {payment?.paidPrice}₺\n </span>\n </div>\n <Button className=\"w-full\" asChild>\n <Link to=\"/services/get-extended-warranty/\">\n {t(\"payment.statusPage.btnText\")}\n </Link>\n </Button>\n </div>\n </div>\n );\n } else {\n return (\n <div className=\"flex min-h-screen w-full flex-col items-center justify-center gap-[30px] bg-gray-50 p-6\">\n <div className=\"mx-auto flex max-w-lg flex-col items-center gap-4\">\n <h1 className=\"text-center text-2xl font-semibold text-[#111729]\">\n {payment?.errorMessage || t(\"payment.statusPage.errorTitle\")}\n </h1>\n <Button className=\"w-full\" asChild>\n <Link to=\"/services/get-extended-warranty/step1\">\n {t(\"payment.statusPage.errorBtnText\")}\n </Link>\n </Button>\n </div>\n </div>\n );\n }\n};\n\nexport default StatusPage;\n","import React from \"react\";\nimport { Route } from \"react-router-dom\";\n\nimport Services from \"../pages/Services\";\nimport GetExtendedWarranty from \"../pages/Services/GetExtendedWarranty\";\nimport GetExtendedWarrantyStep1 from \"../pages/Services/GetExtendedWarranty/Step1\";\nimport GetExtendedWarrantyStep2 from \"../pages/Services/GetExtendedWarranty/Step2\";\nimport GetExtendedWarrantyStep3 from \"../pages/Services/GetExtendedWarranty/Step3\";\nimport StatusPage from \"../pages/Services/GetExtendedWarranty/statusPage\";\nimport PrivateRoute from \"./PrivateRoute\";\n\nexport const serviceRoutesWithLayout = (\n <>\n <Route path=\"/services\" element={<Services />} />\n <Route\n path=\"/services/get-extended-warranty\"\n element={\n <PrivateRoute>\n <GetExtendedWarranty />\n </PrivateRoute>\n }\n />\n </>\n);\n\nexport const serviceRoutesWithoutLayout = (\n <>\n <Route\n path=\"/services/get-extended-warranty/step1\"\n element={\n <PrivateRoute>\n <GetExtendedWarrantyStep1 />\n </PrivateRoute>\n }\n />\n <Route\n path=\"/services/get-extended-warranty/step2\"\n element={\n <PrivateRoute>\n <GetExtendedWarrantyStep2 />\n </PrivateRoute>\n }\n />\n <Route\n path=\"/services/get-extended-warranty/step3\"\n element={\n <PrivateRoute>\n <GetExtendedWarrantyStep3 />\n </PrivateRoute>\n }\n />\n <Route\n path=\"/services/get-extended-warranty/status\"\n element={\n <PrivateRoute>\n <StatusPage />\n </PrivateRoute>\n }\n />\n </>\n);\n","import React from \"react\";\nimport { Route, Routes } from \"react-router-dom\";\n\nimport Layout from \"../components/Layout\";\nimport { Overview, Products } from \"../pages\";\nimport PrivateRoute from \"./PrivateRoute\";\nimport { accountRoutes } from \"./accountRoutes\";\nimport { authRoutes } from \"./authRoutes\";\nimport { claimsRoutesWithLayout } from \"./claimsRoutes\";\nimport { publicRoutes } from \"./publicRoutes\";\nimport {\n serviceRoutesWithLayout,\n serviceRoutesWithoutLayout,\n} from \"./serviceRoutes\";\n\nconst AppRoutes = () => (\n <Routes>\n {authRoutes}\n {publicRoutes}\n {serviceRoutesWithoutLayout}\n <Route path=\"/\" element={<Layout />}>\n <Route\n index\n element={\n <PrivateRoute>\n <Overview />\n </PrivateRoute>\n }\n />\n <Route\n path=\"/products\"\n element={\n <PrivateRoute>\n <Products />\n </PrivateRoute>\n }\n />\n {accountRoutes}\n {serviceRoutesWithLayout}\n {claimsRoutesWithLayout}\n </Route>\n </Routes>\n);\n\nexport default AppRoutes;\n","import { Toaster } from \"@egaranti/components\";\n\nimport { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { BrowserRouter as Router } from \"react-router-dom\";\n\nimport \"./index.css\";\n\nimport mixpanel from \"mixpanel-browser\";\nimport \"moment/locale/en-gb\";\nimport \"moment/locale/ru\";\nimport \"moment/locale/tr\";\nimport moment from \"moment/moment\";\nimport { useRegisterSW } from \"virtual:pwa-register/react\";\n\nimport { getUserCountry } from \"@/lib/api/countryDetector\";\nimport ScrollToTop from \"@/lib/utils/components/ScrollToTop\";\nimport AppRoutes from \"@/routes\";\n\nexport default function App() {\n mixpanel.init(\"3b972b51542eea57c5af9ed20ad22692\", {\n track_pageview: true,\n persistence: \"localStorage\",\n });\n const intervalMS = 1800000;\n\n const {\n offlineReady: [offlineReady, setOfflineReady],\n needRefresh: [needRefresh, setNeedRefresh],\n updateServiceWorker,\n } = useRegisterSW({\n onRegisteredSW(swUrl, r) {\n r &&\n setInterval(async () => {\n if (r.installing || !navigator) return;\n\n if (\"connection\" in navigator && !navigator.onLine) return;\n\n const resp = await fetch(swUrl, {\n cache: \"no-store\",\n headers: {\n cache: \"no-store\",\n \"cache-control\": \"no-cache\",\n },\n });\n\n if (resp?.status === 200) await r.update();\n }, intervalMS);\n },\n onRegistered(r) {\n // eslint-disable-next-line prefer-template\n console.log(\"SW Registered: \" + r);\n },\n onRegisterError(error) {\n console.log(\"SW registration error\", error);\n },\n });\n\n const close = () => {\n setOfflineReady(false);\n setNeedRefresh(false);\n };\n\n useEffect(() => {\n getUserCountry();\n }, []);\n\n const { t } = useTranslation();\n\n return (\n <>\n <Toaster />\n <Router>\n <ScrollToTop />\n <AppRoutes />\n </Router>\n <div className=\"fixed bottom-4 right-4 z-50\">\n {needRefresh && (\n <div className=\"flex items-center space-x-4 rounded-lg bg-white p-4 shadow-lg\">\n <div className=\"flex-1\">\n <span>\n {t(\n \"needReflesh.reload\",\n \"Yeni içerik mevcut, güncellemek için yenile butonuna tıklayın.\",\n )}\n </span>\n </div>\n {needRefresh && (\n <button\n className=\"rounded-lg bg-blue-600 px-4 py-2 text-white\"\n onClick={() => updateServiceWorker(true)}\n >\n {t(\"common.reload\", \"Yenile\")}\n </button>\n )}\n <button\n className=\"rounded-lg bg-gray-500 px-4 py-2 text-white\"\n onClick={() => close()}\n >\n {t(\"common.close\", \"Kapat\")}\n </button>\n </div>\n )}\n </div>\n </>\n );\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\n\nimport App from \"./App\";\n// i18n\nimport \"./i18n\";\n\nReactDOM.createRoot(document.getElementById(\"root\")).render(\n <React.StrictMode>\n <App />\n </React.StrictMode>,\n);\n"],"file":"assets/index-55796c18.js"}