{"version":3,"file":"core-unsupported-browser.js?v=05c9e3a4879c08b1ea54","mappings":"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,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR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,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=style&index=0&id=79a11292&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?7880","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Web.vue?2edf","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=template&id=704f1c73","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?a3f0","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?d53c","webpack:///nextcloud/core/src/unsupported-browser.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","module.exports.browserVersions = require('../../data/browserVersions')\n","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var max = string.length, n = 1; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.content-unsupported-browser[data-v-79a11292]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-79a11292]{margin:0}.content-unsupported-browser .empty-content[data-v-79a11292] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-79a11292]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-79a11292]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-79a11292]{text-align:start}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnsupportedBrowser.vue\"],\"names\":[],\"mappings\":\"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CAEA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAzBQ,CA0BR,uDACC,gBAAA\",\"sourcesContent\":[\"\\n$spacing: 30px;\\n\\n.content-unsupported-browser {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\twidth: 400px;\\n\\tmax-width: calc(90vw - 2 * $spacing);\\n\\tmargin: auto;\\n\\tpadding: $spacing;\\n\\n\\t.empty-content {\\n\\t\\tmargin: 0;\\n\\n\\t\\t:deep(.empty-content__icon) {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t&__continue {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $spacing auto;\\n\\t}\\n\\n\\t&__list {\\n\\t\\tmargin-top: 2 * $spacing;\\n\\t\\tmargin-bottom: $spacing;\\n\\t\\tli {\\n\\t\\t\\ttext-align: start;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n * GNOME Web (X11) is based on WebKit and should be detected as Safari\n */\n {\n regex: /(Maci|X11).+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB && diffA === \"\" && diffB === \"\") {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content-unsupported-browser guest-box\"},[_c('NcEmptyContent',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Web')]},proxy:true},{key:\"action\",fn:function(){return [_c('div',[_c('h2',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticClass:\"content-unsupported-browser__continue\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.forceBrowsing}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Continue with this unsupported browser'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('ul',{staticClass:\"content-unsupported-browser__list\"},[_c('h3',[_vm._v(_vm._s(_vm.t('core', 'Supported versions')))]),_vm._v(\" \"),_vm._l((_vm.formattedBrowsersList),function(browser){return _c('li',{key:browser},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(browser)+\"\\n\\t\\t\\t\\t\")])})],2)]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'This browser is not supported'))+\"\\n\\t\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Web.vue?vue&type=template&id=704f1c73\"\nimport script from \"./Web.vue?vue&type=script&lang=js\"\nexport * from \"./Web.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon web-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=79a11292&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=79a11292&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnsupportedBrowser.vue?vue&type=template&id=79a11292&scoped=true\"\nimport script from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nexport * from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nimport style0 from \"./UnsupportedBrowser.vue?vue&type=style&index=0&id=79a11292&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79a11292\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\n\nimport { browserStorageKey } from './utils/RedirectUnsupportedBrowsers.js'\nimport browserStorage from './services/BrowserStorageService.js'\nimport UnsupportedBrowser from './views/UnsupportedBrowser.vue'\n\n// If the ignore token is set, redirect\nif (browserStorage.getItem(browserStorageKey) === 'true') {\n\twindow.location = generateUrl('/')\n}\n\nexport default new Vue({\n\tel: '#unsupported-browser',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnsupportedBrowserRoot',\n\trender: h => h(UnsupportedBrowser),\n})\n","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?\n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","module.exports={\"0\":\"117\",\"1\":\"20\",\"2\":\"21\",\"3\":\"22\",\"4\":\"23\",\"5\":\"24\",\"6\":\"25\",\"7\":\"26\",\"8\":\"27\",\"9\":\"118\",A:\"10\",B:\"11\",C:\"12\",D:\"7\",E:\"8\",F:\"9\",G:\"15\",H:\"80\",I:\"135\",J:\"4\",K:\"6\",L:\"13\",M:\"14\",N:\"16\",O:\"17\",P:\"18\",Q:\"79\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"107\",r:\"108\",s:\"109\",t:\"110\",u:\"111\",v:\"112\",w:\"113\",x:\"114\",y:\"115\",z:\"116\",AB:\"119\",BB:\"120\",CB:\"121\",DB:\"122\",EB:\"123\",FB:\"124\",GB:\"125\",HB:\"126\",IB:\"127\",JB:\"128\",KB:\"129\",LB:\"130\",MB:\"131\",NB:\"132\",OB:\"133\",PB:\"134\",QB:\"5\",RB:\"19\",SB:\"28\",TB:\"29\",UB:\"30\",VB:\"31\",WB:\"32\",XB:\"33\",YB:\"34\",ZB:\"35\",aB:\"36\",bB:\"37\",cB:\"38\",dB:\"39\",eB:\"40\",fB:\"41\",gB:\"42\",hB:\"43\",iB:\"44\",jB:\"45\",kB:\"46\",lB:\"47\",mB:\"48\",nB:\"49\",oB:\"50\",pB:\"51\",qB:\"52\",rB:\"53\",sB:\"54\",tB:\"55\",uB:\"56\",vB:\"57\",wB:\"58\",xB:\"60\",yB:\"62\",zB:\"63\",\"0B\":\"64\",\"1B\":\"65\",\"2B\":\"66\",\"3B\":\"67\",\"4B\":\"68\",\"5B\":\"69\",\"6B\":\"70\",\"7B\":\"71\",\"8B\":\"72\",\"9B\":\"73\",AC:\"74\",BC:\"75\",CC:\"76\",DC:\"77\",EC:\"78\",FC:\"137\",GC:\"11.1\",HC:\"12.1\",IC:\"15.5\",JC:\"16.0\",KC:\"17.0\",LC:\"18.0\",MC:\"3\",NC:\"59\",OC:\"61\",PC:\"82\",QC:\"136\",RC:\"138\",SC:\"3.2\",TC:\"10.1\",UC:\"15.2-15.3\",VC:\"15.4\",WC:\"16.1\",XC:\"16.2\",YC:\"16.3\",ZC:\"16.4\",aC:\"16.5\",bC:\"17.1\",cC:\"17.2\",dC:\"17.3\",eC:\"17.4\",fC:\"17.5\",gC:\"18.1\",hC:\"18.2\",iC:\"18.3\",jC:\"18.4\",kC:\"18.5\",lC:\"11.5\",mC:\"4.2-4.3\",nC:\"5.5\",oC:\"2\",pC:\"139\",qC:\"140\",rC:\"3.5\",sC:\"3.6\",tC:\"3.1\",uC:\"5.1\",vC:\"6.1\",wC:\"7.1\",xC:\"9.1\",yC:\"13.1\",zC:\"14.1\",\"0C\":\"15.1\",\"1C\":\"15.6\",\"2C\":\"16.6\",\"3C\":\"17.6\",\"4C\":\"TP\",\"5C\":\"9.5-9.6\",\"6C\":\"10.0-10.1\",\"7C\":\"10.5\",\"8C\":\"10.6\",\"9C\":\"11.6\",AD:\"4.0-4.1\",BD:\"5.0-5.1\",CD:\"6.0-6.1\",DD:\"7.0-7.1\",ED:\"8.1-8.4\",FD:\"9.0-9.2\",GD:\"9.3\",HD:\"10.0-10.2\",ID:\"10.3\",JD:\"11.0-11.2\",KD:\"11.3-11.4\",LD:\"12.0-12.1\",MD:\"12.2-12.5\",ND:\"13.0-13.1\",OD:\"13.2\",PD:\"13.3\",QD:\"13.4-13.7\",RD:\"14.0-14.4\",SD:\"14.5-14.8\",TD:\"15.0-15.1\",UD:\"15.6-15.8\",VD:\"16.6-16.7\",WD:\"17.6-17.7\",XD:\"all\",YD:\"2.1\",ZD:\"2.2\",aD:\"2.3\",bD:\"4.1\",cD:\"4.4\",dD:\"4.4.3-4.4.4\",eD:\"5.0-5.4\",fD:\"6.2-6.4\",gD:\"7.2-7.4\",hD:\"8.2\",iD:\"9.2\",jD:\"11.1-11.2\",kD:\"12.0\",lD:\"13.0\",mD:\"14.0\",nD:\"15.0\",oD:\"19.0\",pD:\"14.9\",qD:\"13.52\",rD:\"2.5\",sD:\"3.0-3.1\"};\n","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?a)\\k/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","module.exports.browsers = require('../../data/browsers')\n","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"28.3\": \"120\",\n\t\"29.0\": \"122\",\n\t\"29.1\": \"122\",\n\t\"29.2\": \"122\",\n\t\"29.3\": \"122\",\n\t\"29.4\": \"122\",\n\t\"30.0\": \"124\",\n\t\"30.1\": \"124\",\n\t\"30.2\": \"124\",\n\t\"30.3\": \"124\",\n\t\"30.4\": \"124\",\n\t\"30.5\": \"124\",\n\t\"31.0\": \"126\",\n\t\"31.1\": \"126\",\n\t\"31.2\": \"126\",\n\t\"31.3\": \"126\",\n\t\"31.4\": \"126\",\n\t\"31.5\": \"126\",\n\t\"31.6\": \"126\",\n\t\"31.7\": \"126\",\n\t\"32.0\": \"128\",\n\t\"32.1\": \"128\",\n\t\"32.2\": \"128\",\n\t\"32.3\": \"128\",\n\t\"33.0\": \"130\",\n\t\"33.1\": \"130\",\n\t\"33.2\": \"130\",\n\t\"33.3\": \"130\",\n\t\"33.4\": \"130\",\n\t\"34.0\": \"132\",\n\t\"34.1\": \"132\",\n\t\"34.2\": \"132\",\n\t\"34.3\": \"132\",\n\t\"34.4\": \"132\",\n\t\"34.5\": \"132\",\n\t\"35.0\": \"134\",\n\t\"35.1\": \"134\",\n\t\"36.0\": \"136\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n findConfigFile: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar e2c = require('electron-to-chromium/versions')\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\n\nvar BrowserslistError = require('./error')\nvar env = require('./node')\nvar parseWithoutCache = require('./parse') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseLatestFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseLatestFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n\n function parseLatestFloat(v) {\n return parseFloat(v.split('-')[1] || v)\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parseQueries(queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\nvar parseCache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var needsPath = parseQueries(queries).some(function (node) {\n return QUERIES[node.type].needsPath\n })\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n env: opts.env\n }\n // Removing to avoid using context.path without marking query as needsPath\n if (needsPath) {\n context.path = opts.path\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nfunction parseQueries(queries) {\n var cacheKey = JSON.stringify(queries)\n if (cacheKey in parseCache) return parseCache[cacheKey]\n var result = parseWithoutCache(QUERIES, queries)\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n parseCache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parseQueries(queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfigFile = env.findConfigFile\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var iMax = data.released.length - 1\n while (iMax >= 0) {\n if (data.released[iMax] in features[name]) break\n iMax--\n }\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released[iMax]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 128']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n needsPath: true,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n needsPath: true,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","module.exports={A:{A:{K:0,D:0,E:0,F:0.0324821,A:0,B:0.438508,nC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"nC\",\"K\",\"D\",\"E\",\"F\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{nC:962323200,K:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":0.003623,\"9\":0.003623,C:0,L:0,M:0,G:0,N:0,O:0,P:0.097821,Q:0,H:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0.010869,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0.003623,s:0.047099,t:0,u:0,v:0,w:0.007246,x:0.014492,y:0.007246,z:0,AB:0.003623,BB:0.03623,CB:0.007246,DB:0.014492,EB:0.007246,FB:0.007246,GB:0.007246,HB:0.021738,IB:0.014492,JB:0.014492,KB:0.014492,LB:0.025361,MB:0.065214,NB:0.079706,OB:1.34051,PB:3.0252,I:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"L\",\"M\",\"G\",\"N\",\"O\",\"P\",\"Q\",\"H\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"I\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1694649600,\"9\":1697155200,C:1438128000,L:1447286400,M:1470096000,G:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,H:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,v:1680825600,w:1683158400,x:1685664000,y:1689897600,z:1692576000,AB:1698969600,BB:1701993600,CB:1706227200,DB:1708732800,EB:1711152000,FB:1713398400,GB:1715990400,HB:1718841600,IB:1721865600,JB:1724371200,KB:1726704000,LB:1729123200,MB:1731542400,NB:1737417600,OB:1740614400,PB:1741219200,I:1743984000},D:{C:\"ms\",L:\"ms\",M:\"ms\",G:\"ms\",N:\"ms\",O:\"ms\",P:\"ms\"}},C:{A:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0.094198,oC:0.007246,MC:0,J:0,QB:0,K:0,D:0,E:0,F:0,A:0,B:0.025361,C:0,L:0,M:0,G:0,N:0,O:0,P:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0.003623,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0.028984,rB:0.014492,sB:0,tB:0.007246,uB:0.007246,vB:0,wB:0,NC:0.007246,xB:0,OC:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0,\"7B\":0,\"8B\":0.003623,\"9B\":0,AC:0,BC:0,CC:0,DC:0,EC:0.010869,Q:0,H:0,R:0,PC:0,S:0,T:0,U:0,V:0,W:0,X:0.007246,Y:0,Z:0,a:0,b:0,c:0,d:0.003623,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0,s:0.003623,t:0,u:0,v:0,w:0.003623,x:0,y:0.213757,z:0,AB:0,BB:0.003623,CB:0,DB:0,EB:0,FB:0,GB:0.014492,HB:0,IB:0.007246,JB:0.083329,KB:0,LB:0,MB:0.003623,NB:0.007246,OB:0.018115,PB:0.025361,I:0.347808,QC:1.11951,FC:0.007246,RC:0,pC:0,qC:0,rC:0,sC:0},B:\"moz\",C:[\"oC\",\"MC\",\"rC\",\"sC\",\"J\",\"QB\",\"K\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"L\",\"M\",\"G\",\"N\",\"O\",\"P\",\"RB\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"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\",\"NC\",\"xB\",\"OC\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"AC\",\"BC\",\"CC\",\"DC\",\"EC\",\"Q\",\"H\",\"R\",\"PC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"I\",\"QC\",\"FC\",\"RC\",\"pC\",\"qC\"],E:\"Firefox\",F:{\"0\":1693267200,\"1\":1361232000,\"2\":1364860800,\"3\":1368489600,\"4\":1372118400,\"5\":1375747200,\"6\":1379376000,\"7\":1386633600,\"8\":1391472000,\"9\":1695686400,oC:1161648000,MC:1213660800,rC:1246320000,sC:1264032000,J:1300752000,QB:1308614400,K:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,G:1342483200,N:1346112000,O:1349740800,P:1353628800,RB:1357603200,SB:1395100800,TB:1398729600,UB:1402358400,VB:1405987200,WB:1409616000,XB:1413244800,YB:1417392000,ZB:1421107200,aB:1424736000,bB:1428278400,cB:1431475200,dB:1435881600,eB:1439251200,fB:1442880000,gB:1446508800,hB:1450137600,iB:1453852800,jB:1457395200,kB:1461628800,lB:1465257600,mB:1470096000,nB:1474329600,oB:1479168000,pB:1485216000,qB:1488844800,rB:1492560000,sB:1497312000,tB:1502150400,uB:1506556800,vB:1510617600,wB:1516665600,NC:1520985600,xB:1525824000,OC:1529971200,yB:1536105600,zB:1540252800,\"0B\":1544486400,\"1B\":1548720000,\"2B\":1552953600,\"3B\":1558396800,\"4B\":1562630400,\"5B\":1567468800,\"6B\":1571788800,\"7B\":1575331200,\"8B\":1578355200,\"9B\":1581379200,AC:1583798400,BC:1586304000,CC:1588636800,DC:1591056000,EC:1593475200,Q:1595894400,H:1598313600,R:1600732800,PC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752000,v:1681171200,w:1683590400,x:1686009600,y:1688428800,z:1690848000,AB:1698105600,BB:1700524800,CB:1702944000,DB:1705968000,EB:1708387200,FB:1710806400,GB:1713225600,HB:1715644800,IB:1718064000,JB:1720483200,KB:1722902400,LB:1725321600,MB:1727740800,NB:1730160000,OB:1732579200,PB:1736208000,I:1738627200,QC:1741046400,FC:1743465600,RC:null,pC:null,qC:null}},D:{A:{\"0\":0.094198,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0.057968,J:0,QB:0,K:0,D:0,E:0,F:0,A:0,B:0,C:0,L:0,M:0,G:0,N:0,O:0,P:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0.003623,dB:0.007246,eB:0.003623,fB:0.007246,gB:0.007246,hB:0.007246,iB:0.007246,jB:0.007246,kB:0.003623,lB:0.007246,mB:0.018115,nB:0.018115,oB:0.007246,pB:0.007246,qB:0.010869,rB:0.007246,sB:0.007246,tB:0.007246,uB:0.014492,vB:0.007246,wB:0.010869,NC:0.007246,xB:0.007246,OC:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0.021738,\"3B\":0,\"4B\":0,\"5B\":0.010869,\"6B\":0.010869,\"7B\":0,\"8B\":0,\"9B\":0.007246,AC:0.003623,BC:0.007246,CC:0.003623,DC:0.014492,EC:0.010869,Q:0.068837,H:0.010869,R:0.014492,S:0.028984,T:0.003623,U:0.010869,V:0.014492,W:0.057968,X:0.014492,Y:0.003623,Z:0.007246,a:0.03623,b:0.010869,c:0.014492,d:0.028984,e:0.007246,f:0.007246,g:0.018115,h:0.03623,i:0.010869,j:0.028984,k:0.014492,l:0.014492,m:0.076083,n:0.050722,o:0.010869,p:0.021738,q:0.025361,r:0.039853,s:0.912996,t:0.018115,u:0.03623,v:0.03623,w:0.10869,x:0.054345,y:0.032607,z:0.101444,AB:0.03623,BB:0.086952,CB:0.094198,DB:0.076083,EB:0.086952,FB:0.123182,GB:0.344185,HB:0.152166,IB:0.101444,JB:0.130428,KB:0.101444,LB:0.152166,MB:1.17747,NB:0.815175,OB:5.89462,PB:9.91615,I:0.021738,QC:0.014492,FC:0,RC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"QB\",\"K\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"L\",\"M\",\"G\",\"N\",\"O\",\"P\",\"RB\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"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\",\"NC\",\"xB\",\"OC\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"AC\",\"BC\",\"CC\",\"DC\",\"EC\",\"Q\",\"H\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"I\",\"QC\",\"FC\",\"RC\"],E:\"Chrome\",F:{\"0\":1694476800,\"1\":1337040000,\"2\":1340668800,\"3\":1343692800,\"4\":1348531200,\"5\":1352246400,\"6\":1357862400,\"7\":1361404800,\"8\":1364428800,\"9\":1696896000,J:1264377600,QB:1274745600,K:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,G:1316131200,N:1319500800,O:1323734400,P:1328659200,RB:1332892800,SB:1369094400,TB:1374105600,UB:1376956800,VB:1384214400,WB:1389657600,XB:1392940800,YB:1397001600,ZB:1400544000,aB:1405468800,bB:1409011200,cB:1412640000,dB:1416268800,eB:1421798400,fB:1425513600,gB:1429401600,hB:1432080000,iB:1437523200,jB:1441152000,kB:1444780800,lB:1449014400,mB:1453248000,nB:1456963200,oB:1460592000,pB:1464134400,qB:1469059200,rB:1472601600,sB:1476230400,tB:1480550400,uB:1485302400,vB:1489017600,wB:1492560000,NC:1496707200,xB:1500940800,OC:1504569600,yB:1508198400,zB:1512518400,\"0B\":1516752000,\"1B\":1520294400,\"2B\":1523923200,\"3B\":1527552000,\"4B\":1532390400,\"5B\":1536019200,\"6B\":1539648000,\"7B\":1543968000,\"8B\":1548720000,\"9B\":1552348800,AC:1555977600,BC:1559606400,CC:1564444800,DC:1568073600,EC:1571702400,Q:1575936000,H:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656000,r:1669680000,s:1673308800,t:1675728000,u:1678147200,v:1680566400,w:1682985600,x:1685404800,y:1689724800,z:1692057600,AB:1698710400,BB:1701993600,CB:1705968000,DB:1708387200,EB:1710806400,FB:1713225600,GB:1715644800,HB:1718064000,IB:1721174400,JB:1724112000,KB:1726531200,LB:1728950400,MB:1731369600,NB:1736812800,OB:1738627200,PB:1741046400,I:1743465600,QC:null,FC:null,RC:null}},E:{A:{J:0,QB:0,K:0,D:0,E:0,F:0,A:0,B:0,C:0,L:0,M:0.014492,G:0.003623,tC:0,SC:0,uC:0,vC:0,wC:0,xC:0,TC:0,GC:0.007246,HC:0.007246,yC:0.032607,zC:0.043476,\"0C\":0.014492,UC:0.003623,VC:0.010869,IC:0.014492,\"1C\":0.148543,JC:0.032607,WC:0.021738,XC:0.018115,YC:0.039853,ZC:0.014492,aC:0.025361,\"2C\":0.199265,KC:0.010869,bC:0.123182,cC:0.018115,dC:0.021738,eC:0.050722,fC:0.086952,\"3C\":0.264479,LC:0.03623,gC:0.115936,hC:0.057968,iC:1.4021,jC:0.018115,kC:0,\"4C\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"tC\",\"SC\",\"J\",\"QB\",\"uC\",\"K\",\"vC\",\"D\",\"wC\",\"E\",\"F\",\"xC\",\"A\",\"TC\",\"B\",\"GC\",\"C\",\"HC\",\"L\",\"yC\",\"M\",\"zC\",\"G\",\"0C\",\"UC\",\"VC\",\"IC\",\"1C\",\"JC\",\"WC\",\"XC\",\"YC\",\"ZC\",\"aC\",\"2C\",\"KC\",\"bC\",\"cC\",\"dC\",\"eC\",\"fC\",\"3C\",\"LC\",\"gC\",\"hC\",\"iC\",\"jC\",\"kC\",\"4C\",\"\"],E:\"Safari\",F:{tC:1205798400,SC:1226534400,J:1244419200,QB:1275868800,uC:1311120000,K:1343174400,vC:1382400000,D:1382400000,wC:1410998400,E:1413417600,F:1443657600,xC:1458518400,A:1474329600,TC:1490572800,B:1505779200,GC:1522281600,C:1537142400,HC:1553472000,L:1568851200,yC:1585008000,M:1600214400,zC:1619395200,G:1632096000,\"0C\":1635292800,UC:1639353600,VC:1647216000,IC:1652745600,\"1C\":1658275200,JC:1662940800,WC:1666569600,XC:1670889600,YC:1674432000,ZC:1679875200,aC:1684368000,\"2C\":1690156800,KC:1695686400,bC:1698192000,cC:1702252800,dC:1705881600,eC:1709596800,fC:1715558400,\"3C\":1722211200,LC:1726444800,gC:1730073600,hC:1733875200,iC:1737936000,jC:1743379200,kC:null,\"4C\":null}},F:{A:{\"0\":0.684747,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,F:0,B:0,C:0,G:0,N:0,O:0,P:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0.003623,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0.010869,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0,\"7B\":0,\"8B\":0,\"9B\":0,AC:0,BC:0,CC:0,DC:0,EC:0,Q:0,H:0,R:0,PC:0,S:0,T:0,U:0,V:0,W:0.025361,X:0.007246,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.032607,f:0,g:0,h:0,i:0,j:0,k:0,l:0.018115,m:0,n:0,o:0,p:0,q:0,r:0,s:0,t:0,u:0,v:0,w:0,x:0.003623,y:0,z:0.202888,\"5C\":0,\"6C\":0,\"7C\":0,\"8C\":0,GC:0,lC:0,\"9C\":0,HC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"5C\",\"6C\",\"7C\",\"8C\",\"B\",\"GC\",\"lC\",\"9C\",\"C\",\"HC\",\"G\",\"N\",\"O\",\"P\",\"RB\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"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\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"AC\",\"BC\",\"CC\",\"DC\",\"EC\",\"Q\",\"H\",\"R\",\"PC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"\",\"\",\"\"],E:\"Opera\",F:{\"0\":1739404800,\"1\":1393891200,\"2\":1399334400,\"3\":1401753600,\"4\":1405987200,\"5\":1409616000,\"6\":1413331200,\"7\":1417132800,\"8\":1422316800,F:1150761600,\"5C\":1223424000,\"6C\":1251763200,\"7C\":1267488000,\"8C\":1277942400,B:1292457600,GC:1302566400,lC:1309219200,\"9C\":1323129600,C:1323129600,HC:1352073600,G:1372723200,N:1377561600,O:1381104000,P:1386288000,RB:1390867200,SB:1425945600,TB:1430179200,UB:1433808000,VB:1438646400,WB:1442448000,XB:1445904000,YB:1449100800,ZB:1454371200,aB:1457308800,bB:1462320000,cB:1465344000,dB:1470096000,eB:1474329600,fB:1477267200,gB:1481587200,hB:1486425600,iB:1490054400,jB:1494374400,kB:1498003200,lB:1502236800,mB:1506470400,nB:1510099200,oB:1515024000,pB:1517961600,qB:1521676800,rB:1525910400,sB:1530144000,tB:1534982400,uB:1537833600,vB:1543363200,wB:1548201600,xB:1554768000,yB:1561593600,zB:1566259200,\"0B\":1570406400,\"1B\":1573689600,\"2B\":1578441600,\"3B\":1583971200,\"4B\":1587513600,\"5B\":1592956800,\"6B\":1595894400,\"7B\":1600128000,\"8B\":1603238400,\"9B\":1613520000,AC:1612224000,BC:1616544000,CC:1619568000,DC:1623715200,EC:1627948800,Q:1631577600,H:1633392000,R:1635984000,PC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000,q:1707264000,r:1710115200,s:1711497600,t:1716336000,u:1719273600,v:1721088000,w:1724284800,x:1727222400,y:1732665600,z:1736294400},D:{F:\"o\",B:\"o\",C:\"o\",\"5C\":\"o\",\"6C\":\"o\",\"7C\":\"o\",\"8C\":\"o\",GC:\"o\",lC:\"o\",\"9C\":\"o\",HC:\"o\"}},G:{A:{E:0,SC:0,AD:0,mC:0.00289898,BD:0,CD:0.00869695,DD:0.00724746,ED:0,FD:0.00434848,GD:0.0202929,HD:0.00144949,ID:0.0333383,JD:0.153646,KD:0.0101464,LD:0.00579797,MD:0.14205,ND:0.00289898,OD:0.00579797,PD:0.00579797,QD:0.0202929,RD:0.124656,SD:0.0608787,TD:0.0333383,UC:0.0333383,VC:0.0405858,IC:0.0463837,UD:0.568201,JC:0.0797221,WC:0.165242,XC:0.08552,YC:0.150747,ZC:0.0333383,aC:0.0623282,VD:0.672564,KC:0.0405858,bC:0.0724746,cC:0.0550807,dC:0.0768231,eC:0.153646,fC:0.340631,WD:0.988554,LC:0.276853,gC:0.905933,hC:0.405858,iC:8.46503,jC:0.126106,kC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"SC\",\"AD\",\"mC\",\"BD\",\"CD\",\"DD\",\"E\",\"ED\",\"FD\",\"GD\",\"HD\",\"ID\",\"JD\",\"KD\",\"LD\",\"MD\",\"ND\",\"OD\",\"PD\",\"QD\",\"RD\",\"SD\",\"TD\",\"UC\",\"VC\",\"IC\",\"UD\",\"JC\",\"WC\",\"XC\",\"YC\",\"ZC\",\"aC\",\"VD\",\"KC\",\"bC\",\"cC\",\"dC\",\"eC\",\"fC\",\"WD\",\"LC\",\"gC\",\"hC\",\"iC\",\"jC\",\"kC\",\"\",\"\"],E:\"Safari on iOS\",F:{SC:1270252800,AD:1283904000,mC:1299628800,BD:1331078400,CD:1359331200,DD:1394409600,E:1410912000,ED:1413763200,FD:1442361600,GD:1458518400,HD:1473724800,ID:1490572800,JD:1505779200,KD:1522281600,LD:1537142400,MD:1553472000,ND:1568851200,OD:1572220800,PD:1580169600,QD:1585008000,RD:1600214400,SD:1619395200,TD:1632096000,UC:1639353600,VC:1647216000,IC:1652659200,UD:1658275200,JC:1662940800,WC:1666569600,XC:1670889600,YC:1674432000,ZC:1679875200,aC:1684368000,VD:1690156800,KC:1694995200,bC:1698192000,cC:1702252800,dC:1705881600,eC:1709596800,fC:1715558400,WD:1722211200,LC:1726444800,gC:1730073600,hC:1733875200,iC:1737936000,jC:1743379200,kC:null}},H:{A:{XD:0.05},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"XD\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{XD:1426464000}},I:{A:{MC:0,J:0,I:0.871727,YD:0,ZD:0,aD:0,bD:0,mC:0.000262095,cD:0,dD:0.000961014},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"YD\",\"ZD\",\"aD\",\"MC\",\"J\",\"bD\",\"mC\",\"cD\",\"dD\",\"I\",\"\",\"\",\"\"],E:\"Android Browser\",F:{YD:1256515200,ZD:1274313600,aD:1291593600,MC:1298332800,J:1318896000,bD:1341792000,mC:1374624000,cD:1386547200,dD:1401667200,I:1743379200}},J:{A:{D:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,H:1.04047,GC:0,lC:0,HC:0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"GC\",\"lC\",\"C\",\"HC\",\"H\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,GC:1314835200,lC:1318291200,C:1330300800,HC:1349740800,H:1709769600},D:{H:\"webkit\"}},L:{A:{I:44.6783},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{I:1743379200}},M:{A:{FC:0.350735},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"FC\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{FC:1743465600}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{IC:0.848141},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"IC\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{IC:1710115200},D:{IC:\"webkit\"}},P:{A:{\"1\":0,\"2\":0.0219344,\"3\":0.0219344,\"4\":0.0329016,\"5\":0.0438688,\"6\":0.0438688,\"7\":0.0877377,\"8\":1.96313,J:0.0329016,eD:0,fD:0,gD:0.0109672,hD:0,iD:0,TC:0,jD:0,kD:0,lD:0,mD:0,nD:0,JC:0,KC:0.0109672,LC:0,oD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"eD\",\"fD\",\"gD\",\"hD\",\"iD\",\"TC\",\"jD\",\"kD\",\"lD\",\"mD\",\"nD\",\"JC\",\"KC\",\"LC\",\"oD\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{\"1\":1677369600,\"2\":1684454400,\"3\":1689292800,\"4\":1697587200,\"5\":1711497600,\"6\":1715126400,\"7\":1717718400,\"8\":1725667200,J:1461024000,eD:1481846400,fD:1509408000,gD:1528329600,hD:1546128000,iD:1554163200,TC:1567900800,jD:1582588800,kD:1593475200,lD:1605657600,mD:1618531200,nD:1629072000,JC:1640736000,KC:1651708800,LC:1659657600,oD:1667260800}},Q:{A:{pD:0.229572},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"pD\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{pD:1710288000}},R:{A:{qD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"qD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{qD:1710201600}},S:{A:{rD:0.012754,sD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"rD\",\"sD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{rD:1527811200,sD:1631664000}}};\n","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7843;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7843: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(18431)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","module","exports","CharacterClass","path","node","sources","i","expressions","length","childPath","getChild","source","jsonEncode","hasOwnProperty","remove","clone","obj","res","Array","isArray","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","Constructor","protoProps","staticProps","prototype","generator","parser","traverse","TransformResult","ast","extra","arguments","undefined","instance","TypeError","_classCallCheck","this","_ast","_source","_string","_regexp","_extra","value","RegExp","getSource","flags","generate","body","transform","regexp","handlers","parse","captureLocations","_toConsumableArray","arr","arr2","from","_hasIFlag","_hasUFlag","init","includes","forEach","expression","type","to","isFullNumberRange","replace","kind","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","every","test","some","nNode","find","symbol","codePoint","NaN","map","filter","Boolean","rewriteWhitespaceRanges","isChar","concat","char","browserVersions","Disjunction","parent","charset","Map","shouldProcess","size","characterClass","keys","sort","get","getParent","Group","capturing","left","right","set","negative","AND_REGEXP","OR_REGEXP","flatten","array","reduce","a","b","matchQuery","all","query","name","indexOf","not","slice","match","matches","matchBlock","string","qs","predicate","max","n","substr","parsed","compose","unshift","trim","queries","block","consumeNumbers","startIndex","rtl","siblingNode","escaped","Math","abs","isSimpleChar","_hasXFlag","Char","hasXFlag","index","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","shouldRun","isSurrogatePair","isNaN","toString","compatTransforms","_transform","transformsWhitelist","transformToApply","result","transformName","Error","join","handler","getAST","getExtra","setExtra","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","isMeta","toUpperCase","toLowerCase","getInverseMeta","___CSS_LOADER_EXPORT___","push","id","regexes","regex","family","maxVersion","Infinity","version","minVersion","numbersToRanges","numbers","SemverPart","semverify","versionParts","split","versionPart","semverPart","semver","parseInt","compareSemvers","options","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","allowHigherVersions","compareMinor","comparePatch","compareArrays","len","copy","items","AlternativeNode","exps","SimpleCharNode","String","ClassRangeNode","CharacterClassNode","CapturingGroupNode","number","DisjunctionCapturingGroupNode","expr","exprs","disjunction","pop","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","quantifier","greedy","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","isCharNode","isDigitRangeNode","isExpressionNode","parseRegex","classes","visitors","newVisitors","className","visitor","visitorPre","pre","visitorPost","post","nodePath","numberToDigits","num","Number","rayRangeDigitPattern","digit","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","min","splitToDecadeRanges","parts","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","range","middleSegment","_","ri","d","j","patterns","prevNode","merged","exp","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","getNumberPatternsCount","numbersCounter","containsNumberPattern","applyVersionsToRegex","versions","finalVersions","maxRequiredPartsCount","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","start","createMapper","rangedSemverToRegex","numbersToReplace","shift","replaceNumberPatterns","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","matchedVersions","current","Major","Minor","Patch","part","p","versionsListToRanges","applyVersionsToRegexes","browsers","targetRegexes","prevFamily","prevRegexIsGlobal","requestVersions","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","getRegexesForBrowsers","merge","strVersion","mergeBrowserVersions","browserslistOptions","browserslist","browser","versionString","versionStringTo","partIndex","i1","v","rangeSemver","getBrowsersList","partsRegexes","src","optimizeRegex","compileRegex","getUserAgentRegex","browserslistConfig","supportedBrowsers","getBuilder","clearOnLogout","persist","build","user","getCurrentUser","getLoggerBuilder","setApp","setUid","uid","detectUser","browserStorageKey","generateUrl","browserStorage","getItem","emits","title","fillColor","default","_vm","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","logger","debug","components","Web","NcButton","NcEmptyContent","computed","isMobile","navigator","userAgent","filteredSupportedBrowsers","isMobileBrowser","formattedBrowsersList","list","parseFloat","agents","t","entry","methods","forceBrowsing","setItem","urlParams","URLSearchParams","window","location","search","has","redirectPath","Buffer","getRootUrl","startsWith","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","scopedSlots","_u","fn","proxy","_l","Vue","el","render","h","UnsupportedBrowser","gen","Alternative","nameRaw","Backreference","reference","referenceRaw","Assertion","assertion","_assertion","ClassRange","Repetition","Quantifier","UnicodeProperty","shorthand","binary","regexpTreeParser","generatedParseFn","bind","setOptions","_require","alt","or","rep","plusRep","questionRep","fragments","apply","NodePath","asNodes","getPathFor","prop","parentPath","getForNode","initRegistry","root","skipProperty","visit","idx","_prop","child","traversingIndexStack","updateTraversingIndex","astTraverse","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","isRemoved","handlerFuncPre","call","err","return","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","handlerFuncPost","increaseQuantifierByOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","hasEqualSource","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","getTransitionTable","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","minimize","getAlphabet","table","stateNumbers","_this","nfaTable","nfaStates","Set","worklist","alphabet","nfaAcceptingStates","getAcceptingStateNumbers","dfaTable","updateAcceptingStates","states","nfaAcceptingState","add","dfaStateLabel","onSymbol","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","nfaStatesOnSymbol","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","nfaStateOnSymbol","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","_originalNumber","state","disjunctionToList","listToDisjunction","NFA","nfaFromRegExp","builders","toNFA","toDFA","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","data","inverse","isGeneralCategoryValue","isScriptCategoryValue","isAlias","isValidName","isValidValue","isGeneralCategoryName","isScriptCategoryName","isBinaryPropertyName","getCanonicalName","getCanonicalValue","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","end","setChild","splice","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","assign","JSON","stringify","jsonSkipLoc","_ref","format","useLoc","clear","dx","dotAll","namedCapturingGroups","xFlag","toValue","toSymbol","State","EPSILON","NFAState","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","accepting","getTransitionsOnSymbol","rest","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","RegExpTree","re","groups","_re","_groups","global","ignoreCase","multiline","sticky","unicode","compile","_toStringResult","exec","group","groupNumber","compatTranspiler","optimizer","_traverse","fa","regexpTree","toRegExp","compat","compatTranspile","getFlags","optimize","whitelist","blacklist","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","c","e","f","g","k","l","m","o","q","r","s","u","w","x","y","z","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","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","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","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","ZD","aD","bD","cD","dD","eD","fD","gD","hD","iD","jD","kD","lD","mD","nD","oD","pD","qD","rD","sD","uniqueNodesMap","encoded","_groupNames","optimizationTransforms","_ref$whitelist","_ref$blacklist","prevResultString","transformer","newResult","sortCharClass","aValue","getSortValue","bValue","isControl","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","classRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","inState","outState","addTransition","altPair","first","second","out","in","orPair","_len","_key","_len2","_key2","fragment","repExplicit","BrowserslistError","message","captureStackTrace","agentsData","unpackBrowserVersions","versionsData","usage","usage_global","prefix_exceptions","release_date","map2","key2","prefix","insertChildAt","_ref$accepting","_transitions","toState","transitions","_slicedToArray","_arr","_n","_d","_i","sliceIterator","currentTransitionMap","sameRow","r1","r2","s1","s2","areEquivalent","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","originalTransitionS1","originalTransitionS2","dfa","allStates","nonAccepting","previous","_loop","newTransitionMap","_set","handledStates","_set2","restSets","handledState","newSets","remaped","minimizedTable","minimizedAcceptingStates","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","setTransitionTable","setAcceptingStateNumbers","UPPER_A_CP","codePointAt","UPPER_Z_CP","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","fromCodePoint","newChar","parentType","needsEscape","rewriteOpenZero","rewriteOpenOne","rewriteExactOne","_alphabet","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","findConfigFile","clearCaches","oldDataWarning","env","jsReleases","e2c","jsEOL","parseWithoutCache","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","normalize","normalizeElectron","versionToUse","nameMapper","getMajor","getMajorVersions","released","majorVersions","uniq","minimum","selected","filtered","fillUsage","generateFilter","sign","parseLatestFloat","parseSimpleInt","compare","compareSemver","semverFilterLoose","operator","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","byName","releaseDate","date","cloneData","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","copyObject","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","nVersions","jump","op_mob","isSupported","withPartial","parseQueries","QUERIES","select","prepareOpts","prepareQueries","defaults","checkQueries","cache","parseCache","needsPath","ignoreUnknownVersions","dangerousExtend","customUsage","cacheKey","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","place","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","last_major_versions","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","supportType","features","iMax","checkDesktop","electron_range","fromToUse","toToUse","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","full","interval","release","yytext","yy","__","__loc","yyloc","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isBinaryProperty","SyntaxError","canonicalName","canonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","pushState","lexRulesByConditions","EOF_TOKEN","initString","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","repeat","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","lead","trail","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","combineRepeatingPatternLeft","alternative","nbPossibleLengths","ceil","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","_AZClassRanges","lower","_getSurrogatePairFrom","floor","getSurrogatePairFromCodePoint","code","displaySymbolAsValue","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","getter","__esModule","definition","Promise","globalThis","Function","toStringTag","nmd","paths","children","document","baseURI","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""}